PageSourceSearch

https://radioplayer.domradio.de/radioplayer/assets/radioplayer.legacy.js

js domradio.de collected 2026-09-24 08:59:49 UTC 2,662,493 bytes, 70,349 lines download raw bytes

1/******/ (function(modules) { // webpackBootstrap
2/******/ 	// install a JSONP callback for chunk loading
3/******/ 	function webpackJsonpCallback(data) {
4/******/ 		var chunkIds = data[0];
5/******/ 		var moreModules = data[1];
6/******/
7/******/
8/******/ 		// add "moreModules" to the modules object,
9/******/ 		// then flag all "chunkIds" as loaded and fire callback
10/******/ 		var moduleId, chunkId, i = 0, resolves = [];
11/******/ 		for(;i < chunkIds.length; i++) {
12/******/ 			chunkId = chunkIds[i];
13/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
14/******/ 				resolves.push(installedChunks[chunkId][0]);
15/******/ 			}
16/******/ 			installedChunks[chunkId] = 0;
17/******/ 		}
18/******/ 		for(moduleId in moreModules) {
19/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
20/******/ 				modules[moduleId] = moreModules[moduleId];
21/******/ 			}
22/******/ 		}
23/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
24/******/
25/******/ 		while(resolves.length) {
26/******/ 			resolves.shift()();
27/******/ 		}
28/******/
29/******/ 	};
30/******/
31/******/
32/******/ 	// The module cache
33/******/ 	var installedModules = {};
34/******/
35/******/ 	// object to store loaded and loading chunks
36/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
37/******/ 	// Promise = chunk loading, 0 = chunk loaded
38/******/ 	var installedChunks = {
39/******/ 		11: 0
40/******/ 	};
41/******/
42/******/
43/******/
44/******/ 	// script path function
45/******/ 	function jsonpScriptSrc(chunkId) {
46/******/ 		return __webpack_require__.p + "js/" + ({"7":"dfp.legacy"}[chunkId]||chunkId) + "." + {"7":"25ffe266"}[chunkId] + ".js"
47/******/ 	}
48/******/
49/******/ 	// The require function
50/******/ 	function __webpack_require__(moduleId) {
51/******/
52/******/ 		// Check if module is in cache
53/******/ 		if(installedModules[moduleId]) {
54/******/ 			return installedModules[moduleId].exports;
55/******/ 		}
56/******/ 		// Create a new module (and put it into the cache)
57/******/ 		var module = installedModules[moduleId] = {
58/******/ 			i: moduleId,
59/******/ 			l: false,
60/******/ 			exports: {}
61/******/ 		};
62/******/
63/******/ 		// Execute the module function
64/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
65/******/
66/******/ 		// Flag the module as loaded
67/******/ 		module.l = true;
68/******/
69/******/ 		// Return the exports of the module
70/******/ 		return module.exports;
71/******/ 	}
72/******/
73/******/ 	// This file contains only the entry chunk.
74/******/ 	// The chunk loading function for additional chunks
75/******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
76/******/ 		var promises = [];
77/******/
78/******/
79/******/ 		// JSONP chunk loading for javascript
80/******/
81/******/ 		var installedChunkData = installedChunks[chunkId];
82/******/ 		if(installedChunkData !== 0) { // 0 means "already installed".
83/******/
84/******/ 			// a Promise means "currently loading".
85/******/ 			if(installedChunkData) {
86/******/ 				promises.push(installedChunkData[2]);
87/******/ 			} else {
88/******/ 				// setup Promise in chunk cache
89/******/ 				var promise = new Promise(function(resolve, reject) {
90/******/ 					installedChunkData = installedChunks[chunkId] = [resolve, reject];
91/******/ 				});
92/******/ 				promises.push(installedChunkData[2] = promise);
93/******/
94/******/ 				// start chunk loading
95/******/ 				var script = document.createElement('script');
96/******/ 				var onScriptComplete;
97/******/
98/******/ 				script.charset = 'utf-8';
99/******/ 				script.timeout = 120;
100/******/ 				if (__webpack_require__.nc) {
101/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
102/******/ 				}
103/******/ 				script.src = jsonpScriptSrc(chunkId);
104/******/
105/******/ 				// create error before stack unwound to get useful stacktrace later
106/******/ 				var error = new Error();
107/******/ 				onScriptComplete = function (event) {
108/******/ 					// avoid mem leaks in IE.
109/******/ 					script.onerror = script.onload = null;
110/******/ 					clearTimeout(timeout);
111/******/ 					var chunk = installedChunks[chunkId];
112/******/ 					if(chunk !== 0) {
113/******/ 						if(chunk) {
114/******/ 							var errorType = event && (event.type === 'load' ? 'missing' : event.type);
115/******/ 							var realSrc = event && event.target && event.target.src;
116/******/ 							error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
117/******/ 							error.name = 'ChunkLoadError';
118/******/ 							error.type = errorType;
119/******/ 							error.request = realSrc;
120/******/ 							chunk[1](error);
121/******/ 						}
122/******/ 						installedChunks[chunkId] = undefined;
123/******/ 					}
124/******/ 				};
125/******/ 				var timeout = setTimeout(function(){
126/******/ 					onScriptComplete({ type: 'timeout', target: script });
127/******/ 				}, 120000);
128/******/ 				script.onerror = script.onload = onScriptComplete;
129/******/ 				document.head.appendChild(script);
130/******/ 			}
131/******/ 		}
132/******/ 		return Promise.all(promises);
133/******/ 	};
134/******/
135/******/ 	// expose the modules object (__webpack_modules__)
136/******/ 	__webpack_require__.m = modules;
137/******/
138/******/ 	// expose the module cache
139/******/ 	__webpack_require__.c = installedModules;
140/******/
141/******/ 	// define getter function for harmony exports
142/******/ 	__webpack_require__.d = function(exports, name, getter) {
143/******/ 		if(!__webpack_require__.o(exports, name)) {
144/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
145/******/ 		}
146/******/ 	};
147/******/
148/******/ 	// define __esModule on exports
149/******/ 	__webpack_require__.r = function(exports) {
150/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
151/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
152/******/ 		}
153/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
154/******/ 	};
155/******/
156/******/ 	// create a fake namespace object
157/******/ 	// mode & 1: value is a module id, require it
158/******/ 	// mode & 2: merge all properties of value into the ns
159/******/ 	// mode & 4: return value when already ns object
160/******/ 	// mode & 8|1: behave like require
161/******/ 	__webpack_require__.t = function(value, mode) {
162/******/ 		if(mode & 1) value = __webpack_require__(value);
163/******/ 		if(mode & 8) return value;
164/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
165/******/ 		var ns = Object.create(null);
166/******/ 		__webpack_require__.r(ns);
167/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
168/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
169/******/ 		return ns;
170/******/ 	};
171/******/
172/******/ 	// getDefaultExport function for compatibility with non-harmony modules
173/******/ 	__webpack_require__.n = function(module) {
174/******/ 		var getter = module && module.__esModule ?
175/******/ 			function getDefault() { return module['default']; } :
176/******/ 			function getModuleExports() { return module; };
177/******/ 		__webpack_require__.d(getter, 'a', getter);
178/******/ 		return getter;
179/******/ 	};
180/******/
181/******/ 	// Object.prototype.hasOwnProperty.call
182/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
183/******/
184/******/ 	// __webpack_public_path__
185/******/ 	__webpack_require__.p = "https://assets.player.radio/latest/";
186/******/
187/******/ 	// on error function for async loading
188/******/ 	__webpack_require__.oe = function(err) { console.error(err); throw err; };
189/******/
190/******/ 	var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
191/******/ 	if (jsonpArray.push.name === 'webpackJsonpCallback') return;
192/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
193/******/ 	jsonpArray.push = webpackJsonpCallback;
194/******/ 	jsonpArray = jsonpArray.slice();
195/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
196/******/ 	var parentJsonpFunction = oldJsonpFunction;
197/******/
198/******/
199/******/ 	// Load entry module and return exports
200/******/ 	return __webpack_require__(__webpack_require__.s = 1058);
201/******/ })
202/************************************************************************/
203/******/ ([
204/* 0 */,
205/* 1 */
206/***/ (function(module, __webpack_exports__, __webpack_require__) {
207
208"use strict";
209__webpack_require__.r(__webpack_exports__);
210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return O; });
211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hydrate", function() { return S; });
212/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createElement", function() { return h; });
213/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return h; });
214/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Fragment", function() { return p; });
215/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createRef", function() { return y; });
216/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidElement", function() { return l; });
217/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return d; });
218/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneElement", function() { return q; });
219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createContext", function() { return B; });
220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toChildArray", function() { return b; });
221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__u", function() { return L; });
222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "options", function() { return n; });
223var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var i,t,o,r=arguments,f={};for(o in l)"key"==o?i=l[o]:"ref"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);if(null!=u&&(f.children=u),"function"==typeof n&&null!=n.defaultProps)for(o in n.defaultProps)void 0===f[o]&&(f[o]=n.defaultProps[o]);return v(n,f,i,t,null)}function v(l,u,i,t,o){var r={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:o};return null==o&&(r.__v=r),null!=n.vnode&&n.vnode(r),r}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;
223l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function w(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return w(n)}}function k(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!g.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(g)}function g(){for(var n;g.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,o,r,f;n.__d&&(r=(o=(l=n).__v).__e,(f=l.__P)&&(u=[],(i=s({},o)).__v=i,t=$(f,o,i,l.__n,void 0!==f.ownerSVGElement,null!=o.__h?[r]:null,u,null==r?_(o):r,o.__h),j(u,o),t!=r&&w(o)))})}function m(n,l,u,i,t,o,r,c,s,h){var y,d,w,k,g,m,b,A=i&&i.__k||e,P=A.length;for(s==f&&(s=null!=r?r[0]:P?_(i,0):null),u.__k=[],y=0;y<l.length;y++)if(null!=(k=u.__k[y]=null==(k=l[y])||"boolean"==typeof k?null:"string"==typeof k||"number"==typeof k?v(null,k,null,null,k):Array.isArray(k)?v(p,{children:k},null,null,null):null!=k.__e||null!=k.__c?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(w=A[y])||w&&k.key==w.key&&k.type===w.type)A[y]=void 0;else for(d=0;d<P;d++){if((w=A[d])&&k.key==w.key&&k.type===w.type){A[d]=void 0;break}w=null}g=$(n,k,w=w||f,t,o,r,c,s,h),(d=k.ref)&&w.ref!=d&&(b||(b=[]),w.ref&&b.push(w.ref,null,k),b.push(d,k.__c||g,k)),null!=g?(null==m&&(m=g),s=x(n,k,w,A,r,g,s),h||"option"!=u.type?"function"==typeof u.type&&(u.__d=s):n.value=""):s&&w.__e==s&&s.parentNode!=n&&(s=_(w))}if(u.__e=m,null!=r&&"function"!=typeof u.type)for(y=r.length;y--;)null!=r[y]&&a(r[y]);for(y=P;y--;)null!=A[y]&&L(A[y],A[y]);if(b)for(y=0;y<b.length;y++)I(b[y],b[++y],b[++y])}function b(n,l){return l=l||[],null==n||"boolean"==typeof n||(Array.isArray(n)?n.some(function(n){b(n,l)}):l.push(n)),l}function x(n,l,u,i,t,o,r){var f,e,c;if(void 0!==l.__d)f=l.__d,l.__d=void 0;else if(t==u||o!=r||null==o.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(o),f=null;else{for(e=r,c=0;(e=e.nextSibling)&&c<i.length;c+=2)if(e==o)break n;n.insertBefore(o,r),f=r}
223return void 0!==f?f:o.nextSibling}function A(n,l,u,i,t){var o;for(o in u)"children"===o||"key"===o||o in l||C(n,o,null,u[o],i);for(o in l)t&&"function"!=typeof l[o]||"children"===o||"key"===o||"value"===o||"checked"===o||u[o]===l[o]||C(n,o,l[o],u[o],i)}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]=null==u?"":"number"!=typeof u||c.test(l)?u:u+"px"}function C(n,l,u,i,t){var o,r,f;if(t&&"className"==l&&(l="class"),"style"===l)if("string"==typeof u)n.style.cssText=u;else{if("string"==typeof i&&(n.style.cssText=i=""),i)for(l in i)u&&l in u||P(n.style,l,"");if(u)for(l in u)i&&u[l]===i[l]||P(n.style,l,u[l])}else"o"===l[0]&&"n"===l[1]?(o=l!==(l=l.replace(/Capture$/,"")),(r=l.toLowerCase())in n&&(l=r),l=l.slice(2),n.l||(n.l={}),n.l[l+o]=u,f=o?N:z,u?i||n.addEventListener(l,f,o):n.removeEventListener(l,f,o)):"list"!==l&&"tagName"!==l&&"form"!==l&&"type"!==l&&"size"!==l&&"download"!==l&&"href"!==l&&!t&&l in n?n[l]=null==u?"":u:"function"!=typeof u&&"dangerouslySetInnerHTML"!==l&&(l!==(l=l.replace(/xlink:?/,""))?null==u||!1===u?n.removeAttributeNS("http://www.w3.org/1999/xlink",l.toLowerCase()):n.setAttributeNS("http://www.w3.org/1999/xlink",l.toLowerCase(),u):null==u||!1===u&&!/^ar/.test(l)?n.removeAttribute(l):n.setAttribute(l,u))}function z(l){this.l[l.type+!1](n.event?n.event(l):l)}function N(l){this.l[l.type+!0](n.event?n.event(l):l)}function T(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,t.__e&&("function"==typeof t.type&&t.__k.length>1&&T(t,l,u),l=x(u,t,t,n.__k,null,t.__e,l),"function"==typeof n.type&&(n.__d=l)))}function $(l,u,i,t,o,r,f,e,c){var a,h,v,y,_,w,k,g,b,x,A,P=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,r=[e]),(a=n.__b)&&a(u);try{n:if("function"==typeof P){if(g=u.props,b=(a=P.contextType)&&t[a.__c],x=a?b?b.props.value:a.__:t,i.__c?k=(h=u.__c=i.__c).__=h.__E:("prototype"in P&&P.prototype.render?u.__c=h=new P(g,x):(u.__c=h=new d(g,x),h.constructor=P,h.render=M),b&&b.sub(h),h.props=g,h.state||(h.state={}),h.context=x,h.__n=t,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,P.getDerivedStateFromProps(g,h.__s))),y=h.props,_=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&g!==y&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(g,x),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(g,h.__s,x)||u.__v===i.__v){h.props=g,h.state=h.__s,u.__v!==i.__v&&(h.__d=!1),h.__v=u,u.__e=i.__e,u.__k=i.__k,h.__h.length&&f.push(h),T(u,e,l);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(g,h.__s,x),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(y,_,w)})}h.context=x,h.props=g,h.state=h.__s,(a=n.__r)&&a(u),h.__d=!1,h.__v=u,h.__P=l,a=h.render(h.props,h.state,h.context),h.state=h.__s,null!=h.getChildContext&&(t=s(s({},t),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(w=h.getSnapshotBeforeUpdate(y,_)),A=null!=a&&a.type==p&&null==a.key?a.props.children:a,m(l,Array.isArray(A)?A:[A],u,i,t,o,r,f,e,c),h.base=u.__e,u.__h=null,h.__h.length&&f.push(h),k&&(h.__E=h.__=null),h.__e=!1}else null==r&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=H(i.__e,u,i,t,o,r,f,c);(a=n.diffed)&&a(u)}catch(l){u.__v=null,(c||null!=r)&&(u.__e=e,u.__h=!!c,r[r.indexOf(e)]=null),n.__e(l,u,i)}return u.__e}function j(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function H(n,l,u,i,t,o,r,c){var s,a,h,v,y,p=u.props,d=l.props;if(t="svg"===l.type||t,null!=o)for(s=0;s<o.length;s++)if(null!=(a=o[s])&&((null===l.type?3===a.nodeType:a.localName===l.type)||n==a)){n=a,o[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=t?document.createElementNS("http://www.w3.org/2000/svg",l.type):document.createElement(l.type,d.is&&{is:d.is}),o=null,c=!1}if(null===l.type)p===d||c&&n.data===d||(n.data=d);else{if(null!=o&&(o=e.slice.call(n.childNodes)),h=(p=u.props||f).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,!c){if(null!=o)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(v||h)&&(v&&(h&&v.__html==h.__html||v.__html===n.innerHTML)||(n.innerHTML=v&&v.__html||""))}A(n,d,p,t,c),v?l.__k=[]:(s=l.props.children,m(n,Array.isArray(s)?s:[s],l,u,i,"foreignObject"!==l.type&&t,o,r,f,c)),c||
223("value"in d&&void 0!==(s=d.value)&&(s!==n.value||"progress"===l.type&&!s)&&C(n,"value",s,p.value,!1),"checked"in d&&void 0!==(s=d.checked)&&s!==n.checked&&C(n,"checked",s,p.checked,!1))}return n}function I(l,u,i){try{"function"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function L(l,u,i){var t,o,r;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||I(t,null,u)),i||"function"==typeof l.type||(i=null!=(o=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(r=0;r<t.length;r++)t[r]&&L(t[r],u,i);null!=o&&a(o)}function M(n,l,u){return this.constructor(n,u)}function O(l,u,i){var t,r,c;n.__&&n.__(l,u),r=(t=i===o)?null:i&&i.__k||u.__k,l=h(p,null,[l]),c=[],$(u,(t?u:i||u).__k=l,r||f,f,void 0!==u.ownerSVGElement,i&&!t?[i]:r?null:u.childNodes.length?e.slice.call(u.childNodes):null,c,i||f,t),j(c,l)}function S(n,l){O(n,l,o)}function q(n,l,u){var i,t,o,r=arguments,f=s({},n.props);for(o in l)"key"==o?i=l[o]:"ref"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o<arguments.length;o++)u.push(r[o]);return null!=u&&(f.children=u),v(n.type,f,i||n.key,t||n.ref,null)}function B(n,l){var u={__c:l="__cC"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n,u,i){return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(k)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n={__e:function(n,l){for(var u,i,t,o=l.__h;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return l.__h=o,u.__E=u}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),k(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),k(this))},d.prototype.render=p,u=[],i="function"==typeof Promise?Promise.prototype.then.bind(Prom
223ise.resolve()):setTimeout,g.__r=0,o=f,r=0;
224//# sourceMappingURL=preact.module.js.map
225
226
227/***/ }),
228/* 2 */
229/***/ (function(module, exports, __webpack_require__) {
230
231var global = __webpack_require__(16);
232var getOwnPropertyDescriptor = __webpack_require__(51).f;
233var createNonEnumerableProperty = __webpack_require__(53);
234var redefine = __webpack_require__(54);
235var setGlobal = __webpack_require__(274);
236var copyConstructorProperties = __webpack_require__(358);
237var isForced = __webpack_require__(169);
238
239/*
240  options.target      - name of the target object
241  options.global      - target is the global object
242  options.stat        - export as static methods of target
243  options.proto       - export as prototype methods of target
244  options.real        - real prototype method for the `pure` version
245  options.forced      - export even if the native feature is available
246  options.bind        - bind methods to the target, required for the `pure` version
247  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version
248  options.unsafe      - use the simple assignment of property instead of delete + defineProperty
249  options.sham        - add a flag to not completely full polyfills
250  options.enumerable  - export as enumerable property
251  options.noTargetGet - prevent calling a getter on target
252*/
253module.exports = function (options, source) {
254  var TARGET = options.target;
255  var GLOBAL = options.global;
256  var STATIC = options.stat;
257  var FORCED, target, key, targetProperty, sourceProperty, descriptor;
258  if (GLOBAL) {
259    target = global;
260  } else if (STATIC) {
261    target = global[TARGET] || setGlobal(TARGET, {});
262  } else {
263    target = (global[TARGET] || {}).prototype;
264  }
265  if (target) for (key in source) {
266    sourceProperty = source[key];
267    if (options.noTargetGet) {
268      descriptor = getOwnPropertyDescriptor(target, key);
269      targetProperty = descriptor && descriptor.value;
270    } else targetProperty = target[key];
271    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
272    // contained in target
273    if (!FORCED && targetProperty !== undefined) {
274      if (typeof sourceProperty === typeof targetProperty) continue;
275      copyConstructorProperties(sourceProperty, targetProperty);
276    }
277    // add a flag to not completely full polyfills
278    if (options.sham || (targetProperty && targetProperty.sham)) {
279      createNonEnumerableProperty(sourceProperty, 'sham', true);
280    }
281    // extend global
282    redefine(target, key, sourceProperty, options);
283  }
284};
285
286
287/***/ }),
288/* 3 */,
289/* 4 */
290/***/ (function(module, __webpack_exports__, __webpack_require__) {
291
292"use strict";
293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return m; });
294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return p; });
295/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return y; });
296/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return l; });
297/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return h; });
298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return s; });
299/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return _; });
300/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return A; });
301/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return F; });
302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return T; });
303/* unused harmony export useErrorBoundary */
304/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
305var t,u,r,o=0,i=[],c=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r,f=preact__WEBPACK_IMPORTED_MODULE_0__["options"].diffed,e=preact__WEBPACK_IMPORTED_MODULE_0__["options"].__c,a=preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount;function v(t,r){preact__WEBPACK_IMPORTED_MODULE_0__["options"].__h&&preact__WEBPACK_IMPORTED_MODULE_0__["options"].__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function m(n){return o=1,p(k,n)}function p(n,r,o){var i=v(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):k(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=v(t++,3);!preact__WEBPACK_IMPORTED_MODULE_0__["options"].__s&&j(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function l(r,o){var i=v(t++,4);!preact__WEBPACK_IMPORTED_MODULE_0__["options"].__s&&j(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function h(n){return o=5,_(function(){return{current:n}},[])}function s(n,t,u){o=6,l(function(){"function"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function _(n,u){var r=v(t++,7);return j(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,_(function(){return n},t)}function F(n){var r=u.context[n.__c],o=v(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){preact__WEBPACK_IMPORTED_MODULE_0__["options"].useDebugValue&&preact__WEBPACK_IMPORTED_MODULE_0__["options"].useDebugValue(u?u(t):t)}function d(n){var r=v(t++,10),o=m();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}
305function q(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(b),t.__H.__h.forEach(g),t.__H.__h=[]}catch(u){t.__H.__h=[],preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(u,t.__v)}}),i=[]}preact__WEBPACK_IMPORTED_MODULE_0__["options"].__r=function(n){c&&c(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(b),r.__h.forEach(g),r.__h=[])},preact__WEBPACK_IMPORTED_MODULE_0__["options"].diffed=function(t){f&&f(t);var u=t.__c;u&&u.__H&&u.__H.__h.length&&(1!==i.push(u)&&r===preact__WEBPACK_IMPORTED_MODULE_0__["options"].requestAnimationFrame||((r=preact__WEBPACK_IMPORTED_MODULE_0__["options"].requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),x&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);x&&(t=requestAnimationFrame(u))})(q))},preact__WEBPACK_IMPORTED_MODULE_0__["options"].__c=function(t,u){u.some(function(t){try{t.__h.forEach(b),t.__h=t.__h.filter(function(n){return!n.__||g(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(r,t.__v)}}),e&&e(t,u)},preact__WEBPACK_IMPORTED_MODULE_0__["options"].unmount=function(t){a&&a(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(b)}catch(t){preact__WEBPACK_IMPORTED_MODULE_0__["options"].__e(t,u.__v)}};var x="function"==typeof requestAnimationFrame;function b(n){"function"==typeof n.__c&&n.__c()}function g(n){n.__c=n.__()}function j(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function k(n,t){return"function"==typeof t?t(n):t}
306//# sourceMappingURL=hooks.module.js.map
307
308
309/***/ }),
310/* 5 */,
311/* 6 */
312/***/ (function(module, exports, __webpack_require__) {
313
314module.exports = __webpack_require__(60);
315
316
317/***/ }),
318/* 7 */,
319/* 8 */
320/***/ (function(module, exports, __webpack_require__) {
321
322var arrayWithHoles = __webpack_require__(698);
323
324var iterableToArrayLimit = __webpack_require__(770);
325
326var unsupportedIterableToArray = __webpack_require__(412);
327
328var nonIterableRest = __webpack_require__(699);
329
330function _slicedToArray(arr, i) {
331  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
332}
333
334module.exports = _slicedToArray;
335
336/***/ }),
337/* 9 */,
338/* 10 */
339/***/ (function(module, __webpack_exports__, __webpack_require__) {
340
341"use strict";
342/* unused harmony export print */
343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return log; });
344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return error; });
345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return warn; });
346/* unused harmony export groupCollapsed */
347/* unused harmony export groupEnd */
348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return debug; });
349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return table; });
350/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75);
351/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__);
352/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(124);
353/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_1__);
354/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(160);
355/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_2__);
356/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93);
357/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_3__);
358/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(140);
359/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_4__);
360/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(254);
361/* harmony import */ var core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_search__WEBPACK_IMPORTED_MODULE_5__);
362
363
364
365
366
367
368var enable =  false || window.location.search.includes("debug");
369var isIE = !("table" in console);
370var methodToColourMap = {
371  debug: "#7f8c8d",
372  // Grey
373  log: "#2ecc71",
374  // Green
375  warn: "#f39c12",
376  // Yellow
377  error: "#c0392b",
378  // Red
379  groupCollapsed: "#3498db",
380  // Blue
381  groupEnd: null // No prefix on groupEnd
382
383};
384var inGroup = false;
385var print = function print(method) {
386  var _console;
387
388  if (!enable) {
389    return;
390  }
391
392  var styles = ["background: ".concat(methodToColourMap[method]), "border-radius: 0.5em", "color: white", "font-weight: bold", "padding: 2px 0.5em"];
393  var logPrefix = inGroup || isIE ? [] : ["%cRadioplayer", styles.join(";")];
394
395  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
396    args[_key - 1] = arguments[_key];
397  }
398
399  (_console = console)[method].apply(_console, logPrefix.concat(args));
400
401  if (method === "groupCollapsed") {
402    inGroup = true;
403  }
404
405  if (method === "groupEnd") {
406    inGroup = false;
407  }
408};
409var log = function log() {
410  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
411    args[_key2] = arguments[_key2];
412  }
413
414  return print.apply(void 0, ["log"].concat(args));
415};
416var error = function error() {
417  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
418    args[_key3] = arguments[_key3];
419  }
420
421  return print.apply(void 0, ["error"].concat(args));
422};
423var warn = function warn() {
424  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
425    args[_key4] = arguments[_key4];
426  }
427
428  return print.apply(void 0, ["warn"].concat(args));
429};
430var groupCollapsed = function groupCollapsed() {
431  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
432    args[_key5] = arguments[_key5];
433  }
434
435  return print.apply(void 0, ["groupCollapsed"].concat(args));
436};
437var groupEnd = function groupEnd() {
438  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
439    args[_key6] = arguments[_key6];
440  }
441
442  return print.apply(void 0, ["groupEnd"].concat(args));
443};
444var debug = function debug() {
445  for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
446    args[_key7] = arguments[_key7];
447  }
448
449  return print.apply(void 0, ["debug"].concat(args));
450};
451var table = function table(data, columns) {
452  return enable && (!isIE ? console.table(data, columns) : log(data));
453};
454
455/***/ }),
456/* 11 */
457/***/ (function(module, exports) {
458
459module.exports = function (exec) {
460  try {
461    return !!exec();
462  } catch (error) {
463    return true;
464  }
465};
466
467
468/***/ }),
469/* 12 */,
470/* 13 */
471/***/ (function(module, exports) {
472
473function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
474  try {
475    var info = gen[key](arg);
476    var value = info.value;
477  } catch (error) {
478    reject(error);
479    return;
480  }
481
482  if (info.done) {
483    resolve(value);
484  } else {
485    Promise.resolve(value).then(_next, _throw);
486  }
487}
488
489function _asyncToGenerator(fn) {
490  return function () {
491    var self = this,
492        args = arguments;
493    return new Promise(function (resolve, reject) {
494      var gen = fn.apply(self, args);
495
496      function _next(value) {
497        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
498      }
499
500      function _throw(err) {
501        asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
502      }
503
504      _next(undefined);
505    });
506  };
507}
508
509module.exports = _asyncToGenerator;
510
511/***/ }),
512/* 14 */,
513/* 15 */
514/***/ (function(module, exports) {
515
516function _defineProperty(obj, key, value) {
517  if (key in obj) {
518    Object.defineProperty(obj, key, {
519      value: value,
520      enumerable: true,
521      configurable: true,
522      writable: true
523    });
524  } else {
525    obj[key] = value;
526  }
527
528  return obj;
529}
530
531module.exports = _defineProperty;
532
533/***/ }),
534/* 16 */
535/***/ (function(module, exports, __webpack_require__) {
536
537/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {
538  return it && it.Math == Math && it;
539};
540
541// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
542module.exports =
543  // eslint-disable-next-line no-undef
544  check(typeof globalThis == 'object' && globalThis) ||
545  check(typeof window == 'object' && window) ||
546  check(typeof self == 'object' && self) ||
547  check(typeof global == 'object' && global) ||
548  // eslint-disable-next-line no-new-func
549  (function () { return this; })() || Function('return this')();
550
551/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
552
553/***/ }),
554/* 17 */,
555/* 18 */
556/***/ (function(module, __webpack_exports__, __webpack_require__) {
557
558"use strict";
559/* unused harmony export version */
560/* unused harmony export Children */
561/* unused harmony export render */
562/* unused harmony export hydrate */
563/* unused harmony export unmountComponentAtNode */
564/* unused harmony export createPortal */
565/* unused harmony export createFactory */
566/* unused harmony export cloneElement */
567/* unused harmony export isValidElement */
568/* unused harmony export findDOMNode */
569/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return w; });
570/* unused harmony export memo */
571/* unused harmony export forwardRef */
572/* unused harmony export unstable_batchedUpdates */
573/* unused harmony export StrictMode */
574/* unused harmony export Suspense */
575/* unused harmony export SuspenseList */
576/* unused harmony export lazy */
577/* unused harmony export __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED */
578/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
579/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "d", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_0__["b"]; });
580
581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "e", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_0__["d"]; });
582
583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "f", function() { return preact_hooks__WEBPACK_IMPORTED_MODULE_0__["j"]; });
584
585/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1);
586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "b", function() { return preact__WEBPACK_IMPORTED_MODULE_1__["createElement"]; });
587
588function S(n,t){for(var e in t)n[e]=t[e];return n}function g(n,t){for(var e in n)if("__source"!==e&&!(e in t))return!0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return!0;return!1}function w(n){this.props=n}function C(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:g(this.props,n)}function r(t){return this.shouldComponentUpdate=e,Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(w.prototype=new preact__WEBPACK_IMPORTED_MODULE_1__["Component"]).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return g(this.props,n)||g(this.state,t)};var R=preact__WEBPACK_IMPORTED_MODULE_1__["options"].__b;preact__WEBPACK_IMPORTED_MODULE_1__["options"].__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var x="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function k(n){function t(t,e){var r=S({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=x,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var A=function(n,t){return null==n?null:Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(n).map(t))},N={map:A,forEach:A,count:function(n){return n?Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(n).length:0},only:function(n){var t=Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(n);if(1!==t.length)throw"Children.only";return t[0]},toArray:preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"]},O=preact__WEBPACK_IMPORTED_MODULE_1__["options"].__e;function L(n){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c()}),n.__c.__H=null),(n=S({},n)).__c=null,n.__k=n.__k&&n.__k.map(L)),n}function U(n){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(U)),n}function F(){this.__u=0,this.t=null,this.__b=null}function M(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(e,u)}return u.displayName="Lazy",u.__f=!0,u}function I(){this.u=null,this.o=null}preact__WEBPACK_IMPORTED_MODULE_1__["options"].__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t.__c);O(n,t,e)},(F.prototype=new preact__WEBPACK_IMPORTED_MODULE_1__["Component"]).__c=function(n,t){var e=this;null==e.t&&(e.t=[]),e.t.push(t);var r=M(e.__v),u=!1,o=function(){u||(u=!0,t.componentWillUnmount=t.__c,r?r(i):i())};t.__c=t.componentWillUnmount,t.componentWillUnmount=function(){o(),t.__c&&t.__c()};var i=function(){var n;if(!--e.__u)for(e.__v.__k[0]=U(e.state.__e),e.setState({__e:e.__b=null});n=e.t.pop();)n.forceUpdate()},c=e.__v;c&&!0===c.__h||e.__u++||e.setState({__e:e.__b=e.__v.__k[0]}),n.then(o,o)},F.prototype.componentWillUnmount=function(){this.t=[]}
588,F.prototype.render=function(n,t){this.__b&&(this.__v.__k&&(this.__v.__k[0]=L(this.__b)),this.__b=null);var e=t.__e&&Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"],null,n.fallback);return e&&(e.__h=null),[Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"],null,t.__e?null:n.children),e]};var T=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i,r=Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(W,{context:t.context},n.__v);t.componentWillUnmount=function(){var n=t.l.parentNode;n&&n.removeChild(t.l),Object(preact__WEBPACK_IMPORTED_MODULE_1__["__u"])(t.s)},t.i&&t.i!==e&&(t.componentWillUnmount(),t.h=!1),n.__v?t.h?(e.__k=t.__k,Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(r,e),t.__k=e.__k):(t.l=document.createTextNode(""),t.__k=e.__k,Object(preact__WEBPACK_IMPORTED_MODULE_1__["hydrate"])("",e),e.appendChild(t.l),t.h=!0,t.i=e,Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(r,e,t.l),e.__k=t.__k,t.__k=t.l.__k):t.h&&t.componentWillUnmount(),t.s=r}function P(n,t){return Object(preact__WEBPACK_IMPORTED_MODULE_1__["createElement"])(j,{__v:n,i:t})}(I.prototype=new preact__WEBPACK_IMPORTED_MODULE_1__["Component"]).__e=function(n){var t=this,e=M(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u()};e?e(o):o()}},I.prototype.render=function(n){this.u=null,this.o=new Map;var t=Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},I.prototype.componentDidUpdate=I.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){T(n,e,t)})};var z="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,V=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,B="undefined"!=typeof Symbol?/fil|che|rad/i:/fil|che|ra/i;function H(n,t,e){return null==t.__k&&(t.textContent=""),Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(n,t),"function"==typeof e&&e(),n?n.__c:null}function Z(n,t,e){return Object(preact__WEBPACK_IMPORTED_MODULE_1__["hydrate"])(n,t),"function"==typeof e&&e(),n?n.__c:null}preact__WEBPACK_IMPORTED_MODULE_1__["Component"].prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(preact__WEBPACK_IMPORTED_MODULE_1__["Component"].prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var Y=preact__WEBPACK_IMPORTED_MODULE_1__["options"].event;function $(){}function q(){return this.cancelBubble}function G(){return this.defaultPrevented}preact__WEBPACK_IMPORTED_MODULE_1__["options"].event=function(n){return Y&&(n=Y(n)),n.persist=$,n.isPropagationStopped=q,n.isDefaultPrevented=G,n.nativeEvent=n};var J,K={configurable:!0,get:function(){return this.class}},Q=preact__WEBPACK_IMPORTED_MODULE_1__["options"].vnode;preact__WEBPACK_IMPORTED_MODULE_1__["options"].vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!B.test(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():V.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=Object(preact__WEBPACK_IMPORTED_MODULE_1__["toChildArray"])(e.children).forEac
588h(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),n.props=r}t&&e.class!=e.className&&(K.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",K)),n.$$typeof=z,Q&&Q(n)};var X=preact__WEBPACK_IMPORTED_MODULE_1__["options"].__r;preact__WEBPACK_IMPORTED_MODULE_1__["options"].__r=function(n){X&&X(n),J=n.__c};var nn={ReactCurrentDispatcher:{current:{readContext:function(n){return J.__n[n.__c].props.value}}}},tn="16.8.0";function en(n){return preact__WEBPACK_IMPORTED_MODULE_1__["createElement"].bind(null,n)}function rn(n){return!!n&&n.$$typeof===z}function un(n){return rn(n)?preact__WEBPACK_IMPORTED_MODULE_1__["cloneElement"].apply(null,arguments):n}function on(n){return!!n.__k&&(Object(preact__WEBPACK_IMPORTED_MODULE_1__["render"])(null,n),!0)}function cn(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},fn=preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"];/* harmony default export */ __webpack_exports__["c"] = ({useState:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useState */ "j"],useReducer:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useReducer */ "h"],useEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useEffect */ "d"],useLayoutEffect:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "f"],useRef:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useRef */ "i"],useImperativeHandle:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useImperativeHandle */ "e"],useMemo:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useMemo */ "g"],useCallback:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useCallback */ "a"],useContext:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useContext */ "b"],useDebugValue:preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useDebugValue */ "c"],version:"16.8.0",Children:N,render:H,hydrate:Z,unmountComponentAtNode:on,createPortal:P,createElement:preact__WEBPACK_IMPORTED_MODULE_1__["createElement"],createContext:preact__WEBPACK_IMPORTED_MODULE_1__["createContext"],createFactory:en,cloneElement:un,createRef:preact__WEBPACK_IMPORTED_MODULE_1__["createRef"],Fragment:preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"],isValidElement:rn,findDOMNode:cn,Component:preact__WEBPACK_IMPORTED_MODULE_1__["Component"],PureComponent:w,memo:C,forwardRef:k,unstable_batchedUpdates:ln,StrictMode:preact__WEBPACK_IMPORTED_MODULE_1__["Fragment"],Suspense:F,SuspenseList:I,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:nn});
589//# sourceMappingURL=compat.module.js.map
590
591
592/***/ }),
593/* 19 */
594/***/ (function(module, exports) {
595
596module.exports = function (it) {
597  return typeof it === 'object' ? it !== null : typeof it === 'function';
598};
599
600
601/***/ }),
602/* 20 */
603/***/ (function(module, exports, __webpack_require__) {
604
605var isObject = __webpack_require__(19);
606
607module.exports = function (it) {
608  if (!isObject(it)) {
609    throw TypeError(String(it) + ' is not an object');
610  } return it;
611};
612
613
614/***/ }),
615/* 21 */
616/***/ (function(module, exports, __webpack_require__) {
617
618var fails = __webpack_require__(11);
619
620// Thank's IE8 for his funny defineProperty
621module.exports = !fails(function () {
622  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
623});
624
625
626/***/ }),
627/* 22 */,
628/* 23 */
629/***/ (function(module, exports, __webpack_require__) {
630
631var global = __webpack_require__(16);
632var shared = __webpack_require__(277);
633var has = __webpack_require__(35);
634var uid = __webpack_require__(165);
635var NATIVE_SYMBOL = __webpack_require__(281);
636var USE_SYMBOL_AS_UID = __webpack_require__(360);
637
638var WellKnownSymbolsStore = shared('wks');
639var Symbol = global.Symbol;
640var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
641
642module.exports = function (name) {
643  if (!has(WellKnownSymbolsStore, name)) {
644    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];
645    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
646  } return WellKnownSymbolsStore[name];
647};
648
649
650/***/ }),
651/* 24 */,
652/* 25 */
653/***/ (function(module, __webpack_exports__, __webpack_require__) {
654
655"use strict";
656
657// EXPORTS
658__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ Trans; });
659__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ useTranslation; });
660__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ initReactI18next; });
661
662// UNUSED EXPORTS: withTranslation, Translation, I18nextProvider, withSSR, useSSR, I18nContext, setDefaults, getDefaults, setI18n, getI18n, composeInitialProps, getInitialProps
663
664// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
665var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
666var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
667
668// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
669var definePropertybabel_target_legacy = __webpack_require__(15);
670var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
671
672// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/typeof.js?babel-target=legacy
673var typeofbabel_target_legacy = __webpack_require__(154);
674var typeofbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(typeofbabel_target_legacy);
675
676// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js?babel-target=legacy
677var compat_modulebabel_target_legacy = __webpack_require__(18);
678
679// EXTERNAL MODULE: ./node_modules/html-parse-stringify2?babel-target=legacy
680var html_parse_stringify2_babel_target_legacy = __webpack_require__(403);
681var html_parse_stringify2_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(html_parse_stringify2_babel_target_legacy);
682
683// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js?babel-target=legacy
684var classCallCheckbabel_target_legacy = __webpack_require__(233);
685var classCallCheckbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classCallCheckbabel_target_legacy);
686
687// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js?babel-target=legacy
688var createClassbabel_target_legacy = __webpack_require__(234);
689var createClassbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(createClassbabel_target_legacy);
690
691// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/context.js?babel-target=legacy
692
693
694
695
696function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
697
698function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
699
700
701var defaultOptions = {
702  bindI18n: 'languageChanging languageChanged',
703  bindI18nStore: '',
704  // nsMode: 'fallback' // loop through all namespaces given to hook, HOC, render prop for key lookup
705  transEmptyNodeValue: '',
706  transSupportBasicHtmlNodes: true,
707  transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],
708  // hashTransKey: key => key // calculate a key for Trans component based on defaultValue
709  useSuspense: true
710};
711var i18nInstance;
712var hasUsedI18nextProvider;
713var I18nContext = compat_modulebabel_target_legacy["c" /* default */].createContext();
714function usedI18nextProvider(used) {
715  hasUsedI18nextProvider = used;
716}
717function getHasUsedI18nextProvider() {
718  return hasUsedI18nextProvider;
719}
720function setDefaults() {
721  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
722  defaultOptions = _objectSpread({}, defaultOptions, {}, options);
723}
724function getDefaults() {
725  return defaultOptions;
726}
727var contextbabel_target_legacy_ReportNamespaces =
728/*#__PURE__*/
729function () {
730  function ReportNamespaces() {
731    classCallCheckbabel_target_legacy_default()(this, ReportNamespaces);
732
733    this.usedNamespaces = {};
734  }
735
736  createClassbabel_target_legacy_default()(ReportNamespaces, [{
737    key: "addUsedNamespaces",
738    value: function addUsedNamespaces(namespaces) {
739      var _this = this;
740
741      namespaces.forEach(function (ns) {
742        if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;
743      });
744    }
745  }, {
746    key: "getUsedNamespaces",
747    value: function getUsedNamespaces() {
748      return Object.keys(this.usedNamespaces);
749    }
750  }]);
751
752  return ReportNamespaces;
753}();
754function setI18n(instance) {
755  i18nInstance = instance;
756}
757function getI18n() {
758  return i18nInstance;
759}
760var initReactI18next = {
761  type: '3rdParty',
762  init: function init(instance) {
763    setDefaults(instance.options.react);
764    setI18n(instance);
765  }
766};
767function composeInitialProps(ForComponent) {
768  return function (ctx) {
769    return new Promise(function (resolve) {
770      var i18nInitialProps = getInitialProps();
771
772      if (ForComponent.getInitialProps) {
773        ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {
774          resolve(_objectSpread({}, componentsInitialProps, {}, i18nInitialProps));
775        });
776      } else {
777        resolve(i18nInitialProps);
778      }
779    });
780  }; // Avoid async for now - so we do not need to pull in regenerator
781  // return async ctx => {
782  //   const componentsInitialProps = ForComponent.getInitialProps
783  //     ? await ForComponent.getInitialProps(ctx)
784  //     : {};
785  //   const i18nInitialProps = getInitialProps();
786  //   return {
787  //     ...componentsInitialProps,
788  //     ...i18nInitialProps,
789  //   };
790  // };
791}
792function getInitialProps() {
793  var i18n = getI18n();
794  var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];
795  var ret = {};
796  var initialI18nStore = {};
797  i18n.languages.forEach(function (l) {
798    initialI18nStore[l] = {};
799    namespaces.forEach(function (ns) {
800      initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};
801    });
802  });
803  ret.initialI18nStore = initialI18nStore;
804  ret.initialLanguage = i18n.language;
805  return ret;
806}
807// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/utils.js?babel-target=legacy
808function warn() {
809  if (console && console.warn) {
810    var _console;
811
812    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
813      args[_key] = arguments[_key];
814    }
815
816    if (typeof args[0] === 'string') args[0] = "react-i18next:: ".concat(args[0]);
817
818    (_console = console).warn.apply(_console, args);
819  }
820}
821var alreadyWarned = {};
822function warnOnce() {
823  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
824    args[_key2] = arguments[_key2];
825  }
826
827  if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;
828  if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();
829  warn.apply(void 0, args);
830} // not needed right now
831//
832// export function deprecated(...args) {
833//   if (process && process.env && (!process.env.NODE_ENV || process.env.NODE_ENV === 'development')) {
834//     if (typeof args[0] === 'string') args[0] = `deprecation warning -> ${args[0]}`;
835//     warnOnce(...args);
836//   }
837// }
838
839function loadNamespaces(i18n, ns, cb) {
840  i18n.loadNamespaces(ns, function () {
841    // delay ready if not yet initialized i18n instance
842    if (i18n.isInitialized) {
843      cb();
844    } else {
845      var initialized = function initialized() {
846        // due to emitter removing issue in i18next we need to delay remove
847        setTimeout(function () {
848          i18n.off('initialized', initialized);
849        }, 0);
850        cb();
851      };
852
853      i18n.on('initialized', initialized);
854    }
855  });
856}
857function hasLoadedNamespace(ns, i18n) {
858  if (!i18n.languages || !i18n.languages.length) {
859    warnOnce('i18n.languages were undefined or empty', i18n.languages);
860    return true;
861  }
862
863  var lng = i18n.languages[0];
864  var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;
865  var lastLng = i18n.languages[i18n.languages.length - 1]; // we're in cimode so this shall pass
866
867  if (lng.toLowerCase() === 'cimode') return true;
868
869  var loadNotPending = function loadNotPending(l, n) {
870    var loadState = i18n.services.backendConnector.state["".concat(l, "|").concat(n)];
871    return loadState === -1 || loadState === 2;
872  }; // loaded -> SUCCESS
873
874
875  if (i18n.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS
876
877  if (!i18n.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS
878
879  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
880  return false;
881}
882function getDisplayName(Component) {
883  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
884}
885// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/Trans.js?babel-target=legacy
886
887
888
889
890function Transbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
891
892function Transbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Transbabel_target_legacy_ownKeys(source, true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Transbabel_target_legacy_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
893
894
895
896
897
898
899function hasChildren(node) {
900  return node && (node.children || node.props && node.props.children);
901}
902
903function getChildren(node) {
904  if (!node) return [];
905  return node && node.children ? node.children : node.props && node.props.children;
906}
907
908function hasValidReactChildren(children) {
909  if (Object.prototype.toString.call(children) !== '[object Array]') return false;
910  return children.every(function (child) {
911    return compat_modulebabel_target_legacy["c" /* default */].isValidElement(child);
912  });
913}
914
915function getAsArray(data) {
916  return Array.isArray(data) ? data : [data];
917}
918
919function nodesToString(startingString, children, index, i18nOptions) {
920  if (!children) return '';
921  var stringNode = startingString;
922  var childrenArray = getAsArray(children);
923  var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
924  childrenArray.forEach(function (child, i) {
925    var elementKey = "".concat(i);
926
927    if (typeof child === 'string') {
928      stringNode = "".concat(stringNode).concat(child);
929    } else if (hasChildren(child)) {
930      var elementTag = keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 1 && typeof hasChildren(child) === 'string' ? child.type : elementKey;
931
932      if (child.props && child.props.i18nIsDynamicList) {
933        // we got a dynamic list like "<ul>{['a', 'b'].map(item => ( <li key={item}>{item}</li> ))}</ul>""
934        // the result should be "<0></0>" and not "<0><0>a</0><1>b</1></0>"
935        stringNode = "".concat(stringNode, "<").concat(elementTag, "></").concat(elementTag, ">");
936      } else {
937        // regular case mapping the inner children
938        stringNode = "".concat(stringNode, "<").concat(elementTag, ">").concat(nodesToString('', getChildren(child), i + 1, i18nOptions), "</").concat(elementTag, ">");
939      }
940    } else if (compat_modulebabel_target_legacy["c" /* default */].isValidElement(child)) {
941      if (keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 0) {
942        stringNode = "".concat(stringNode, "<").concat(child.type, "/>");
943      } else {
944        stringNode = "".concat(stringNode, "<").concat(elementKey, "></").concat(elementKey, ">");
945      }
946    } else if (typeofbabel_target_legacy_default()(child) === 'object') {
947      var clone = Transbabel_target_legacy_objectSpread({}, child);
948
949      var format = clone.format;
950      delete clone.format;
951      var keys = Object.keys(clone);
952
953      if (format && keys.length === 1) {
954        stringNode = "".concat(stringNode, "{{").concat(keys[0], ", ").concat(format, "}}");
955      } else if (keys.length === 1) {
956        stringNode = "".concat(stringNode, "{{").concat(keys[0], "}}");
957      } else {
958        // not a valid interpolation object (can only contain one value plus format)
959        warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.", child);
960      }
961    } else {
962      warn("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.", child);
963    }
964  });
965  return stringNode;
966}
967
968function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
969  if (targetString === '') return []; // check if contains tags we need to replace from html string to react nodes
970
971  var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
972  var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(target
972String); // no need to replace tags in the targetstring
973
974  if (!children && !emptyChildrenButNeedsHandling) return [targetString]; // v2 -> interpolates upfront no need for "some <0>{{var}}</0>"" -> will be just "some {{var}}" in translation file
975
976  var data = {};
977
978  function getData(childs) {
979    var childrenArray = getAsArray(childs);
980    childrenArray.forEach(function (child) {
981      if (typeof child === 'string') return;
982      if (hasChildren(child)) getData(getChildren(child));else if (typeofbabel_target_legacy_default()(child) === 'object' && !compat_modulebabel_target_legacy["c" /* default */].isValidElement(child)) Object.assign(data, child);
983    });
984  }
985
986  getData(children);
987  var interpolatedString = i18n.services.interpolator.interpolate(targetString, Transbabel_target_legacy_objectSpread({}, data, {}, combinedTOpts), i18n.language); // parse ast from string with additional wrapper tag
988  // -> avoids issues in parser removing prepending text nodes
989
990  var ast = html_parse_stringify2_babel_target_legacy_default.a.parse("<0>".concat(interpolatedString, "</0>"));
991
992  function mapAST(reactNode, astNode) {
993    var reactNodes = getAsArray(reactNode);
994    var astNodes = getAsArray(astNode);
995    return astNodes.reduce(function (mem, node, i) {
996      var translationContent = node.children && node.children[0] && node.children[0].content;
997
998      if (node.type === 'tag') {
999        var child = reactNodes[parseInt(node.name, 10)] || {};
1000        var isElement = compat_modulebabel_target_legacy["c" /* default */].isValidElement(child);
1001
1002        if (typeof child === 'string') {
1003          mem.push(child);
1004        } else if (hasChildren(child)) {
1005          var childs = getChildren(child);
1006          var mappedChildren = mapAST(childs, node.children);
1007          var inner = hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
1008          if (child.dummy) child.children = inner; // needed on preact!
1009
1010          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread({}, child.props, {
1011            key: i
1012          }), inner));
1013        } else if (emptyChildrenButNeedsHandling && typeofbabel_target_legacy_default()(child) === 'object' && child.dummy && !isElement) {
1014          // we have a empty Trans node (the dummy element) with a targetstring that contains html tags needing
1015          // conversion to react nodes
1016          // so we just need to map the inner stuff
1017          var _inner = mapAST(reactNodes
1018          /* wrong but we need something */
1019          , node.children);
1020
1021          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread({}, child.props, {
1022            key: i
1023          }), _inner));
1024        } else if (Number.isNaN(parseFloat(node.name))) {
1025          if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
1026            if (node.voidElement) {
1027              mem.push(compat_modulebabel_target_legacy["c" /* default */].createElement(node.name, {
1028                key: "".concat(node.name, "-").concat(i)
1029              }));
1030            } else {
1031              var _inner2 = mapAST(reactNodes
1032              /* wrong but we need something */
1033              , node.children);
1034
1035              mem.push(compat_modulebabel_target_legacy["c" /* default */].createElement(node.name, {
1036                key: "".concat(node.name, "-").concat(i)
1037              }, _inner2));
1038            }
1039          } else if (node.voidElement) {
1040            mem.push("<".concat(node.name, " />"));
1041          } else {
1042            var _inner3 = mapAST(reactNodes
1043            /* wrong but we need something */
1044            , node.children);
1045
1046            mem.push("<".concat(node.name, ">").concat(_inner3, "</").concat(node.name, ">"));
1047          }
1048        } else if (typeofbabel_target_legacy_default()(child) === 'object' && !isElement) {
1049          var content = node.children[0] ? translationContent : null; // v1
1050          // as interpolation was done already we just have a regular content node
1051          // in the translation AST while having an object in reactNodes
1052          // -> push the content no need to interpolate again
1053
1054          if (content) mem.push(content);
1055        } else if (node.children.length === 1 && translationContent) {
1056          // If component does not have children, but translation - has
1057          // with this in component could be components={[<span class='make-beautiful'/>]} and in translation - 'some text <0>
1057some highlighted message</0>'
1058          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread({}, child.props, {
1059            key: i
1060          }), translationContent));
1061        } else {
1062          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread({}, child.props, {
1063            key: i
1064          })));
1065        }
1066      } else if (node.type === 'text') {
1067        mem.push(node.content);
1068      }
1069
1070      return mem;
1071    }, []);
1072  } // call mapAST with having react nodes nested into additional node like
1073  // we did for the string ast from translation
1074  // return the children of that extra node to get expected result
1075
1076
1077  var result = mapAST([{
1078    dummy: true,
1079    children: children
1080  }], ast);
1081  return getChildren(result[0]);
1082}
1083
1084function Trans(_ref) {
1085  var children = _ref.children,
1086      count = _ref.count,
1087      parent = _ref.parent,
1088      i18nKey = _ref.i18nKey,
1089      tOptions = _ref.tOptions,
1090      values = _ref.values,
1091      defaults = _ref.defaults,
1092      components = _ref.components,
1093      ns = _ref.ns,
1094      i18nFromProps = _ref.i18n,
1095      tFromProps = _ref.t,
1096      additionalProps = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"]);
1097
1098  var _ref2 = getHasUsedI18nextProvider() ? Object(compat_modulebabel_target_legacy["d" /* useContext */])(I18nContext) || {} : {},
1099      i18nFromContext = _ref2.i18n,
1100      defaultNSFromContext = _ref2.defaultNS;
1101
1102  var i18n = i18nFromProps || i18nFromContext || getI18n();
1103
1104  if (!i18n) {
1105    warnOnce('You will need pass in an i18next instance by using i18nextReactModule');
1106    return children;
1107  }
1108
1109  var t = tFromProps || i18n.t.bind(i18n) || function (k) {
1110    return k;
1111  };
1112
1113  var reactI18nextOptions = Transbabel_target_legacy_objectSpread({}, getDefaults(), {}, i18n.options && i18n.options.react);
1114
1115  var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent; // prepare having a namespace
1116
1117  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
1118  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
1119  var defaultValue = defaults || nodesToString('', children, 0, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue;
1120  var hashTransKey = reactI18nextOptions.hashTransKey;
1121  var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);
1122  var interpolationOverride = values ? {}
1122 : {
1123    interpolation: {
1124      prefix: '#$?',
1125      suffix: '?$#'
1126    }
1127  };
1128
1129  var combinedTOpts = Transbabel_target_legacy_objectSpread({}, tOptions, {
1130    count: count
1131  }, values, {}, interpolationOverride, {
1132    defaultValue: defaultValue,
1133    ns: namespaces
1134  });
1135
1136  var translation = key ? t(key, combinedTOpts) : defaultValue;
1137  if (!useAsParent) return renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
1138  return compat_modulebabel_target_legacy["c" /* default */].createElement(useAsParent, additionalProps, renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts));
1139}
1140// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
1141var slicedToArraybabel_target_legacy = __webpack_require__(8);
1142var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
1143
1144// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/useTranslation.js?babel-target=legacy
1145
1146
1147
1148function useTranslationbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1149
1150function useTranslationbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { useTranslationbabel_target_legacy_ownKeys(source, true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { useTranslationbabel_target_legacy_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1151
1152
1153
1154
1155function useTranslation(ns) {
1156  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1157  // assert we have the needed i18nInstance
1158  var i18nFromProps = props.i18n;
1159  var ReactI18nContext = Object(compat_modulebabel_target_legacy["d" /* useContext */])(I18nContext);
1160
1161  var _ref = getHasUsedI18nextProvider() ? ReactI18nContext || {} : {},
1162      i18nFromContext = _ref.i18n,
1163      defaultNSFromContext = _ref.defaultNS;
1164
1165  var i18n = i18nFromProps || i18nFromContext || getI18n();
1166  if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new contextbabel_target_legacy_ReportNamespaces();
1167
1168  if (!i18n) {
1169    warnOnce('You will need pass in an i18next instance by using initReactI18next');
1170    var retNotReady = [function (k) {
1171      return k;
1172    }, {}, false];
1173
1174    retNotReady.t = function (k) {
1175      return k;
1176    };
1177
1178    retNotReady.i18n = {};
1179    retNotReady.ready = false;
1180    return retNotReady;
1181  }
1182
1183  var i18nOptions = useTranslationbabel_target_legacy_objectSpread({}, getDefaults(), {}, i18n.options.react);
1184
1185  var _props$useSuspense = props.useSuspense,
1186      useSuspense = _props$useSuspense === void 0 ? i18nOptions.useSuspense : _props$useSuspense; // prepare having a namespace
1187
1188  var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
1189  namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation']; // report namespaces as used
1190
1191  if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces); // are we ready? yes if all namespaces in first language are loaded already (either with data or empty object on failed load)
1192
1193  var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {
1194    return hasLoadedNamespace(n, i18n);
1195  }); // binding t function to namespace (acts also as rerender trigger)
1196
1197  function getT() {
1198    return {
1199      t: i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0])
1200    };
1201  }
1202
1203  var _useState = Object(compat_modulebabel_target_legacy["f" /* useState */])(getT()),
1204      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
1205      t = _useState2[0],
1206      setT = _useState2[1]; // seems we can't have functions as value -> wrap it in obj
1207
1208
1209  Object(compat_modulebabel_target_legacy["e" /* useEffect */])(function () {
1210    var isMounted = true;
1211    var bindI18n = i18nOptions.bindI18n,
1212        bindI18nStore = i18nOptions.bindI18nStore; // if not ready and not using suspense load the namespaces
1213    // in side effect and do not call resetT if unmounted
1214
1215    if (!ready && !useSuspense) {
1216      loadNamespaces(i18n, namespaces, function () {
1217        if (isMounted) setT(getT());
1218      });
1219    }
1220
1221    function boundReset() {
1222      if (isMounted) setT(getT());
1223    } // bind events to trigger change, like languageChanged
1224
1225
1226    if (bindI18n && i18n) i18n.on(bindI18n, boundReset);
1227    if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset); // unbinding on unmount
1228
1229    return function () {
1230      isMounted = false;
1231      if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {
1232        return i18n.off(e, boundReset);
1233      });
1234      if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {
1235        return i18n.store.off(e, boundReset);
1236      });
1237    };
1238  }, [namespaces.join()]); // re-run effect whenever list of namespaces changes
1239
1240  var ret = [t.t, i18n, ready];
1241  ret.t = t.t;
1242  ret.i18n = i18n;
1243  ret.ready = ready; // return hook stuff if ready
1244
1245  if (ready) return ret; // not yet loaded namespaces -> load them -> and return if useSuspense option set false
1246
1247  if (!ready && !useSuspense) return ret; // not yet loaded namespaces -> load them -> and trigger suspense
1248
1249  throw new Promise(function (resolve) {
1250    loadNamespaces(i18n, namespaces, function () {
1251      setT(getT());
1252      resolve();
1253    });
1254  });
1255}
1256// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
1257var extendsbabel_target_legacy = __webpack_require__(50);
1258var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
1259
1260// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/withTranslation.js?babel-target=legacy
1261
1262
1263
1264
1265
1266function withTranslationbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1267
1268function withTranslationbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { withTranslationbabel_target_legacy_ownKeys(source, true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { withTranslationbabel_target_legacy_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1269
1270
1271
1272
1273function withTranslation(ns) {
1274  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1275  return function Extend(WrappedComponent) {
1276    function I18nextWithTranslation(_ref) {
1277      var forwardedRef = _ref.forwardedRef,
1278          rest = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["forwardedRef"]);
1279
1280      var _useTranslation = useTranslation(ns, rest),
1281          _useTranslation2 = slicedToArraybabel_target_legacy_default()(_useTranslation, 3),
1282          t = _useTranslation2[0],
1283          i18n = _useTranslation2[1],
1284          ready = _useTranslation2[2];
1285
1286      var passDownProps = withTranslationbabel_target_legacy_objectSpread({}, rest, {
1287        t: t,
1288        i18n: i18n,
1289        tReady: ready
1290      });
1291
1292      if (options.withRef && forwardedRef) {
1293        passDownProps.ref = forwardedRef;
1294      }
1295
1296      return compat_modulebabel_target_legacy["c" /* default */].createElement(WrappedComponent, passDownProps);
1297    }
1298
1299    I18nextWithTranslation.displayName = "withI18nextTranslation(".concat(getDisplayName(WrappedComponent), ")");
1300    I18nextWithTranslation.WrappedComponent = WrappedComponent;
1301
1302    var forwardRef = function forwardRef(props, ref) {
1303      return compat_modulebabel_target_legacy["c" /* default */].createElement(I18nextWithTranslation, extendsbabel_target_legacy_default()({}, props, {
1304        forwardedRef: ref
1305      }));
1306    };
1307
1308    return options.withRef ? compat_modulebabel_target_legacy["c" /* default */].forwardRef(forwardRef) : I18nextWithTranslation;
1309  };
1310}
1311// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/Translation.js?babel-target=legacy
1312
1313
1314
1315function Translation(props) {
1316  var ns = props.ns,
1317      children = props.children,
1318      options = objectWithoutPropertiesbabel_target_legacy_default()(props, ["ns", "children"]);
1319
1320  var _useTranslation = useTranslation(ns, options),
1321      _useTranslation2 = slicedToArraybabel_target_legacy_default()(_useTranslation, 3),
1322      t = _useTranslation2[0],
1323      i18n = _useTranslation2[1],
1324      ready = _useTranslation2[2];
1325
1326  return children(t, {
1327    i18n: i18n,
1328    lng: i18n.language
1329  }, ready);
1330}
1331// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/I18nextProvider.js?babel-target=legacy
1332
1333
1334function I18nextProvider(_ref) {
1335  var i18n = _ref.i18n,
1336      defaultNS = _ref.defaultNS,
1337      children = _ref.children;
1338  usedI18nextProvider(true);
1339  return compat_modulebabel_target_legacy["c" /* default */].createElement(I18nContext.Provider, {
1340    value: {
1341      i18n: i18n,
1342      defaultNS: defaultNS
1343    }
1344  }, children);
1345}
1346// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/useSSR.js?babel-target=legacy
1347
1348
1349function useSSR(initialI18nStore, initialLanguage) {
1350  var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1351  var i18nFromProps = props.i18n;
1352  var ReactI18nContext = Object(compat_modulebabel_target_legacy["d" /* useContext */])(I18nContext);
1353
1354  var _ref = getHasUsedI18nextProvider() ? ReactI18nContext || {} : {},
1355      i18nFromContext = _ref.i18n;
1356
1357  var i18n = i18nFromProps || i18nFromContext || getI18n(); // opt out if is a cloned instance, eg. created by i18next-express-middleware on request
1358  // -> do not set initial stuff on server side
1359
1360  if (i18n.options && i18n.options.isClone) return; // nextjs / SSR: getting data from next.js or other ssr stack
1361
1362  if (initialI18nStore && !i18n.initializedStoreOnce) {
1363    i18n.services.resourceStore.data = initialI18nStore;
1364    i18n.initializedStoreOnce = true;
1365  }
1366
1367  if (initialLanguage && !i18n.initializedLanguageOnce) {
1368    i18n.changeLanguage(initialLanguage);
1369    i18n.initializedLanguageOnce = true;
1370  }
1371}
1372// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es/withSSR.js?babel-target=legacy
1373
1374
1375
1376function withSSRbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1377
1378function withSSRbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { withSSRbabel_target_legacy_ownKeys(source, true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { withSSRbabel_target_legacy_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1379
1380
1381
1382
1383
1384function withSSR() {
1385  return function Extend(WrappedComponent) {
1386    function I18nextWithSSR(_ref) {
1387      var initialI18nStore = _ref.initialI18nStore,
1388          initialLanguage = _ref.initialLanguage,
1389          rest = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["initialI18nStore", "initialLanguage"]);
1390
1391      useSSR(initialI18nStore, initialLanguage);
1392      return compat_modulebabel_target_legacy["c" /* default */].createElement(WrappedComponent, withSSRbabel_target_legacy_objectSpread({}, rest));
1393    }
1394
1395    I18nextWithSSR.getInitialProps = composeInitialProps(WrappedComponent);
1396    I18nextWithSSR.displayName = "withI18nextSSR(".concat(getDisplayName(WrappedComponent), ")");
1397    I18nextWithSSR.WrappedComponent = WrappedComponent;
1398    return I18nextWithSSR;
1399  };
1400}
1401// CONCATENATED MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411/***/ }),
1412/* 26 */,
1413/* 27 */
1414/***/ (function(module, exports, __webpack_require__) {
1415
1416var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
1417  Copyright (c) 2017 Jed Watson.
1418  Licensed under the MIT License (MIT), see
1419  http://jedwatson.github.io/classnames
1420*/
1421/* global define */
1422
1423(function () {
1424	'use strict';
1425
1426	var hasOwn = {}.hasOwnProperty;
1427
1428	function classNames () {
1429		var classes = [];
1430
1431		for (var i = 0; i < arguments.length; i++) {
1432			var arg = arguments[i];
1433			if (!arg) continue;
1434
1435			var argType = typeof arg;
1436
1437			if (argType === 'string' || argType === 'number') {
1438				classes.push(arg);
1439			} else if (Array.isArray(arg) && arg.length) {
1440				var inner = classNames.apply(null, arg);
1441				if (inner) {
1442					classes.push(inner);
1443				}
1444			} else if (argType === 'object') {
1445				for (var key in arg) {
1446					if (hasOwn.call(arg, key) && arg[key]) {
1447						classes.push(key);
1448					}
1449				}
1450			}
1451		}
1452
1453		return classes.join(' ');
1454	}
1455
1456	if ( true && module.exports) {
1457		classNames.default = classNames;
1458		module.exports = classNames;
1459	} else if (true) {
1460		// register as 'classnames', consistent with npm package name
1461		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
1462			return classNames;
1463		}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
1464				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
1465	} else {}
1466}());
1467
1468
1469/***/ }),
1470/* 28 */
1471/***/ (function(module, exports, __webpack_require__) {
1472
1473var toInteger = __webpack_require__(73);
1474
1475var min = Math.min;
1476
1477// `ToLength` abstract operation
1478// https://tc39.github.io/ecma262/#sec-tolength
1479module.exports = function (argument) {
1480  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
1481};
1482
1483
1484/***/ }),
1485/* 29 */
1486/***/ (function(module, exports, __webpack_require__) {
1487
1488"use strict";
1489
1490var NATIVE_ARRAY_BUFFER = __webpack_require__(297);
1491var DESCRIPTORS = __webpack_require__(21);
1492var global = __webpack_require__(16);
1493var isObject = __webpack_require__(19);
1494var has = __webpack_require__(35);
1495var classof = __webpack_require__(174);
1496var createNonEnumerableProperty = __webpack_require__(53);
1497var redefine = __webpack_require__(54);
1498var defineProperty = __webpack_require__(30).f;
1499var getPrototypeOf = __webpack_require__(74);
1500var setPrototypeOf = __webpack_require__(116);
1501var wellKnownSymbol = __webpack_require__(23);
1502var uid = __webpack_require__(165);
1503
1504var Int8Array = global.Int8Array;
1505var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
1506var Uint8ClampedArray = global.Uint8ClampedArray;
1507var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
1508var TypedArray = Int8Array && getPrototypeOf(Int8Array);
1509var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);
1510var ObjectPrototype = Object.prototype;
1511var isPrototypeOf = ObjectPrototype.isPrototypeOf;
1512
1513var TO_STRING_TAG = wellKnownSymbol('toStringTag');
1514var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
1515// Fixing native typed arrays in Opera Presto crashes the browser, see #595
1516var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';
1517var TYPED_ARRAY_TAG_REQIRED = false;
vendor: 16,384 bytes, lines 1518-1765
1518var NAME;
1519
1520var TypedArrayConstructorsList = {
1521  Int8Array: 1,
1522  Uint8Array: 1,
1523  Uint8ClampedArray: 1,
1524  Int16Array: 2,
1525  Uint16Array: 2,
1526  Int32Array: 4,
1527  Uint32Array: 4,
1528  Float32Array: 4,
1529  Float64Array: 8
1530};
1531
1532var isView = function isView(it) {
1533  var klass = classof(it);
1534  return klass === 'DataView' || has(TypedArrayConstructorsList, klass);
1535};
1536
1537var isTypedArray = function (it) {
1538  return isObject(it) && has(TypedArrayConstructorsList, classof(it));
1539};
1540
1541var aTypedArray = function (it) {
1542  if (isTypedArray(it)) return it;
1543  throw TypeError('Target is not a typed array');
1544};
1545
1546var aTypedArrayConstructor = function (C) {
1547  if (setPrototypeOf) {
1548    if (isPrototypeOf.call(TypedArray, C)) return C;
1549  } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {
1550    var TypedArrayConstructor = global[ARRAY];
1551    if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {
1552      return C;
1553    }
1554  } throw TypeError('Target is not a typed array constructor');
1555};
1556
1557var exportTypedArrayMethod = function (KEY, property, forced) {
1558  if (!DESCRIPTORS) return;
1559  if (forced) for (var ARRAY in TypedArrayConstructorsList) {
1560    var TypedArrayConstructor = global[ARRAY];
1561    if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {
1562      delete TypedArrayConstructor.prototype[KEY];
1563    }
1564  }
1565  if (!TypedArrayPrototype[KEY] || forced) {
1566    redefine(TypedArrayPrototype, KEY, forced ? property
1567      : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);
1568  }
1569};
1570
1571var exportTypedArrayStaticMethod = function (KEY, property, forced) {
1572  var ARRAY, TypedArrayConstructor;
1573  if (!DESCRIPTORS) return;
1574  if (setPrototypeOf) {
1575    if (forced) for (ARRAY in TypedArrayConstructorsList) {
1576      TypedArrayConstructor = global[ARRAY];
1577      if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {
1578        delete TypedArrayConstructor[KEY];
1579      }
1580    }
1581    if (!TypedArray[KEY] || forced) {
1582      // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
1583      try {
1584        return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);
1585      } catch (error) { /* empty */ }
1586    } else return;
1587  }
1588  for (ARRAY in TypedArrayConstructorsList) {
1589    TypedArrayConstructor = global[ARRAY];
1590    if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
1591      redefine(TypedArrayConstructor, KEY, property);
1592    }
1593  }
1594};
1595
1596for (NAME in TypedArrayConstructorsList) {
1597  if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;
1598}
1599
1600// WebKit bug - typed arrays constructors prototype is Object.prototype
1601if (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {
1602  // eslint-disable-next-line no-shadow
1603  TypedArray = function TypedArray() {
1604    throw TypeError('Incorrect invocation');
1605  };
1606  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
1607    if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);
1608  }
1609}
1610
1611if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
1612  TypedArrayPrototype = TypedArray.prototype;
1613  if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
1614    if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);
1615  }
1616}
1617
1618// WebKit bug - one more object in Uint8ClampedArray prototype chain
1619if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
1620  setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
1621}
1622
1623if (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {
1624  TYPED_ARRAY_TAG_REQIRED = true;
1625  defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {
1626    return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
1627  } });
1628  for (NAME in TypedArrayConstructorsList) if (global[NAME]) {
1629    createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);
1630  }
1631}
1632
1633module.exports = {
1634  NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
1635  TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,
1636  aTypedArray: aTypedArray,
1637  aTypedArrayConstructor: aTypedArrayConstructor,
1638  exportTypedArrayMethod: exportTypedArrayMethod,
1639  exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
1640  isView: isView,
1641  isTypedArray: isTypedArray,
1642  TypedArray: TypedArray,
1643  TypedArrayPrototype: TypedArrayPrototype
1644};
1645
1646
1647/***/ }),
1648/* 30 */
1649/***/ (function(module, exports, __webpack_require__) {
1650
1651var DESCRIPTORS = __webpack_require__(21);
1652var IE8_DOM_DEFINE = __webpack_require__(356);
1653var anObject = __webpack_require__(20);
1654var toPrimitive = __webpack_require__(79);
1655
1656var nativeDefineProperty = Object.defineProperty;
1657
1658// `Object.defineProperty` method
1659// https://tc39.github.io/ecma262/#sec-object.defineproperty
1660exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
1661  anObject(O);
1662  P = toPrimitive(P, true);
1663  anObject(Attributes);
1664  if (IE8_DOM_DEFINE) try {
1665    return nativeDefineProperty(O, P, Attributes);
1666  } catch (error) { /* empty */ }
1667  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
1668  if ('value' in Attributes) O[P] = Attributes.value;
1669  return O;
1670};
1671
1672
1673/***/ }),
1674/* 31 */,
1675/* 32 */
1676/***/ (function(module, __webpack_exports__, __webpack_require__) {
1677
1678"use strict";
1679/* unused harmony export allCookies */
1680/* unused harmony export loadCookies */
1681/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return loadStationList; });
1682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return loadAnalyticsURL; });
1683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getRandomOrRecent; });
1684/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return getODInfo; });
1685/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return loadSchedule; });
1686/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return loadOnDemand; });
1687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return loadRecommendationList; });
1688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return loadRelatedStationList; });
1689/* unused harmony export parseFaves */
1690/* unused harmony export getFavesString */
1691/* unused harmony export saveCookie */
1692/* unused harmony export saveSearchCookie */
1693/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return addSearchTerm; });
1694/* unused harmony export saveFaves */
1695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addFave; });
1696/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return hideAnnouncement; });
1697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return removeFave; });
1698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return setStationListPrefix; });
1699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return setBbcCookies; });
1700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return retrieveCookies; });
1701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return setCookiePolicy; });
1702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return evaluateCookieConsent; });
1703/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return decodeConsent; });
1704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return isFave; });
1705/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getRecentStations; });
1706/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return getVolume; });
1707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return setVolumeCookie; });
1708/* unused harmony export getStationListPrefix */
1709/* unused harmony export getCookiePolicyString */
1710/* unused harmony export getCookiePolicy */
1711/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return buildCookiePolicy; });
1712/* unused harmony export redirectConsole */
1713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return initCookies; });
1714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return stationSuggestions; });
1715/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return searchStations; });
1716/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return getHashFromString; });
1717/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75);
1718/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__);
1719/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70);
1720/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__);
1721/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(124);
1722/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2__);
1723/* harmony import */ var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(265);
1724/* harmony import */ var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3__);
1725/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(160);
1726/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_4__);
1727/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77);
1728/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_5__);
1729/* harmony import */ var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(162);
1730/* harmony import */ var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_6__);
1731/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(410);
1732/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_7__);
1733/* harmony import */ var core_js_modules_es_number_constructor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(411);
1734/* harmony import */ var core_js_modules_es_number_constructor__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor__WEBPACK_IMPORTED_MODULE_8__);
1735/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(105);
1736/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_9__);
1737/* harmony import */ var core_js_modules_es_object_values__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(328);
1738/* harmony import */ var core_js_modules_es_object_values__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_values__WEBPACK_IMPORTED_MODULE_10__);
1739/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(93);
1740/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_11__);
1741/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(156);
1742/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_12__);
1743/* harmony import */ var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(266);
1744/* harmony import */ var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_13__);
1745/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(140);
1746/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_14__);
1747/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(252);
1748/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_15__);
1749/* harmony import */ var core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(303);
1750/* harmony import */ var core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim__WEBPACK_IMPORTED_MODULE_16__);
1751/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(8);
1752/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_17__);
1753/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(37);
1754/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18__);
1755/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(6);
1756/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19__);
1757/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(60);
1758/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_20__);
1759/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(13);
1760/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21__);
1761/* harmony import */ var _api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(95);
1762/* harmony import */ var _api_utils__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(48);
1763/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(205);
1764/* harmony import */ var _fetchTimeout__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(127);
1765/* h
1765armony import */ var _logger__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(10);
1766/* harmony import */ var consent_string__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(479);
1767/* harmony import */ var consent_string__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(consent_string__WEBPACK_IMPORTED_MODULE_27__);
1768/* harmony import */ var tc_string_parse__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(480);
1769/* harmony import */ var tc_string_parse__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(tc_string_parse__WEBPACK_IMPORTED_MODULE_28__);
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799var allCookies = /*#__PURE__*/function () {
1800  var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee(cookieManagerUrl) {
1801    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee$(_context) {
1802      while (1) {
1803        switch (_context.prev = _context.next) {
1804          case 0:
1805            _context.next = 2;
1806            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(cookieManagerUrl, "all?_=").concat(Object(_api_utils__WEBPACK_IMPORTED_MODULE_23__[/* getCachebuster */ "h"])()), {
1807              jsonpCallbackFunction: undefined
1808            }).then(function (res) {
1809              return res.json();
1810            });
1811
1812          case 2:
1813            return _context.abrupt("return", _context.sent);
1814
1815          case 3:
1816          case "end":
1817            return _context.stop();
1818        }
1819      }
1820    }, _callee);
1821  }));
1822
1823  return function allCookies(_x) {
1824    return _ref.apply(this, arguments);
1825  };
1826}();
1827var loadCookies = /*#__PURE__*/function () {
1828  var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee2(id, cookieManagerUrl) {
1829    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee2$(_context2) {
1830      while (1) {
1831        switch (_context2.prev = _context2.next) {
1832          case 0:
1833            _context2.next = 2;
1834            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(cookieManagerUrl, "init/").concat(id, "?_=").concat(Object(_api_utils__WEBPACK_IMPORTED_MODULE_23__[/* getCachebuster */ "h"])()), {
1835              jsonpCallbackFunction: undefined
1836            }).then(function (res) {
1837              return res.json();
1838            });
1839
1840          case 2:
1841            return _context2.abrupt("return", _context2.sent);
1842
1843          case 3:
1844          case "end":
1845            return _context2.stop();
1846        }
1847      }
1848    }, _callee2);
1849  }));
1850
1851  return function loadCookies(_x2, _x3) {
1852    return _ref2.apply(this, arguments);
1853  };
1854}();
1855var loadStationList = /*#__PURE__*/function () {
1856  var _ref3 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee3(mapiUrl) {
1857    var request, response;
1858    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee3$(_context3) {
1859      while (1) {
1860        switch (_context3.prev = _context3.next) {
1861          case 0:
1862            _context3.prev = 0;
1863            _context3.next = 3;
1864            return Object(_fetchTimeout__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"])("".concat(mapiUrl, "public/services"), {}, 3000);
1865
1866          case 3:
1867            request = _context3.sent;
1868            _context3.next = 6;
1869            return request.json();
1870
1871          case 6:
1872            response = _context3.sent;
1873            return _context3.abrupt("return", response || {});
1874
1875          case 10:
1876            _context3.prev = 10;
1877            _context3.t0 = _context3["catch"](0);
1878            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Stationlist error", _context3.t0);
1879
1880          case 13:
1881            return _context3.abrupt("return", {});
1882
1883          case 14:
1884          case "end":
1885            return _context3.stop();
1886        }
1887      }
1888    }, _callee3, null, [[0, 10]]);
1889  }));
1890
1891  return function loadStationList(_x4) {
1892    return _ref3.apply(this, arguments);
1893  };
1894}();
1895var loadAnalyticsURL = /*#__PURE__*/function () {
1896  var _ref4 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee4(mapiUrl) {
1897    var request, response;
1898    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee4$(_context4) {
1899      while (1) {
1900        switch (_context4.prev = _context4.next) {
1901          case 0:
1902            if (mapiUrl) {
1903              _context4.next = 2;
1904              break;
1905            }
1906
1907            return _context4.abrupt("return");
1908
1909          case 2:
1910            _context4.prev = 2;
1911            _context4.next = 5;
1912            return Object(_fetchTimeout__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"])("".concat(mapiUrl, "public/al"), {}, 3000);
1913
1914          case 5:
1915            request = _context4.sent;
1916            _context4.next = 8;
1917            return request.json();
1918
1919          case 8:
1920            response = _context4.sent;
1921            return _context4.abrupt("return", response.al);
1922
1923          case 12:
1924            _context4.prev = 12;
1925            _context4.t0 = _context4["catch"](2);
1926            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Mapi analytics error: ", _context4.t0);
1927
1928          case 15:
1929            return _context4.abrupt("return");
1930
1931          case 16:
1932          case "end":
1933            return _context4.stop();
1934        }
1935      }
1936    }, _callee4, null, [[2, 12]]);
1937  }));
1938
1939  return function loadAnalyticsURL(_x5) {
1940    return _ref4.apply(this, arguments);
1941  };
1942}();
1943var getRandomOrRecent = /*#__PURE__*/function () {
1944  var _ref5 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee5(cm, mapi) {
1945    var cookie, history, stationList, stations;
1946    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee5$(_context5) {
1947      while (1) {
1948        switch (_context5.prev = _context5.next) {
1949          case 0:
1950            _context5.next = 2;
1951            return allCookies(cm);
1952
1953          case 2:
1954            cookie = _context5.sent;
1955
1956            if (!cookie.lastplayed) {
1957              _context5.next = 5;
1958              break;
1959            }
1960
1961            return _context5.abrupt("return", cookie.lastplayed);
1962
1963          case 5:
1964            history = (cookie.listeninghistory.split(",") || []).filter(function (id) {
1965              return id && id !== "0";
1966            });
1967
1968            if (!(history && history.length)) {
1969              _context5.next = 9;
1970              break;
1971            }
1972
1973            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* log */ "c"])("Found recent", history[0]);
1974            return _context5.abrupt("return", history[0]);
1975
1976          case 9:
1977            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* log */ "c"])("No recent. Finding random");
1978            _context5.next = 12;
1979            return loadStationList(mapi);
1980
1981          case 12:
1982            stationList = _context5.sent;
1983            stations = Object.values(stationList).reduce(function (prev, next) {
1984              return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(prev), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(next));
1985            });
1986            return _context5.abrupt("return", stations[Math.round(Math.random() * stations.length - 1)].rpId);
1987
1988          case 15:
1989          case "end":
1990            return _context5.stop();
1991        }
1992      }
1993    }, _callee5);
1994  }));
1995
1996  return function getRandomOrRecent(_x6, _x7) {
1997    return _ref5.apply(this, arguments);
1998  };
1999}();
2000var getODInfo = /*#__PURE__*/function () {
2001  var _ref6 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee6(queryProxyUrl, odId, odUrl) {
2002    var url, response;
2003    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee6$(_context6) {
2004      while (1) {
2005        switch (_context6.prev = _context6.next) {
2006          case 0:
2007            url = "";
2008
2009            if (!odId) {
2010              _context6.next = 5;
2011              break;
2012            }
2013
2014            url = "".concat(queryProxyUrl, "v4/odItem/?include=seriesId&odId=").concat(encodeURIComponent(odId));
2015            _context6.next = 10;
2016            break;
2017
2018          case 5:
2019            if (!odUrl) {
2020              _context6.next = 9;
2021              break;
2022            }
2023
2024            url = "".concat(queryProxyUrl, "v4/odItem/?include=seriesId&odUrl=").concat(encodeURIComponent(odUrl));
2025            _context6.next = 10;
2026            break;
2027
2028          case 9:
2029            return _context6.abrupt("return", undefined);
2030
2031          case 10:
2032            _context6.prev = 10;
2033            _context6.next = 13;
2034            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])(url, {
2035              timeout: 3000,
2036              jsonpCallbackFunction: "cb_odItem"
2037            }).then(function (res) {
2038              return res.json();
2039            });
2040
2041          case 13:
2042            response = _context6.sent;
2043            return _context6.abrupt("return", response.results["0"] || response.results["1"] || undefined);
2044
2045          case 17:
2046            _context6.prev = 17;
2047            _context6.t0 = _context6["catch"](10);
2048            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("od error", _context6.t0);
2049
2050          case 20:
2051            return _context6.abrupt("return", undefined);
2052
2053          case 21:
2054          case "end":
2055            return _context6.stop();
2056        }
2057      }
2058    }, _callee6, null, [[10, 17]]);
2059  }));
2060
2061  return function getODInfo(_x8, _x9, _x10) {
2062    return _ref6.apply(this, arguments);
2063  };
2064}();
2065var loadSchedule = /*#__PURE__*/function () {
2066  var _ref7 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee7(nowPlayingUrl, rpId) {
2067    var response;
2068    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee7$(_context7) {
2069      while (1) {
2070        switch (_context7.prev = _context7.next) {
2071          case 0:
2072            _context7.prev = 0;
2073            _context7.next = 3;
2074            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(nowPlayingUrl, "v4/schedule?rpId=").concat(rpId), {
2075              jsonpCallbackFunction: "cb_schedule"
2076            }).then(function (res) {
2077              return res.json();
2078            });
2079
2080          case 3:
2081            response = _context7.sent;
2082            return _context7.abrupt("return", response.results.pis || []);
2083
2084          case 7:
2085            _context7.prev = 7;
2086            _context7.t0 = _context7["catch"](0);
2087            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Schedule error", _context7.t0);
2088
2089          case 10:
2090            return _context7.abrupt("return", []);
2091
2092          case 11:
2093          case "end":
2094            return _context7.stop();
2095        }
2096      }
2097    }, _callee7, null, [[0, 7]]);
2098  }));
2099
2100  return function loadSchedule(_x11, _x12) {
2101    return _ref7.apply(this, arguments);
2102  };
2103}();
2104var loadOnDemand = /*#__PURE__*/function () {
2105  var _ref8 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee8(queryProxyUrl, rpId) {
2106    var response;
2107    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee8$(_context8) {
2108      while (1) {
2109        switch (_context8.prev = _context8.next) {
2110          case 0:
2111            _context8.prev = 0;
2112            _context8.next = 3;
2113            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(queryProxyUrl, "v4/od?rpId=").concat(rpId), {
2114              jsonpCallbackFunction: "cb_od"
2115            }).then(function (res) {
2116              return res.json();
2117            });
2118
2119          case 3:
2120            response = _context8.sent;
2121            return _context8.abrupt("return", response.results ? Object.values(response.results) : []);
2122
2123          case 7:
2124            _context8.prev = 7;
2125            _context8.t0 = _context8["catch"](0);
2126            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Schedule error", _context8.t0);
2127
2128          case 10:
2129            return _context8.abrupt("return", []);
2130
2131          case 11:
2132          case "end":
2133            return _context8.stop();
2134        }
2135      }
2136    }, _callee8, null, [[0, 7]]);
2137  }));
2138
2139  return function loadOnDemand(_x13, _x14) {
2140    return _ref8.apply(this, arguments);
2141  };
2142}();
2143var loadRecommendationList = /*#__PURE__*/function () {
2144  var _ref9 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee9(queryProxyUrl) {
2145    var response;
2146    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee9$(_context9) {
2147      while (1) {
2148        switch (_context9.prev = _context9.next) {
2149          case 0:
2150            _context9.prev = 0;
2151            _context9.next = 3;
2152            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(queryProxyUrl, "v3/recommend"), {
2153              jsonpCallbackFunction: "cb_recommend"
2154            }).then(function (res) {
2155              return res.json();
2156            });
2157
2158          case 3:
2159            response = _context9.sent;
2160            return _context9.abrupt("return", response.recommendations || []);
2161
2162          case 7:
2163            _context9.prev = 7;
2164            _context9.t0 = _context9["catch"](0);
2165            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Stationlist error", _context9.t0);
2166
2167          case 10:
2168            return _context9.abrupt("return", []);
2169
2170          case 11:
2171          case "end":
2172            return _context9.stop();
2173        }
2174      }
2175    }, _callee9, null, [[0, 7]]);
2176  }));
2177
2178  return function loadRecommendationList(_x15) {
2179    return _ref9.apply(this, arguments);
2180  };
2181}();
2182var loadRelatedStationList = /*#__PURE__*/function () {
2183  var _ref10 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee10(queryProxyUrl, rpId) {
2184    var response;
2185    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee10$(_context10) {
2186      while (1) {
2187        switch (_context10.prev = _context10.next) {
2188          case 0:
2189            _context10.prev = 0;
2190            _context10.next = 3;
2191            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(queryProxyUrl, "v4/relatedStations?rpid=").concat(rpId), // TODO: Use correct URL
2192            {
2193              timeout: 30000,
2194              jsonpCallbackFunction: "cb_relatedStations"
2195            }).then(function (res) {
2196              return res.json();
2197            });
2198
2199          case 3:
2200            response = _context10.sent;
2201            return _context10.abrupt("return", response);
2202
2203          case 7:
2204            _context10.prev = 7;
2205            _context10.t0 = _context10["catch"](0);
2206            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Related station load error", _context10.t0);
2207
2208          case 10:
2209            return _context10.abrupt("return", []);
2210
2211          case 11:
2212          case "end":
2213            return _context10.stop();
2214        }
2215      }
2216    }, _callee10, null, [[0, 7]]);
2217  }));
2218
2219  return function loadRelatedStationList(_x16, _x17) {
2220    return _ref10.apply(this, arguments);
2221  };
2222}();
2223var parseFaves = function parseFaves(presets) {
2224  return presets.map(function (preset) {
2225    return preset.split(":")[1];
2226  }).filter(function (f) {
2227    return f !== "9999999";
2228  });
2229};
2230var getFavesString = function getFavesString(faves) {
2231  return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(faves), ["9999999"]).map(function (val, idx) {
2232    return "".concat(idx, ":").concat(val);
2233  }).join();
2234};
2235var saveCookie = /*#__PURE__*/function () {
2236  var _ref11 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee11(key, value, cookieManagerUrl) {
2237    var k, v;
2238    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee11$(_context11) {
2239      while (1) {
2240        switch (_context11.prev = _context11.next) {
2241          case 0:
2242            k = encodeURIComponent(key);
2243            v = encodeURIComponent(value);
2244            _context11.prev = 2;
2245            _context11.next = 5;
2246            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(cookieManagerUrl).concat(k, "/s?").concat(k, "=").concat(v, "&_=").concat(Object(_api_utils__WEBPACK_IMPORTED_MODULE_23__[/* getCachebuster */ "h"])()), {
2247              jsonpCallbackFunction: undefined
2248            });
2249
2250          case 5:
2251            _context11.next = 11;
2252            break;
2253
2254          case 7:
2255            _context11.prev = 7;
2256            _context11.t0 = _context11["catch"](2);
2257            console.log("Cookie saved, but there's an error anyway");
2258            console.log(_context11.t0);
2259
2260          case 11:
2261          case "end":
2262            return _context11.stop();
2263        }
2264      }
2265    }, _callee11, null, [[2, 7]]);
2266  }));
2267
2268  return function saveCookie(_x18, _x19, _x20) {
2269    return _ref11.apply(this, arguments);
2270  };
2271}();
2272var saveSearchCookie = function saveSearchCookie(value, cookieManagerUrl) {
2273  var v = encodeURIComponent(value);
2274
2275  try {
2276    Object(_fetchTimeout__WEBPACK_IMPORTED_MODULE_25__[/* default */ "a"])("".concat(cookieManagerUrl, "sh/s/?term=").concat(v, "&_=").concat(Object(_api_utils__WEBPACK_IMPORTED_MODULE_23__[/* getCachebuster */ "h"])()), {
2277      mode: "no-cors",
2278      credentials: "include"
2279    }, 1000);
2280  } catch (err) {
2281    Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Failed to search save cookie", err);
2282  }
2283};
2284var addSearchTerm = function addSearchTerm(searchTerm, currentSearchTerms) {
2285  var cookieManagerUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
2286  var searchHistory = currentSearchTerms ? _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(currentSearchTerms) : [];
2287  var searchTermFormatted = searchTerm.toLowerCase();
2288  var searchTermIndex = searchHistory.indexOf(searchTermFormatted);
2289
2290  if (searchTermIndex !== -1) {
2291    searchHistory.splice(searchTermIndex, 1);
2292  }
2293
2294  searchHistory.unshift(searchTermFormatted);
2295  saveSearchCookie(searchTermFormatted, cookieManagerUrl);
2296  return searchHistory;
2297};
2298var saveFaves = function saveFaves(faves, cookieManagerUrl) {
2299  return saveCookie("ms", getFavesString(faves), cookieManagerUrl);
2300};
2301var addFave = function addFave(id, faves, cookieManagerUrl, hideFavTip) {
2302  var fav = _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(faves);
2303
2304  if (!fav.includes(id)) {
2305    fav.push(id);
2306  }
2307
2308  saveFaves(fav, cookieManagerUrl);
2309  return fav;
2310};
2311var hideAnnouncement = function hideAnnouncement(cookieManagerUrl) {
2312  saveCookie("announcement", "true", cookieManagerUrl);
2313};
2314var removeFave = function removeFave(id, faves, cookieManagerUrl) {
2315  var fav = _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_18___default()(faves);
2316
2317  var idx = fav.indexOf(id);
2318
2319  if (idx !== -1) {
2320    fav.splice(idx, 1);
2321  }
2322
2323  saveFaves(fav, cookieManagerUrl);
2324  return fav;
2325};
2326var setStationListPrefix = function setStationListPrefix(prefix) {
2327  var cookie = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2328  var cookieManagerUrl = arguments.length > 2 ? arguments[2] : undefined;
2329
2330  if (cookie.stationlistprefix === prefix) {
2331    return cookie;
2332  }
2333
2334  saveCookie("stationlistprefix", prefix, cookieManagerUrl);
2335  return Object(immer__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"])(cookie, function (c) {
2336    c.stationlistprefix = prefix;
2337    return c;
2338  });
2339};
2340var setBbcCookies = function setBbcCookies(policy) {
2341  // Set to defaults (ckns_explicit to 0 ckns_policy to 000) if no policy is provided
2342  document.cookie = "ckns_explicit=".concat(policy ? "1" : "0");
2343  document.cookie = "ckns_policy=".concat(policy || "000");
2344};
2345var retrieveCookies = function retrieveCookies() {
2346  return document.cookie.split(";").reduce(function (prev, cookie) {
2347    var _cookie$split = cookie.split("="),
2348        _cookie$split2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_17___default()(_cookie$split, 2),
2349        key = _cookie$split2[0],
2350        value = _cookie$split2[1];
2351
2352    if (!key || !value) {
2353      return prev;
2354    }
2355
2356    prev[key.trim()] = value;
2357    return prev;
2358  }, {});
2359};
2360var setCookiePolicy = function setCookiePolicy(policy) {
2361  var cookie = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2362  var cookieManagerUrl = arguments.length > 2 ? arguments[2] : undefined;
2363  var bbcCookies = arguments.length > 3 ? arguments[3] : undefined;
2364  // Cookie manager
2365  saveCookie("policy", policy, cookieManagerUrl);
2366  localStorage.setItem("hasSetCookiePolicy", "true");
2367  localStorage.setItem("hideCookieBanner", "true");
2368
2369  if (bbcCookies) {
2370    setBbcCookies(policy);
2371  }
2372
2373  return Object(immer__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"])(cookie, function (c) {
2374    c.policy = policy;
2375    return c;
2376  });
2377};
2378
2379/**
2380 *  Util to evaluate the level of consent the user has agreed to, returns boolean indicating consent recieved for given option
2381 * @param requiredConsent The level of consent the user is required to have agreed to
2382 * @param actualConsent  The value of the stored cookie indicating the user's agreed level of consent
2383 */
2384var evaluateCookieConsent = function evaluateCookieConsent(requiredConsent, actualConsent) {
2385  if (!actualConsent) return false;
2386  if (requiredConsent === "required" && actualConsent[0] === "1") return true;
2387  if (requiredConsent === "functional" && actualConsent[1] === "1") return true;
2388  if (requiredConsent === "performance" && actualConsent[2] === "1") return true;
2389  return false;
2390};
2391var decodeConsent = /*#__PURE__*/function () {
2392  var _ref12 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee12(consentString) {
2393    var tcfVersion,
2394        _args12 = arguments;
2395    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee12$(_context12) {
2396      while (1) {
2397        switch (_context12.prev = _context12.next) {
2398          case 0:
2399            tcfVersion = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : 1;
2400            return _context12.abrupt("return", // Use different lib based on tcfVersion, from globalcookies it's tcf1, from CMP tcf2
2401            // We're casting, because we're accessing private stuff
2402            tcfVersion === 1 ? Object(consent_string__WEBPACK_IMPORTED_MODULE_27__["decodeConsentString"])(consentString) : tc_string_parse__WEBPACK_IMPORTED_MODULE_28__(consentString));
2403
2404          case 2:
2405          case "end":
2406            return _context12.stop();
2407        }
2408      }
2409    }, _callee12);
2410  }));
2411
2412  return function decodeConsent(_x21) {
2413    return _ref12.apply(this, arguments);
2414  };
2415}();
2416var isFave = function isFave(id, faves) {
2417  return faves.includes(id);
2418};
2419var getRecentStations = function getRecentStations() {
2420  var cookie = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2421  return cookie.history || [];
2422};
2423var getVolume = function getVolume() {
2424  var cookie = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
2425    volume: "100"
2426  };
2427  return "volume" in cookie ? (parseInt(cookie.volume) || 0) / 100 : 1;
2428};
2429var setVolumeCookie = function setVolumeCookie(volume) {
2430  var cookie = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2431  var cookieManagerUrl = arguments.length > 2 ? arguments[2] : undefined;
2432  var volumeString = Math.round(volume * 100).toString();
2433
2434  if (cookie.volume === volumeString) {
2435    return cookie;
2436  }
2437
2438  saveCookie("vl", volumeString, cookieManagerUrl);
2439  return Object(immer__WEBPACK_IMPORTED_MODULE_24__[/* default */ "a"])(cookie, function (c) {
2440    c.volume = volumeString;
2441    return c;
2442  });
2443};
2444var getStationListPrefix = function getStationListPrefix() {
2445  var cookie = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2446  return cookie.stationlistprefix;
2447};
2448var getCookiePolicyString = function getCookiePolicyString() {
2449  var cookie = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2450  return cookie.policy || "000";
2451};
2452var getCookiePolicy = function getCookiePolicy(cookie) {
2453  var _getCookiePolicyStrin = getCookiePolicyString(cookie),
2454      _getCookiePolicyStrin2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_17___default()(_getCookiePolicyStrin, 3),
2455      a = _getCookiePolicyStrin2[0],
2456      b = _getCookiePolicyStrin2[1],
2457      c = _getCookiePolicyStrin2[2];
2458
2459  return [a, b, c].map(parseInt).map(Boolean);
2460};
2461var buildCookiePolicy = function buildCookiePolicy(req, func, perf) {
2462  return [req, func, perf].map(Number).join("");
2463};
2464var redirectConsole = function redirectConsole(target) {
2465  Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* error */ "b"])("Redirecting console", target);
2466  window.location.href = target;
2467};
2468var initCookies = /*#__PURE__*/function () {
2469  var _ref13 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee13(rpId) {
2470    var mapiUrl,
2471        nowPlayingUrl,
2472        cookieManagerUrl,
2473        queryProxyUrl,
2474        bbcCookies,
2475        cmp,
2476        tracking,
2477        _cookie$policy,
2478        cookie,
2479        faves,
2480        searchHistory,
2481        hideFavTip,
2482        _args13 = arguments;
2483
2484    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee13$(_context13) {
2485      while (1) {
2486        switch (_context13.prev = _context13.next) {
2487          case 0:
2488            mapiUrl = _args13.length > 1 && _args13[1] !== undefined ? _args13[1] : "";
2489            nowPlayingUrl = _args13.length > 2 && _args13[2] !== undefined ? _args13[2] : "";
2490            cookieManagerUrl = _args13.length > 3 && _args13[3] !== undefined ? _args13[3] : "";
2491            queryProxyUrl = _args13.length > 4 && _args13[4] !== undefined ? _args13[4] : "";
2492            bbcCookies = _args13.length > 5 && _args13[5] !== undefined ? _args13[5] : false;
2493            cmp = _args13.length > 6 ? _args13[6] : undefined;
2494            tracking = _args13.length > 7 ? _args13[7] : undefined;
2495
2496            if (cookieManagerUrl) {
2497              _context13.next = 9;
2498              break;
2499            }
2500
2501            return _context13.abrupt("return");
2502
2503          case 9:
2504            _context13.prev = 9;
2505            _context13.next = 12;
2506            return loadCookies(rpId, cookieManagerUrl);
2507
2508          case 12:
2509            cookie = _context13.sent;
2510
2511            if (!(cookie.redirect && cookie.redirect.url)) {
2512              _context13.next = 16;
2513              break;
2514            }
2515
2516            redirectConsole(cookie.redirect.url);
2517            return _context13.abrupt("return");
2518
2519          case 16:
2520            cookie.presets = cookie.presets || [];
2521            faves = parseFaves(cookie.presets);
2522            searchHistory = cookie.searchHistory;
2523            hideFavTip = !!localStorage.getItem("hideFavTip") || false; // Sync bbc cookies
2524
2525            if (bbcCookies) {
2526              setBbcCookies(cookie.policy);
2527            }
2528
2529            window.ANALYTICS_ALLOWED = (_cookie$policy = cookie.policy) === null || _cookie$policy === void 0 ? void 0 : _cookie$policy.endsWith("1");
2530            return _context13.abrupt("return", {
2531              rpId: rpId,
2532              cookie: cookie,
2533              faves: faves,
2534              hideFavTip: hideFavTip,
2535              displayFaveNotification: false,
2536              mapiUrl: mapiUrl,
2537              nowPlayingUrl: nowPlayingUrl,
2538              stationlist: {},
2539              searchHistory: searchHistory,
2540              cookieManagerUrl: cookieManagerUrl,
2541              queryProxyUrl: queryProxyUrl,
2542              bbcCookies: bbcCookies,
2543              tcString: !!cmp,
2544              cmpConsentFailed: false
2545            });
2546
2547          case 25:
2548            _context13.prev = 25;
2549            _context13.t0 = _context13["catch"](9);
2550            Object(_logger__WEBPACK_IMPORTED_MODULE_26__[/* warn */ "e"])("Cookie error", _context13.t0);
2551            return _context13.abrupt("return", undefined);
2552
2553          case 29:
2554          case "end":
2555            return _context13.stop();
2556        }
2557      }
2558    }, _callee13, null, [[9, 25]]);
2559  }));
2560
2561  return function initCookies(_x22) {
2562    return _ref13.apply(this, arguments);
2563  };
2564}();
2565var stationSuggestions = /*#__PURE__*/function () {
2566  var _ref14 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee14(term, queryProxyUrl) {
2567    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee14$(_context14) {
2568      while (1) {
2569        switch (_context14.prev = _context14.next) {
2570          case 0:
2571            return _context14.abrupt("return", Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(queryProxyUrl, "v4/suggest?query=").concat(term), {
2572              jsonpCallbackFunction: "cb_suggest"
2573            }).then(function (res) {
2574              return res.json();
2575            }));
2576
2577          case 1:
2578          case "end":
2579            return _context14.stop();
2580        }
2581      }
2582    }, _callee14);
2583  }));
2584
2585  return function stationSuggestions(_x23, _x24) {
2586    return _ref14.apply(this, arguments);
2587  };
2588}();
2589var searchStations = /*#__PURE__*/function () {
2590  var _ref15 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_21___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.mark(function _callee15(term, queryProxyUrl) {
2591    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_19___default.a.wrap(function _callee15$(_context15) {
2592      while (1) {
2593        switch (_context15.prev = _context15.next) {
2594          case 0:
2595            return _context15.abrupt("return", Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_22__[/* default */ "a"])("".concat(queryProxyUrl, "v4/search?query=").concat(term), {
2596              jsonpCallbackFunction: "cb_search"
2597            }).then(function (res) {
2598              return res.json();
2599            }));
2600
2601          case 1:
2602          case "end":
2603            return _context15.stop();
2604        }
2605      }
2606    }, _callee15);
2607  }));
2608
2609  return function searchStations(_x25, _x26) {
2610    return _ref15.apply(this, arguments);
2611  };
2612}();
2613var getHashFromString = function getHashFromString(seed) {
2614  var hash = 0;
2615
2616  if (!(seed === null || seed === void 0 ? void 0 : seed.length)) {
2617    return "0";
2618  }
2619
2620  var chr;
2621
2622  for (var i = 0; i < seed.length; i++) {
2623    chr = seed.charCodeAt(i);
2624    hash = (hash << 5) - hash + chr;
2625    hash |= 0; // Convert to 32bit integer
2626  }
2627
2628  return "".concat(hash);
2629};
2630
2631/***/ }),
2632/* 33 */
2633/***/ (function(module, exports, __webpack_require__) {
2634
2635var requireObjectCoercible = __webpack_require__(52);
2636
2637// `ToObject` abstract operation
2638// https://tc39.github.io/ecma262/#sec-toobject
2639module.exports = function (argument) {
2640  return Object(requireObjectCoercible(argument));
2641};
2642
2643
2644/***/ }),
2645/* 34 */
2646/***/ (function(module, exports) {
2647
2648var g;
2649
2650// This works in non-strict mode
2651g = (function() {
2652	return this;
2653})();
2654
2655try {
2656	// This works if eval is allowed (see CSP)
2657	g = g || new Function("return this")();
2658} catch (e) {
2659	// This works if the window reference is available
2660	if (typeof window === "object") g = window;
2661}
2662
2663// g can still be undefined, but nothing to do about it...
2664// We return undefined, instead of nothing here, so it's
2665// easier to handle this case. if(!global) { ...}
2666
2667module.exports = g;
2668
2669
2670/***/ }),
2671/* 35 */
2672/***/ (function(module, exports) {
2673
2674var hasOwnProperty = {}.hasOwnProperty;
2675
2676module.exports = function (it, key) {
2677  return hasOwnProperty.call(it, key);
2678};
2679
2680
2681/***/ }),
2682/* 36 */,
2683/* 37 */
2684/***/ (function(module, exports, __webpack_require__) {
2685
2686var arrayWithoutHoles = __webpack_require__(772);
2687
2688var iterableToArray = __webpack_require__(700);
2689
2690var unsupportedIterableToArray = __webpack_require__(412);
2691
2692var nonIterableSpread = __webpack_require__(773);
2693
2694function _toConsumableArray(arr) {
2695  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
2696}
2697
2698module.exports = _toConsumableArray;
2699
2700/***/ }),
2701/* 38 */,
2702/* 39 */
2703/***/ (function(module, exports, __webpack_require__) {
2704
2705var objectWithoutPropertiesLoose = __webpack_require__(771);
2706
2707function _objectWithoutProperties(source, excluded) {
2708  if (source == null) return {};
2709  var target = objectWithoutPropertiesLoose(source, excluded);
2710  var key, i;
2711
2712  if (Object.getOwnPropertySymbols) {
2713    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
2714
2715    for (i = 0; i < sourceSymbolKeys.length; i++) {
2716      key = sourceSymbolKeys[i];
2717      if (excluded.indexOf(key) >= 0) continue;
2718      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
2719      target[key] = source[key];
2720    }
2721  }
2722
2723  return target;
2724}
2725
2726module.exports = _objectWithoutProperties;
2727
2728/***/ }),
2729/* 40 */
2730/***/ (function(module, exports, __webpack_require__) {
2731
2732// extracted by mini-css-extract-plugin
2733module.exports = {"visuallyHidden":"CookieBanner-module__visuallyHidden--2W7IE","settingsRow":"CookieBanner-module__settingsRow--2hVL8","name":"CookieBanner-module__name--1NdxF","settingsButton":"CookieBanner-module__settingsButton--3_cti","reject":"CookieBanner-module__reject--3guH0","accept":"CookieBanner-module__accept--36q2J","title":"CookieBanner-module__title--p0MVX","toggleLabel":"CookieBanner-module__toggleLabel--1sUfs","description":"CookieBanner-module__description--1Vs1X","policy":"CookieBanner-module__policy--3D5fC","body":"CookieBanner-module__body--3x1MM","wrap":"CookieBanner-module__wrap--1QK9t","hide":"CookieBanner-module__hide--7s49A","inner":"CookieBanner-module__inner--ZAwNc","buttons":"CookieBanner-module__buttons--2oMmy","toggle":"CookieBanner-module__toggle--euSJV"};
2734
2735/***/ }),
2736/* 41 */,
2737/* 42 */
2738/***/ (function(module, __webpack_exports__, __webpack_require__) {
2739
2740"use strict";
2741
2742// EXPORTS
2743__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ RPIconbabel_target_legacy_RPIcon; });
2744
2745// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
2746var extendsbabel_target_legacy = __webpack_require__(50);
2747var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
2748
2749// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
2750var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
2751var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
2752
2753// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
2754var preact_modulebabel_target_legacy = __webpack_require__(1);
2755
2756// EXTERNAL MODULE: ./src/components/RPIcon/RPIcon.module.css
2757var RPIcon_module = __webpack_require__(241);
2758var RPIcon_module_default = /*#__PURE__*/__webpack_require__.n(RPIcon_module);
2759
2760// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
2761var classnames_babel_target_legacy = __webpack_require__(27);
2762var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
2763
2764// CONCATENATED MODULE: ./src/components/RPIcon/RPIcon.tsx?babel-target=legacy
2765
2766
2767
2768
2769
2770var RPIconbabel_target_legacy_RPIcon = function RPIcon(_ref) {
2771  var src = _ref.src,
2772      style = _ref.style,
2773      _ref$colour = _ref.colour,
2774      colour = _ref$colour === void 0 ? "currentColor" : _ref$colour,
2775      className = _ref.className,
2776      _ref$maxHeight = _ref.maxHeight,
2777      maxHeight = _ref$maxHeight === void 0 ? 40 : _ref$maxHeight,
2778      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["src", "style", "colour", "className", "maxHeight"]);
2779
2780  return Object(preact_modulebabel_target_legacy["h"])("span", extendsbabel_target_legacy_default()({}, props, {
2781    className: classnames_babel_target_legacy_default()(RPIcon_module_default.a.icon, className),
2782    style: {
2783      maxHeight: "".concat(maxHeight, "px"),
2784      color: colour
2785    },
2786    dangerouslySetInnerHTML: {
2787      __html: src
2788    }
2789  }));
2790};
2791/* harmony default export */ var RPIconbabel_target_legacy = (RPIconbabel_target_legacy_RPIcon);
2792// CONCATENATED MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy
2793
2794
2795/***/ }),
2796/* 43 */,
2797/* 44 */
2798/***/ (function(module, __webpack_exports__, __webpack_require__) {
2799
2800"use strict";
2801/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useAPI; });
2802/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
2803/* harmony import */ var _APIContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(402);
2804
2805
2806var useAPI = function useAPI() {
2807  return Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useContext */ "b"])(_APIContext__WEBPACK_IMPORTED_MODULE_1__[/* APIContext */ "a"]);
2808};
2809
2810/***/ }),
2811/* 45 */,
2812/* 46 */
2813/***/ (function(module, exports, __webpack_require__) {
2814
2815var bind = __webpack_require__(115);
2816var IndexedObject = __webpack_require__(164);
2817var toObject = __webpack_require__(33);
2818var toLength = __webpack_require__(28);
2819var arraySpeciesCreate = __webpack_require__(171);
2820
2821var push = [].push;
2822
2823// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
2824var createMethod = function (TYPE) {
2825  var IS_MAP = TYPE == 1;
2826  var IS_FILTER = TYPE == 2;
2827  var IS_SOME = TYPE == 3;
2828  var IS_EVERY = TYPE == 4;
2829  var IS_FIND_INDEX = TYPE == 6;
2830  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
2831  return function ($this, callbackfn, that, specificCreate) {
2832    var O = toObject($this);
2833    var self = IndexedObject(O);
2834    var boundFunction = bind(callbackfn, that, 3);
2835    var length = toLength(self.length);
2836    var index = 0;
2837    var create = specificCreate || arraySpeciesCreate;
2838    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
2839    var value, result;
2840    for (;length > index; index++) if (NO_HOLES || index in self) {
2841      value = self[index];
2842      result = boundFunction(value, index, O);
2843      if (TYPE) {
2844        if (IS_MAP) target[index] = result; // map
2845        else if (result) switch (TYPE) {
2846          case 3: return true;              // some
2847          case 5: return value;             // find
2848          case 6: return index;             // findIndex
2849          case 2: push.call(target, value); // filter
2850        } else if (IS_EVERY) return false;  // every
2851      }
2852    }
2853    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
2854  };
2855};
2856
2857module.exports = {
2858  // `Array.prototype.forEach` method
2859  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
2860  forEach: createMethod(0),
2861  // `Array.prototype.map` method
2862  // https://tc39.github.io/ecma262/#sec-array.prototype.map
2863  map: createMethod(1),
2864  // `Array.prototype.filter` method
2865  // https://tc39.github.io/ecma262/#sec-array.prototype.filter
2866  filter: createMethod(2),
2867  // `Array.prototype.some` method
2868  // https://tc39.github.io/ecma262/#sec-array.prototype.some
2869  some: createMethod(3),
2870  // `Array.prototype.every` method
2871  // https://tc39.github.io/ecma262/#sec-array.prototype.every
2872  every: createMethod(4),
2873  // `Array.prototype.find` method
2874  // https://tc39.github.io/ecma262/#sec-array.prototype.find
2875  find: createMethod(5),
2876  // `Array.prototype.findIndex` method
2877  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
2878  findIndex: createMethod(6)
2879};
2880
2881
2882/***/ }),
2883/* 47 */,
2884/* 48 */
2885/***/ (function(module, __webpack_exports__, __webpack_require__) {
2886
2887"use strict";
2888/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export parseJsonp */
2889/* unused harmony export findNowPlayingType */
2890/* unused harmony export buildQuery */
2891/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return getCachebuster; });
2892/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return decorateUrl; });
2893/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return decorator; });
2894/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return formatLocaleTime; });
2895/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return getMidnightTonight; });
2896/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return formatLocaleDate; });
2897/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return formatLocaleDateTime; });
2898/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return formatProgrammeTime; });
2899/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return debounce; });
2900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return kebabify; });
2901/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75);
2902/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__);
2903/* harmony import */ var core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182);
2904/* harmony import */ var core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find__WEBPACK_IMPORTED_MODULE_1__);
2905/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(124);
2906/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_2__);
2907/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(160);
2908/* harmony import */ var core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join__WEBPACK_IMPORTED_MODULE_3__);
2909/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77);
2910/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4__);
2911/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(177);
2912/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_5__);
2913/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(105);
2914/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_6__);
2915/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(93);
2916/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_7__);
2917/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(156);
2918/* harmony import */ var core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string__WEBPACK_IMPORTED_MODULE_8__);
2919/* harmony import */ var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(266);
2920/* harmony import */ var core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_ends_with__WEBPACK_IMPORTED_MODULE_9__);
2921/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(140);
2922/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_10__);
2923/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(302);
2924/* harmony import */ var core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_match__WEBPACK_IMPORTED_MODULE_11__);
2925/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(269);
2926/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_12__);
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940var parseJsonp = function parseJsonp(data) {
2941  return JSON.parse(data.slice(9, -1));
2942};
2943var findNowPlayingType = function findNowPlayingType(now, type) {
2944  return now.find(function (np) {
2945    return np.type === type;
2946  });
2947};
2948var buildQuery = function buildQuery(params) {
2949  return params.map(function (tuple) {
2950    return tuple.map(encodeURIComponent).join("=");
2951  }).join("&");
2952};
2953var getCachebuster = function getCachebuster() {
2954  return Math.round(Math.random() * Math.pow(10, 15)).toString();
2955};
2956var decorateUrl = function decorateUrl(url) {
2957  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
2958  var result = url.match(/(https?:)?\/\/(.+)/);
2959
2960  if (!result || result.length < 3) {
2961    return url;
2962  }
2963
2964  var domain = result[2];
2965  var _char = "?";
2966
2967  if (domain.endsWith("/")) {
2968    _char = "?";
2969  } else if (domain.endsWith(";")) {
2970    _char = "";
2971  } else if (domain.includes("?")) {
2972    _char = "&";
2973  }
2974
2975  var query = buildQuery(params);
2976  return "".concat(url).concat(_char).concat(query);
2977};
2978var decorator = {
2979  decorateStreamUrl: function decorateStreamUrl(url) {
2980    return decorateUrl(url, [["__cb", getCachebuster()]]);
2981  }
2982};
2983var formatLocaleTime = function formatLocaleTime(time) {
2984  var date = new Date(time * 1000);
2985  return date.toLocaleTimeString(process.env.locale, {
2986    hour: "numeric",
2987    minute: "numeric"
2988  });
2989};
2990var getMidnightTonight = function getMidnightTonight() {
2991  var midnight = new Date();
2992  midnight.setHours(23);
2993  midnight.setMinutes(60);
2994  return Math.round(midnight.getTime() / 1000);
2995};
2996var formatLocaleDate = function formatLocaleDate(time) {
2997  var date = new Date(time * 1000);
2998  return date.toLocaleDateString(process ? process.env.locale : undefined, {
2999    weekday: "short",
3000    day: "numeric",
3001    month: "long",
3002    year: "numeric"
3003  });
3004};
3005var formatLocaleDateTime = function formatLocaleDateTime(date) {
3006  return "".concat(date.toLocaleTimeString(process ? process.env.locale : undefined, {
3007    hour: "numeric",
3008    minute: "numeric"
3009  }), " \u2022 ").concat(date.toLocaleDateString(process ? process.env.locale : undefined, {
3010    weekday: "short",
3011    day: "numeric",
3012    month: "long",
3013    year: "numeric"
3014  }));
3015};
3016var formatProgrammeTime = function formatProgrammeTime(programme) {
3017  var start = parseInt(programme.startTime);
3018  var end = parseInt(programme.stopTime);
3019  return "".concat(formatLocaleTime(start), " \u2013 ").concat(formatLocaleTime(end));
3020};
3021function debounce(callback, wait) {
3022  var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3023  var timeout = null;
3024  return function () {
3025    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3026      args[_key] = arguments[_key];
3027    }
3028
3029    var callNow = immediate && !timeout;
3030
3031    var next = function next() {
3032      callback.apply(void 0, args);
3033    };
3034
3035    if (timeout) {
3036      window.clearTimeout(timeout);
3037    }
3038
3039    timeout = window.setTimeout(next, wait);
3040
3041    if (callNow) {
3042      next();
3043    }
3044  };
3045}
3046var kebabify = function kebabify(str) {
3047  return str ? str.replace(/[ _-]+/g, "-").toLowerCase() : "";
3048};
3049/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57)))
3050
3051/***/ }),
3052/* 49 */,
3053/* 50 */
3054/***/ (function(module, exports) {
3055
3056function _extends() {
3057  module.exports = _extends = Object.assign || function (target) {
3058    for (var i = 1; i < arguments.length; i++) {
3059      var source = arguments[i];
3060
3061      for (var key in source) {
3062        if (Object.prototype.hasOwnProperty.call(source, key)) {
3063          target[key] = source[key];
3064        }
3065      }
3066    }
3067
3068    return target;
3069  };
3070
3071  return _extends.apply(this, arguments);
3072}
3073
3074module.exports = _extends;
3075
3076/***/ }),
3077/* 51 */
3078/***/ (function(module, exports, __webpack_require__) {
3079
3080var DESCRIPTORS = __webpack_require__(21);
3081var propertyIsEnumerableModule = __webpack_require__(213);
3082var createPropertyDescriptor = __webpack_require__(100);
3083var toIndexedObject = __webpack_require__(66);
3084var toPrimitive = __webpack_require__(79);
3085var has = __webpack_require__(35);
3086var IE8_DOM_DEFINE = __webpack_require__(356);
3087
3088var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
3089
3090// `Object.getOwnPropertyDescriptor` method
3091// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
3092exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
3093  O = toIndexedObject(O);
3094  P = toPrimitive(P, true);
3095  if (IE8_DOM_DEFINE) try {
3096    return nativeGetOwnPropertyDescriptor(O, P);
3097  } catch (error) { /* empty */ }
3098  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
3099};
3100
3101
3102/***/ }),
3103/* 52 */
3104/***/ (function(module, exports) {
3105
3106// `RequireObjectCoercible` abstract operation
3107// https://tc39.github.io/ecma262/#sec-requireobjectcoercible
3108module.exports = function (it) {
3109  if (it == undefined) throw TypeError("Can't call method on " + it);
3110  return it;
3111};
3112
3113
3114/***/ }),
3115/* 53 */
3116/***/ (function(module, exports, __webpack_require__) {
3117
3118var DESCRIPTORS = __webpack_require__(21);
3119var definePropertyModule = __webpack_require__(30);
3120var createPropertyDescriptor = __webpack_require__(100);
3121
3122module.exports = DESCRIPTORS ? function (object, key, value) {
3123  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
3124} : function (object, key, value) {
3125  object[key] = value;
3126  return object;
3127};
3128
3129
3130/***/ }),
3131/* 54 */
3132/***/ (function(module, exports, __webpack_require__) {
3133
3134var global = __webpack_require__(16);
3135var createNonEnumerableProperty = __webpack_require__(53);
3136var has = __webpack_require__(35);
3137var setGlobal = __webpack_require__(274);
3138var inspectSource = __webpack_require__(275);
3139var InternalStateModule = __webpack_require__(58);
3140
3141var getInternalState = InternalStateModule.get;
3142var enforceInternalState = InternalStateModule.enforce;
3143var TEMPLATE = String(String).split('String');
3144
3145(module.exports = function (O, key, value, options) {
3146  var unsafe = options ? !!options.unsafe : false;
3147  var simple = options ? !!options.enumerable : false;
3148  var noTargetGet = options ? !!options.noTargetGet : false;
3149  var state;
3150  if (typeof value == 'function') {
3151    if (typeof key == 'string' && !has(value, 'name')) {
3152      createNonEnumerableProperty(value, 'name', key);
3153    }
3154    state = enforceInternalState(value);
3155    if (!state.source) {
3156      state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
3157    }
3158  }
3159  if (O === global) {
3160    if (simple) O[key] = value;
3161    else setGlobal(key, value);
3162    return;
3163  } else if (!unsafe) {
3164    delete O[key];
3165  } else if (!noTargetGet && O[key]) {
3166    simple = true;
3167  }
3168  if (simple) O[key] = value;
3169  else createNonEnumerableProperty(O, key, value);
3170// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
3171})(Function.prototype, 'toString', function toString() {
3172  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
3173});
3174
3175
3176/***/ }),
3177/* 55 */,
3178/* 56 */
3179/***/ (function(module, exports, __webpack_require__) {
3180
3181// extracted by mini-css-extract-plugin
3182module.exports = {"shift":"VolumeControl-module__shift--YgO7H","pic":"VolumeControl-module__pic--VRgZq","overlay":"VolumeControl-module__overlay--2Huem","wide":"VolumeControl-module__wide--3cKmS","narrow":"VolumeControl-module__narrow--5c7Av","wrap":"VolumeControl-module__wrap--2EL-c","dark":"VolumeControl-module__dark--3A7Hc","outer":"VolumeControl-module__outer--3h8Pp","outermobile":"VolumeControl-module__outermobile--xMpYr"};
3183
3184/***/ }),
3185/* 57 */
3186/***/ (function(module, exports) {
3187
3188// shim for using process in browser
3189var process = module.exports = {};
3190
3191// cached from whatever global is present so that test runners that stub it
3192// don't break things.  But we need to wrap it in a try catch in case it is
3193// wrapped in strict mode code which doesn't define any globals.  It's inside a
3194// function because try/catches deoptimize in certain engines.
3195
3196var cachedSetTimeout;
3197var cachedClearTimeout;
3198
3199function defaultSetTimout() {
3200    throw new Error('setTimeout has not been defined');
3201}
3202function defaultClearTimeout () {
3203    throw new Error('clearTimeout has not been defined');
3204}
3205(function () {
3206    try {
3207        if (typeof setTimeout === 'function') {
3208            cachedSetTimeout = setTimeout;
3209        } else {
3210            cachedSetTimeout = defaultSetTimout;
3211        }
3212    } catch (e) {
3213        cachedSetTimeout = defaultSetTimout;
3214    }
3215    try {
3216        if (typeof clearTimeout === 'function') {
3217            cachedClearTimeout = clearTimeout;
3218        } else {
3219            cachedClearTimeout = defaultClearTimeout;
3220        }
3221    } catch (e) {
3222        cachedClearTimeout = defaultClearTimeout;
3223    }
3224} ())
3225function runTimeout(fun) {
3226    if (cachedSetTimeout === setTimeout) {
3227        //normal enviroments in sane situations
3228        return setTimeout(fun, 0);
3229    }
3230    // if setTimeout wasn't available but was latter defined
3231    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
3232        cachedSetTimeout = setTimeout;
3233        return setTimeout(fun, 0);
3234    }
3235    try {
3236        // when when somebody has screwed with setTimeout but no I.E. maddness
3237        return cachedSetTimeout(fun, 0);
3238    } catch(e){
3239        try {
3240            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
3241            return cachedSetTimeout.call(null, fun, 0);
3242        } catch(e){
3243            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
3244            return cachedSetTimeout.call(this, fun, 0);
3245        }
3246    }
3247
3248
3249}
3250function runClearTimeout(marker) {
3251    if (cachedClearTimeout === clearTimeout) {
3252        //normal enviroments in sane situations
3253        return clearTimeout(marker);
3254    }
3255    // if clearTimeout wasn't available but was latter defined
3256    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
3257        cachedClearTimeout = clearTimeout;
3258        return clearTimeout(marker);
3259    }
3260    try {
3261        // when when somebody has screwed with setTimeout but no I.E. maddness
3262        return cachedClearTimeout(marker);
3263    } catch (e){
3264        try {
3265            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
3266            return cachedClearTimeout.call(null, marker);
3267        } catch (e){
3268            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
3269            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
3270            return cachedClearTimeout.call(this, marker);
3271        }
3272    }
3273
3274
3275
3276}
3277var queue = [];
3278var draining = false;
vendor: 5,815 bytes, lines 3279-3510
3279var currentQueue;
3280var queueIndex = -1;
3281
3282function cleanUpNextTick() {
3283    if (!draining || !currentQueue) {
3284        return;
3285    }
3286    draining = false;
3287    if (currentQueue.length) {
3288        queue = currentQueue.concat(queue);
3289    } else {
3290        queueIndex = -1;
3291    }
3292    if (queue.length) {
3293        drainQueue();
3294    }
3295}
3296
3297function drainQueue() {
3298    if (draining) {
3299        return;
3300    }
3301    var timeout = runTimeout(cleanUpNextTick);
3302    draining = true;
3303
3304    var len = queue.length;
3305    while(len) {
3306        currentQueue = queue;
3307        queue = [];
3308        while (++queueIndex < len) {
3309            if (currentQueue) {
3310                currentQueue[queueIndex].run();
3311            }
3312        }
3313        queueIndex = -1;
3314        len = queue.length;
3315    }
3316    currentQueue = null;
3317    draining = false;
3318    runClearTimeout(timeout);
3319}
3320
3321process.nextTick = function (fun) {
3322    var args = new Array(arguments.length - 1);
3323    if (arguments.length > 1) {
3324        for (var i = 1; i < arguments.length; i++) {
3325            args[i - 1] = arguments[i];
3326        }
3327    }
3328    queue.push(new Item(fun, args));
3329    if (queue.length === 1 && !draining) {
3330        runTimeout(drainQueue);
3331    }
3332};
3333
3334// v8 likes predictible objects
3335function Item(fun, array) {
3336    this.fun = fun;
3337    this.array = array;
3338}
3339Item.prototype.run = function () {
3340    this.fun.apply(null, this.array);
3341};
3342process.title = 'browser';
3343process.browser = true;
3344process.env = {};
3345process.argv = [];
3346process.version = ''; // empty string to avoid regexp issues
3347process.versions = {};
3348
3349function noop() {}
3350
3351process.on = noop;
3352process.addListener = noop;
3353process.once = noop;
3354process.off = noop;
3355process.removeListener = noop;
3356process.removeAllListeners = noop;
3357process.emit = noop;
3358process.prependListener = noop;
3359process.prependOnceListener = noop;
3360
3361process.listeners = function (name) { return [] }
3362
3363process.binding = function (name) {
3364    throw new Error('process.binding is not supported');
3365};
3366
3367process.cwd = function () { return '/' };
3368process.chdir = function (dir) {
3369    throw new Error('process.chdir is not supported');
3370};
3371process.umask = function() { return 0; };
3372
3373
3374/***/ }),
3375/* 58 */
3376/***/ (function(module, exports, __webpack_require__) {
3377
3378var NATIVE_WEAK_MAP = __webpack_require__(357);
3379var global = __webpack_require__(16);
3380var isObject = __webpack_require__(19);
3381var createNonEnumerableProperty = __webpack_require__(53);
3382var objectHas = __webpack_require__(35);
3383var shared = __webpack_require__(276);
3384var sharedKey = __webpack_require__(214);
3385var hiddenKeys = __webpack_require__(166);
3386
3387var WeakMap = global.WeakMap;
3388var set, get, has;
3389
3390var enforce = function (it) {
3391  return has(it) ? get(it) : set(it, {});
3392};
3393
3394var getterFor = function (TYPE) {
3395  return function (it) {
3396    var state;
3397    if (!isObject(it) || (state = get(it)).type !== TYPE) {
3398      throw TypeError('Incompatible receiver, ' + TYPE + ' required');
3399    } return state;
3400  };
3401};
3402
3403if (NATIVE_WEAK_MAP) {
3404  var store = shared.state || (shared.state = new WeakMap());
3405  var wmget = store.get;
3406  var wmhas = store.has;
3407  var wmset = store.set;
3408  set = function (it, metadata) {
3409    metadata.facade = it;
3410    wmset.call(store, it, metadata);
3411    return metadata;
3412  };
3413  get = function (it) {
3414    return wmget.call(store, it) || {};
3415  };
3416  has = function (it) {
3417    return wmhas.call(store, it);
3418  };
3419} else {
3420  var STATE = sharedKey('state');
3421  hiddenKeys[STATE] = true;
3422  set = function (it, metadata) {
3423    metadata.facade = it;
3424    createNonEnumerableProperty(it, STATE, metadata);
3425    return metadata;
3426  };
3427  get = function (it) {
3428    return objectHas(it, STATE) ? it[STATE] : {};
3429  };
3430  has = function (it) {
3431    return objectHas(it, STATE);
3432  };
3433}
3434
3435module.exports = {
3436  set: set,
3437  get: get,
3438  has: has,
3439  enforce: enforce,
3440  getterFor: getterFor
3441};
3442
3443
3444/***/ }),
3445/* 59 */
3446/***/ (function(module, exports) {
3447
3448module.exports = function (it) {
3449  if (typeof it != 'function') {
3450    throw TypeError(String(it) + ' is not a function');
3451  } return it;
3452};
3453
3454
3455/***/ }),
3456/* 60 */
3457/***/ (function(module, exports, __webpack_require__) {
3458
3459/**
3460 * Copyright (c) 2014-present, Facebook, Inc.
3461 *
3462 * This source code is licensed under the MIT license found in the
3463 * LICENSE file in the root directory of this source tree.
3464 */
3465
3466var runtime = (function (exports) {
3467  "use strict";
3468
3469  var Op = Object.prototype;
3470  var hasOwn = Op.hasOwnProperty;
3471  var undefined; // More compressible than void 0.
3472  var $Symbol = typeof Symbol === "function" ? Symbol : {};
3473  var iteratorSymbol = $Symbol.iterator || "@@iterator";
3474  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
3475  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
3476
3477  function define(obj, key, value) {
3478    Object.defineProperty(obj, key, {
3479      value: value,
3480      enumerable: true,
3481      configurable: true,
3482      writable: true
3483    });
3484    return obj[key];
3485  }
3486  try {
3487    // IE 8 has a broken Object.defineProperty that only works on DOM objects.
3488    define({}, "");
3489  } catch (err) {
3490    define = function(obj, key, value) {
3491      return obj[key] = value;
3492    };
3493  }
3494
3495  function wrap(innerFn, outerFn, self, tryLocsList) {
3496    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
3497    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
3498    var generator = Object.create(protoGenerator.prototype);
3499    var context = new Context(tryLocsList || []);
3500
3501    // The ._invoke method unifies the implementations of the .next,
3502    // .throw, and .return methods.
3503    generator._invoke = makeInvokeMethod(innerFn, self, context);
3504
3505    return generator;
3506  }
3507  exports.wrap = wrap;
3508
3509  // Try/catch helper to minimize deoptimizations. Returns a completion
3510  // record like context.tryEntries[i].completion. This interface could
vendor: 10,918 bytes, lines 3511-3801
3511  // have been (and was previously) designed to take a closure to be
3512  // invoked without arguments, but in all the cases we care about we
3513  // already have an existing method we want to call, so there's no need
3514  // to create a new function object. We can even get away with assuming
3515  // the method takes exactly one argument, since that happens to be true
3516  // in every case, so we don't have to touch the arguments object. The
3517  // only additional allocation required is the completion record, which
3518  // has a stable shape and so hopefully should be cheap to allocate.
3519  function tryCatch(fn, obj, arg) {
3520    try {
3521      return { type: "normal", arg: fn.call(obj, arg) };
3522    } catch (err) {
3523      return { type: "throw", arg: err };
3524    }
3525  }
3526
3527  var GenStateSuspendedStart = "suspendedStart";
3528  var GenStateSuspendedYield = "suspendedYield";
3529  var GenStateExecuting = "executing";
3530  var GenStateCompleted = "completed";
3531
3532  // Returning this object from the innerFn has the same effect as
3533  // breaking out of the dispatch switch statement.
3534  var ContinueSentinel = {};
3535
3536  // Dummy constructor functions that we use as the .constructor and
3537  // .constructor.prototype properties for functions that return Generator
3538  // objects. For full spec compliance, you may wish to configure your
3539  // minifier not to mangle the names of these two functions.
3540  function Generator() {}
3541  function GeneratorFunction() {}
3542  function GeneratorFunctionPrototype() {}
3543
3544  // This is a polyfill for %IteratorPrototype% for environments that
3545  // don't natively support it.
3546  var IteratorPrototype = {};
3547  IteratorPrototype[iteratorSymbol] = function () {
3548    return this;
3549  };
3550
3551  var getProto = Object.getPrototypeOf;
3552  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
3553  if (NativeIteratorPrototype &&
3554      NativeIteratorPrototype !== Op &&
3555      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
3556    // This environment has a native %IteratorPrototype%; use it instead
3557    // of the polyfill.
3558    IteratorPrototype = NativeIteratorPrototype;
3559  }
3560
3561  var Gp = GeneratorFunctionPrototype.prototype =
3562    Generator.prototype = Object.create(IteratorPrototype);
3563  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
3564  GeneratorFunctionPrototype.constructor = GeneratorFunction;
3565  GeneratorFunction.displayName = define(
3566    GeneratorFunctionPrototype,
3567    toStringTagSymbol,
3568    "GeneratorFunction"
3569  );
3570
3571  // Helper for defining the .next, .throw, and .return methods of the
3572  // Iterator interface in terms of a single ._invoke method.
3573  function defineIteratorMethods(prototype) {
3574    ["next", "throw", "return"].forEach(function(method) {
3575      define(prototype, method, function(arg) {
3576        return this._invoke(method, arg);
3577      });
3578    });
3579  }
3580
3581  exports.isGeneratorFunction = function(genFun) {
3582    var ctor = typeof genFun === "function" && genFun.constructor;
3583    return ctor
3584      ? ctor === GeneratorFunction ||
3585        // For the native GeneratorFunction constructor, the best we can
3586        // do is to check its .name property.
3587        (ctor.displayName || ctor.name) === "GeneratorFunction"
3588      : false;
3589  };
3590
3591  exports.mark = function(genFun) {
3592    if (Object.setPrototypeOf) {
3593      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
3594    } else {
3595      genFun.__proto__ = GeneratorFunctionPrototype;
3596      define(genFun, toStringTagSymbol, "GeneratorFunction");
3597    }
3598    genFun.prototype = Object.create(Gp);
3599    return genFun;
3600  };
3601
3602  // Within the body of any async function, `await x` is transformed to
3603  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
3604  // `hasOwn.call(value, "__await")` to determine if the yielded value is
3605  // meant to be awaited.
3606  exports.awrap = function(arg) {
3607    return { __await: arg };
3608  };
3609
3610  function AsyncIterator(generator, PromiseImpl) {
3611    function invoke(method, arg, resolve, reject) {
3612      var record = tryCatch(generator[method], generator, arg);
3613      if (record.type === "throw") {
3614        reject(record.arg);
3615      } else {
3616        var result = record.arg;
3617        var value = result.value;
3618        if (value &&
3619            typeof value === "object" &&
3620            hasOwn.call(value, "__await")) {
3621          return PromiseImpl.resolve(value.__await).then(function(value) {
3622            invoke("next", value, resolve, reject);
3623          }, function(err) {
3624            invoke("throw", err, resolve, reject);
3625          });
3626        }
3627
3628        return PromiseImpl.resolve(value).then(function(unwrapped) {
3629          // When a yielded Promise is resolved, its final value becomes
3630          // the .value of the Promise<{value,done}> result for the
3631          // current iteration.
3632          result.value = unwrapped;
3633          resolve(result);
3634        }, function(error) {
3635          // If a rejected Promise was yielded, throw the rejection back
3636          // into the async generator function so it can be handled there.
3637          return invoke("throw", error, resolve, reject);
3638        });
3639      }
3640    }
3641
3642    var previousPromise;
3643
3644    function enqueue(method, arg) {
3645      function callInvokeWithMethodAndArg() {
3646        return new PromiseImpl(function(resolve, reject) {
3647          invoke(method, arg, resolve, reject);
3648        });
3649      }
3650
3651      return previousPromise =
3652        // If enqueue has been called before, then we want to wait until
3653        // all previous Promises have been resolved before calling invoke,
3654        // so that results are always delivered in the correct order. If
3655        // enqueue has not been called before, then it is important to
3656        // call invoke immediately, without waiting on a callback to fire,
3657        // so that the async generator function has the opportunity to do
3658        // any necessary setup in a predictable way. This predictability
3659        // is why the Promise constructor synchronously invokes its
3660        // executor callback, and why async functions synchronously
3661        // execute code before the first await. Since we implement simple
3662        // async functions in terms of async generators, it is especially
3663        // important to get this right, even though it requires care.
3664        previousPromise ? previousPromise.then(
3665          callInvokeWithMethodAndArg,
3666          // Avoid propagating failures to Promises returned by later
3667          // invocations of the iterator.
3668          callInvokeWithMethodAndArg
3669        ) : callInvokeWithMethodAndArg();
3670    }
3671
3672    // Define the unified helper method that is used to implement .next,
3673    // .throw, and .return (see defineIteratorMethods).
3674    this._invoke = enqueue;
3675  }
3676
3677  defineIteratorMethods(AsyncIterator.prototype);
3678  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
3679    return this;
3680  };
3681  exports.AsyncIterator = AsyncIterator;
3682
3683  // Note that simple async functions are implemented on top of
3684  // AsyncIterator objects; they just return a Promise for the value of
3685  // the final result produced by the iterator.
3686  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
3687    if (PromiseImpl === void 0) PromiseImpl = Promise;
3688
3689    var iter = new AsyncIterator(
3690      wrap(innerFn, outerFn, self, tryLocsList),
3691      PromiseImpl
3692    );
3693
3694    return exports.isGeneratorFunction(outerFn)
3695      ? iter // If outerFn is a generator, return the full iterator.
3696      : iter.next().then(function(result) {
3697          return result.done ? result.value : iter.next();
3698        });
3699  };
3700
3701  function makeInvokeMethod(innerFn, self, context) {
3702    var state = GenStateSuspendedStart;
3703
3704    return function invoke(method, arg) {
3705      if (state === GenStateExecuting) {
3706        throw new Error("Generator is already running");
3707      }
3708
3709      if (state === GenStateCompleted) {
3710        if (method === "throw") {
3711          throw arg;
3712        }
3713
3714        // Be forgiving, per 25.3.3.3.3 of the spec:
3715        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
3716        return doneResult();
3717      }
3718
3719      context.method = method;
3720      context.arg = arg;
3721
3722      while (true) {
3723        var delegate = context.delegate;
3724        if (delegate) {
3725          var delegateResult = maybeInvokeDelegate(delegate, context);
3726          if (delegateResult) {
3727            if (delegateResult === ContinueSentinel) continue;
3728            return delegateResult;
3729          }
3730        }
3731
3732        if (context.method === "next") {
3733          // Setting context._sent for legacy support of Babel's
3734          // function.sent implementation.
3735          context.sent = context._sent = context.arg;
3736
3737        } else if (context.method === "throw") {
3738          if (state === GenStateSuspendedStart) {
3739            state = GenStateCompleted;
3740            throw context.arg;
3741          }
3742
3743          context.dispatchException(context.arg);
3744
3745        } else if (context.method === "return") {
3746          context.abrupt("return", context.arg);
3747        }
3748
3749        state = GenStateExecuting;
3750
3751        var record = tryCatch(innerFn, self, context);
3752        if (record.type === "normal") {
3753          // If an exception is thrown from innerFn, we leave state ===
3754          // GenStateExecuting and loop back for another invocation.
3755          state = context.done
3756            ? GenStateCompleted
3757            : GenStateSuspendedYield;
3758
3759          if (record.arg === ContinueSentinel) {
3760            continue;
3761          }
3762
3763          return {
3764            value: record.arg,
3765            done: context.done
3766          };
3767
3768        } else if (record.type === "throw") {
3769          state = GenStateCompleted;
3770          // Dispatch the exception by looping back around to the
3771          // context.dispatchException(context.arg) call above.
3772          context.method = "throw";
3773          context.arg = record.arg;
3774        }
3775      }
3776    };
3777  }
3778
3779  // Call delegate.iterator[context.method](context.arg) and handle the
3780  // result, either by returning a { value, done } result from the
3781  // delegate iterator, or by modifying context.method and context.arg,
3782  // setting context.delegate to null, and returning the ContinueSentinel.
3783  function maybeInvokeDelegate(delegate, context) {
3784    var method = delegate.iterator[context.method];
3785    if (method === undefined) {
3786      // A .throw or .return when the delegate iterator has no .throw
3787      // method always terminates the yield* loop.
3788      context.delegate = null;
3789
3790      if (context.method === "throw") {
3791        // Note: ["return"] must be used for ES3 parsing compatibility.
3792        if (delegate.iterator["return"]) {
3793          // If the delegate iterator has a return method, give it a
3794          // chance to clean up.
3795          context.method = "return";
3796          context.arg = undefined;
3797          maybeInvokeDelegate(delegate, context);
3798
3799          if (context.method === "throw") {
3800            // If maybeInvokeDelegate(context) changed context.method from
3801            // "return" to "throw", let that override the TypeError below.
vendor: 2,469 bytes, lines 3802-3879
3802            return ContinueSentinel;
3803          }
3804        }
3805
3806        context.method = "throw";
3807        context.arg = new TypeError(
3808          "The iterator does not provide a 'throw' method");
3809      }
3810
3811      return ContinueSentinel;
3812    }
3813
3814    var record = tryCatch(method, delegate.iterator, context.arg);
3815
3816    if (record.type === "throw") {
3817      context.method = "throw";
3818      context.arg = record.arg;
3819      context.delegate = null;
3820      return ContinueSentinel;
3821    }
3822
3823    var info = record.arg;
3824
3825    if (! info) {
3826      context.method = "throw";
3827      context.arg = new TypeError("iterator result is not an object");
3828      context.delegate = null;
3829      return ContinueSentinel;
3830    }
3831
3832    if (info.done) {
3833      // Assign the result of the finished delegate to the temporary
3834      // variable specified by delegate.resultName (see delegateYield).
3835      context[delegate.resultName] = info.value;
3836
3837      // Resume execution at the desired location (see delegateYield).
3838      context.next = delegate.nextLoc;
3839
3840      // If context.method was "throw" but the delegate handled the
3841      // exception, let the outer generator proceed normally. If
3842      // context.method was "next", forget context.arg since it has been
3843      // "consumed" by the delegate iterator. If context.method was
3844      // "return", allow the original .return call to continue in the
3845      // outer generator.
3846      if (context.method !== "return") {
3847        context.method = "next";
3848        context.arg = undefined;
3849      }
3850
3851    } else {
3852      // Re-yield the result returned by the delegate method.
3853      return info;
3854    }
3855
3856    // The delegate iterator is finished, so forget it and continue with
3857    // the outer generator.
3858    context.delegate = null;
3859    return ContinueSentinel;
3860  }
3861
3862  // Define Generator.prototype.{next,throw,return} in terms of the
3863  // unified ._invoke helper method.
3864  defineIteratorMethods(Gp);
3865
3866  define(Gp, toStringTagSymbol, "Generator");
3867
3868  // A Generator should always return itself as the iterator object when the
3869  // @@iterator function is called on it. Some browsers' implementations of the
3870  // iterator prototype chain incorrectly implement this, causing the Generator
3871  // object to not be returned from this call. This ensures that doesn't happen.
3872  // See https://github.com/facebook/regenerator/issues/274 for more details.
3873  Gp[iteratorSymbol] = function() {
3874    return this;
3875  };
3876
3877  Gp.toString = function() {
3878    return "[object Generator]";
3879  }
vendor: 8,913 bytes, lines 3879-4198
3879;
3880
3881  function pushTryEntry(locs) {
3882    var entry = { tryLoc: locs[0] };
3883
3884    if (1 in locs) {
3885      entry.catchLoc = locs[1];
3886    }
3887
3888    if (2 in locs) {
3889      entry.finallyLoc = locs[2];
3890      entry.afterLoc = locs[3];
3891    }
3892
3893    this.tryEntries.push(entry);
3894  }
3895
3896  function resetTryEntry(entry) {
3897    var record = entry.completion || {};
3898    record.type = "normal";
3899    delete record.arg;
3900    entry.completion = record;
3901  }
3902
3903  function Context(tryLocsList) {
3904    // The root entry object (effectively a try statement without a catch
3905    // or a finally block) gives us a place to store values thrown from
3906    // locations where there is no enclosing try statement.
3907    this.tryEntries = [{ tryLoc: "root" }];
3908    tryLocsList.forEach(pushTryEntry, this);
3909    this.reset(true);
3910  }
3911
3912  exports.keys = function(object) {
3913    var keys = [];
3914    for (var key in object) {
3915      keys.push(key);
3916    }
3917    keys.reverse();
3918
3919    // Rather than returning an object with a next method, we keep
3920    // things simple and return the next function itself.
3921    return function next() {
3922      while (keys.length) {
3923        var key = keys.pop();
3924        if (key in object) {
3925          next.value = key;
3926          next.done = false;
3927          return next;
3928        }
3929      }
3930
3931      // To avoid creating an additional object, we just hang the .value
3932      // and .done properties off the next function object itself. This
3933      // also ensures that the minifier will not anonymize the function.
3934      next.done = true;
3935      return next;
3936    };
3937  };
3938
3939  function values(iterable) {
3940    if (iterable) {
3941      var iteratorMethod = iterable[iteratorSymbol];
3942      if (iteratorMethod) {
3943        return iteratorMethod.call(iterable);
3944      }
3945
3946      if (typeof iterable.next === "function") {
3947        return iterable;
3948      }
3949
3950      if (!isNaN(iterable.length)) {
3951        var i = -1, next = function next() {
3952          while (++i < iterable.length) {
3953            if (hasOwn.call(iterable, i)) {
3954              next.value = iterable[i];
3955              next.done = false;
3956              return next;
3957            }
3958          }
3959
3960          next.value = undefined;
3961          next.done = true;
3962
3963          return next;
3964        };
3965
3966        return next.next = next;
3967      }
3968    }
3969
3970    // Return an iterator with no values.
3971    return { next: doneResult };
3972  }
3973  exports.values = values;
3974
3975  function doneResult() {
3976    return { value: undefined, done: true };
3977  }
3978
3979  Context.prototype = {
3980    constructor: Context,
3981
3982    reset: function(skipTempReset) {
3983      this.prev = 0;
3984      this.next = 0;
3985      // Resetting context._sent for legacy support of Babel's
3986      // function.sent implementation.
3987      this.sent = this._sent = undefined;
3988      this.done = false;
3989      this.delegate = null;
3990
3991      this.method = "next";
3992      this.arg = undefined;
3993
3994      this.tryEntries.forEach(resetTryEntry);
3995
3996      if (!skipTempReset) {
3997        for (var name in this) {
3998          // Not sure about the optimal order of these conditions:
3999          if (name.charAt(0) === "t" &&
4000              hasOwn.call(this, name) &&
4001              !isNaN(+name.slice(1))) {
4002            this[name] = undefined;
4003          }
4004        }
4005      }
4006    },
4007
4008    stop: function() {
4009      this.done = true;
4010
4011      var rootEntry = this.tryEntries[0];
4012      var rootRecord = rootEntry.completion;
4013      if (rootRecord.type === "throw") {
4014        throw rootRecord.arg;
4015      }
4016
4017      return this.rval;
4018    },
4019
4020    dispatchException: function(exception) {
4021      if (this.done) {
4022        throw exception;
4023      }
4024
4025      var context = this;
4026      function handle(loc, caught) {
4027        record.type = "throw";
4028        record.arg = exception;
4029        context.next = loc;
4030
4031        if (caught) {
4032          // If the dispatched exception was caught by a catch block,
4033          // then let that catch block handle the exception normally.
4034          context.method = "next";
4035          context.arg = undefined;
4036        }
4037
4038        return !! caught;
4039      }
4040
4041      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4042        var entry = this.tryEntries[i];
4043        var record = entry.completion;
4044
4045        if (entry.tryLoc === "root") {
4046          // Exception thrown outside of any try block that could handle
4047          // it, so set the completion value of the entire function to
4048          // throw the exception.
4049          return handle("end");
4050        }
4051
4052        if (entry.tryLoc <= this.prev) {
4053          var hasCatch = hasOwn.call(entry, "catchLoc");
4054          var hasFinally = hasOwn.call(entry, "finallyLoc");
4055
4056          if (hasCatch && hasFinally) {
4057            if (this.prev < entry.catchLoc) {
4058              return handle(entry.catchLoc, true);
4059            } else if (this.prev < entry.finallyLoc) {
4060              return handle(entry.finallyLoc);
4061            }
4062
4063          } else if (hasCatch) {
4064            if (this.prev < entry.catchLoc) {
4065              return handle(entry.catchLoc, true);
4066            }
4067
4068          } else if (hasFinally) {
4069            if (this.prev < entry.finallyLoc) {
4070              return handle(entry.finallyLoc);
4071            }
4072
4073          } else {
4074            throw new Error("try statement without catch or finally");
4075          }
4076        }
4077      }
4078    },
4079
4080    abrupt: function(type, arg) {
4081      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4082        var entry = this.tryEntries[i];
4083        if (entry.tryLoc <= this.prev &&
4084            hasOwn.call(entry, "finallyLoc") &&
4085            this.prev < entry.finallyLoc) {
4086          var finallyEntry = entry;
4087          break;
4088        }
4089      }
4090
4091      if (finallyEntry &&
4092          (type === "break" ||
4093           type === "continue") &&
4094          finallyEntry.tryLoc <= arg &&
4095          arg <= finallyEntry.finallyLoc) {
4096        // Ignore the finally entry if control is not jumping to a
4097        // location outside the try/catch block.
4098        finallyEntry = null;
4099      }
4100
4101      var record = finallyEntry ? finallyEntry.completion : {};
4102      record.type = type;
4103      record.arg = arg;
4104
4105      if (finallyEntry) {
4106        this.method = "next";
4107        this.next = finallyEntry.finallyLoc;
4108        return ContinueSentinel;
4109      }
4110
4111      return this.complete(record);
4112    },
4113
4114    complete: function(record, afterLoc) {
4115      if (record.type === "throw") {
4116        throw record.arg;
4117      }
4118
4119      if (record.type === "break" ||
4120          record.type === "continue") {
4121        this.next = record.arg;
4122      } else if (record.type === "return") {
4123        this.rval = this.arg = record.arg;
4124        this.method = "return";
4125        this.next = "end";
4126      } else if (record.type === "normal" && afterLoc) {
4127        this.next = afterLoc;
4128      }
4129
4130      return ContinueSentinel;
4131    },
4132
4133    finish: function(finallyLoc) {
4134      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4135        var entry = this.tryEntries[i];
4136        if (entry.finallyLoc === finallyLoc) {
4137          this.complete(entry.completion, entry.afterLoc);
4138          resetTryEntry(entry);
4139          return ContinueSentinel;
4140        }
4141      }
4142    },
4143
4144    "catch": function(tryLoc) {
4145      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4146        var entry = this.tryEntries[i];
4147        if (entry.tryLoc === tryLoc) {
4148          var record = entry.completion;
4149          if (record.type === "throw") {
4150            var thrown = record.arg;
4151            resetTryEntry(entry);
4152          }
4153          return thrown;
4154        }
4155      }
4156
4157      // The context.catch method must only be called with a location
4158      // argument that corresponds to a known catch block.
4159      throw new Error("illegal catch attempt");
4160    },
4161
4162    delegateYield: function(iterable, resultName, nextLoc) {
4163      this.delegate = {
4164        iterator: values(iterable),
4165        resultName: resultName,
4166        nextLoc: nextLoc
4167      };
4168
4169      if (this.method === "next") {
4170        // Deliberately forget the last sent value so that we don't
4171        // accidentally pass it on to the delegate.
4172        this.arg = undefined;
4173      }
4174
4175      return ContinueSentinel;
4176    }
4177  };
4178
4179  // Regardless of whether this script is executing as a CommonJS module
4180  // or not, return the runtime object so that we can declare the variable
4181  // regeneratorRuntime in the outer scope, which allows this module to be
4182  // injected easily by `bin/regenerator --include-runtime script.js`.
4183  return exports;
4184
4185}(
4186  // If this script is executing as a CommonJS module, use module.exports
4187  // as the regeneratorRuntime namespace. Otherwise create a new empty
4188  // object. Either way, the resulting object will be used to initialize
4189  // the regeneratorRuntime variable at the top of this file.
4190   true ? module.exports : undefined
4191));
4192
4193try {
4194  regeneratorRuntime = runtime;
4195} catch (accidentalStrictMode) {
4196  // This module should not be running in strict mode, so the above
4197  // assignment should always work unless something is misconfigured. Just
4198  // in case runtime.js accidentally runs in strict mode, 
vendor: 7,858 bytes, lines 4198-4403
4198we can escape
4199  // strict mode using a global Function call. This could conceivably fail
4200  // if a Content Security Policy forbids using Function, but in that case
4201  // the proper solution is to fix the accidental strict mode problem. If
4202  // you've misconfigured your bundler to force strict mode and applied a
4203  // CSP to forbid Function, and you're not willing to fix either of those
4204  // problems, please detail your unique predicament in a GitHub issue.
4205  Function("r", "regeneratorRuntime = r")(runtime);
4206}
4207
4208
4209/***/ }),
4210/* 61 */
4211/***/ (function(module, exports, __webpack_require__) {
4212
4213// extracted by mini-css-extract-plugin
4214module.exports = {"visuallyHidden":"ContentCard-module__visuallyHidden--6rzqt","card":"ContentCard-module__card--1Ds0J","title":"ContentCard-module__title--3Zcl_","ondemand":"ContentCard-module__ondemand--1bmb4","live":"ContentCard-module__live--3QuzU","tags":"ContentCard-module__tags--zCF-R","subtitle":"ContentCard-module__subtitle--1VNxz","imgbox":"ContentCard-module__imgbox--3scy3","description":"ContentCard-module__description--1W2ol","info":"ContentCard-module__info--2r6mU","hover":"ContentCard-module__hover--1qxg8","nohover":"ContentCard-module__nohover--179IC","noLabel":"ContentCard-module__noLabel--IbiU-","buttons":"ContentCard-module__buttons--2aMX_","controls":"ContentCard-module__controls--3YDJb","liveIcon":"ContentCard-module__liveIcon--13Mni","suggestion":"ContentCard-module__suggestion--SOZS5"};
4215
4216/***/ }),
4217/* 62 */
4218/***/ (function(module, exports, __webpack_require__) {
4219
4220var path = __webpack_require__(167);
4221var has = __webpack_require__(35);
4222var wrappedWellKnownSymbolModule = __webpack_require__(363);
4223var defineProperty = __webpack_require__(30).f;
4224
4225module.exports = function (NAME) {
4226  var Symbol = path.Symbol || (path.Symbol = {});
4227  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {
4228    value: wrappedWellKnownSymbolModule.f(NAME)
4229  });
4230};
4231
4232
4233/***/ }),
4234/* 63 */
4235/***/ (function(module, exports, __webpack_require__) {
4236
4237var DESCRIPTORS = __webpack_require__(21);
4238var fails = __webpack_require__(11);
4239var has = __webpack_require__(35);
4240
4241var defineProperty = Object.defineProperty;
4242var cache = {};
4243
4244var thrower = function (it) { throw it; };
4245
4246module.exports = function (METHOD_NAME, options) {
4247  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];
4248  if (!options) options = {};
4249  var method = [][METHOD_NAME];
4250  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
4251  var argument0 = has(options, 0) ? options[0] : thrower;
4252  var argument1 = has(options, 1) ? options[1] : undefined;
4253
4254  return cache[METHOD_NAME] = !!method && !fails(function () {
4255    if (ACCESSORS && !DESCRIPTORS) return true;
4256    var O = { length: -1 };
4257
4258    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });
4259    else O[1] = 1;
4260
4261    method.call(O, argument0, argument1);
4262  });
4263};
4264
4265
4266/***/ }),
4267/* 64 */
4268/***/ (function(module, exports, __webpack_require__) {
4269
4270// extracted by mini-css-extract-plugin
4271module.exports = {"visuallyHidden":"SearchResults-module__visuallyHidden--3oAO6","noResultsContainer":"SearchResults-module__noResultsContainer--15_mL","noResultsInner":"SearchResults-module__noResultsInner--3O_F1","noResultsP":"SearchResults-module__noResultsP--2-aDp","noResultsHeader":"SearchResults-module__noResultsHeader--FasSj","panel":"SearchResults-module__panel--h_22v","results":"SearchResults-module__results--2O5Ww","searchHistory":"SearchResults-module__searchHistory--1WtT7","noResultsCopy":"SearchResults-module__noResultsCopy--3-jy7","bold":"SearchResults-module__bold--Y_rIF"};
4272
4273/***/ }),
4274/* 65 */,
4275/* 66 */
4276/***/ (function(module, exports, __webpack_require__) {
4277
4278// toObject with fallback for non-array-like ES3 strings
4279var IndexedObject = __webpack_require__(164);
4280var requireObjectCoercible = __webpack_require__(52);
4281
4282module.exports = function (it) {
4283  return IndexedObject(requireObjectCoercible(it));
4284};
4285
4286
4287/***/ }),
4288/* 67 */
4289/***/ (function(module, exports, __webpack_require__) {
4290
4291var path = __webpack_require__(167);
4292var global = __webpack_require__(16);
4293
4294var aFunction = function (variable) {
4295  return typeof variable == 'function' ? variable : undefined;
4296};
4297
4298module.exports = function (namespace, method) {
4299  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])
4300    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
4301};
4302
4303
4304/***/ }),
4305/* 68 */
4306/***/ (function(module, exports, __webpack_require__) {
4307
4308var requireObjectCoercible = __webpack_require__(52);
4309
4310var quot = /"/g;
4311
4312// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
4313// https://tc39.github.io/ecma262/#sec-createhtml
4314module.exports = function (string, tag, attribute, value) {
4315  var S = String(requireObjectCoercible(string));
4316  var p1 = '<' + tag;
4317  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
4318  return p1 + '>' + S + '</' + tag + '>';
4319};
4320
4321
4322/***/ }),
4323/* 69 */
4324/***/ (function(module, exports, __webpack_require__) {
4325
4326var fails = __webpack_require__(11);
4327
4328// check the existence of a method, lowercase
4329// of a tag and escaping quotes in arguments
4330module.exports = function (METHOD_NAME) {
4331  return fails(function () {
4332    var test = ''[METHOD_NAME]('"');
4333    return test !== test.toLowerCase() || test.split('"').length > 3;
4334  });
4335};
4336
4337
4338/***/ }),
4339/* 70 */
4340/***/ (function(module, exports, __webpack_require__) {
4341
4342"use strict";
4343
4344var $ = __webpack_require__(2);
4345var $filter = __webpack_require__(46).filter;
4346var arrayMethodHasSpeciesSupport = __webpack_require__(175);
4347var arrayMethodUsesToLength = __webpack_require__(63);
4348
4349var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
4350// Edge 14- issue
4351var USES_TO_LENGTH = arrayMethodUsesToLength('filter');
4352
4353// `Array.prototype.filter` method
4354// https://tc39.github.io/ecma262/#sec-array.prototype.filter
4355// with adding support of @@species
4356$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
4357  filter: function filter(callbackfn /* , thisArg */) {
4358    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4359  }
4360});
4361
4362
4363/***/ }),
4364/* 71 */
4365/***/ (function(module, exports, __webpack_require__) {
4366
4367"use strict";
4368
4369var $ = __webpack_require__(2);
4370var global = __webpack_require__(16);
4371var getBuiltIn = __webpack_require__(67);
4372var IS_PURE = __webpack_require__(72);
4373var DESCRIPTORS = __webpack_require__(21);
4374var NATIVE_SYMBOL = __webpack_require__(281);
4375var USE_SYMBOL_AS_UID = __webpack_require__(360);
4376var fails = __webpack_require__(11);
4377var has = __webpack_require__(35);
4378var isArray = __webpack_require__(133);
4379var isObject = __webpack_require__(19);
4380var anObject = __webpack_require__(20);
4381var toObject = __webpack_require__(33);
4382var toIndexedObject = __webpack_require__(66);
4383var toPrimitive = __webpack_require__(79);
4384var createPropertyDescriptor = __webpack_require__(100);
4385var nativeObjectCreate = __webpack_require__(92);
4386var objectKeys = __webpack_require__(170);
4387var getOwnPropertyNamesModule = __webpack_require__(132);
4388var getOwnPropertyNamesExternal = __webpack_require__(362);
4389var getOwnPropertySymbolsModule = __webpack_require__(280);
4390var getOwnPropertyDescriptorModule = __webpack_require__(51);
4391var definePropertyModule = __webpack_require__(30);
4392var propertyIsEnumerableModule = __webpack_require__(213);
4393var createNonEnumerableProperty = __webpack_require__(53);
4394var redefine = __webpack_require__(54);
4395var shared = __webpack_require__(277);
4396var sharedKey = __webpack_require__(214);
4397var hiddenKeys = __webpack_require__(166);
4398var uid = __webpack_require__(165);
4399var wellKnownSymbol = __webpack_require__(23);
4400var wrappedWellKnownSymbolModule = __webpack_require__(363);
4401var defineWellKnownSymbol = __webpack_require__(62);
4402var setToStringTag = __webpack_require__(80);
4403var InternalStateModule = __webpack_require__(58);
4404var $forEach = __webpack_require__(46
vendor: 10,870 bytes, lines 4404-4682
4404).forEach;
4405
4406var HIDDEN = sharedKey('hidden');
4407var SYMBOL = 'Symbol';
4408var PROTOTYPE = 'prototype';
4409var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
4410var setInternalState = InternalStateModule.set;
4411var getInternalState = InternalStateModule.getterFor(SYMBOL);
4412var ObjectPrototype = Object[PROTOTYPE];
4413var $Symbol = global.Symbol;
4414var $stringify = getBuiltIn('JSON', 'stringify');
4415var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
4416var nativeDefineProperty = definePropertyModule.f;
4417var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
4418var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
4419var AllSymbols = shared('symbols');
4420var ObjectPrototypeSymbols = shared('op-symbols');
4421var StringToSymbolRegistry = shared('string-to-symbol-registry');
4422var SymbolToStringRegistry = shared('symbol-to-string-registry');
4423var WellKnownSymbolsStore = shared('wks');
4424var QObject = global.QObject;
4425// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
4426var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
4427
4428// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
4429var setSymbolDescriptor = DESCRIPTORS && fails(function () {
4430  return nativeObjectCreate(nativeDefineProperty({}, 'a', {
4431    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }
4432  })).a != 7;
4433}) ? function (O, P, Attributes) {
4434  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
4435  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];
4436  nativeDefineProperty(O, P, Attributes);
4437  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
4438    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
4439  }
4440} : nativeDefineProperty;
4441
4442var wrap = function (tag, description) {
4443  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
4444  setInternalState(symbol, {
4445    type: SYMBOL,
4446    tag: tag,
4447    description: description
4448  });
4449  if (!DESCRIPTORS) symbol.description = description;
4450  return symbol;
4451};
4452
4453var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
4454  return typeof it == 'symbol';
4455} : function (it) {
4456  return Object(it) instanceof $Symbol;
4457};
4458
4459var $defineProperty = function defineProperty(O, P, Attributes) {
4460  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
4461  anObject(O);
4462  var key = toPrimitive(P, true);
4463  anObject(Attributes);
4464  if (has(AllSymbols, key)) {
4465    if (!Attributes.enumerable) {
4466      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
4467      O[HIDDEN][key] = true;
4468    } else {
4469      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
4470      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
4471    } return setSymbolDescriptor(O, key, Attributes);
4472  } return nativeDefineProperty(O, key, Attributes);
4473};
4474
4475var $defineProperties = function defineProperties(O, Properties) {
4476  anObject(O);
4477  var properties = toIndexedObject(Properties);
4478  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
4479  $forEach(keys, function (key) {
4480    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);
4481  });
4482  return O;
4483};
4484
4485var $create = function create(O, Properties) {
4486  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
4487};
4488
4489var $propertyIsEnumerable = function propertyIsEnumerable(V) {
4490  var P = toPrimitive(V, true);
4491  var enumerable = nativePropertyIsEnumerable.call(this, P);
4492  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;
4493  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
4494};
4495
4496var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
4497  var it = toIndexedObject(O);
4498  var key = toPrimitive(P, true);
4499  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;
4500  var descriptor = nativeGetOwnPropertyDescriptor(it, key);
4501  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
4502    descriptor.enumerable = true;
4503  }
4504  return descriptor;
4505};
4506
4507var $getOwnPropertyNames = function getOwnPropertyNames(O) {
4508  var names = nativeGetOwnPropertyNames(toIndexedObject(O));
4509  var result = [];
4510  $forEach(names, function (key) {
4511    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);
4512  });
4513  return result;
4514};
4515
4516var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
4517  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
4518  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
4519  var result = [];
4520  $forEach(names, function (key) {
4521    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
4522      result.push(AllSymbols[key]);
4523    }
4524  });
4525  return result;
4526};
4527
4528// `Symbol` constructor
4529// https://tc39.github.io/ecma262/#sec-symbol-constructor
4530if (!NATIVE_SYMBOL) {
4531  $Symbol = function Symbol() {
4532    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');
4533    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
4534    var tag = uid(description);
4535    var setter = function (value) {
4536      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);
4537      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
4538      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
4539    };
4540    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });
4541    return wrap(tag, description);
4542  };
4543
4544  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
4545    return getInternalState(this).tag;
4546  });
4547
4548  redefine($Symbol, 'withoutSetter', function (description) {
4549    return wrap(uid(description), description);
4550  });
4551
4552  propertyIsEnumerableModule.f = $propertyIsEnumerable;
4553  definePropertyModule.f = $defineProperty;
4554  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
4555  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
4556  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
4557
4558  wrappedWellKnownSymbolModule.f = function (name) {
4559    return wrap(wellKnownSymbol(name), name);
4560  };
4561
4562  if (DESCRIPTORS) {
4563    // https://github.com/tc39/proposal-Symbol-description
4564    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
4565      configurable: true,
4566      get: function description() {
4567        return getInternalState(this).description;
4568      }
4569    });
4570    if (!IS_PURE) {
4571      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
4572    }
4573  }
4574}
4575
4576$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {
4577  Symbol: $Symbol
4578});
4579
4580$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
4581  defineWellKnownSymbol(name);
4582});
4583
4584$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {
4585  // `Symbol.for` method
4586  // https://tc39.github.io/ecma262/#sec-symbol.for
4587  'for': function (key) {
4588    var string = String(key);
4589    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
4590    var symbol = $Symbol(string);
4591    StringToSymbolRegistry[string] = symbol;
4592    SymbolToStringRegistry[symbol] = string;
4593    return symbol;
4594  },
4595  // `Symbol.keyFor` method
4596  // https://tc39.github.io/ecma262/#sec-symbol.keyfor
4597  keyFor: function keyFor(sym) {
4598    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');
4599    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
4600  },
4601  useSetter: function () { USE_SETTER = true; },
4602  useSimple: function () { USE_SETTER = false; }
4603});
4604
4605$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {
4606  // `Object.create` method
4607  // https://tc39.github.io/ecma262/#sec-object.create
4608  create: $create,
4609  // `Object.defineProperty` method
4610  // https://tc39.github.io/ecma262/#sec-object.defineproperty
4611  defineProperty: $defineProperty,
4612  // `Object.defineProperties` method
4613  // https://tc39.github.io/ecma262/#sec-object.defineproperties
4614  defineProperties: $defineProperties,
4615  // `Object.getOwnPropertyDescriptor` method
4616  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors
4617  getOwnPropertyDescriptor: $getOwnPropertyDescriptor
4618});
4619
4620$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {
4621  // `Object.getOwnPropertyNames` method
4622  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
4623  getOwnPropertyNames: $getOwnPropertyNames,
4624  // `Object.getOwnPropertySymbols` method
4625  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols
4626  getOwnPropertySymbols: $getOwnPropertySymbols
4627});
4628
4629// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
4630// https://bugs.chromium.org/p/v8/issues/detail?id=3443
4631$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {
4632  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
4633    return getOwnPropertySymbolsModule.f(toObject(it));
4634  }
4635});
4636
4637// `JSON.stringify` method behavior with symbols
4638// https://tc39.github.io/ecma262/#sec-json.stringify
4639if ($stringify) {
4640  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
4641    var symbol = $Symbol();
4642    // MS Edge converts symbol values to JSON as {}
4643    return $stringify([symbol]) != '[null]'
4644      // WebKit converts symbol values to JSON as null
4645      || $stringify({ a: symbol }) != '{}'
4646      // V8 throws on boxed symbols
4647      || $stringify(Object(symbol)) != '{}';
4648  });
4649
4650  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {
4651    // eslint-disable-next-line no-unused-vars
4652    stringify: function stringify(it, replacer, space) {
4653      var args = [it];
4654      var index = 1;
4655      var $replacer;
4656      while (arguments.length > index) args.push(arguments[index++]);
4657      $replacer = replacer;
4658      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
4659      if (!isArray(replacer)) replacer = function (key, value) {
4660        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
4661        if (!isSymbol(value)) return value;
4662      };
4663      args[1] = replacer;
4664      return $stringify.apply(null, args);
4665    }
4666  });
4667}
4668
4669// `Symbol.prototype[@@toPrimitive]` method
4670// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive
4671if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
4672  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
4673}
4674// `Symbol.prototype[@@toStringTag]` property
4675// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag
4676setToStringTag($Symbol, SYMBOL);
4677
4678hiddenKeys[HIDDEN] = true;
4679
4680
4681/***/ }),
4682/* 
vendor: 5,393 bytes, lines 4682-4849
468272 */
4683/***/ (function(module, exports) {
4684
4685module.exports = false;
4686
4687
4688/***/ }),
4689/* 73 */
4690/***/ (function(module, exports) {
4691
4692var ceil = Math.ceil;
4693var floor = Math.floor;
4694
4695// `ToInteger` abstract operation
4696// https://tc39.github.io/ecma262/#sec-tointeger
4697module.exports = function (argument) {
4698  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
4699};
4700
4701
4702/***/ }),
4703/* 74 */
4704/***/ (function(module, exports, __webpack_require__) {
4705
4706var has = __webpack_require__(35);
4707var toObject = __webpack_require__(33);
4708var sharedKey = __webpack_require__(214);
4709var CORRECT_PROTOTYPE_GETTER = __webpack_require__(283);
4710
4711var IE_PROTO = sharedKey('IE_PROTO');
4712var ObjectPrototype = Object.prototype;
4713
4714// `Object.getPrototypeOf` method
4715// https://tc39.github.io/ecma262/#sec-object.getprototypeof
4716module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
4717  O = toObject(O);
4718  if (has(O, IE_PROTO)) return O[IE_PROTO];
4719  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
4720    return O.constructor.prototype;
4721  } return O instanceof Object ? ObjectPrototype : null;
4722};
4723
4724
4725/***/ }),
4726/* 75 */
4727/***/ (function(module, exports, __webpack_require__) {
4728
4729"use strict";
4730
4731var $ = __webpack_require__(2);
4732var fails = __webpack_require__(11);
4733var isArray = __webpack_require__(133);
4734var isObject = __webpack_require__(19);
4735var toObject = __webpack_require__(33);
4736var toLength = __webpack_require__(28);
4737var createProperty = __webpack_require__(134);
4738var arraySpeciesCreate = __webpack_require__(171);
4739var arrayMethodHasSpeciesSupport = __webpack_require__(175);
4740var wellKnownSymbol = __webpack_require__(23);
4741var V8_VERSION = __webpack_require__(176);
4742
4743var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
4744var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
4745var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
4746
4747// We can't use this feature detection in V8 since it causes
4748// deoptimization and serious performance degradation
4749// https://github.com/zloirock/core-js/issues/679
4750var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
4751  var array = [];
4752  array[IS_CONCAT_SPREADABLE] = false;
4753  return array.concat()[0] !== array;
4754});
4755
4756var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
4757
4758var isConcatSpreadable = function (O) {
4759  if (!isObject(O)) return false;
4760  var spreadable = O[IS_CONCAT_SPREADABLE];
4761  return spreadable !== undefined ? !!spreadable : isArray(O);
4762};
4763
4764var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
4765
4766// `Array.prototype.concat` method
4767// https://tc39.github.io/ecma262/#sec-array.prototype.concat
4768// with adding support of @@isConcatSpreadable and @@species
4769$({ target: 'Array', proto: true, forced: FORCED }, {
4770  concat: function concat(arg) { // eslint-disable-line no-unused-vars
4771    var O = toObject(this);
4772    var A = arraySpeciesCreate(O, 0);
4773    var n = 0;
4774    var i, k, length, len, E;
4775    for (i = -1, length = arguments.length; i < length; i++) {
4776      E = i === -1 ? O : arguments[i];
4777      if (isConcatSpreadable(E)) {
4778        len = toLength(E.length);
4779        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
4780        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
4781      } else {
4782        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
4783        createProperty(A, n++, E);
4784      }
4785    }
4786    A.length = n;
4787    return A;
4788  }
4789});
4790
4791
4792/***/ }),
4793/* 76 */,
4794/* 77 */
4795/***/ (function(module, exports, __webpack_require__) {
4796
4797"use strict";
4798
4799var $ = __webpack_require__(2);
4800var $map = __webpack_require__(46).map;
4801var arrayMethodHasSpeciesSupport = __webpack_require__(175);
4802var arrayMethodUsesToLength = __webpack_require__(63);
4803
4804var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
4805// FF49- issue
4806var USES_TO_LENGTH = arrayMethodUsesToLength('map');
4807
4808// `Array.prototype.map` method
4809// https://tc39.github.io/ecma262/#sec-array.prototype.map
4810// with adding support of @@species
4811$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
4812  map: function map(callbackfn /* , thisArg */) {
4813    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4814  }
4815});
4816
4817
4818/***/ }),
4819/* 78 */,
4820/* 79 */
4821/***/ (function(module, exports, __webpack_require__) {
4822
4823var isObject = __webpack_require__(19);
4824
4825// `ToPrimitive` abstract operation
4826// https://tc39.github.io/ecma262/#sec-toprimitive
4827// instead of the ES6 spec version, we didn't implement @@toPrimitive case
4828// and the second argument - flag - preferred type is a string
4829module.exports = function (input, PREFERRED_STRING) {
4830  if (!isObject(input)) return input;
4831  var fn, val;
4832  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
4833  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
4834  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
4835  throw TypeError("Can't convert object to primitive value");
4836};
4837
4838
4839/***/ }),
4840/* 80 */
4841/***/ (function(module, exports, __webpack_require__) {
4842
4843var defineProperty = __webpack_require__(30).f;
4844var has = __webpack_require__(35);
4845var wellKnownSymbol = __webpack_require__(23);
4846
4847var TO_STRING_TAG = wellKnownSymbol('toStringTag');
4848
4849module.exports = function (it, TAG, STATIC) {
4850  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
4851    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });
4852  }
4853};
4854
4855
4856/***/ }),
4857/* 81 */
4858/***/ (function(module, exports, __webpack_require__) {
4859
4860// extracted by mini-css-extract-plugin
4861module.exports = {"visuallyHidden":"FaveButton-module__visuallyHidden--1IKOa","buttoncontainer":"FaveButton-module__buttoncontainer--106Z2","button":"FaveButton-module__button--2kGy8","hover":"FaveButton-module__hover--3YDK-","nohover":"FaveButton-module__nohover--3nU5M","faved":"FaveButton-module__faved--VkuE0","dark":"FaveButton-module__dark--3jhHY"};
4862
4863/***/ }),
4864/* 82 */
4865/***/ (function(module, exports, __webpack_require__) {
4866
4867// extracted by mini-css-extract-plugin
4868module.exports = {"visuallyHidden":"FaveTip-module__visuallyHidden--3kYwb","closeText":"FaveTip-module__closeText--1rMKD","faveTipText":"FaveTip-module__faveTipText--2T5Ts","faveTipHeader":"FaveTip-module__faveTipHeader--1Spf9","faveTipContainer":"FaveTip-module__faveTipContainer--1IUs5","tip":"FaveTip-module__tip--2rlPH","faveTipContainerInner":"FaveTip-module__faveTipContainerInner--1kJnY","heartIcon":"FaveTip-module__heartIcon--61Yh9"};
4869
4870/***/ }),
4871/* 83 */
4872/***/ (function(module, exports, __webpack_require__) {
4873
4874// extracted by mini-css-extract-plugin
4875module.exports = {"visuallyHidden":"SearchPanel-module__visuallyHidden--38n8o","searchForm":"SearchPanel-module__searchForm--2vBYV","input":"SearchPanel-module__input--14-fI","errorContainer":"SearchPanel-module__errorContainer--3KhmD","errorInner":"SearchPanel-module__errorInner--2_P7e","errorText":"SearchPanel-module__errorText--25H4x","errorTitle":"SearchPanel-module__errorTitle--3I-Id","header":"SearchPanel-module__header--NpUXt","title":"SearchPanel-module__title--3ixas","button":"SearchPanel-module__button--11IkS","wrap":"SearchPanel-module__wrap--2NLy5","searchPanelContainer":"SearchPanel-module__searchPanelContainer--3gkCD","panel":"SearchPanel-module__panel--M6apk","searchIcon":"SearchPanel-module__searchIcon--li_8i","spinner":"SearchPanel-module__spinner--2ztQG"};
4876
4877/***/ }),
4878/* 84 */,
4879/* 85 */,
4880/* 86 */
4881/***/ (function(module, exports, __webpack_require__) {
4882
4883// extracted by mini-css-extract-plugin
4884module.exports = {"visuallyHidden":"NowPlayingWidget-module__visuallyHidden--3QypZ","header":"NowPlayingWidget-module__header--2jl-6","subtitle":"NowPlayingWidget-module__subtitle--2dLMP","title":"NowPlayingWidget-module__title--rYyMw","description":"NowPlayingWidget-module__description--3iaY6","time":"NowPlayingWidget-module__time--2BY1y","wrap":"NowPlayingWidget-module__wrap--37HU8","stacked":"NowPlayingWidget-module__stacked--3dtg0","body":"NowPlayingWidget-module__body--7rynT","details":"NowPlayingWidget-module__details--qhtjh","nowPlaying":"NowPlayingWidget-module__nowPlaying--2AiZH","expanded":"NowPlayingWidget-module__expanded--3QKxa","compact":"NowPlayingWidget-module__compact---v5sF","figure":"NowPlayingWidget-module__figure--2qTLm","stationLogo":"NowPlayingWidget-module__stationLogo--wdLKs","live":"NowPlayingWidget-module__live--1aaGA","od":"NowPlayingWidget-module__od--tym1H","info":"NowPlayingWidget-module__info--2gWEY","list":"NowPlayingWidget-module__list--39cB3","hiddenWhenExpanded":"NowPlayingWidget-module__hiddenWhenExpanded--10euZ","songbox":"NowPlayingWidget-module__songbox--sRFzb","oldsong":"NowPlayingWidget-module__oldsong--26n0g","current":"NowPlayingWidget-module__current--2e0iA","fade":"NowPlayingWidget-module__fade--3q2Zk"};
4885
4886/***/ }),
4887/* 87 */
4888/***/ (function(module, exports, __webpack_require__) {
4889
4890"use strict";
4891
4892var $ = __webpack_require__(2);
4893var forEach = __webpack_require__(369);
4894
4895// `Array.prototype.forEach` method
4896// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
4897$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {
4898  forEach: forEach
4899});
4900
4901
4902/***/ }),
4903/* 88 */
4904/***/ (function(module, exports, __webpack_require__) {
4905
4906var global = __webpack_require__(16);
4907var DOMIterables = __webpack_require__(391);
4908var forEach = __webpack_require__(369);
4909var createNonEnumerableProperty = __webpack_require__(53);
4910
4911for (var COLLECTION_NAME in DOMIterables) {
4912  var Collection = global[COLLECTION_NAME];
4913  var CollectionPrototype = Collection && Collection.prototype;
4914  // some Chrome versions have non-configurable methods on DOMTokenList
4915  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {
4916    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);
4917  } catch (error) {
4918    CollectionPrototype.forEach = forEach;
4919  }
4920}
4921
4922
4923/***/ }),
4924/* 89 */
4925/***/ (function(module, exports, __webpack_require__) {
4926
4927var $ = __webpack_require__(2);
4928var toObject = __webpack_require__(33);
4929var nativeKeys = __webpack_require__(170);
4930var fails = __webpack_require__(11);
4931
4932var FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });
4933
4934// `Object.keys` method
4935// https://tc39.github.io/ecma262/#sec-object.keys
4936$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
4937  keys: function keys(it) {
4938    return nativeKeys(toObject(it));
4939  }
4940});
4941
4942
4943/***/ }),
4944/* 90 */,
4945/* 91 */
4946/***/ (function(module, exports, __webpack_require__) {
4947
4948// extracted by mini-css-extract-plugin
vendor: 7,524 bytes, lines 4949-5077
4949module.exports = {"visuallyHidden":"TransportControls-module__visuallyHidden--16k1X","prompt":"TransportControls-module__prompt--2mGLh","wrapper":"TransportControls-module__wrapper--3YThJ","dark":"TransportControls-module__dark--3fzWJ","body":"TransportControls-module__body--2P9Fx","noscrubs":"TransportControls-module__noscrubs---BwC0","buttonsouter":"TransportControls-module__buttonsouter--39SGI","buttons":"TransportControls-module__buttons--10vuI","compact":"TransportControls-module__compact--2OueO","stalled":"TransportControls-module__stalled--3DBdd","meta":"TransportControls-module__meta--39_gq","fave":"TransportControls-module__fave--9CELW"};
4950
4951/***/ }),
4952/* 92 */
4953/***/ (function(module, exports, __webpack_require__) {
4954
4955var anObject = __webpack_require__(20);
4956var defineProperties = __webpack_require__(282);
4957var enumBugKeys = __webpack_require__(279);
4958var hiddenKeys = __webpack_require__(166);
4959var html = __webpack_require__(361);
4960var documentCreateElement = __webpack_require__(273);
4961var sharedKey = __webpack_require__(214);
4962
4963var GT = '>';
4964var LT = '<';
4965var PROTOTYPE = 'prototype';
4966var SCRIPT = 'script';
4967var IE_PROTO = sharedKey('IE_PROTO');
4968
4969var EmptyConstructor = function () { /* empty */ };
4970
4971var scriptTag = function (content) {
4972  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
4973};
4974
4975// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
4976var NullProtoObjectViaActiveX = function (activeXDocument) {
4977  activeXDocument.write(scriptTag(''));
4978  activeXDocument.close();
4979  var temp = activeXDocument.parentWindow.Object;
4980  activeXDocument = null; // avoid memory leak
4981  return temp;
4982};
4983
4984// Create object with fake `null` prototype: use iframe Object with cleared prototype
4985var NullProtoObjectViaIFrame = function () {
4986  // Thrash, waste and sodomy: IE GC bug
4987  var iframe = documentCreateElement('iframe');
4988  var JS = 'java' + SCRIPT + ':';
4989  var iframeDocument;
4990  iframe.style.display = 'none';
4991  html.appendChild(iframe);
4992  // https://github.com/zloirock/core-js/issues/475
4993  iframe.src = String(JS);
4994  iframeDocument = iframe.contentWindow.document;
4995  iframeDocument.open();
4996  iframeDocument.write(scriptTag('document.F=Object'));
4997  iframeDocument.close();
4998  return iframeDocument.F;
4999};
5000
5001// Check for document.domain and active x support
5002// No need to use active x approach when document.domain is not set
5003// see https://github.com/es-shims/es5-shim/issues/150
5004// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
5005// avoid IE GC bug
5006var activeXDocument;
5007var NullProtoObject = function () {
5008  try {
5009    /* global ActiveXObject */
5010    activeXDocument = document.domain && new ActiveXObject('htmlfile');
5011  } catch (error) { /* ignore */ }
5012  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
5013  var length = enumBugKeys.length;
5014  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
5015  return NullProtoObject();
5016};
5017
5018hiddenKeys[IE_PROTO] = true;
5019
5020// `Object.create` method
5021// https://tc39.github.io/ecma262/#sec-object.create
5022module.exports = Object.create || function create(O, Properties) {
5023  var result;
5024  if (O !== null) {
5025    EmptyConstructor[PROTOTYPE] = anObject(O);
5026    result = new EmptyConstructor();
5027    EmptyConstructor[PROTOTYPE] = null;
5028    // add "__proto__" for Object.getPrototypeOf polyfill
5029    result[IE_PROTO] = O;
5030  } else result = NullProtoObject();
5031  return Properties === undefined ? result : defineProperties(result, Properties);
5032};
5033
5034
5035/***/ }),
5036/* 93 */
5037/***/ (function(module, exports, __webpack_require__) {
5038
5039"use strict";
5040
5041var $ = __webpack_require__(2);
5042var exec = __webpack_require__(221);
5043
5044$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {
5045  exec: exec
5046});
5047
5048
5049/***/ }),
5050/* 94 */,
5051/* 95 */
5052/***/ (function(module, __webpack_exports__, __webpack_require__) {
5053
5054"use strict";
5055/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71);
5056/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__);
5057/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70);
5058/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__);
5059/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(87);
5060/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__);
5061/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98);
5062/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3__);
5063/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99);
5064/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__);
5065/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89);
5066/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5__);
5067/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(88);
5068/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6__);
5069/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);
5070/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__);
5071/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);
5072/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8__);
5073/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60);
5074/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_9__);
5075/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13);
5076/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_10__);
5077/* harmony import */ var fetch_jsonp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(47
50777);
5078/* harmony import */ var fetch_jsonp__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(fetch_jsonp__WEBPACK_IMPORTED_MODULE_11__);
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5092
5093function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_8___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5094
5095
5096
5097function fetchJsonpWrapper(_x) {
5098  return _fetchJsonpWrapper.apply(this, arguments);
5099}
5100
5101function _fetchJsonpWrapper() {
5102  _fetchJsonpWrapper = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_10___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default.a.mark(function _callee(url) {
5103    var options,
5104        _options,
5105        x,
5106        _args = arguments;
5107
5108    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default.a.wrap(function _callee$(_context) {
5109      while (1) {
5110        switch (_context.prev = _context.next) {
5111          case 0:
5112            options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
5113            _options = _objectSpread({
5114              // timeout matches the default for the previous lib (jsonp-promise)
5115              timeout: 15000,
5116              // hardcoded jsonp fn name, else it will have a dynamic name.
5117              // If this needs to be removed, check if it's being utilised evverywhere
5118              // it needs to - e.g. in the case of caching server-side.
5119              // see (https://github.com/camsong/fetch-jsonp#difference-between-jsonpcallback-and-jsonpcallbackfunction)
5120              jsonpCallbackFunction: "cb"
5121            }, options);
5122            _context.next = 4;
5123            return fetch_jsonp__WEBPACK_IMPORTED_MODULE_11___default()(url, _options);
5124
5125          case 4:
5126            x = _context.sent;
5127            return _context.abrupt("return", x);
5128
5129          case 6:
5130          case "end":
5131            return _context.stop();
5132        }
5133      }
5134    }, _callee);
5135  }));
5136  return _fetchJsonpWrapper.apply(this, arguments);
5137}
5138
5139/* harmony default export */ __webpack_exports__["a"] = (fetchJsonpWrapper);
5140
5141/***/ }),
5142/* 96 */
5143/***/ (function(module, exports, __webpack_require__) {
5144
5145// extracted by mini-css-extract-plugin
5146module.exports = {"visuallyHidden":"SearchSuggestions-module__visuallyHidden--15sYu","quickSearch":"SearchSuggestions-module__quickSearch--1vvHb","title":"SearchSuggestions-module__title--1cCFQ","container":"SearchSuggestions-module__container--3sdSS","section":"SearchSuggestions-module__section--CrHik","suggestions":"SearchSuggestions-module__suggestions--2nefN","head":"SearchSuggestions-module__head--O2f9U","spinner":"SearchSuggestions-module__spinner--2K2U0","button":"SearchSuggestions-module__button--36MMW"};
5147
5148/***/ }),
5149/* 97 */,
5150/* 98 */
5151/***/ (function(module, exports, __webpack_require__) {
5152
5153var $ = __webpack_require__(2);
5154var fails = __webpack_require__(11);
5155var toIndexedObject = __webpack_require__(66);
5156var nativeGetOwnPropertyDescriptor = __webpack_require__(51).f;
5157var DESCRIPTORS = __webpack_require__(21);
5158
5159var FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });
5160var FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;
5161
5162// `Object.getOwnPropertyDescriptor` method
5163// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
5164$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {
5165  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
5166    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);
5167  }
5168});
5169
5170
5171/***/ }),
5172/* 99 */
5173/***/ (function(module, exports, __webpack_require__) {
5174
5175var $ = __webpack_require__(2);
5176var DESCRIPTORS = __webpack_require__(21);
5177var ownKeys = __webpack_require__(278);
5178var toIndexedObject = __webpack_require__(66);
5179var getOwnPropertyDescriptorModule = __webpack_require__(51);
5180var createProperty = __webpack_require__(134);
5181
5182// `Object.getOwnPropertyDescriptors` method
5183// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors
5184$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
5185  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
5186    var O = toIndexedObject(object);
5187    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
5188    var keys = ownKeys(O);
5189    var result = {};
5190    var index = 0;
5191    var key, descriptor;
5192    while (keys.length > index) {
5193      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
5194      if (descriptor !== undefined) createProperty(result, key, descriptor);
5195    }
5196    return result;
5197  }
5198});
5199
5200
5201/***/ }),
5202/* 100 */
vendor: 2,856 bytes, lines 5203-5298
5203/***/ (function(module, exports) {
5204
5205module.exports = function (bitmap, value) {
5206  return {
5207    enumerable: !(bitmap & 1),
5208    configurable: !(bitmap & 2),
5209    writable: !(bitmap & 4),
5210    value: value
5211  };
5212};
5213
5214
5215/***/ }),
5216/* 101 */
5217/***/ (function(module, exports) {
5218
5219var toString = {}.toString;
5220
5221module.exports = function (it) {
5222  return toString.call(it).slice(8, -1);
5223};
5224
5225
5226/***/ }),
5227/* 102 */
5228/***/ (function(module, exports, __webpack_require__) {
5229
5230"use strict";
5231
5232var fails = __webpack_require__(11);
5233
5234module.exports = function (METHOD_NAME, argument) {
5235  var method = [][METHOD_NAME];
5236  return !!method && fails(function () {
5237    // eslint-disable-next-line no-useless-call,no-throw-literal
5238    method.call(null, argument || function () { throw 1; }, 1);
5239  });
5240};
5241
5242
5243/***/ }),
5244/* 103 */
5245/***/ (function(module, exports, __webpack_require__) {
5246
5247var anObject = __webpack_require__(20);
5248var aFunction = __webpack_require__(59);
5249var wellKnownSymbol = __webpack_require__(23);
5250
5251var SPECIES = wellKnownSymbol('species');
5252
5253// `SpeciesConstructor` abstract operation
5254// https://tc39.github.io/ecma262/#sec-speciesconstructor
5255module.exports = function (O, defaultConstructor) {
5256  var C = anObject(O).constructor;
5257  var S;
5258  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
5259};
5260
5261
5262/***/ }),
5263/* 104 */
5264/***/ (function(module, exports, __webpack_require__) {
5265
5266"use strict";
5267
5268var $ = __webpack_require__(2);
5269var global = __webpack_require__(16);
5270var DESCRIPTORS = __webpack_require__(21);
5271var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(298);
5272var ArrayBufferViewCore = __webpack_require__(29);
5273var ArrayBufferModule = __webpack_require__(230);
5274var anInstance = __webpack_require__(119);
5275var createPropertyDescriptor = __webpack_require__(100);
5276var createNonEnumerableProperty = __webpack_require__(53);
5277var toLength = __webpack_require__(28);
5278var toIndex = __webpack_require__(388);
5279var toOffset = __webpack_require__(389);
5280var toPrimitive = __webpack_require__(79);
5281var has = __webpack_require__(35);
5282var classof = __webpack_require__(174);
5283var isObject = __webpack_require__(19);
5284var create = __webpack_require__(92);
5285var setPrototypeOf = __webpack_require__(116);
5286var getOwnPropertyNames = __webpack_require__(132).f;
5287var typedArrayFrom = __webpack_require__(390);
5288var forEach = __webpack_require__(46).forEach;
5289var setSpecies = __webpack_require__(147);
5290var definePropertyModule = __webpack_require__(30);
5291var getOwnPropertyDescriptorModule = __webpack_require__(51);
5292var InternalStateModule = __webpack_require__(58);
5293var inheritIfRequired = __webpack_require__(226);
5294
5295var getInternalState = InternalStateModule.get;
5296var setInternalState = InternalStateModule.set;
5297var nativeDefineProperty = definePropertyModule.f;
5298var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
5299var round = Math.round;
5300var RangeError = global.RangeError;
5301var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
5302var DataView = ArrayBufferModule.DataView;
5303var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
5304var TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;
5305var TypedArray = ArrayBufferViewCore.TypedArray;
5306var TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;
5307var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
5308var isTypedArray = ArrayBufferViewCore.isTypedArray;
5309var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
5310var WRONG_LENGTH = 'Wrong length';
5311
5312var fromList = function (C, list) {
5313  var index = 0;
5314  var length = list.length;
5315  var result = new (aTypedArrayConstructor(C))(length);
5316  while (length > index) result[index] = list[index++];
5317  return result;
5318};
5319
5320var addGetter = function (it, key) {
5321  nativeDefineProperty(it, key, { get: function () {
5322    return getInternalState(this)[key];
5323  } });
5324};
5325
5326var isArrayBuffer = function (it) {
5327  var klass;
5328  return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';
5329};
5330
5331var isTypedArrayIndex = function (target, key) {
5332  return isTypedArray(target)
5333    && typeof key != 'symbol'
5334    && key in target
5335    && String(+key) == String(key);
5336};
5337
5338var wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {
5339  return isTypedArrayIndex(target, key = toPrimitive(key, true))
5340    ? createPropertyDescriptor(2, target[key])
5341    : nativeGetOwnPropertyDescriptor(target, key);
5342};
5343
5344var wrappedDefineProperty = function defineProperty(target, key, descriptor) {
5345  if (isTypedArrayIndex(target, key = toPrimitive(key, true))
5346    && isObject(descriptor)
5347    && has(descriptor, 'value')
5348    && !has(descriptor, 'get')
5349    && !has(descriptor, 'set')
5350    // TODO: add validation descriptor w/o calling accessors
5351    && !descriptor.configurable
5352    && (!has(descriptor, 'writable') || descriptor.writable)
5353    && (!has(descriptor, 'enumerable') || descriptor.enumerable)
5354  ) {
5355    target[key] = descriptor.value;
5356    return target;
5357  } return nativeDefineProperty(target, key, descriptor);
5358};
5359
5360if (DESCRIPTORS) {
5361  if (!NATIVE_ARRAY_BUFFER_VIEWS) {
5362    getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;
5363    definePropertyModule.f = wrappedDefineProperty;
5364    addGetter(TypedArrayPrototype, 'buffer');
5365    addGetter(TypedArrayPrototype, 'byteOffset');
5366    addGetter(TypedArrayPrototype, 'byteLength');
5367    addGetter(TypedArrayPrototype, 'length');
5368  }
5369
5370  $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {
5371    getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,
5372    defineProperty: wrappedDefineProperty
5373  });
5374
5375  module.exports = function (TYPE, wrapper, CLAMPED) {
5376    var BYTES = TYPE.match(/\d+$/)[0] / 8;
5377    var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';
5378    var GETTER = 'get' + TYPE;
5379    var SETTER = 'set' + TYPE;
5380    var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];
5381    var TypedArrayConstructor = NativeTypedArrayConstructor;
5382    var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;
5383    var exported = {};
5384
5385    var getter = function (that, index) {
5386      var data = getInternalState(that);
5387      return data.view[GETTER](index * BYTES + data.byteOffset, true);
5388    };
5389
5390    var setter = function (that, index, value) {
5391      var data = getInternalState(that);
5392      if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;
5393      data.view[SETTER](index * BYTES + data.byteOffset, value, true);
5394    };
5395
5396    var addElement = function (that, index) {
5397      nativeDefineProperty(that, index, {
5398        get: function () {
5399          return getter(this, index);
5400        },
5401        set: function (value) {
5402          return setter(this, index, value);
5403        },
5404        enumerable: true
5405      });
5406    };
5407
5408    if (!NATIVE_ARRAY_BUFFER_VIEWS) {
5409      TypedArrayConstructor = wrapper(function (that, data, offset, $length) {
5410        anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);
5411        var index = 0;
5412        var byteOffset = 0;
5413        var buffer, byteLength, length;
5414        if (!isObject(data)) {
5415          length = toIndex(data);
5416          byteLength = length * BYTES;
5417          buffer = new ArrayBuffer(byteLength);
5418        } else if (isArrayBuffer(data)) {
5419          buffer = data;
5420          byteOffset = toOffset(offset, BYTES);
5421          var $len = data.byteLength;
5422          if ($length === undefined) {
5423            if ($len % BYTES) throw RangeError(WRONG_LENGTH);
5424            byteLength = $len - byteOffset;
5425            if (byteLength < 0) throw RangeError(WRONG_LENGTH);
5426          } else {
5427            byteLength = toLength($length) * BYTES;
5428            if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);
5429          }
5430          length = byteLength / BYTES;
5431        } else if (isTypedArray(data)) {
5432          return fromList(TypedArrayConstructor, data);
5433        } else {
5434          return typedArrayFrom.call(TypedArrayConstructor, data);
5435        }
5436        setInternalState(that, {
5437          buffer: buffer,
5438          byteOffset: byteOffset,
5439          byteLength: byteLength,
5440          length: length,
5441          view: new DataView(buffer)
5442        });
5443        while (index < length) addElement(that, index++);
5444      });
5445
5446      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);
5447      TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);
5448    } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {
5449      TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {
5450        anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);
5451        return inheritIfRequired(function () {
5452          if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));
5453          if (isArrayBuffer(data)) return $length !== undefined
5454            ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)
5455            : typedArrayOffset !== undefined
5456              ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))
5457              : new NativeTypedArrayConstructor(data);
5458          if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);
5459          return typedArrayFrom.call(TypedArrayConstructor, data);
5460        }(), dummy, TypedArrayConstructor);
5461      });
5462
5463      if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);
5464      forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {
5465        if (!(key in TypedArrayConstructor)) {
5466          createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);
5467        }
5468      });
5469      TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;
5470    }
5471
5472    if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {
5473      createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);
5474    }
5475
5476    if (TYPED_ARRAY_TAG) {
5477      createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);
5478    }
5479
5480    exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;
5481
5482    $({
5483      global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS
5484    }, exported);
5485
5486    if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {
5487      createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);
5488    }
5489
5490    if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {
5491      createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);
5492    }
5493
5494    setSpecies(CONSTRUCTOR_NAME);
5495  };
5496} else module.exports = function () { /* empty */ };
5497
5498
5499/***/ }),
5500/* 105 */
5501/***/ (function(module, exports, __webpack_require__) {
5502
5503var TO_STRING_TAG_SUPPORT = __webpack_require__(285);
5504var redefine = __webpack_require__(54);
5505var toString = __webpack_require__(586);
5506
5507// `Object.prototype.toString` method
5508// https://tc39.github.io/ecma262/#sec-object.prototype.tostring
5509if (!TO_STRING_TAG_SUPPORT) {
5510  redefine(Object.prototype, 'toString', toString, { unsafe: true });
5511}
5512
5513
5514/***/ }),
5515/* 106 */,
5516/* 107 */
5517/***/ (function(module, exports, __webpack_require__) {
5518
5519// extracted by mini-css-extract-plugin
5520module.exports = {"visuallyHidden":"Spinner-module__visuallyHidden--2ged0","loading":"Spinner-module__loading--1qcti","spinner":"Spinner-module__spinner--3yk9s","anim-spinner":"Spinner-module__anim-spinner--2O-ni","circle":"Spinner-module__circle--1kuj2","circleinner":"Spinner-module__circleinner--2zFwd","anim-circle-1":"Spinner-module__anim-circle-1--1jdMN","circle2":"Spinner-module__circle2--10QQN","anim-circle-2":"Spinner-module__anim-circle-2--zLoCR"};
5521
5522/***/ }),
5523/* 108 */
5524/***/ (function(module, exports, __webpack_require__) {
5525
5526// extracted by mini-css-extract-plugin
5527module.exports = {"visuallyHidden":"SearchHistory-module__visuallyHidden--23PqC","searchHistoryList":"SearchHistory-module__searchHistoryList--Uc71N","searchHistoryButton":"SearchHistory-module__searchHistoryButton--1JpXo","wrapper":"SearchHistory-module__wrapper--33z5i","term":"SearchHistory-module__term--7mvMT","searchHistoryTitle":"SearchHistory-module__searchHistoryTitle--1NpR9","icon":"SearchHistory-module__icon--3pNtz"};
5528
5529/***/ }),
5530/* 109 */,
5531/* 110 */
5532/***/ (function(module, __webpack_exports__, __webpack_require__) {
5533
5534"use strict";
5535/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _assertThisInitialized; });
5536function _assertThisInitialized(self) {
5537  if (self === void 0) {
5538    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
5539  }
5540
5541  return self;
5542}
5543
5544/***/ }),
5545/* 111 */
5546/***/ (function(module, exports, __webpack_require__) {
5547
5548// extracted by mini-css-extract-plugin
5549module.exports = {"visuallyHidden":"FavouritesList-module__visuallyHidden--3Blqu","title":"FavouritesList-module__title--qTplR","card":"FavouritesList-module__card--1Eg5e ContentCard-module__card--1Ds0J","info":"FavouritesList-module__info--uujA9","empty":"FavouritesList-module__empty--9RO3s","sub":"FavouritesList-module__sub--rZoHD","wrap":"FavouritesList-module__wrap--2FZaN","head":"FavouritesList-module__head--AqpNM","buttons":"FavouritesList-module__buttons--3ZY6s","swoosh":"FavouritesList-module__swoosh--3l_hE"};
5550
5551/***/ }),
5552/* 112 */,
5553/* 113 */
5554/***/ (function(module, exports, __webpack_require__) {
5555
5556"use strict";
5557/* WEBPACK VAR INJECTION */(function(global) {/*!
5558 * The buffer module from node.js, for the browser.
5559 *
5560 * @author   Feross Aboukhadijeh <http://feross.org>
5561 * @license  MIT
5562 */
5563/* eslint-disable no-proto */
5564
5565
5566
5567var base64 = __webpack_require__(340)
5568var ieee754 = __webpack_require__(341)
5569var isArray = __webpack_require__(342
vendor: 6,472 bytes, lines 5569-5791
5569)
5570
5571exports.Buffer = Buffer
5572exports.SlowBuffer = SlowBuffer
5573exports.INSPECT_MAX_BYTES = 50
5574
5575/**
5576 * If `Buffer.TYPED_ARRAY_SUPPORT`:
5577 *   === true    Use Uint8Array implementation (fastest)
5578 *   === false   Use Object implementation (most compatible, even IE6)
5579 *
5580 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
5581 * Opera 11.6+, iOS 4.2+.
5582 *
5583 * Due to various browser bugs, sometimes the Object implementation will be used even
5584 * when the browser supports typed arrays.
5585 *
5586 * Note:
5587 *
5588 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
5589 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
5590 *
5591 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
5592 *
5593 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
5594 *     incorrect length in some situations.
5595
5596 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
5597 * get the Object implementation, which is slower but behaves correctly.
5598 */
5599Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
5600  ? global.TYPED_ARRAY_SUPPORT
5601  : typedArraySupport()
5602
5603/*
5604 * Export kMaxLength after typed array support is determined.
5605 */
5606exports.kMaxLength = kMaxLength()
5607
5608function typedArraySupport () {
5609  try {
5610    var arr = new Uint8Array(1)
5611    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
5612    return arr.foo() === 42 && // typed array instances can be augmented
5613        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
5614        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
5615  } catch (e) {
5616    return false
5617  }
5618}
5619
5620function kMaxLength () {
5621  return Buffer.TYPED_ARRAY_SUPPORT
5622    ? 0x7fffffff
5623    : 0x3fffffff
5624}
5625
5626function createBuffer (that, length) {
5627  if (kMaxLength() < length) {
5628    throw new RangeError('Invalid typed array length')
5629  }
5630  if (Buffer.TYPED_ARRAY_SUPPORT) {
5631    // Return an augmented `Uint8Array` instance, for best performance
5632    that = new Uint8Array(length)
5633    that.__proto__ = Buffer.prototype
5634  } else {
5635    // Fallback: Return an object instance of the Buffer class
5636    if (that === null) {
5637      that = new Buffer(length)
5638    }
5639    that.length = length
5640  }
5641
5642  return that
5643}
5644
5645/**
5646 * The Buffer constructor returns instances of `Uint8Array` that have their
5647 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
5648 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
5649 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
5650 * returns a single octet.
5651 *
5652 * The `Uint8Array` prototype remains unmodified.
5653 */
5654
5655function Buffer (arg, encodingOrOffset, length) {
5656  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
5657    return new Buffer(arg, encodingOrOffset, length)
5658  }
5659
5660  // Common case.
5661  if (typeof arg === 'number') {
5662    if (typeof encodingOrOffset === 'string') {
5663      throw new Error(
5664        'If encoding is specified then the first argument must be a string'
5665      )
5666    }
5667    return allocUnsafe(this, arg)
5668  }
5669  return from(this, arg, encodingOrOffset, length)
5670}
5671
5672Buffer.poolSize = 8192 // not used by this implementation
5673
5674// TODO: Legacy, not needed anymore. Remove in next major version.
5675Buffer._augment = function (arr) {
5676  arr.__proto__ = Buffer.prototype
5677  return arr
5678}
5679
5680function from (that, value, encodingOrOffset, length) {
5681  if (typeof value === 'number') {
5682    throw new TypeError('"value" argument must not be a number')
5683  }
5684
5685  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
5686    return fromArrayBuffer(that, value, encodingOrOffset, length)
5687  }
5688
5689  if (typeof value === 'string') {
5690    return fromString(that, value, encodingOrOffset)
5691  }
5692
5693  return fromObject(that, value)
5694}
5695
5696/**
5697 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
5698 * if value is a number.
5699 * Buffer.from(str[, encoding])
5700 * Buffer.from(array)
5701 * Buffer.from(buffer)
5702 * Buffer.from(arrayBuffer[, byteOffset[, length]])
5703 **/
5704Buffer.from = function (value, encodingOrOffset, length) {
5705  return from(null, value, encodingOrOffset, length)
5706}
5707
5708if (Buffer.TYPED_ARRAY_SUPPORT) {
5709  Buffer.prototype.__proto__ = Uint8Array.prototype
5710  Buffer.__proto__ = Uint8Array
5711  if (typeof Symbol !== 'undefined' && Symbol.species &&
5712      Buffer[Symbol.species] === Buffer) {
5713    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
5714    Object.defineProperty(Buffer, Symbol.species, {
5715      value: null,
5716      configurable: true
5717    })
5718  }
5719}
5720
5721function assertSize (size) {
5722  if (typeof size !== 'number') {
5723    throw new TypeError('"size" argument must be a number')
5724  } else if (size < 0) {
5725    throw new RangeError('"size" argument must not be negative')
5726  }
5727}
5728
5729function alloc (that, size, fill, encoding) {
5730  assertSize(size)
5731  if (size <= 0) {
5732    return createBuffer(that, size)
5733  }
5734  if (fill !== undefined) {
5735    // Only pay attention to encoding if it's a string. This
5736    // prevents accidentally sending in a number that would
5737    // be interpretted as a start offset.
5738    return typeof encoding === 'string'
5739      ? createBuffer(that, size).fill(fill, encoding)
5740      : createBuffer(that, size).fill(fill)
5741  }
5742  return createBuffer(that, size)
5743}
5744
5745/**
5746 * Creates a new filled Buffer instance.
5747 * alloc(size[, fill[, encoding]])
5748 **/
5749Buffer.alloc = function (size, fill, encoding) {
5750  return alloc(null, size, fill, encoding)
5751}
5752
5753function allocUnsafe (that, size) {
5754  assertSize(size)
5755  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
5756  if (!Buffer.TYPED_ARRAY_SUPPORT) {
5757    for (var i = 0; i < size; ++i) {
5758      that[i] = 0
5759    }
5760  }
5761  return that
5762}
5763
5764/**
5765 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
5766 * */
5767Buffer.allocUnsafe = function (size) {
5768  return allocUnsafe(null, size)
5769}
5770/**
5771 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
5772 */
5773Buffer.allocUnsafeSlow = function (size) {
5774  return allocUnsafe(null, size)
5775}
5776
5777function fromString (that, string, encoding) {
5778  if (typeof encoding !== 'string' || encoding === '') {
5779    encoding = 'utf8'
5780  }
5781
5782  if (!Buffer.isEncoding(encoding)) {
5783    throw new TypeError('"encoding" must be a valid string encoding')
5784  }
5785
5786  var length = byteLength(string, encoding) | 0
5787  that = createBuffer(that, length)
5788
5789  var actual = that.write(string, encoding)
5790
5791  if (actual !== length) {
vendor: 8,522 bytes, lines 5792-6139
5792    // Writing a hex string, for example, that contains invalid characters will
5793    // cause everything after the first invalid character to be ignored. (e.g.
5794    // 'abxxcd' will be treated as 'ab')
5795    that = that.slice(0, actual)
5796  }
5797
5798  return that
5799}
5800
5801function fromArrayLike (that, array) {
5802  var length = array.length < 0 ? 0 : checked(array.length) | 0
5803  that = createBuffer(that, length)
5804  for (var i = 0; i < length; i += 1) {
5805    that[i] = array[i] & 255
5806  }
5807  return that
5808}
5809
5810function fromArrayBuffer (that, array, byteOffset, length) {
5811  array.byteLength // this throws if `array` is not a valid ArrayBuffer
5812
5813  if (byteOffset < 0 || array.byteLength < byteOffset) {
5814    throw new RangeError('\'offset\' is out of bounds')
5815  }
5816
5817  if (array.byteLength < byteOffset + (length || 0)) {
5818    throw new RangeError('\'length\' is out of bounds')
5819  }
5820
5821  if (byteOffset === undefined && length === undefined) {
5822    array = new Uint8Array(array)
5823  } else if (length === undefined) {
5824    array = new Uint8Array(array, byteOffset)
5825  } else {
5826    array = new Uint8Array(array, byteOffset, length)
5827  }
5828
5829  if (Buffer.TYPED_ARRAY_SUPPORT) {
5830    // Return an augmented `Uint8Array` instance, for best performance
5831    that = array
5832    that.__proto__ = Buffer.prototype
5833  } else {
5834    // Fallback: Return an object instance of the Buffer class
5835    that = fromArrayLike(that, array)
5836  }
5837  return that
5838}
5839
5840function fromObject (that, obj) {
5841  if (Buffer.isBuffer(obj)) {
5842    var len = checked(obj.length) | 0
5843    that = createBuffer(that, len)
5844
5845    if (that.length === 0) {
5846      return that
5847    }
5848
5849    obj.copy(that, 0, 0, len)
5850    return that
5851  }
5852
5853  if (obj) {
5854    if ((typeof ArrayBuffer !== 'undefined' &&
5855        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
5856      if (typeof obj.length !== 'number' || isnan(obj.length)) {
5857        return createBuffer(that, 0)
5858      }
5859      return fromArrayLike(that, obj)
5860    }
5861
5862    if (obj.type === 'Buffer' && isArray(obj.data)) {
5863      return fromArrayLike(that, obj.data)
5864    }
5865  }
5866
5867  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
5868}
5869
5870function checked (length) {
5871  // Note: cannot use `length < kMaxLength()` here because that fails when
5872  // length is NaN (which is otherwise coerced to zero.)
5873  if (length >= kMaxLength()) {
5874    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
5875                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
5876  }
5877  return length | 0
5878}
5879
5880function SlowBuffer (length) {
5881  if (+length != length) { // eslint-disable-line eqeqeq
5882    length = 0
5883  }
5884  return Buffer.alloc(+length)
5885}
5886
5887Buffer.isBuffer = function isBuffer (b) {
5888  return !!(b != null && b._isBuffer)
5889}
5890
5891Buffer.compare = function compare (a, b) {
5892  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
5893    throw new TypeError('Arguments must be Buffers')
5894  }
5895
5896  if (a === b) return 0
5897
5898  var x = a.length
5899  var y = b.length
5900
5901  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
5902    if (a[i] !== b[i]) {
5903      x = a[i]
5904      y = b[i]
5905      break
5906    }
5907  }
5908
5909  if (x < y) return -1
5910  if (y < x) return 1
5911  return 0
5912}
5913
5914Buffer.isEncoding = function isEncoding (encoding) {
5915  switch (String(encoding).toLowerCase()) {
5916    case 'hex':
5917    case 'utf8':
5918    case 'utf-8':
5919    case 'ascii':
5920    case 'latin1':
5921    case 'binary':
5922    case 'base64':
5923    case 'ucs2':
5924    case 'ucs-2':
5925    case 'utf16le':
5926    case 'utf-16le':
5927      return true
5928    default:
5929      return false
5930  }
5931}
5932
5933Buffer.concat = function concat (list, length) {
5934  if (!isArray(list)) {
5935    throw new TypeError('"list" argument must be an Array of Buffers')
5936  }
5937
5938  if (list.length === 0) {
5939    return Buffer.alloc(0)
5940  }
5941
5942  var i
5943  if (length === undefined) {
5944    length = 0
5945    for (i = 0; i < list.length; ++i) {
5946      length += list[i].length
5947    }
5948  }
5949
5950  var buffer = Buffer.allocUnsafe(length)
5951  var pos = 0
5952  for (i = 0; i < list.length; ++i) {
5953    var buf = list[i]
5954    if (!Buffer.isBuffer(buf)) {
5955      throw new TypeError('"list" argument must be an Array of Buffers')
5956    }
5957    buf.copy(buffer, pos)
5958    pos += buf.length
5959  }
5960  return buffer
5961}
5962
5963function byteLength (string, encoding) {
5964  if (Buffer.isBuffer(string)) {
5965    return string.length
5966  }
5967  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
5968      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
5969    return string.byteLength
5970  }
5971  if (typeof string !== 'string') {
5972    string = '' + string
5973  }
5974
5975  var len = string.length
5976  if (len === 0) return 0
5977
5978  // Use a for loop to avoid recursion
5979  var loweredCase = false
5980  for (;;) {
5981    switch (encoding) {
5982      case 'ascii':
5983      case 'latin1':
5984      case 'binary':
5985        return len
5986      case 'utf8':
5987      case 'utf-8':
5988      case undefined:
5989        return utf8ToBytes(string).length
5990      case 'ucs2':
5991      case 'ucs-2':
5992      case 'utf16le':
5993      case 'utf-16le':
5994        return len * 2
5995      case 'hex':
5996        return len >>> 1
5997      case 'base64':
5998        return base64ToBytes(string).length
5999      default:
6000        if (loweredCase) return utf8ToBytes(string).length // assume utf8
6001        encoding = ('' + encoding).toLowerCase()
6002        loweredCase = true
6003    }
6004  }
6005}
6006Buffer.byteLength = byteLength
6007
6008function slowToString (encoding, start, end) {
6009  var loweredCase = false
6010
6011  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
6012  // property of a typed array.
6013
6014  // This behaves neither like String nor Uint8Array in that we set start/end
6015  // to their upper/lower bounds if the value passed is out of range.
6016  // undefined is handled specially as per ECMA-262 6th Edition,
6017  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
6018  if (start === undefined || start < 0) {
6019    start = 0
6020  }
6021  // Return early if start > this.length. Done here to prevent potential uint32
6022  // coercion fail below.
6023  if (start > this.length) {
6024    return ''
6025  }
6026
6027  if (end === undefined || end > this.length) {
6028    end = this.length
6029  }
6030
6031  if (end <= 0) {
6032    return ''
6033  }
6034
6035  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
6036  end >>>= 0
6037  start >>>= 0
6038
6039  if (end <= start) {
6040    return ''
6041  }
6042
6043  if (!encoding) encoding = 'utf8'
6044
6045  while (true) {
6046    switch (encoding) {
6047      case 'hex':
6048        return hexSlice(this, start, end)
6049
6050      case 'utf8':
6051      case 'utf-8':
6052        return utf8Slice(this, start, end)
6053
6054      case 'ascii':
6055        return asciiSlice(this, start, end)
6056
6057      case 'latin1':
6058      case 'binary':
6059        return latin1Slice(this, start, end)
6060
6061      case 'base64':
6062        return base64Slice(this, start, end)
6063
6064      case 'ucs2':
6065      case 'ucs-2':
6066      case 'utf16le':
6067      case 'utf-16le':
6068        return utf16leSlice(this, start, end)
6069
6070      default:
6071        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
6072        encoding = (encoding + '').toLowerCase()
6073        loweredCase = true
6074    }
6075  }
6076}
6077
6078// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
6079// Buffer instances.
6080Buffer.prototype._isBuffer = true
6081
6082function swap (b, n, m) {
6083  var i = b[n]
6084  b[n] = b[m]
6085  b[m] = i
6086}
6087
6088Buffer.prototype.swap16 = function swap16 () {
6089  var len = this.length
6090  if (len % 2 !== 0) {
6091    throw new RangeError('Buffer size must be a multiple of 16-bits')
6092  }
6093  for (var i = 0; i < len; i += 2) {
6094    swap(this, i, i + 1)
6095  }
6096  return this
6097}
6098
6099Buffer.prototype.swap32 = function swap32 () {
6100  var len = this.length
6101  if (len % 4 !== 0) {
6102    throw new RangeError('Buffer size must be a multiple of 32-bits')
6103  }
6104  for (var i = 0; i < len; i += 4) {
6105    swap(this, i, i + 3)
6106    swap(this, i + 1, i + 2)
6107  }
6108  return this
6109}
6110
6111Buffer.prototype.swap64 = function swap64 () {
6112  var len = this.length
6113  if (len % 8 !== 0) {
6114    throw new RangeError('Buffer size must be a multiple of 64-bits')
6115  }
6116  for (var i = 0; i < len; i += 8) {
6117    swap(this, i, i + 7)
6118    swap(this, i + 1, i + 6)
6119    swap(this, i + 2, i + 5)
6120    swap(this, i + 3, i + 4)
6121  }
6122  return this
6123}
6124
6125Buffer.prototype.toString = function toString () {
6126  var length = this.length | 0
6127  if (length === 0) return ''
6128  if (arguments.length === 0) return utf8Slice(this, 0, length)
6129  return slowToString.apply(this, arguments)
6130}
6131
6132Buffer.prototype.equals = function equals (b) {
6133  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
6134  if (this === b) return true
6135  return Buffer.compare(this, b) === 0
6136}
6137
6138Buffer.prototype.inspect = function inspect () {
6139  var str = ''
vendor: 2,989 bytes, lines 6140-6252
6140  var max = exports.INSPECT_MAX_BYTES
6141  if (this.length > 0) {
6142    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
6143    if (this.length > max) str += ' ... '
6144  }
6145  return '<Buffer ' + str + '>'
6146}
6147
6148Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
6149  if (!Buffer.isBuffer(target)) {
6150    throw new TypeError('Argument must be a Buffer')
6151  }
6152
6153  if (start === undefined) {
6154    start = 0
6155  }
6156  if (end === undefined) {
6157    end = target ? target.length : 0
6158  }
6159  if (thisStart === undefined) {
6160    thisStart = 0
6161  }
6162  if (thisEnd === undefined) {
6163    thisEnd = this.length
6164  }
6165
6166  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
6167    throw new RangeError('out of range index')
6168  }
6169
6170  if (thisStart >= thisEnd && start >= end) {
6171    return 0
6172  }
6173  if (thisStart >= thisEnd) {
6174    return -1
6175  }
6176  if (start >= end) {
6177    return 1
6178  }
6179
6180  start >>>= 0
6181  end >>>= 0
6182  thisStart >>>= 0
6183  thisEnd >>>= 0
6184
6185  if (this === target) return 0
6186
6187  var x = thisEnd - thisStart
6188  var y = end - start
6189  var len = Math.min(x, y)
6190
6191  var thisCopy = this.slice(thisStart, thisEnd)
6192  var targetCopy = target.slice(start, end)
6193
6194  for (var i = 0; i < len; ++i) {
6195    if (thisCopy[i] !== targetCopy[i]) {
6196      x = thisCopy[i]
6197      y = targetCopy[i]
6198      break
6199    }
6200  }
6201
6202  if (x < y) return -1
6203  if (y < x) return 1
6204  return 0
6205}
6206
6207// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
6208// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
6209//
6210// Arguments:
6211// - buffer - a Buffer to search
6212// - val - a string, Buffer, or number
6213// - byteOffset - an index into `buffer`; will be clamped to an int32
6214// - encoding - an optional encoding, relevant is val is a string
6215// - dir - true for indexOf, false for lastIndexOf
6216function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
6217  // Empty buffer means no match
6218  if (buffer.length === 0) return -1
6219
6220  // Normalize byteOffset
6221  if (typeof byteOffset === 'string') {
6222    encoding = byteOffset
6223    byteOffset = 0
6224  } else if (byteOffset > 0x7fffffff) {
6225    byteOffset = 0x7fffffff
6226  } else if (byteOffset < -0x80000000) {
6227    byteOffset = -0x80000000
6228  }
6229  byteOffset = +byteOffset  // Coerce to Number.
6230  if (isNaN(byteOffset)) {
6231    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
6232    byteOffset = dir ? 0 : (buffer.length - 1)
6233  }
6234
6235  // Normalize byteOffset: negative offsets start from the end of the buffer
6236  if (byteOffset < 0) byteOffset = buffer.length + byteOffset
6237  if (byteOffset >= buffer.length) {
6238    if (dir) return -1
6239    else byteOffset = buffer.length - 1
6240  } else if (byteOffset < 0) {
6241    if (dir) byteOffset = 0
6242    else return -1
6243  }
6244
6245  // Normalize val
6246  if (typeof val === 'string') {
6247    val = Buffer.from(val, encoding)
6248  }
6249
6250  // Finally, search either indexOf (if dir is true) or lastIndexOf
6251  if (Buffer.isBuffer(val)) {
6252    // Special case: looking for empty string/buffer always fail
vendor: 30,332 bytes, lines 6252-7346
6252s
6253    if (val.length === 0) {
6254      return -1
6255    }
6256    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
6257  } else if (typeof val === 'number') {
6258    val = val & 0xFF // Search for a byte value [0-255]
6259    if (Buffer.TYPED_ARRAY_SUPPORT &&
6260        typeof Uint8Array.prototype.indexOf === 'function') {
6261      if (dir) {
6262        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
6263      } else {
6264        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
6265      }
6266    }
6267    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
6268  }
6269
6270  throw new TypeError('val must be string, number or Buffer')
6271}
6272
6273function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
6274  var indexSize = 1
6275  var arrLength = arr.length
6276  var valLength = val.length
6277
6278  if (encoding !== undefined) {
6279    encoding = String(encoding).toLowerCase()
6280    if (encoding === 'ucs2' || encoding === 'ucs-2' ||
6281        encoding === 'utf16le' || encoding === 'utf-16le') {
6282      if (arr.length < 2 || val.length < 2) {
6283        return -1
6284      }
6285      indexSize = 2
6286      arrLength /= 2
6287      valLength /= 2
6288      byteOffset /= 2
6289    }
6290  }
6291
6292  function read (buf, i) {
6293    if (indexSize === 1) {
6294      return buf[i]
6295    } else {
6296      return buf.readUInt16BE(i * indexSize)
6297    }
6298  }
6299
6300  var i
6301  if (dir) {
6302    var foundIndex = -1
6303    for (i = byteOffset; i < arrLength; i++) {
6304      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
6305        if (foundIndex === -1) foundIndex = i
6306        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
6307      } else {
6308        if (foundIndex !== -1) i -= i - foundIndex
6309        foundIndex = -1
6310      }
6311    }
6312  } else {
6313    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
6314    for (i = byteOffset; i >= 0; i--) {
6315      var found = true
6316      for (var j = 0; j < valLength; j++) {
6317        if (read(arr, i + j) !== read(val, j)) {
6318          found = false
6319          break
6320        }
6321      }
6322      if (found) return i
6323    }
6324  }
6325
6326  return -1
6327}
6328
6329Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
6330  return this.indexOf(val, byteOffset, encoding) !== -1
6331}
6332
6333Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
6334  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
6335}
6336
6337Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
6338  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
6339}
6340
6341function hexWrite (buf, string, offset, length) {
6342  offset = Number(offset) || 0
6343  var remaining = buf.length - offset
6344  if (!length) {
6345    length = remaining
6346  } else {
6347    length = Number(length)
6348    if (length > remaining) {
6349      length = remaining
6350    }
6351  }
6352
6353  // must be an even number of digits
6354  var strLen = string.length
6355  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
6356
6357  if (length > strLen / 2) {
6358    length = strLen / 2
6359  }
6360  for (var i = 0; i < length; ++i) {
6361    var parsed = parseInt(string.substr(i * 2, 2), 16)
6362    if (isNaN(parsed)) return i
6363    buf[offset + i] = parsed
6364  }
6365  return i
6366}
6367
6368function utf8Write (buf, string, offset, length) {
6369  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
6370}
6371
6372function asciiWrite (buf, string, offset, length) {
6373  return blitBuffer(asciiToBytes(string), buf, offset, length)
6374}
6375
6376function latin1Write (buf, string, offset, length) {
6377  return asciiWrite(buf, string, offset, length)
6378}
6379
6380function base64Write (buf, string, offset, length) {
6381  return blitBuffer(base64ToBytes(string), buf, offset, length)
6382}
6383
6384function ucs2Write (buf, string, offset, length) {
6385  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
6386}
6387
6388Buffer.prototype.write = function write (string, offset, length, encoding) {
6389  // Buffer#write(string)
6390  if (offset === undefined) {
6391    encoding = 'utf8'
6392    length = this.length
6393    offset = 0
6394  // Buffer#write(string, encoding)
6395  } else if (length === undefined && typeof offset === 'string') {
6396    encoding = offset
6397    length = this.length
6398    offset = 0
6399  // Buffer#write(string, offset[, length][, encoding])
6400  } else if (isFinite(offset)) {
6401    offset = offset | 0
6402    if (isFinite(length)) {
6403      length = length | 0
6404      if (encoding === undefined) encoding = 'utf8'
6405    } else {
6406      encoding = length
6407      length = undefined
6408    }
6409  // legacy write(string, encoding, offset, length) - remove in v0.13
6410  } else {
6411    throw new Error(
6412      'Buffer.write(string, encoding, offset[, length]) is no longer supported'
6413    )
6414  }
6415
6416  var remaining = this.length - offset
6417  if (length === undefined || length > remaining) length = remaining
6418
6419  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
6420    throw new RangeError('Attempt to write outside buffer bounds')
6421  }
6422
6423  if (!encoding) encoding = 'utf8'
6424
6425  var loweredCase = false
6426  for (;;) {
6427    switch (encoding) {
6428      case 'hex':
6429        return hexWrite(this, string, offset, length)
6430
6431      case 'utf8':
6432      case 'utf-8':
6433        return utf8Write(this, string, offset, length)
6434
6435      case 'ascii':
6436        return asciiWrite(this, string, offset, length)
6437
6438      case 'latin1':
6439      case 'binary':
6440        return latin1Write(this, string, offset, length)
6441
6442      case 'base64':
6443        // Warning: maxLength not taken into account in base64Write
6444        return base64Write(this, string, offset, length)
6445
6446      case 'ucs2':
6447      case 'ucs-2':
6448      case 'utf16le':
6449      case 'utf-16le':
6450        return ucs2Write(this, string, offset, length)
6451
6452      default:
6453        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
6454        encoding = ('' + encoding).toLowerCase()
6455        loweredCase = true
6456    }
6457  }
6458}
6459
6460Buffer.prototype.toJSON = function toJSON () {
6461  return {
6462    type: 'Buffer',
6463    data: Array.prototype.slice.call(this._arr || this, 0)
6464  }
6465}
6466
6467function base64Slice (buf, start, end) {
6468  if (start === 0 && end === buf.length) {
6469    return base64.fromByteArray(buf)
6470  } else {
6471    return base64.fromByteArray(buf.slice(start, end))
6472  }
6473}
6474
6475function utf8Slice (buf, start, end) {
6476  end = Math.min(buf.length, end)
6477  var res = []
6478
6479  var i = start
6480  while (i < end) {
6481    var firstByte = buf[i]
6482    var codePoint = null
6483    var bytesPerSequence = (firstByte > 0xEF) ? 4
6484      : (firstByte > 0xDF) ? 3
6485      : (firstByte > 0xBF) ? 2
6486      : 1
6487
6488    if (i + bytesPerSequence <= end) {
6489      var secondByte, thirdByte, fourthByte, tempCodePoint
6490
6491      switch (bytesPerSequence) {
6492        case 1:
6493          if (firstByte < 0x80) {
6494            codePoint = firstByte
6495          }
6496          break
6497        case 2:
6498          secondByte = buf[i + 1]
6499          if ((secondByte & 0xC0) === 0x80) {
6500            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
6501            if (tempCodePoint > 0x7F) {
6502              codePoint = tempCodePoint
6503            }
6504          }
6505          break
6506        case 3:
6507          secondByte = buf[i + 1]
6508          thirdByte = buf[i + 2]
6509          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
6510            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
6511            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
6512              codePoint = tempCodePoint
6513            }
6514          }
6515          break
6516        case 4:
6517          secondByte = buf[i + 1]
6518          thirdByte = buf[i + 2]
6519          fourthByte = buf[i + 3]
6520          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
6521            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
6522            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
6523              codePoint = tempCodePoint
6524            }
6525          }
6526      }
6527    }
6528
6529    if (codePoint === null) {
6530      // we did not generate a valid codePoint so insert a
6531      // replacement char (U+FFFD) and advance only 1 byte
6532      codePoint = 0xFFFD
6533      bytesPerSequence = 1
6534    } else if (codePoint > 0xFFFF) {
6535      // encode to utf16 (surrogate pair dance)
6536      codePoint -= 0x10000
6537      res.push(codePoint >>> 10 & 0x3FF | 0xD800)
6538      codePoint = 0xDC00 | codePoint & 0x3FF
6539    }
6540
6541    res.push(codePoint)
6542    i += bytesPerSequence
6543  }
6544
6545  return decodeCodePointsArray(res)
6546}
6547
6548// Based on http://stackoverflow.com/a/22747272/680742, the browser with
6549// the lowest limit is Chrome, with 0x10000 args.
6550// We go 1 magnitude less, for safety
6551var MAX_ARGUMENTS_LENGTH = 0x1000
6552
6553function decodeCodePointsArray (codePoints) {
6554  var len = codePoints.length
6555  if (len <= MAX_ARGUMENTS_LENGTH) {
6556    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
6557  }
6558
6559  // Decode in chunks to avoid "call stack size exceeded".
6560  var res = ''
6561  var i = 0
6562  while (i < len) {
6563    res += String.fromCharCode.apply(
6564      String,
6565      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
6566    )
6567  }
6568  return res
6569}
6570
6571function asciiSlice (buf, start, end) {
6572  var ret = ''
6573  end = Math.min(buf.length, end)
6574
6575  for (var i = start; i < end; ++i) {
6576    ret += String.fromCharCode(buf[i] & 0x7F)
6577  }
6578  return ret
6579}
6580
6581function latin1Slice (buf, start, end) {
6582  var ret = ''
6583  end = Math.min(buf.length, end)
6584
6585  for (var i = start; i < end; ++i) {
6586    ret += String.fromCharCode(buf[i])
6587  }
6588  return ret
6589}
6590
6591function hexSlice (buf, start, end) {
6592  var len = buf.length
6593
6594  if (!start || start < 0) start = 0
6595  if (!end || end < 0 || end > len) end = len
6596
6597  var out = ''
6598  for (var i = start; i < end; ++i) {
6599    out += toHex(buf[i])
6600  }
6601  return out
6602}
6603
6604function utf16leSlice (buf, start, end) {
6605  var bytes = buf.slice(start, end)
6606  var res = ''
6607  for (var i = 0; i < bytes.length; i += 2) {
6608    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
6609  }
6610  return res
6611}
6612
6613Buffer.prototype.slice = function slice (start, end) {
6614  var len = this.length
6615  start = ~~start
6616  end = end === undefined ? len : ~~end
6617
6618  if (start < 0) {
6619    start += len
6620    if (start < 0) start = 0
6621  } else if (start > len) {
6622    start = len
6623  }
6624
6625  if (end < 0) {
6626    end += len
6627    if (end < 0) end = 0
6628  } else if (end > len) {
6629    end = len
6630  }
6631
6632  if (end < start) end = start
6633
6634  var newBuf
6635  if (Buffer.TYPED_ARRAY_SUPPORT) {
6636    newBuf = this.subarray(start, end)
6637    newBuf.__proto__ = Buffer.prototype
6638  } else {
6639    var sliceLen = end - start
6640    newBuf = new Buffer(sliceLen, undefined)
6641    for (var i = 0; i < sliceLen; ++i) {
6642      newBuf[i] = this[i + start]
6643    }
6644  }
6645
6646  return newBuf
6647}
6648
6649/*
6650 * Need to make sure that buffer isn't trying to write out of bounds.
6651 */
6652function checkOffset (offset, ext, length) {
6653  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
6654  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
6655}
6656
6657Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
6658  offset = offset | 0
6659  byteLength = byteLength | 0
6660  if (!noAssert) checkOffset(offset, byteLength, this.length)
6661
6662  var val = this[offset]
6663  var mul = 1
6664  var i = 0
6665  while (++i < byteLength && (mul *= 0x100)) {
6666    val += this[offset + i] * mul
6667  }
6668
6669  return val
6670}
6671
6672Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
6673  offset = offset | 0
6674  byteLength = byteLength | 0
6675  if (!noAssert) {
6676    checkOffset(offset, byteLength, this.length)
6677  }
6678
6679  var val = this[offset + --byteLength]
6680  var mul = 1
6681  while (byteLength > 0 && (mul *= 0x100)) {
6682    val += this[offset + --byteLength] * mul
6683  }
6684
6685  return val
6686}
6687
6688Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
6689  if (!noAssert) checkOffset(offset, 1, this.length)
6690  return this[offset]
6691}
6692
6693Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
6694  if (!noAssert) checkOffset(offset, 2, this.length)
6695  return this[offset] | (this[offset + 1] << 8)
6696}
6697
6698Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
6699  if (!noAssert) checkOffset(offset, 2, this.length)
6700  return (this[offset] << 8) | this[offset + 1]
6701}
6702
6703Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
6704  if (!noAssert) checkOffset(offset, 4, this.length)
6705
6706  return ((this[offset]) |
6707      (this[offset + 1] << 8) |
6708      (this[offset + 2] << 16)) +
6709      (this[offset + 3] * 0x1000000)
6710}
6711
6712Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
6713  if (!noAssert) checkOffset(offset, 4, this.length)
6714
6715  return (this[offset] * 0x1000000) +
6716    ((this[offset + 1] << 16) |
6717    (this[offset + 2] << 8) |
6718    this[offset + 3])
6719}
6720
6721Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
6722  offset = offset | 0
6723  byteLength = byteLength | 0
6724  if (!noAssert) checkOffset(offset, byteLength, this.length)
6725
6726  var val = this[offset]
6727  var mul = 1
6728  var i = 0
6729  while (++i < byteLength && (mul *= 0x100)) {
6730    val += this[offset + i] * mul
6731  }
6732  mul *= 0x80
6733
6734  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
6735
6736  return val
6737}
6738
6739Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
6740  offset = offset | 0
6741  byteLength = byteLength | 0
6742  if (!noAssert) checkOffset(offset, byteLength, this.length)
6743
6744  var i = byteLength
6745  var mul = 1
6746  var val = this[offset + --i]
6747  while (i > 0 && (mul *= 0x100)) {
6748    val += this[offset + --i] * mul
6749  }
6750  mul *= 0x80
6751
6752  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
6753
6754  return val
6755}
6756
6757Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
6758  if (!noAssert) checkOffset(offset, 1, this.length)
6759  if (!(this[offset] & 0x80)) return (this[offset])
6760  return ((0xff - this[offset] + 1) * -1)
6761}
6762
6763Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
6764  if (!noAssert) checkOffset(offset, 2, this.length)
6765  var val = this[offset] | (this[offset + 1] << 8)
6766  return (val & 0x8000) ? val | 0xFFFF0000 : val
6767}
6768
6769Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
6770  if (!noAssert) checkOffset(offset, 2, this.length)
6771  var val = this[offset + 1] | (this[offset] << 8)
6772  return (val & 0x8000) ? val | 0xFFFF0000 : val
6773}
6774
6775Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
6776  if (!noAssert) checkOffset(offset, 4, this.length)
6777
6778  return (this[offset]) |
6779    (this[offset + 1] << 8) |
6780    (this[offset + 2] << 16) |
6781    (this[offset + 3] << 24)
6782}
6783
6784Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
6785  if (!noAssert) checkOffset(offset, 4, this.length)
6786
6787  return (this[offset] << 24) |
6788    (this[offset + 1] << 16) |
6789    (this[offset + 2] << 8) |
6790    (this[offset + 3])
6791}
6792
6793Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
6794  if (!noAssert) checkOffset(offset, 4, this.length)
6795  return ieee754.read(this, offset, true, 23, 4)
6796}
6797
6798Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
6799  if (!noAssert) checkOffset(offset, 4, this.length)
6800  return ieee754.read(this, offset, false, 23, 4)
6801}
6802
6803Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
6804  if (!noAssert) checkOffset(offset, 8, this.length)
6805  return ieee754.read(this, offset, true, 52, 8)
6806}
6807
6808Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
6809  if (!noAssert) checkOffset(offset, 8, this.length)
6810  return ieee754.read(this, offset, false, 52, 8)
6811}
6812
6813function checkInt (buf, value, offset, ext, max, min) {
6814  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
6815  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
6816  if (offset + ext > buf.length) throw new RangeError('Index out of range')
6817}
6818
6819Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
6820  value = +value
6821  offset = offset | 0
6822  byteLength = byteLength | 0
6823  if (!noAssert) {
6824    var maxBytes = Math.pow(2, 8 * byteLength) - 1
6825    checkInt(this, value, offset, byteLength, maxBytes, 0)
6826  }
6827
6828  var mul = 1
6829  var i = 0
6830  this[offset] = value & 0xFF
6831  while (++i < byteLength && (mul *= 0x100)) {
6832    this[offset + i] = (value / mul) & 0xFF
6833  }
6834
6835  return offset + byteLength
6836}
6837
6838Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
6839  value = +value
6840  offset = offset | 0
6841  byteLength = byteLength | 0
6842  if (!noAssert) {
6843    var maxBytes = Math.pow(2, 8 * byteLength) - 1
6844    checkInt(this, value, offset, byteLength, maxBytes, 0)
6845  }
6846
6847  var i = byteLength - 1
6848  var mul = 1
6849  this[offset + i] = value & 0xFF
6850  while (--i >= 0 && (mul *= 0x100)) {
6851    this[offset + i] = (value / mul) & 0xFF
6852  }
6853
6854  return offset + byteLength
6855}
6856
6857Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
6858  value = +value
6859  offset = offset | 0
6860  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
6861  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
6862  this[offset] = (value & 0xff)
6863  return offset + 1
6864}
6865
6866function objectWriteUInt16 (buf, value, offset, littleEndian) {
6867  if (value < 0) value = 0xffff + value + 1
6868  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
6869    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
6870      (littleEndian ? i : 1 - i) * 8
6871  }
6872}
6873
6874Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
6875  value = +value
6876  offset = offset | 0
6877  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
6878  if (Buffer.TYPED_ARRAY_SUPPORT) {
6879    this[offset] = (value & 0xff)
6880    this[offset + 1] = (value >>> 8)
6881  } else {
6882    objectWriteUInt16(this, value, offset, true)
6883  }
6884  return offset + 2
6885}
6886
6887Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
6888  value = +value
6889  offset = offset | 0
6890  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
6891  if (Buffer.TYPED_ARRAY_SUPPORT) {
6892    this[offset] = (value >>> 8)
6893    this[offset + 1] = (value & 0xff)
6894  } else {
6895    objectWriteUInt16(this, value, offset, false)
6896  }
6897  return offset + 2
6898}
6899
6900function objectWriteUInt32 (buf, value, offset, littleEndian) {
6901  if (value < 0) value = 0xffffffff + value + 1
6902  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
6903    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
6904  }
6905}
6906
6907Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
6908  value = +value
6909  offset = offset | 0
6910  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
6911  if (Buffer.TYPED_ARRAY_SUPPORT) {
6912    this[offset + 3] = (value >>> 24)
6913    this[offset + 2] = (value >>> 16)
6914    this[offset + 1] = (value >>> 8)
6915    this[offset] = (value & 0xff)
6916  } else {
6917    objectWriteUInt32(this, value, offset, true)
6918  }
6919  return offset + 4
6920}
6921
6922Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
6923  value = +value
6924  offset = offset | 0
6925  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
6926  if (Buffer.TYPED_ARRAY_SUPPORT) {
6927    this[offset] = (value >>> 24)
6928    this[offset + 1] = (value >>> 16)
6929    this[offset + 2] = (value >>> 8)
6930    this[offset + 3] = (value & 0xff)
6931  } else {
6932    objectWriteUInt32(this, value, offset, false)
6933  }
6934  return offset + 4
6935}
6936
6937Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6938  value = +value
6939  offset = offset | 0
6940  if (!noAssert) {
6941    var limit = Math.pow(2, 8 * byteLength - 1)
6942
6943    checkInt(this, value, offset, byteLength, limit - 1, -limit)
6944  }
6945
6946  var i = 0
6947  var mul = 1
6948  var sub = 0
6949  this[offset] = value & 0xFF
6950  while (++i < byteLength && (mul *= 0x100)) {
6951    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
6952      sub = 1
6953    }
6954    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
6955  }
6956
6957  return offset + byteLength
6958}
6959
6960Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6961  value = +value
6962  offset = offset | 0
6963  if (!noAssert) {
6964    var limit = Math.pow(2, 8 * byteLength - 1)
6965
6966    checkInt(this, value, offset, byteLength, limit - 1, -limit)
6967  }
6968
6969  var i = byteLength - 1
6970  var mul = 1
6971  var sub = 0
6972  this[offset + i] = value & 0xFF
6973  while (--i >= 0 && (mul *= 0x100)) {
6974    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
6975      sub = 1
6976    }
6977    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
6978  }
6979
6980  return offset + byteLength
6981}
6982
6983Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6984  value = +value
6985  offset = offset | 0
6986  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
6987  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
6988  if (value < 0) value = 0xff + value + 1
6989  this[offset] = (value & 0xff)
6990  return offset + 1
6991}
6992
6993Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6994  value = +value
6995  offset = offset | 0
6996  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
6997  if (Buffer.TYPED_ARRAY_SUPPORT) {
6998    this[offset] = (value & 0xff)
6999    this[offset + 1] = (value >>> 8)
7000  } else {
7001    objectWriteUInt16(this, value, offset, true)
7002  }
7003  return offset + 2
7004}
7005
7006Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
7007  value = +value
7008  offset = offset | 0
7009  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
7010  if (Buffer.TYPED_ARRAY_SUPPORT) {
7011    this[offset] = (value >>> 8)
7012    this[offset + 1] = (value & 0xff)
7013  } else {
7014    objectWriteUInt16(this, value, offset, false)
7015  }
7016  return offset + 2
7017}
7018
7019Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
7020  value = +value
7021  offset = offset | 0
7022  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
7023  if (Buffer.TYPED_ARRAY_SUPPORT) {
7024    this[offset] = (value & 0xff)
7025    this[offset + 1] = (value >>> 8)
7026    this[offset + 2] = (value >>> 16)
7027    this[offset + 3] = (value >>> 24)
7028  } else {
7029    objectWriteUInt32(this, value, offset, true)
7030  }
7031  return offset + 4
7032}
7033
7034Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
7035  value = +value
7036  offset = offset | 0
7037  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
7038  if (value < 0) value = 0xffffffff + value + 1
7039  if (Buffer.TYPED_ARRAY_SUPPORT) {
7040    this[offset] = (value >>> 24)
7041    this[offset + 1] = (value >>> 16)
7042    this[offset + 2] = (value >>> 8)
7043    this[offset + 3] = (value & 0xff)
7044  } else {
7045    objectWriteUInt32(this, value, offset, false)
7046  }
7047  return offset + 4
7048}
7049
7050function checkIEEE754 (buf, value, offset, ext, max, min) {
7051  if (offset + ext > buf.length) throw new RangeError('Index out of range')
7052  if (offset < 0) throw new RangeError('Index out of range')
7053}
7054
7055function writeFloat (buf, value, offset, littleEndian, noAssert) {
7056  if (!noAssert) {
7057    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
7058  }
7059  ieee754.write(buf, value, offset, littleEndian, 23, 4)
7060  return offset + 4
7061}
7062
7063Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
7064  return writeFloat(this, value, offset, true, noAssert)
7065}
7066
7067Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
7068  return writeFloat(this, value, offset, false, noAssert)
7069}
7070
7071function writeDouble (buf, value, offset, littleEndian, noAssert) {
7072  if (!noAssert) {
7073    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
7074  }
7075  ieee754.write(buf, value, offset, littleEndian, 52, 8)
7076  return offset + 8
7077}
7078
7079Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
7080  return writeDouble(this, value, offset, true, noAssert)
7081}
7082
7083Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
7084  return writeDouble(this, value, offset, false, noAssert)
7085}
7086
7087// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
7088Buffer.prototype.copy = function copy (target, targetStart, start, end) {
7089  if (!start) start = 0
7090  if (!end && end !== 0) end = this.length
7091  if (targetStart >= target.length) targetStart = target.length
7092  if (!targetStart) targetStart = 0
7093  if (end > 0 && end < start) end = start
7094
7095  // Copy 0 bytes; we're done
7096  if (end === start) return 0
7097  if (target.length === 0 || this.length === 0) return 0
7098
7099  // Fatal error conditions
7100  if (targetStart < 0) {
7101    throw new RangeError('targetStart out of bounds')
7102  }
7103  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
7104  if (end < 0) throw new RangeError('sourceEnd out of bounds')
7105
7106  // Are we oob?
7107  if (end > this.length) end = this.length
7108  if (target.length - targetStart < end - start) {
7109    end = target.length - targetStart + start
7110  }
7111
7112  var len = end - start
7113  var i
7114
7115  if (this === target && start < targetStart && targetStart < end) {
7116    // descending copy from end
7117    for (i = len - 1; i >= 0; --i) {
7118      target[i + targetStart] = this[i + start]
7119    }
7120  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
7121    // ascending copy from start
7122    for (i = 0; i < len; ++i) {
7123      target[i + targetStart] = this[i + start]
7124    }
7125  } else {
7126    Uint8Array.prototype.set.call(
7127      target,
7128      this.subarray(start, start + len),
7129      targetStart
7130    )
7131  }
7132
7133  return len
7134}
7135
7136// Usage:
7137//    buffer.fill(number[, offset[, end]])
7138//    buffer.fill(buffer[, offset[, end]])
7139//    buffer.fill(string[, offset[, end]][, encoding])
7140Buffer.prototype.fill = function fill (val, start, end, encoding) {
7141  // Handle string cases:
7142  if (typeof val === 'string') {
7143    if (typeof start === 'string') {
7144      encoding = start
7145      start = 0
7146      end = this.length
7147    } else if (typeof end === 'string') {
7148      encoding = end
7149      end = this.length
7150    }
7151    if (val.length === 1) {
7152      var code = val.charCodeAt(0)
7153      if (code < 256) {
7154        val = code
7155      }
7156    }
7157    if (encoding !== undefined && typeof encoding !== 'string') {
7158      throw new TypeError('encoding must be a string')
7159    }
7160    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
7161      throw new TypeError('Unknown encoding: ' + encoding)
7162    }
7163  } else if (typeof val === 'number') {
7164    val = val & 255
7165  }
7166
7167  // Invalid ranges are not set to a default, so can range check early.
7168  if (start < 0 || this.length < start || this.length < end) {
7169    throw new RangeError('Out of range index')
7170  }
7171
7172  if (end <= start) {
7173    return this
7174  }
7175
7176  start = start >>> 0
7177  end = end === undefined ? this.length : end >>> 0
7178
7179  if (!val) val = 0
7180
7181  var i
7182  if (typeof val === 'number') {
7183    for (i = start; i < end; ++i) {
7184      this[i] = val
7185    }
7186  } else {
7187    var bytes = Buffer.isBuffer(val)
7188      ? val
7189      : utf8ToBytes(new Buffer(val, encoding).toString())
7190    var len = bytes.length
7191    for (i = 0; i < end - start; ++i) {
7192      this[i + start] = bytes[i % len]
7193    }
7194  }
7195
7196  return this
7197}
7198
7199// HELPER FUNCTIONS
7200// ================
7201
7202var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
7203
7204function base64clean (str) {
7205  // Node strips out invalid characters like \n and \t from the string, base64-js does not
7206  str = stringtrim(str).replace(INVALID_BASE64_RE, '')
7207  // Node converts strings with length < 2 to ''
7208  if (str.length < 2) return ''
7209  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
7210  while (str.length % 4 !== 0) {
7211    str = str + '='
7212  }
7213  return str
7214}
7215
7216function stringtrim (str) {
7217  if (str.trim) return str.trim()
7218  return str.replace(/^\s+|\s+$/g, '')
7219}
7220
7221function toHex (n) {
7222  if (n < 16) return '0' + n.toString(16)
7223  return n.toString(16)
7224}
7225
7226function utf8ToBytes (string, units) {
7227  units = units || Infinity
7228  var codePoint
7229  var length = string.length
7230  var leadSurrogate = null
7231  var bytes = []
7232
7233  for (var i = 0; i < length; ++i) {
7234    codePoint = string.charCodeAt(i)
7235
7236    // is surrogate component
7237    if (codePoint > 0xD7FF && codePoint < 0xE000) {
7238      // last char was a lead
7239      if (!leadSurrogate) {
7240        // no lead yet
7241        if (codePoint > 0xDBFF) {
7242          // unexpected trail
7243          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7244          continue
7245        } else if (i + 1 === length) {
7246          // unpaired lead
7247          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7248          continue
7249        }
7250
7251        // valid lead
7252        leadSurrogate = codePoint
7253
7254        continue
7255      }
7256
7257      // 2 leads in a row
7258      if (codePoint < 0xDC00) {
7259        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7260        leadSurrogate = codePoint
7261        continue
7262      }
7263
7264      // valid surrogate pair
7265      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
7266    } else if (leadSurrogate) {
7267      // valid bmp char, but last char was a lead
7268      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
7269    }
7270
7271    leadSurrogate = null
7272
7273    // encode utf8
7274    if (codePoint < 0x80) {
7275      if ((units -= 1) < 0) break
7276      bytes.push(codePoint)
7277    } else if (codePoint < 0x800) {
7278      if ((units -= 2) < 0) break
7279      bytes.push(
7280        codePoint >> 0x6 | 0xC0,
7281        codePoint & 0x3F | 0x80
7282      )
7283    } else if (codePoint < 0x10000) {
7284      if ((units -= 3) < 0) break
7285      bytes.push(
7286        codePoint >> 0xC | 0xE0,
7287        codePoint >> 0x6 & 0x3F | 0x80,
7288        codePoint & 0x3F | 0x80
7289      )
7290    } else if (codePoint < 0x110000) {
7291      if ((units -= 4) < 0) break
7292      bytes.push(
7293        codePoint >> 0x12 | 0xF0,
7294        codePoint >> 0xC & 0x3F | 0x80,
7295        codePoint >> 0x6 & 0x3F | 0x80,
7296        codePoint & 0x3F | 0x80
7297      )
7298    } else {
7299      throw new Error('Invalid code point')
7300    }
7301  }
7302
7303  return bytes
7304}
7305
7306function asciiToBytes (str) {
7307  var byteArray = []
7308  for (var i = 0; i < str.length; ++i) {
7309    // Node's code seems to be doing this and not & 0x7F..
7310    byteArray.push(str.charCodeAt(i) & 0xFF)
7311  }
7312  return byteArray
7313}
7314
7315function utf16leToBytes (str, units) {
7316  var c, hi, lo
7317  var byteArray = []
7318  for (var i = 0; i < str.length; ++i) {
7319    if ((units -= 2) < 0) break
7320
7321    c = str.charCodeAt(i)
7322    hi = c >> 8
7323    lo = c % 256
7324    byteArray.push(lo)
7325    byteArray.push(hi)
7326  }
7327
7328  return byteArray
7329}
7330
7331function base64ToBytes (str) {
7332  return base64.toByteArray(base64clean(str))
7333}
7334
7335function blitBuffer (src, dst, offset, length) {
7336  for (var i = 0; i < length; ++i) {
7337    if ((i + offset >= dst.length) || (i >= src.length)) break
7338    dst[i + offset] = src[i]
7339  }
7340  return i
7341}
7342
7343function isnan (val) {
7344  return val !== val // eslint-disable-line no-self-compare
7345}
7346
vendor: 3,280 bytes, lines 7347-7460
7347/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
7348
7349/***/ }),
7350/* 114 */
7351/***/ (function(module, exports, __webpack_require__) {
7352
7353var toInteger = __webpack_require__(73);
7354
7355var max = Math.max;
7356var min = Math.min;
7357
7358// Helper for a popular repeating case of the spec:
7359// Let integer be ? ToInteger(index).
7360// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
7361module.exports = function (index, length) {
7362  var integer = toInteger(index);
7363  return integer < 0 ? max(integer + length, 0) : min(integer, length);
7364};
7365
7366
7367/***/ }),
7368/* 115 */
7369/***/ (function(module, exports, __webpack_require__) {
7370
7371var aFunction = __webpack_require__(59);
7372
7373// optional / simple context binding
7374module.exports = function (fn, that, length) {
7375  aFunction(fn);
7376  if (that === undefined) return fn;
7377  switch (length) {
7378    case 0: return function () {
7379      return fn.call(that);
7380    };
7381    case 1: return function (a) {
7382      return fn.call(that, a);
7383    };
7384    case 2: return function (a, b) {
7385      return fn.call(that, a, b);
7386    };
7387    case 3: return function (a, b, c) {
7388      return fn.call(that, a, b, c);
7389    };
7390  }
7391  return function (/* ...args */) {
7392    return fn.apply(that, arguments);
7393  };
7394};
7395
7396
7397/***/ }),
7398/* 116 */
7399/***/ (function(module, exports, __webpack_require__) {
7400
7401var anObject = __webpack_require__(20);
7402var aPossiblePrototype = __webpack_require__(364);
7403
7404// `Object.setPrototypeOf` method
7405// https://tc39.github.io/ecma262/#sec-object.setprototypeof
7406// Works with __proto__ only. Old v8 can't work with null proto objects.
7407/* eslint-disable no-proto */
7408module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
7409  var CORRECT_SETTER = false;
7410  var test = {};
7411  var setter;
7412  try {
7413    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
7414    setter.call(test, []);
7415    CORRECT_SETTER = test instanceof Array;
7416  } catch (error) { /* empty */ }
7417  return function setPrototypeOf(O, proto) {
7418    anObject(O);
7419    aPossiblePrototype(proto);
7420    if (CORRECT_SETTER) setter.call(O, proto);
7421    else O.__proto__ = proto;
7422    return O;
7423  };
7424}() : undefined);
7425
7426
7427/***/ }),
7428/* 117 */
7429/***/ (function(module, exports, __webpack_require__) {
7430
7431var anObject = __webpack_require__(20);
7432var isArrayIteratorMethod = __webpack_require__(284);
7433var toLength = __webpack_require__(28);
7434var bind = __webpack_require__(115);
7435var getIteratorMethod = __webpack_require__(173);
7436var iteratorClose = __webpack_require__(365);
7437
7438var Result = function (stopped, result) {
7439  this.stopped = stopped;
7440  this.result = result;
7441};
7442
7443module.exports = function (iterable, unboundFunction, options) {
7444  var that = options && options.that;
7445  var AS_ENTRIES = !!(options && options.AS_ENTRIES);
7446  var IS_ITERATOR = !!(options && options.IS_ITERATOR);
7447  var INTERRUPTED = !!(options && options.INTERRUPTED);
7448  var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);
7449  var iterator, iterFn, index, length, result, next, step;
7450
7451  var stop = function (condition) {
7452    if (iterator) iteratorClose(iterator);
7453    return new Result(true, condition);
7454  };
7455
7456  var callFn = function (value) {
7457    if (AS_ENTRIES) {
7458      anObject(value);
7459      return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
7460    }
7460 return INTERRUPTED ? fn(value, stop) : fn(value);
7461  };
7462
7463  if (IS_ITERATOR) {
7464    iterator = iterable;
7465  } else {
7466    iterFn = getIteratorMethod(iterable);
7467    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');
7468    // optimisation for array iterators
7469    if (isArrayIteratorMethod(iterFn)) {
7470      for (index = 0, length = toLength(iterable.length); length > index; index++) {
7471        result = callFn(iterable[index]);
7472        if (result && result instanceof Result) return result;
7473      } return new Result(false);
7474    }
7475    iterator = iterFn.call(iterable);
7476  }
7477
7478  next = iterator.next;
7479  while (!(step = next.call(iterator)).done) {
7480    try {
7481      result = callFn(step.value);
7482    } catch (error) {
7483      iteratorClose(iterator);
7484      throw error;
7485    }
7486    if (typeof result == 'object' && result && result instanceof Result) return result;
7487  } return new Result(false);
7488};
7489
7490
7491/***/ }),
7492/* 118 */
7493/***/ (function(module, exports, __webpack_require__) {
7494
7495var wellKnownSymbol = __webpack_require__(23);
7496var create = __webpack_require__(92);
7497var definePropertyModule = __webpack_require__(30);
7498
7499var UNSCOPABLES = wellKnownSymbol('unscopables');
7500var ArrayPrototype = Array.prototype;
7501
7502// Array.prototype[@@unscopables]
7503// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
7504if (ArrayPrototype[UNSCOPABLES] == undefined) {
7505  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
7506    configurable: true,
7507    value: create(null)
7508  });
7509}
7510
7511// add a key to Array.prototype[@@unscopables]
7512module.exports = function (key) {
7513  ArrayPrototype[UNSCOPABLES][key] = true;
7514};
7515
7516
7517/***/ }),
7518/* 119 */
7519/***/ (function(module, exports) {
7520
7521module.exports = function (it, Constructor, name) {
7522  if (!(it instanceof Constructor)) {
7523    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
7524  } return it;
7525};
7526
7527
7528/***/ }),
7529/* 120 */,
7530/* 121 */
7531/***/ (function(module, exports, __webpack_require__) {
7532
7533!function(global, factory) {
7534     true ? module.exports = factory(__webpack_require__(1)) : undefined;
7535}(this, function(preact) {
7536    "use strict";
7537    var classCallCheck = (function() {
7538        function AwaitValue(value) {
7539            this.value = value;
7540        }
7541        function AsyncGenerator(gen) {
7542            function send(key, arg) {
7543                return new Promise(function(resolve, reject) {
7544                    var request = {
7545                        key: key,
7546                        arg: arg,
7547                        resolve: resolve,
7548                        reject: reject,
7549                        next: null
7550                    };
7551                    back ? back = back.next = request : (front = back = request, resume(key, arg));
7552                });
7553            }
7554            function resume(key, arg) {
7555                try {
7556                    var result = gen[key](arg), value = result.value;
7557                    value instanceof AwaitValue ? Promise.resolve(value.value).then(function(arg) {
7558                        resume("next", arg);
7559                    }, function(arg) {
7560                        resume("throw", arg);
7561                    }) : settle(result.done ? "return" : "normal", result.value);
7562                } catch (err) {
7563                    settle("throw", err);
7564                }
7565            }
7566            function settle(type, value) {
7567                switch (type) {
7568                  case "return":
7569                    front.resolve({
7570                        value: value,
7571                        done: !0
7572                    });
7573                    break;
7574
7575                  case "throw":
7576                    front.reject(value);
7577                    break;
7578
7579                  default:
7580                    front.resolve({
7581                        value: value,
7582                        done: !1
7583                    });
7584                }
7585                front = front.next, front ? resume(front.key, front.arg) : back = null;
7586            }
7587            var front, back;
7588            this._invoke = send, "function" != typeof gen.return && (this.return = void 0);
7589        }
7590        "function" == typeof Symbol && Symbol.asyncIterator && (AsyncGenerator.prototype[Symbol.asyncIterator] = function() {
7591            return this;
7592        }), AsyncGenerator.prototype.next = function(arg) {
7593            return this._invoke("next", arg);
7594        }, AsyncGenerator.prototype.throw = function(arg) {
7595            return this._invoke("throw", arg);
7596        }, AsyncGenerator.prototype.return = function(arg) {
7597            return this._invoke("return", arg);
7598        };
7599    }(), function(instance, Constructor) {
7600        if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
7601    }), _extends = Object.assign || function(target) {
7602        for (var i = 1; i < arguments.length; i++) {
7603            var source = arguments[i];
7604            for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);
7605        }
7606        return target;
7607    }, inherits = function(subClass, superClass) {
7608        if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
7609        subClass.prototype = Object.create(superClass && superClass.prototype, {
7610            constructor: {
7611                value: subClass,
7612                enumerable: !1,
7613                writable: !0,
7614                configurable: !0
7615            }
7616        }), superClass && (Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass);
7617    }, objectWithoutProperties = function(obj, keys) {
7618        var target = {};
7619        for (var i in obj) keys.indexOf(i) >= 0 || Object.prototype.hasOwnProperty.call(obj, i) && (target[i] = obj[i]);
7620        return target;
7621    }, possibleConstructorReturn = function(self, call) {
7622        if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
7623        return !call || "object" != typeof call && "function" != typeof call ? self : call;
7624    }, STYLE_INNER = {
7625        position: "relative",
7626        overflow: "hidden",
7627        width: "100%",
7628        "min-height": "100%"
7629    }, STYLE_CONTENT = {
7630        position: "absolute",
7631        top: "0",
7632        left: "0",
7633        height: "100%",
7634        width: "100%",
7635        overflow: "visible"
7636    };
7637    return function(_Component) {
7638        function VirtualList() {
7639            var _temp, _this, _ret;
7640            classCallCheck(this, VirtualList);
7641            for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];
7642            return _temp = _this = possibleConstructorReturn(this, _Component.call.apply(_Component, [ this ].concat(args))), 
7643            _this.resize = function() {
7644                _this.state.height !== _this.base.offsetHeight && _this.setState({
7645                    height: _this.base.offsetHeight
7646                });
7647            }, _this.handleScroll = function() {
7648                _this.setState({
7649                    offset: _this.base.scrollTop
7650                }), _this.props.sync && _this.forceUpdate();
7651            }, _ret = _temp, possibleConstructorReturn(_this, _ret);
7652        }
7653        return inherits(VirtualList, _Component), VirtualList.prototype.componentDidUpdate = function() {
7654            this.resize();
7655        }, VirtualList.prototype.componentDidMount = function() {
7656            this.resize(), addEventListener("resize", this.resize);
7657        }, VirtualList.prototype.componentWillUnmount = function() {
7658            removeEventListener("resize", this.resize);
7659        }, VirtualList.prototype.render = function(_ref, _ref2) {
7660            var data = _ref.data, rowHeight = _ref.rowHeight, renderRow = _ref.renderRow, _ref$overscanCount = _ref.overscanCount, overscanCount = void 0 === _ref$overscanCount ? 10 : _ref$overscanCount, props = (_ref.sync, 
7661            objectWithoutProperties(_ref, [ "data", "rowHeight", "renderRow", "overscanCount", "sync" ])), _ref2$offset = _ref2.offset, offset = void 0 === _ref2$offset ? 0 : _ref2$offset, _ref2$height = _ref2.height, height = void 0 === _ref2$height ? 0 : _ref2$height, start = offset / rowHeight | 0, visibleRowCount = height / rowHeight | 0;
7662            overscanCount && (start = Math.max(0, start - start % overscanCount), visibleRowCount += overscanCount);
7663            var end = start + 1 + visibleRowCount, selection = data.slice(start, end);
7664            return preact.h("div", _extends({
7665                onScroll: this.handleScroll
7666            }, props), preact.h("div", {
7667                style: _extends({}, STYLE_INNER, {
7668                    height: data.length * rowHeight
7669                })
7670            }, preact.h("div", {
7671                style: _extends({}, STYLE_CONTENT, {
7672                    top: start * rowHeight
7673                })
7674            }, selection.map(renderRow))));
7675        }, VirtualList;
7676    }(preact.Component);
7677});
7678
7679/***/ }),
7680/* 122 */
7681/***/ (function(module, exports, __webpack_require__) {
7682
7683// extracted by mini-css-extract-plugin
7684module.exports = {"visuallyHidden":"NavBar-module__visuallyHidden--3SnWm","button":"NavBar-module__button--1HB5H","skipLink":"NavBar-module__skipLink--CFwzY","wrap":"NavBar-module__wrap--3wxA6","middle":"NavBar-module__middle--2atN0","buttonContainer":"NavBar-module__buttonContainer--22
7684KJ8","narrow":"NavBar-module__narrow--3U3Vt","wide":"NavBar-module__wide--1UQBr"};
7685
7686/***/ }),
7687/* 123 */
7688/***/ (function(module, exports, __webpack_require__) {
7689
7690var DESCRIPTORS = __webpack_require__(21);
7691var defineProperty = __webpack_require__(30).f;
7692
7693var FunctionPrototype = Function.prototype;
7694var FunctionPrototypeToString = FunctionPrototype.toString;
7695var nameRE = /^\s*function ([^ (]*)/;
7696var NAME = 'name';
7697
7698// Function instances `.name` property
7699// https://tc39.github.io/ecma262/#sec-function-instances-name
7700if (DESCRIPTORS && !(NAME in FunctionPrototype)) {
7701  defineProperty(FunctionPrototype, NAME, {
7702    configurable: true,
7703    get: function () {
7704      try {
7705        return FunctionPrototypeToString.call(this).match(nameRE)[1];
7706      } catch (error) {
7707        return '';
7708      }
7709    }
7710  });
7711}
7712
7713
7714/***/ }),
7715/* 124 */
7716/***/ (function(module, exports, __webpack_require__) {
7717
7718"use strict";
7719
7720var $ = __webpack_require__(2);
7721var $includes = __webpack_require__(168).includes;
7722var addToUnscopables = __webpack_require__(118);
7723var arrayMethodUsesToLength = __webpack_require__(63);
7724
7725var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
7726
7727// `Array.prototype.includes` method
7728// https://tc39.github.io/ecma262/#sec-array.prototype.includes
7729$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {
7730  includes: function includes(el /* , fromIndex = 0 */) {
7731    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
7732  }
7733});
7734
7735// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
7736addToUnscopables('includes');
7737
7738
7739/***/ }),
7740/* 125 */,
7741/* 126 */,
7742/* 127 */
7743/***/ (function(module, __webpack_exports__, __webpack_require__) {
7744
7745"use strict";
7746
7747// EXPORTS
7748__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ timeoutPromise; });
7749__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ fetchTimeout; });
7750
7751// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
7752var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
7753
7754// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js?babel-target=legacy
7755var es_promisebabel_target_legacy = __webpack_require__(187);
7756
7757// CONCATENATED MODULE: ./node_modules/unfetch/dist/unfetch.module.js?babel-target=legacy
7758/* harmony default export */ var unfetch_modulebabel_target_legacy = (function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t}),t(a())},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})});
7759//# sourceMappingURL=unfetch.module.js.map
7760
7761// CONCATENATED MODULE: ./src/lib/fetchTimeout.js?babel-target=legacy
7762
7763
7764
7765/**
7766 * @param  {Promise} promise
7767 * @param  {number} timeout
7768 * @param  {string} error
7769 * @return
7770 */
7771
7772function timeoutPromise(promise, timeout, error) {
7773  return new Promise(function (resolve, reject) {
7774    setTimeout(function () {
7775      reject(error);
7776    }, timeout);
7777    promise.then(resolve, reject);
7778  });
7779}
7780/**
7781 * node-fetch wrapper that adds the possibility to set a timeout after which
7782 * a custom error is returned.
7783 * @param  {string} url     url to pass to node-fetch
7784 * @param  {object} options options to pass to node-fetch
7785 * @param  {number} timeout maximum acceptable timeout before considering the request as failed
7786 * @param  {string} [error]   custom error string after the timeout is expired
7787 * @return {Promise}
7788 */
7789
7790function fetchTimeout(url, options, timeout, error) {
7791  error = error || "Timeout error";
7792  options = options || {};
7793  timeout = timeout || 10000;
7794  return timeoutPromise(unfetch_modulebabel_target_legacy(url, options), timeout, error);
7795}
7796/* harmony default export */ var fetchTimeoutbabel_target_legacy = __webpack_exports__["a"] = (fetchTimeout);
7797
7798/***/ }),
7799/* 128 */,
7800/* 129 */
7801/***/ (function(module, exports, __webpack_require__) {
7802
7803// Copyright Joyent, Inc. and other Node contributors.
7804//
7805// Permission is hereby granted, free of charge, to any person obtaining a
7806// copy of this software and associated documentation files (the
7807// "Software"), to deal in the Software without restriction, including
7808// without limitation the rights to use, copy, modify, merge, publish,
7809// distribute, sublicense, and/or sell copies of the Software, and to permit
7810// persons to whom the Software is furnished to do so, subject to the
7811// following conditions:
7812//
7813// The above copyright notice and this permission notice shall be included
7814// in all copies or substantial portions of the Software.
7815//
7816// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
7817// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
7818// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
7819// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
7820// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
7821// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
7822// USE OR OTHER DEALINGS IN THE SOFTWARE.
7823
7824module.exports = Stream;
7825
7826var EE = __webpack_require__(469).EventEmitter;
7827var inherits = __webpack_require__(200);
7828
7829inherits(Stream, EE);
7830Stream.Readable = __webpack_require__(312);
7831Stream.Writable = __webpack_require__(911);
7832Stream.Duplex = __webpack_require__(912);
7833Stream.Transform = __webpack_require__(913);
7834Stream.PassThrough = __webpack_require__(914);
7835
7836// Backwards-compat with node 0.4.x
7837Stream.Stream = Stream;
7838
7839
7840
7841// old-style streams.  Note that the pipe method (the only relevant
7842// part of this class) is overridden in the Readable class.
7843
7844function Stream() {
7845  EE.call(this);
7846}
7847
7848Stream.prototype.pipe = function(dest, options) {
7849  var source = this;
7850
7851  function ondata(chunk) {
7852    if (dest.writable) {
7853      if (false === dest.write(chunk) && source.pause) {
7854        source.pause();
7855      }
7856    }
7857  }
7858
7859  source.on('data', ondata);
7860
7861  function ondrain() {
7862    if (source.readable && source.resume) {
7863      source.resume();
7864    }
7865  }
7866
7867  dest.on('drain', ondrain);
7868
7869  // If the 'end' option is not supplied, dest.end() will be called when
7870  // source gets the 'end' or 'close' events.  Only dest.end() once.
7871  if (!dest._isStdio && (!options || options.end !== false)) {
7872    source.on('end', onend);
7873    source.on('close', onclose);
7874  }
7875
7876  var didOnEnd = false;
7877  function onend() {
7878    if (didOnEnd) return;
7879    didOnEnd = true;
7880
7881    dest.end();
7882  }
7883
7884
7885  function onclose() {
7886    if (didOnEnd) return;
7887    didOnEnd = true;
7888
7889    if (typeof dest.destroy === 'function') dest.destroy();
7890  }
7891
7892  // don't leave dangling pipes when there are errors.
7893  function onerror(er) {
7894    cleanup();
7895    if (EE.listenerCount(this, 'error') === 0) {
7896      throw er; // Unhandled stream error in pipe.
7897    }
7898  }
7899
7900  source.on('error', onerror);
7901  dest.on('error', onerror);
7902
7903  // remove all the event listeners that were added.
7904  function cleanup() {
7905    source.removeListener('data', ondata);
7906    dest.removeListener('drain', ondrain);
7907
7908    source.removeListener('end', onend);
7909    source.removeListener('close', onclose);
7910
7911    source.removeListener('error', onerror);
7912    dest.removeListener('error', onerror);
7913
7914    source.removeListener('end', cleanup);
7915    source.removeListener('close', cleanup);
7916
7917    dest.removeListener('close', cleanup);
7918  }
7919
7920  source.on('end', cleanup);
7921  source.on('close', cleanup);
7922
7923  dest.on('close', cleanup);
7924
7925  dest.emit('pipe', source);
7926
7927  // Allow for unix-like usage: A.pipe(B).pipe(C)
7928  return dest;
7929};
7930
7931
7932/***/ }),
7933/* 130 */,
7934/* 131 */
7935/***/ (function(module, __webpack_exports__, __webpack_require__) {
7936
7937"use strict";
7938
7939// EXPORTS
7940__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ IconSpritebabel_target_legacy_IconSprite; });
7941
7942// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
7943var es_function_namebabel_target_legacy = __webpack_require__(123);
7944
7945// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
7946var extendsbabel_target_legacy = __webpack_require__(50);
7947var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
7948
7949// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
7950var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
7951var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
7952
7953// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
7954var preact_modulebabel_target_legacy = __webpack_require__(1);
7955
7956// CONCATENATED MODULE: ./src/components/IconSprite/IconSprite.tsx?babel-target=legacy
7957
7958
7959
7960
7961var IconSpritebabel_target_legacy_IconSprite = function IconSprite(_ref) {
7962  var name = _ref.name,
7963      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["name"]);
7964
7965  return Object(preact_modulebabel_target_legacy["h"])("svg", extendsbabel_target_legacy_default()({
7966    width: "32",
7967    height: "32",
7968    xmlns: "http://www.w3.org/2000/svg"
7969  }, props), Object(preact_modulebabel_target_legacy["h"])("use", {
7970    xlinkHref: "#icon-".concat(name)
7971  }));
7972};
7973/* harmony default export */ var IconSpritebabel_target_legacy = (IconSpritebabel_target_legacy_IconSprite);
7974// CONCATENATED MODULE: ./src/components/IconSprite/index.ts?babel-target=legacy
7975
7976
7977/***/ }),
7978/* 132 */
7979/***/ (function(module, exports, __webpack_require__) {
7980
7981var internalObjectKeys = __webpack_require__(359);
7982var enumBugKeys = __webpack_require__(279);
7983
7984var hiddenKeys = enumBugKeys.concat('length', 'prototype');
7985
7986// `Object.getOwnPropertyNames` method
7987// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
7988exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
7989  return internalObjectKeys(O, hiddenKeys);
7990};
7991
7992
7993/***/ }),
7994/* 133 */
7995/***/ (function(module, exports, __webpack_require__) {
7996
7997var classof = __webpack_require__(101);
7998
7999// `IsArray` abstract operation
8000// https://tc39.github.io/ecma262/#sec-isarray
8001module.exports = Array.isArray || function isArray(arg) {
8002  return classof(arg) == 'Array';
8003};
8004
8005
8006/***/ }),
8007/* 134 */
8008/***/ (function(module, exports, __webpack_require__) {
8009
8010"use strict";
8011
8012var toPrimitive = __webpack_require__(79);
8013var definePropertyModule = __webpack_require__(30);
8014var createPropertyDescriptor = __webpack_require__(100);
8015
8016module.exports = function (object, key, value) {
8017  var propertyKey = toPrimitive(key);
8018  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
8019  else object[propertyKey] = value;
8020};
8021
8022
8023/***/ }),
8024/* 135 */
8025/***/ (function(module, exports, __webpack_require__) {
8026
8027var hiddenKeys = __webpack_require__(166);
8028var isObject = __webpack_require__(19);
8029var has = __webpack_require__(35);
8030var defineProperty = __webpack_require__(30).f;
8031var uid = __webpack_require__(165);
8032var FREEZING = __webpack_require__(178);
8033
8034var METADATA = uid('meta');
8035var id = 0;
8036
8037var isExtensible = Object.isExtensible || function () {
8038  return true;
8039};
8040
8041var setMetadata = function (it) {
8042  defineProperty(it, METADATA, { value: {
8043    objectID: 'O' + ++id, // object ID
8044    weakData: {}          // weak collections IDs
8045  } });
8046};
8047
8048var fastKey = function (it, create) {
8049  // return a primitive with prefix
8050  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
8051  if (!has(it, METADATA)) {
8052    // can't set metadata to uncaught frozen object
8053    if (!isExtensible(it)) return 'F';
8054    // not necessary to add metadata
8055    if (!create) return 'E';
8056    // add missing metadata
8057    setMetadata(it);
8058  // return object ID
8059  } return it[METADATA].objectID;
8060};
8061
8062var getWeakData = function (it, create) {
8063  if (!has(it, METADATA)) {
8064    // can't set metadata to uncaught frozen object
8065    if (!isExtensible(it)) return true;
8066    // not necessary to add metadata
8067    if (!create) return false;
vendor: 4,973 bytes, lines 8068-8192
8068    // add missing metadata
8069    setMetadata(it);
8070  // return the store of weak collections IDs
8071  } return it[METADATA].weakData;
8072};
8073
8074// add metadata on freeze-family methods calling
8075var onFreeze = function (it) {
8076  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);
8077  return it;
8078};
8079
8080var meta = module.exports = {
8081  REQUIRED: false,
8082  fastKey: fastKey,
8083  getWeakData: getWeakData,
8084  onFreeze: onFreeze
8085};
8086
8087hiddenKeys[METADATA] = true;
8088
8089
8090/***/ }),
8091/* 136 */
8092/***/ (function(module, exports, __webpack_require__) {
8093
8094// extracted by mini-css-extract-plugin
8095module.exports = {"visuallyHidden":"SongBox-module__visuallyHidden--3p0u0","title":"SongBox-module__title--3E6Zu","label":"SongBox-module__label--3p9-Q","songAction":"SongBox-module__songAction--1ZhJO","time":"SongBox-module__time--3I1o3","artist":"SongBox-module__artist--2dv8v","wrap":"SongBox-module__wrap--1uim4","songActionLabel":"SongBox-module__songActionLabel--2G5PH","songActionWrap":"SongBox-module__songActionWrap--LrK7P","img":"SongBox-module__img--13wtH","details":"SongBox-module__details--1SNI9","detailsNoAlbumArt":"SongBox-module__detailsNoAlbumArt--1a8Ld","detailsNowPlaying":"SongBox-module__detailsNowPlaying--3LUhw","detailsNowPlayinNoAlbumArt":"SongBox-module__detailsNowPlayinNoAlbumArt--3atm4","noAction":"SongBox-module__noAction--3EaGV","noArt":"SongBox-module__noArt--Bhh2F","noActionNoArt":"SongBox-module__noActionNoArt--1ahco"};
8096
8097/***/ }),
8098/* 137 */,
8099/* 138 */
8100/***/ (function(module, exports, __webpack_require__) {
8101
8102"use strict";
8103
8104var toIndexedObject = __webpack_require__(66);
8105var addToUnscopables = __webpack_require__(118);
8106var Iterators = __webpack_require__(172);
8107var InternalStateModule = __webpack_require__(58);
8108var defineIterator = __webpack_require__(287);
8109
8110var ARRAY_ITERATOR = 'Array Iterator';
8111var setInternalState = InternalStateModule.set;
8112var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
8113
8114// `Array.prototype.entries` method
8115// https://tc39.github.io/ecma262/#sec-array.prototype.entries
8116// `Array.prototype.keys` method
8117// https://tc39.github.io/ecma262/#sec-array.prototype.keys
8118// `Array.prototype.values` method
8119// https://tc39.github.io/ecma262/#sec-array.prototype.values
8120// `Array.prototype[@@iterator]` method
8121// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator
8122// `CreateArrayIterator` internal method
8123// https://tc39.github.io/ecma262/#sec-createarrayiterator
8124module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
8125  setInternalState(this, {
8126    type: ARRAY_ITERATOR,
8127    target: toIndexedObject(iterated), // target
8128    index: 0,                          // next index
8129    kind: kind                         // kind
8130  });
8131// `%ArrayIteratorPrototype%.next` method
8132// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next
8133}, function () {
8134  var state = getInternalState(this);
8135  var target = state.target;
8136  var kind = state.kind;
8137  var index = state.index++;
8138  if (!target || index >= target.length) {
8139    state.target = undefined;
8140    return { value: undefined, done: true };
8141  }
8142  if (kind == 'keys') return { value: index, done: false };
8143  if (kind == 'values') return { value: target[index], done: false };
8144  return { value: [index, target[index]], done: false };
8145}, 'values');
8146
8147// argumentsList[@@iterator] is %ArrayProto_values%
8148// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject
8149// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject
8150Iterators.Arguments = Iterators.Array;
8151
8152// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
8153addToUnscopables('keys');
8154addToUnscopables('values');
8155addToUnscopables('entries');
8156
8157
8158/***/ }),
8159/* 139 */,
8160/* 140 */
8161/***/ (function(module, exports, __webpack_require__) {
8162
8163"use strict";
8164
8165var $ = __webpack_require__(2);
8166var notARegExp = __webpack_require__(289);
8167var requireObjectCoercible = __webpack_require__(52);
8168var correctIsRegExpLogic = __webpack_require__(290);
8169
8170// `String.prototype.includes` method
8171// https://tc39.github.io/ecma262/#sec-string.prototype.includes
8172$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
8173  includes: function includes(searchString /* , position = 0 */) {
8174    return !!~String(requireObjectCoercible(this))
8175      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
8176  }
8177});
8178
8179
8180/***/ }),
8181/* 141 */
8182/***/ (function(module, exports, __webpack_require__) {
8183
8184// extracted by mini-css-extract-plugin
8185module.exports = {"visuallyHidden":"TabBar-module__visuallyHidden--1UHyo","selected":"TabBar-module__selected--3D9i7","tab":"TabBar-module__tab--1qLHV","wrap":"TabBar-module__wrap--190kq","buttonContent":"TabBar-module__buttonContent--nPmX4","affix":"TabBar-module__affix--1Va3z"};
8186
8187/***/ }),
8188/* 142 */
8189/***/ (function(module, exports, __webpack_require__) {
8190
8191// extracted by mini-css-extract-plugin
8192module.exports = {"visuallyHidden":"StationError-module__visuallyHidden--2RVru","t
8192itle":"StationError-module__title--3zS0T","link":"StationError-module__link--3oTny","lyrics":"StationError-module__lyrics--JgNuH","copyContainer":"StationError-module__copyContainer--1J9eP","background":"StationError-module__background--2bue1","container":"StationError-module__container--259GW","icon":"StationError-module__icon--24-Ms"};
8193
8194/***/ }),
8195/* 143 */
8196/***/ (function(module, exports, __webpack_require__) {
8197
8198// extracted by mini-css-extract-plugin
8199module.exports = {"visuallyHidden":"AnnouncementBanner-module__visuallyHidden--3CIlD","settingsRow":"AnnouncementBanner-module__settingsRow--reRTP","name":"AnnouncementBanner-module__name--2txjb","settingsButton":"AnnouncementBanner-module__settingsButton--3AHYX","accept":"AnnouncementBanner-module__accept--3bIRi","title":"AnnouncementBanner-module__title--1t32C","toggleLabel":"AnnouncementBanner-module__toggleLabel--1Bz98","description":"AnnouncementBanner-module__description--1BzCg","policy":"AnnouncementBanner-module__policy--1S4IP","body":"AnnouncementBanner-module__body--1WPbz","wrap":"AnnouncementBanner-module__wrap--2L0q_","hide":"AnnouncementBanner-module__hide--1Goxf","inner":"AnnouncementBanner-module__inner--a5LIL","buttons":"AnnouncementBanner-module__buttons--Ec3Lo","toggle":"AnnouncementBanner-module__toggle--1Gvyu"};
8200
8201/***/ }),
8202/* 144 */,
8203/* 145 */,
8204/* 146 */
8205/***/ (function(module, exports, __webpack_require__) {
8206
8207var classof = __webpack_require__(101);
8208var global = __webpack_require__(16);
8209
8210module.exports = classof(global.process) == 'process';
8211
8212
8213/***/ }),
8214/* 147 */
8215/***/ (function(module, exports, __webpack_require__) {
8216
8217"use strict";
8218
8219var getBuiltIn = __webpack_require__(67);
8220var definePropertyModule = __webpack_require__(30);
8221var wellKnownSymbol = __webpack_require__(23);
8222var DESCRIPTORS = __webpack_require__(21);
8223
8224var SPECIES = wellKnownSymbol('species');
8225
8226module.exports = function (CONSTRUCTOR_NAME) {
8227  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
8228  var defineProperty = definePropertyModule.f;
8229
8230  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
8231    defineProperty(Constructor, SPECIES, {
8232      configurable: true,
8233      get: function () { return this; }
8234    });
8235  }
8236};
8237
8238
8239/***/ }),
8240/* 148 */
8241/***/ (function(module, exports, __webpack_require__) {
8242
8243"use strict";
8244
8245var anObject = __webpack_require__(20);
8246
8247// `RegExp.prototype.flags` getter implementation
8248// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
8249module.exports = function () {
8250  var that = anObject(this);
8251  var result = '';
8252  if (that.global) result += 'g';
8253  if (that.ignoreCase) result += 'i';
8254  if (that.multiline) result += 'm';
8255  if (that.dotAll) result += 's';
8256  if (that.unicode) result += 'u';
8257  if (that.sticky) result += 'y';
8258  return result;
8259};
8260
8261
8262/***/ }),
8263/* 149 */
8264/***/ (function(module, exports, __webpack_require__) {
8265
8266var requireObjectCoercible = __webpack_require__(52);
8267var whitespaces = __webpack_require__(225);
8268
8269var whitespace = '[' + whitespaces + ']';
8270var ltrim = RegExp('^' + whitespace + whitespace + '*');
8271var rtrim = RegExp(whitespace + whitespace + '*$');
8272
8273// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
8274var createMethod = function (TYPE) {
8275  return function ($this) {
8276    var string = String(requireObjectCoercible($this));
8277    if (TYPE & 1) string = string.replace(ltrim, '');
8278    if (TYPE & 2) string = string.replace(rtrim, '');
8279    return string;
8280  };
8281};
8282
8283module.exports = {
8284  // `String.prototype.{ trimLeft, trimStart }` methods
8285  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
8286  start: createMethod(1),
8287  // `String.prototype.{ trimRight, trimEnd }` methods
8288  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
8289  end: createMethod(2),
8290  // `String.prototype.trim` method
8291  // https://tc39.github.io/ecma262/#sec-string.prototype.trim
8292  trim: createMethod(3)
8293};
8294
8295
8296/***/ }),
8297/* 150 */
8298/***/ (function(module, exports, __webpack_require__) {
8299
8300var redefine = __webpack_require__(54);
8301
8302module.exports = function (target, src, options) {
8303  for (var key in src) redefine(target, key, src[key], options);
8304  return target;
8305};
8306
8307
8308/***/ }),
8309/* 151 */,
8310/* 152 */
8311/***/ (function(module, __webpack_exports__, __webpack_require__) {
8312
8313"use strict";
8314/* harmony import */ var _useEventBus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(430);
8315/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _useEventBus__WEBPACK_IMPORTED_MODULE_0__["a"]; });
8316
8317/* harmony import */ var _EventBusProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(399);
8318/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _EventBusProvider__WEBPACK_IMPORTED_MODULE_1__["b"]; });
8319
8320
8321
8322
8323/***/ }),
8324/* 153 */,
8325/* 154 */
8326/***/ (function(module, exports) {
8327
8328function _typeof(obj) {
8329  "@babel/helpers - typeof";
8330
8331  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
8332    module.exports = _typeof = function _typeof(obj) {
8333      return typeof obj;
8334    };
8335  } else {
8336    module.exports = _typeof = function _typeof(obj) {
8337      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
8338    };
8339  }
8340
8341  return _typeof(obj);
8342}
8343
8344module.exports = _typeof;
8345
8346/***/ }),
8347/* 155 */,
8348/* 156 */
8349/***/ (function(module, exports, __webpack_require__) {
8350
8351"use strict";
8352
8353var redefine = __webpack_require__(54);
8354var anObject = __webpack_require__(20);
8355var fails = __webpack_require__(11);
8356var flags = __webpack_require__(148);
8357
8358var TO_STRING = 'toString';
8359var RegExpPrototype = RegExp.prototype;
8360var nativeToString = RegExpPrototype[TO_STRING];
8361
8362var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
8363// FF44- RegExp#toString has a wrong name
8364var INCORRECT_NAME = nativeToString.name != TO_STRING;
8365
8366// `RegExp.prototype.toString` method
8367// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring
8368if (NOT_GENERIC || INCORRECT_NAME) {
8369  redefine(RegExp.prototype, TO_STRING, function toString() {
8370    var R = anObject(this);
8371    var p = String(R.source);
8372    var rf = R.flags;
8373    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);
8374    return '/' + p + '/' + f;
8375  }, { unsafe: true });
8376}
8377
8378
8379/***/ }),
8380/* 157 */,
8381/* 158 */,
8382/* 159 */
8383/***/ (function(module, exports, __webpack_require__) {
8384
8385// extracted by mini-css-extract-plugin
8386module.exports = {"visuallyHidden":"RecentStations-module__visuallyHidden--2gEaf","title":"RecentStations-module__title--1EbTq","card":"RecentStations-module__card--yFBPm ContentCard-module__card--1Ds0J","info":"RecentStations-module__info--JWO_c","empty":"RecentStations-module__empty--2NL77","sub":"RecentStations-module__sub--2j2BA","wrap":"RecentStations-module__wrap--1pI2u","head":"RecentStations-module__head--gFyRp","searchHistoryContainer":"RecentStations-module__searchHistoryContainer--1CTjO","buttons":"RecentStations-module__buttons--3PrhG","swoosh":"RecentStations-module__swoosh--2hqNJ"};
8387
8388/***/ }),
8389/* 160 */
8390/***/ (function(module, exports, __webpack_require__) {
8391
8392"use strict";
8393
8394var $ = __webpack_require__(2);
8395var IndexedObject = __webpack_require__(164);
8396var toIndexedObject = __webpack_require__(66);
8397var arrayMethodIsStrict = __webpack_require__(102);
8398
8399var nativeJoin = [].join;
8400
8401var ES3_STRINGS = IndexedObject != Object;
8402var STRICT_METHOD = arrayMethodIsStrict('join', ',');
8403
8404// `Array.prototype.join` method
8405// https://tc39.github.io/ecma262/#sec-array.prototype.join
8406$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {
8407  join: function join(separator) {
8408    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
8409  }
8410});
8411
8412
8413/***/ }),
8414/* 161 */,
8415/* 162 */
8416/***/ (function(module, exports, __webpack_require__) {
8417
8418"use strict";
8419
8420var $ = __webpack_require__(2);
8421var $reduce = __webpack_require__(217).left;
8422var arrayMethodIsStrict = __webpack_require__(102);
8423var arrayMethodUsesToLength = __webpack_require__(63);
8424var CHROME_VERSION = __webpack_require__(176);
8425var IS_NODE = __webpack_require__(146);
8426
8427var STRICT_METHOD = arrayMethodIsStrict('reduce');
8428var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
8429// Chrome 80-82 has a critical bug
8430// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
8431var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;
8432
8433// `Array.prototype.reduce` method
8434// https://tc39.github.io/ecma262/#sec-array.prototype.reduce
8435$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {
vendor: 10,105 bytes, lines 8436-8794
8436  reduce: function reduce(callbackfn /* , initialValue */) {
8437    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
8438  }
8439});
8440
8441
8442/***/ }),
8443/* 163 */,
8444/* 164 */
8445/***/ (function(module, exports, __webpack_require__) {
8446
8447var fails = __webpack_require__(11);
8448var classof = __webpack_require__(101);
8449
8450var split = ''.split;
8451
8452// fallback for non-array-like ES3 and non-enumerable old V8 strings
8453module.exports = fails(function () {
8454  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
8455  // eslint-disable-next-line no-prototype-builtins
8456  return !Object('z').propertyIsEnumerable(0);
8457}) ? function (it) {
8458  return classof(it) == 'String' ? split.call(it, '') : Object(it);
8459} : Object;
8460
8461
8462/***/ }),
8463/* 165 */
8464/***/ (function(module, exports) {
8465
8466var id = 0;
8467var postfix = Math.random();
8468
8469module.exports = function (key) {
8470  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
8471};
8472
8473
8474/***/ }),
8475/* 166 */
8476/***/ (function(module, exports) {
8477
8478module.exports = {};
8479
8480
8481/***/ }),
8482/* 167 */
8483/***/ (function(module, exports, __webpack_require__) {
8484
8485var global = __webpack_require__(16);
8486
8487module.exports = global;
8488
8489
8490/***/ }),
8491/* 168 */
8492/***/ (function(module, exports, __webpack_require__) {
8493
8494var toIndexedObject = __webpack_require__(66);
8495var toLength = __webpack_require__(28);
8496var toAbsoluteIndex = __webpack_require__(114);
8497
8498// `Array.prototype.{ indexOf, includes }` methods implementation
8499var createMethod = function (IS_INCLUDES) {
8500  return function ($this, el, fromIndex) {
8501    var O = toIndexedObject($this);
8502    var length = toLength(O.length);
8503    var index = toAbsoluteIndex(fromIndex, length);
8504    var value;
8505    // Array#includes uses SameValueZero equality algorithm
8506    // eslint-disable-next-line no-self-compare
8507    if (IS_INCLUDES && el != el) while (length > index) {
8508      value = O[index++];
8509      // eslint-disable-next-line no-self-compare
8510      if (value != value) return true;
8511    // Array#indexOf ignores holes, Array#includes - not
8512    } else for (;length > index; index++) {
8513      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
8514    } return !IS_INCLUDES && -1;
8515  };
8516};
8517
8518module.exports = {
8519  // `Array.prototype.includes` method
8520  // https://tc39.github.io/ecma262/#sec-array.prototype.includes
8521  includes: createMethod(true),
8522  // `Array.prototype.indexOf` method
8523  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
8524  indexOf: createMethod(false)
8525};
8526
8527
8528/***/ }),
8529/* 169 */
8530/***/ (function(module, exports, __webpack_require__) {
8531
8532var fails = __webpack_require__(11);
8533
8534var replacement = /#|\.prototype\./;
8535
8536var isForced = function (feature, detection) {
8537  var value = data[normalize(feature)];
8538  return value == POLYFILL ? true
8539    : value == NATIVE ? false
8540    : typeof detection == 'function' ? fails(detection)
8541    : !!detection;
8542};
8543
8544var normalize = isForced.normalize = function (string) {
8545  return String(string).replace(replacement, '.').toLowerCase();
8546};
8547
8548var data = isForced.data = {};
8549var NATIVE = isForced.NATIVE = 'N';
8550var POLYFILL = isForced.POLYFILL = 'P';
8551
8552module.exports = isForced;
8553
8554
8555/***/ }),
8556/* 170 */
8557/***/ (function(module, exports, __webpack_require__) {
8558
8559var internalObjectKeys = __webpack_require__(359);
8560var enumBugKeys = __webpack_require__(279);
8561
8562// `Object.keys` method
8563// https://tc39.github.io/ecma262/#sec-object.keys
8564module.exports = Object.keys || function keys(O) {
8565  return internalObjectKeys(O, enumBugKeys);
8566};
8567
8568
8569/***/ }),
8570/* 171 */
8571/***/ (function(module, exports, __webpack_require__) {
8572
8573var isObject = __webpack_require__(19);
8574var isArray = __webpack_require__(133);
8575var wellKnownSymbol = __webpack_require__(23);
8576
8577var SPECIES = wellKnownSymbol('species');
8578
8579// `ArraySpeciesCreate` abstract operation
8580// https://tc39.github.io/ecma262/#sec-arrayspeciescreate
8581module.exports = function (originalArray, length) {
8582  var C;
8583  if (isArray(originalArray)) {
8584    C = originalArray.constructor;
8585    // cross-realm fallback
8586    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
8587    else if (isObject(C)) {
8588      C = C[SPECIES];
8589      if (C === null) C = undefined;
8590    }
8591  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
8592};
8593
8594
8595/***/ }),
8596/* 172 */
8597/***/ (function(module, exports) {
8598
8599module.exports = {};
8600
8601
8602/***/ }),
8603/* 173 */
8604/***/ (function(module, exports, __webpack_require__) {
8605
8606var classof = __webpack_require__(174);
8607var Iterators = __webpack_require__(172);
8608var wellKnownSymbol = __webpack_require__(23);
8609
8610var ITERATOR = wellKnownSymbol('iterator');
8611
8612module.exports = function (it) {
8613  if (it != undefined) return it[ITERATOR]
8614    || it['@@iterator']
8615    || Iterators[classof(it)];
8616};
8617
8618
8619/***/ }),
8620/* 174 */
8621/***/ (function(module, exports, __webpack_require__) {
8622
8623var TO_STRING_TAG_SUPPORT = __webpack_require__(285);
8624var classofRaw = __webpack_require__(101);
8625var wellKnownSymbol = __webpack_require__(23);
8626
8627var TO_STRING_TAG = wellKnownSymbol('toStringTag');
8628// ES3 wrong here
8629var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
8630
8631// fallback for IE11 Script Access Denied error
8632var tryGet = function (it, key) {
8633  try {
8634    return it[key];
8635  } catch (error) { /* empty */ }
8636};
8637
8638// getting tag from ES6+ `Object.prototype.toString`
8639module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
8640  var O, tag, result;
8641  return it === undefined ? 'Undefined' : it === null ? 'Null'
8642    // @@toStringTag case
8643    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
8644    // builtinTag case
8645    : CORRECT_ARGUMENTS ? classofRaw(O)
8646    // ES3 arguments fallback
8647    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
8648};
8649
8650
8651/***/ }),
8652/* 175 */
8653/***/ (function(module, exports, __webpack_require__) {
8654
8655var fails = __webpack_require__(11);
8656var wellKnownSymbol = __webpack_require__(23);
8657var V8_VERSION = __webpack_require__(176);
8658
8659var SPECIES = wellKnownSymbol('species');
8660
8661module.exports = function (METHOD_NAME) {
8662  // We can't use this feature detection in V8 since it causes
8663  // deoptimization and serious performance degradation
8664  // https://github.com/zloirock/core-js/issues/677
8665  return V8_VERSION >= 51 || !fails(function () {
8666    var array = [];
8667    var constructor = array.constructor = {};
8668    constructor[SPECIES] = function () {
8669      return { foo: 1 };
8670    };
8671    return array[METHOD_NAME](Boolean).foo !== 1;
8672  });
8673};
8674
8675
8676/***/ }),
8677/* 176 */
8678/***/ (function(module, exports, __webpack_require__) {
8679
8680var global = __webpack_require__(16);
8681var userAgent = __webpack_require__(216);
8682
8683var process = global.process;
8684var versions = process && process.versions;
8685var v8 = versions && versions.v8;
8686var match, version;
8687
8688if (v8) {
8689  match = v8.split('.');
8690  version = match[0] + match[1];
8691} else if (userAgent) {
8692  match = userAgent.match(/Edge\/(\d+)/);
8693  if (!match || match[1] >= 74) {
8694    match = userAgent.match(/Chrome\/(\d+)/);
8695    if (match) version = match[1];
8696  }
8697}
8698
8699module.exports = version && +version;
8700
8701
8702/***/ }),
8703/* 177 */
8704/***/ (function(module, exports, __webpack_require__) {
8705
8706"use strict";
8707
8708var $ = __webpack_require__(2);
8709var isObject = __webpack_require__(19);
8710var isArray = __webpack_require__(133);
8711var toAbsoluteIndex = __webpack_require__(114);
8712var toLength = __webpack_require__(28);
8713var toIndexedObject = __webpack_require__(66);
8714var createProperty = __webpack_require__(134);
8715var wellKnownSymbol = __webpack_require__(23);
8716var arrayMethodHasSpeciesSupport = __webpack_require__(175);
8717var arrayMethodUsesToLength = __webpack_require__(63);
8718
8719var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
8720var USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });
8721
8722var SPECIES = wellKnownSymbol('species');
8723var nativeSlice = [].slice;
8724var max = Math.max;
8725
8726// `Array.prototype.slice` method
8727// https://tc39.github.io/ecma262/#sec-array.prototype.slice
8728// fallback for not array-like ES3 strings and DOM objects
8729$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
8730  slice: function slice(start, end) {
8731    var O = toIndexedObject(this);
8732    var length = toLength(O.length);
8733    var k = toAbsoluteIndex(start, length);
8734    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
8735    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
8736    var Constructor, result, n;
8737    if (isArray(O)) {
8738      Constructor = O.constructor;
8739      // cross-realm fallback
8740      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
8741        Constructor = undefined;
8742      } else if (isObject(Constructor)) {
8743        Constructor = Constructor[SPECIES];
8744        if (Constructor === null) Constructor = undefined;
8745      }
8746      if (Constructor === Array || Constructor === undefined) {
8747        return nativeSlice.call(O, k, fin);
8748      }
8749    }
8750    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));
8751    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
8752    result.length = n;
8753    return result;
8754  }
8755});
8756
8757
8758/***/ }),
8759/* 178 */
8760/***/ (function(module, exports, __webpack_require__) {
8761
8762var fails = __webpack_require__(11);
8763
8764module.exports = !fails(function () {
8765  return Object.isExtensible(Object.preventExtensions({}));
8766});
8767
8768
8769/***/ }),
8770/* 179 */
8771/***/ (function(module, exports, __webpack_require__) {
8772
8773var isObject = __webpack_require__(19);
8774var classof = __webpack_require__(101);
8775var wellKnownSymbol = __webpack_require__(23);
8776
8777var MATCH = wellKnownSymbol('match');
8778
8779// `IsRegExp` abstract operation
8780// https://tc39.github.io/ecma262/#sec-isregexp
8781module.exports = function (it) {
8782  var isRegExp;
8783  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
8784};
8785
8786
8787/***/ }),
8788/* 180 */
8789/***/ (function(module, exports, __webpack_require__) {
8790
8791"use strict";
8792/* WEBPACK VAR INJECTION */(function(Buffer) {
8793const punycode = __webpack_require__(472);
8794const tr46 = __webpack_require__(927
vendor: 33,493 bytes, lines 8794-10089
8794);
8795
8796const specialSchemes = {
8797  ftp: 21,
8798  file: null,
8799  gopher: 70,
8800  http: 80,
8801  https: 443,
8802  ws: 80,
8803  wss: 443
8804};
8805
8806const failure = Symbol("failure");
8807
8808function countSymbols(str) {
8809  return punycode.ucs2.decode(str).length;
8810}
8811
8812function at(input, idx) {
8813  const c = input[idx];
8814  return isNaN(c) ? undefined : String.fromCodePoint(c);
8815}
8816
8817function isASCIIDigit(c) {
8818  return c >= 0x30 && c <= 0x39;
8819}
8820
8821function isASCIIAlpha(c) {
8822  return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A);
8823}
8824
8825function isASCIIAlphanumeric(c) {
8826  return isASCIIAlpha(c) || isASCIIDigit(c);
8827}
8828
8829function isASCIIHex(c) {
8830  return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66);
8831}
8832
8833function isSingleDot(buffer) {
8834  return buffer === "." || buffer.toLowerCase() === "%2e";
8835}
8836
8837function isDoubleDot(buffer) {
8838  buffer = buffer.toLowerCase();
8839  return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e";
8840}
8841
8842function isWindowsDriveLetterCodePoints(cp1, cp2) {
8843  return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);
8844}
8845
8846function isWindowsDriveLetterString(string) {
8847  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|");
8848}
8849
8850function isNormalizedWindowsDriveLetterString(string) {
8851  return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":";
8852}
8853
8854function containsForbiddenHostCodePoint(string) {
8855  return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1;
8856}
8857
8858function containsForbiddenHostCodePointExcludingPercent(string) {
8859  return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1;
8860}
8861
8862function isSpecialScheme(scheme) {
8863  return specialSchemes[scheme] !== undefined;
8864}
8865
8866function isSpecial(url) {
8867  return isSpecialScheme(url.scheme);
8868}
8869
8870function defaultPort(scheme) {
8871  return specialSchemes[scheme];
8872}
8873
8874function percentEncode(c) {
8875  let hex = c.toString(16).toUpperCase();
8876  if (hex.length === 1) {
8877    hex = "0" + hex;
8878  }
8879
8880  return "%" + hex;
8881}
8882
8883function utf8PercentEncode(c) {
8884  const buf = new Buffer(c);
8885
8886  let str = "";
8887
8888  for (let i = 0; i < buf.length; ++i) {
8889    str += percentEncode(buf[i]);
8890  }
8891
8892  return str;
8893}
8894
8895function utf8PercentDecode(str) {
8896  const input = new Buffer(str);
8897  const output = [];
8898  for (let i = 0; i < input.length; ++i) {
8899    if (input[i] !== 37) {
8900      output.push(input[i]);
8901    } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {
8902      output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));
8903      i += 2;
8904    } else {
8905      output.push(input[i]);
8906    }
8907  }
8908  return new Buffer(output).toString();
8909}
8910
8911function isC0ControlPercentEncode(c) {
8912  return c <= 0x1F || c > 0x7E;
8913}
8914
8915const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);
8916function isPathPercentEncode(c) {
8917  return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);
8918}
8919
8920const extraUserinfoPercentEncodeSet =
8921  new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);
8922function isUserinfoPercentEncode(c) {
8923  return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);
8924}
8925
8926function percentEncodeChar(c, encodeSetPredicate) {
8927  const cStr = String.fromCodePoint(c);
8928
8929  if (encodeSetPredicate(c)) {
8930    return utf8PercentEncode(cStr);
8931  }
8932
8933  return cStr;
8934}
8935
8936function parseIPv4Number(input) {
8937  let R = 10;
8938
8939  if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
8940    input = input.substring(2);
8941    R = 16;
8942  } else if (input.length >= 2 && input.charAt(0) === "0") {
8943    input = input.substring(1);
8944    R = 8;
8945  }
8946
8947  if (input === "") {
8948    return 0;
8949  }
8950
8951  const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/);
8952  if (regex.test(input)) {
8953    return failure;
8954  }
8955
8956  return parseInt(input, R);
8957}
8958
8959function parseIPv4(input) {
8960  const parts = input.split(".");
8961  if (parts[parts.length - 1] === "") {
8962    if (parts.length > 1) {
8963      parts.pop();
8964    }
8965  }
8966
8967  if (parts.length > 4) {
8968    return input;
8969  }
8970
8971  const numbers = [];
8972  for (const part of parts) {
8973    if (part === "") {
8974      return input;
8975    }
8976    const n = parseIPv4Number(part);
8977    if (n === failure) {
8978      return input;
8979    }
8980
8981    numbers.push(n);
8982  }
8983
8984  for (let i = 0; i < numbers.length - 1; ++i) {
8985    if (numbers[i] > 255) {
8986      return failure;
8987    }
8988  }
8989  if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {
8990    return failure;
8991  }
8992
8993  let ipv4 = numbers.pop();
8994  let counter = 0;
8995
8996  for (const n of numbers) {
8997    ipv4 += n * Math.pow(256, 3 - counter);
8998    ++counter;
8999  }
9000
9001  return ipv4;
9002}
9003
9004function serializeIPv4(address) {
9005  let output = "";
9006  let n = address;
9007
9008  for (let i = 1; i <= 4; ++i) {
9009    output = String(n % 256) + output;
9010    if (i !== 4) {
9011      output = "." + output;
9012    }
9013    n = Math.floor(n / 256);
9014  }
9015
9016  return output;
9017}
9018
9019function parseIPv6(input) {
9020  const address = [0, 0, 0, 0, 0, 0, 0, 0];
9021  let pieceIndex = 0;
9022  let compress = null;
9023  let pointer = 0;
9024
9025  input = punycode.ucs2.decode(input);
9026
9027  if (input[pointer] === 58) {
9028    if (input[pointer + 1] !== 58) {
9029      return failure;
9030    }
9031
9032    pointer += 2;
9033    ++pieceIndex;
9034    compress = pieceIndex;
9035  }
9036
9037  while (pointer < input.length) {
9038    if (pieceIndex === 8) {
9039      return failure;
9040    }
9041
9042    if (input[pointer] === 58) {
9043      if (compress !== null) {
9044        return failure;
9045      }
9046      ++pointer;
9047      ++pieceIndex;
9048      compress = pieceIndex;
9049      continue;
9050    }
9051
9052    let value = 0;
9053    let length = 0;
9054
9055    while (length < 4 && isASCIIHex(input[pointer])) {
9056      value = value * 0x10 + parseInt(at(input, pointer), 16);
9057      ++pointer;
9058      ++length;
9059    }
9060
9061    if (input[pointer] === 46) {
9062      if (length === 0) {
9063        return failure;
9064      }
9065
9066      pointer -= length;
9067
9068      if (pieceIndex > 6) {
9069        return failure;
9070      }
9071
9072      let numbersSeen = 0;
9073
9074      while (input[pointer] !== undefined) {
9075        let ipv4Piece = null;
9076
9077        if (numbersSeen > 0) {
9078          if (input[pointer] === 46 && numbersSeen < 4) {
9079            ++pointer;
9080          } else {
9081            return failure;
9082          }
9083        }
9084
9085        if (!isASCIIDigit(input[pointer])) {
9086          return failure;
9087        }
9088
9089        while (isASCIIDigit(input[pointer])) {
9090          const number = parseInt(at(input, pointer));
9091          if (ipv4Piece === null) {
9092            ipv4Piece = number;
9093          } else if (ipv4Piece === 0) {
9094            return failure;
9095          } else {
9096            ipv4Piece = ipv4Piece * 10 + number;
9097          }
9098          if (ipv4Piece > 255) {
9099            return failure;
9100          }
9101          ++pointer;
9102        }
9103
9104        address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece;
9105
9106        ++numbersSeen;
9107
9108        if (numbersSeen === 2 || numbersSeen === 4) {
9109          ++pieceIndex;
9110        }
9111      }
9112
9113      if (numbersSeen !== 4) {
9114        return failure;
9115      }
9116
9117      break;
9118    } else if (input[pointer] === 58) {
9119      ++pointer;
9120      if (input[pointer] === undefined) {
9121        return failure;
9122      }
9123    } else if (input[pointer] !== undefined) {
9124      return failure;
9125    }
9126
9127    address[pieceIndex] = value;
9128    ++pieceIndex;
9129  }
9130
9131  if (compress !== null) {
9132    let swaps = pieceIndex - compress;
9133    pieceIndex = 7;
9134    while (pieceIndex !== 0 && swaps > 0) {
9135      const temp = address[compress + swaps - 1];
9136      address[compress + swaps - 1] = address[pieceIndex];
9137      address[pieceIndex] = temp;
9138      --pieceIndex;
9139      --swaps;
9140    }
9141  } else if (compress === null && pieceIndex !== 8) {
9142    return failure;
9143  }
9144
9145  return address;
9146}
9147
9148function serializeIPv6(address) {
9149  let output = "";
9150  const seqResult = findLongestZeroSequence(address);
9151  const compress = seqResult.idx;
9152  let ignore0 = false;
9153
9154  for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {
9155    if (ignore0 && address[pieceIndex] === 0) {
9156      continue;
9157    } else if (ignore0) {
9158      ignore0 = false;
9159    }
9160
9161    if (compress === pieceIndex) {
9162      const separator = pieceIndex === 0 ? "::" : ":";
9163      output += separator;
9164      ignore0 = true;
9165      continue;
9166    }
9167
9168    output += address[pieceIndex].toString(16);
9169
9170    if (pieceIndex !== 7) {
9171      output += ":";
9172    }
9173  }
9174
9175  return output;
9176}
9177
9178function parseHost(input, isSpecialArg) {
9179  if (input[0] === "[") {
9180    if (input[input.length - 1] !== "]") {
9181      return failure;
9182    }
9183
9184    return parseIPv6(input.substring(1, input.length - 1));
9185  }
9186
9187  if (!isSpecialArg) {
9188    return parseOpaqueHost(input);
9189  }
9190
9191  const domain = utf8PercentDecode(input);
9192  const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);
9193  if (asciiDomain === null) {
9194    return failure;
9195  }
9196
9197  if (containsForbiddenHostCodePoint(asciiDomain)) {
9198    return failure;
9199  }
9200
9201  const ipv4Host = parseIPv4(asciiDomain);
9202  if (typeof ipv4Host === "number" || ipv4Host === failure) {
9203    return ipv4Host;
9204  }
9205
9206  return asciiDomain;
9207}
9208
9209function parseOpaqueHost(input) {
9210  if (containsForbiddenHostCodePointExcludingPercent(input)) {
9211    return failure;
9212  }
9213
9214  let output = "";
9215  const decoded = punycode.ucs2.decode(input);
9216  for (let i = 0; i < decoded.length; ++i) {
9217    output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);
9218  }
9219  return output;
9220}
9221
9222function findLongestZeroSequence(arr) {
9223  let maxIdx = null;
9224  let maxLen = 1; // only find elements > 1
9225  let currStart = null;
9226  let currLen = 0;
9227
9228  for (let i = 0; i < arr.length; ++i) {
9229    if (arr[i] !== 0) {
9230      if (currLen > maxLen) {
9231        maxIdx = currStart;
9232        maxLen = currLen;
9233      }
9234
9235      currStart = null;
9236      currLen = 0;
9237    } else {
9238      if (currStart === null) {
9239        currStart = i;
9240      }
9241      ++currLen;
9242    }
9243  }
9244
9245  // if trailing zeros
9246  if (currLen > maxLen) {
9247    maxIdx = currStart;
9248    maxLen = currLen;
9249  }
9250
9251  return {
9252    idx: maxIdx,
9253    len: maxLen
9254  };
9255}
9256
9257function serializeHost(host) {
9258  if (typeof host === "number") {
9259    return serializeIPv4(host);
9260  }
9261
9262  // IPv6 serializer
9263  if (host instanceof Array) {
9264    return "[" + serializeIPv6(host) + "]";
9265  }
9266
9267  return host;
9268}
9269
9270function trimControlChars(url) {
9271  return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, "");
9272}
9273
9274function trimTabAndNewline(url) {
9275  return url.replace(/\u0009|\u000A|\u000D/g, "");
9276}
9277
9278function shortenPath(url) {
9279  const path = url.path;
9280  if (path.length === 0) {
9281    return;
9282  }
9283  if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {
9284    return;
9285  }
9286
9287  path.pop();
9288}
9289
9290function includesCredentials(url) {
9291  return url.username !== "" || url.password !== "";
9292}
9293
9294function cannotHaveAUsernamePasswordPort(url) {
9295  return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file";
9296}
9297
9298function isNormalizedWindowsDriveLetter(string) {
9299  return /^[A-Za-z]:$/.test(string);
9300}
9301
9302function URLStateMachine(input, base, encodingOverride, url, stateOverride) {
9303  this.pointer = 0;
9304  this.input = input;
9305  this.base = base || null;
9306  this.encodingOverride = encodingOverride || "utf-8";
9307  this.stateOverride = stateOverride;
9308  this.url = url;
9309  this.failure = false;
9310  this.parseError = false;
9311
9312  if (!this.url) {
9313    this.url = {
9314      scheme: "",
9315      username: "",
9316      password: "",
9317      host: null,
9318      port: null,
9319      path: [],
9320      query: null,
9321      fragment: null,
9322
9323      cannotBeABaseURL: false
9324    };
9325
9326    const res = trimControlChars(this.input);
9327    if (res !== this.input) {
9328      this.parseError = true;
9329    }
9330    this.input = res;
9331  }
9332
9333  const res = trimTabAndNewline(this.input);
9334  if (res !== this.input) {
9335    this.parseError = true;
9336  }
9337  this.input = res;
9338
9339  this.state = stateOverride || "scheme start";
9340
9341  this.buffer = "";
9342  this.atFlag = false;
9343  this.arrFlag = false;
9344  this.passwordTokenSeenFlag = false;
9345
9346  this.input = punycode.ucs2.decode(this.input);
9347
9348  for (; this.pointer <= this.input.length; ++this.pointer) {
9349    const c = this.input[this.pointer];
9350    const cStr = isNaN(c) ? undefined : String.fromCodePoint(c);
9351
9352    // exec state machine
9353    const ret = this["parse " + this.state](c, cStr);
9354    if (!ret) {
9355      break; // terminate algorithm
9356    } else if (ret === failure) {
9357      this.failure = true;
9358      break;
9359    }
9360  }
9361}
9362
9363URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) {
9364  if (isASCIIAlpha(c)) {
9365    this.buffer += cStr.toLowerCase();
9366    this.state = "scheme";
9367  } else if (!this.stateOverride) {
9368    this.state = "no scheme";
9369    --this.pointer;
9370  } else {
9371    this.parseError = true;
9372    return failure;
9373  }
9374
9375  return true;
9376};
9377
9378URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) {
9379  if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {
9380    this.buffer += cStr.toLowerCase();
9381  } else if (c === 58) {
9382    if (this.stateOverride) {
9383      if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
9384        return false;
9385      }
9386
9387      if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {
9388        return false;
9389      }
9390
9391      if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") {
9392        return false;
9393      }
9394
9395      if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) {
9396        return false;
9397      }
9398    }
9399    this.url.scheme = this.buffer;
9400    this.buffer = "";
9401    if (this.stateOverride) {
9402      return false;
9403    }
9404    if (this.url.scheme === "file") {
9405      if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {
9406        this.parseError = true;
9407      }
9408      this.state = "file";
9409    } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {
9410      this.state = "special relative or authority";
9411    } else if (isSpecial(this.url)) {
9412      this.state = "special authority slashes";
9413    } else if (this.input[this.pointer + 1] === 47) {
9414      this.state = "path or authority";
9415      ++this.pointer;
9416    } else {
9417      this.url.cannotBeABaseURL = true;
9418      this.url.path.push("");
9419      this.state = "cannot-be-a-base-URL path";
9420    }
9421  } else if (!this.stateOverride) {
9422    this.buffer = "";
9423    this.state = "no scheme";
9424    this.pointer = -1;
9425  } else {
9426    this.parseError = true;
9427    return failure;
9428  }
9429
9430  return true;
9431};
9432
9433URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) {
9434  if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) {
9435    return failure;
9436  } else if (this.base.cannotBeABaseURL && c === 35) {
9437    this.url.scheme = this.base.scheme;
9438    this.url.path = this.base.path.slice();
9439    this.url.query = this.base.query;
9440    this.url.fragment = "";
9441    this.url.cannotBeABaseURL = true;
9442    this.state = "fragment";
9443  } else if (this.base.scheme === "file") {
9444    this.state = "file";
9445    --this.pointer;
9446  } else {
9447    this.state = "relative";
9448    --this.pointer;
9449  }
9450
9451  return true;
9452};
9453
9454URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) {
9455  if (c === 47 && this.input[this.pointer + 1] === 47) {
9456    this.state = "special authority ignore slashes";
9457    ++this.pointer;
9458  } else {
9459    this.parseError = true;
9460    this.state = "relative";
9461    --this.pointer;
9462  }
9463
9464  return true;
9465};
9466
9467URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) {
9468  if (c === 47) {
9469    this.state = "authority";
9470  } else {
9471    this.state = "path";
9472    --this.pointer;
9473  }
9474
9475  return true;
9476};
9477
9478URLStateMachine.prototype["parse relative"] = function parseRelative(c) {
9479  this.url.scheme = this.base.scheme;
9480  if (isNaN(c)) {
9481    this.url.username = this.base.username;
9482    this.url.password = this.base.password;
9483    this.url.host = this.base.host;
9484    this.url.port = this.base.port;
9485    this.url.path = this.base.path.slice();
9486    this.url.query = this.base.query;
9487  } else if (c === 47) {
9488    this.state = "relative slash";
9489  } else if (c === 63) {
9490    this.url.username = this.base.username;
9491    this.url.password = this.base.password;
9492    this.url.host = this.base.host;
9493    this.url.port = this.base.port;
9494    this.url.path = this.base.path.slice();
9495    this.url.query = "";
9496    this.state = "query";
9497  } else if (c === 35) {
9498    this.url.username = this.base.username;
9499    this.url.password = this.base.password;
9500    this.url.host = this.base.host;
9501    this.url.port = this.base.port;
9502    this.url.path = this.base.path.slice();
9503    this.url.query = this.base.query;
9504    this.url.fragment = "";
9505    this.state = "fragment";
9506  } else if (isSpecial(this.url) && c === 92) {
9507    this.parseError = true;
9508    this.state = "relative slash";
9509  } else {
9510    this.url.username = this.base.username;
9511    this.url.password = this.base.password;
9512    this.url.host = this.base.host;
9513    this.url.port = this.base.port;
9514    this.url.path = this.base.path.slice(0, this.base.path.length - 1);
9515
9516    this.state = "path";
9517    --this.pointer;
9518  }
9519
9520  return true;
9521};
9522
9523URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) {
9524  if (isSpecial(this.url) && (c === 47 || c === 92)) {
9525    if (c === 92) {
9526      this.parseError = true;
9527    }
9528    this.state = "special authority ignore slashes";
9529  } else if (c === 47) {
9530    this.state = "authority";
9531  } else {
9532    this.url.username = this.base.username;
9533    this.url.password = this.base.password;
9534    this.url.host = this.base.host;
9535    this.url.port = this.base.port;
9536    this.state = "path";
9537    --this.pointer;
9538  }
9539
9540  return true;
9541};
9542
9543URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) {
9544  if (c === 47 && this.input[this.pointer + 1] === 47) {
9545    this.state = "special authority ignore slashes";
9546    ++this.pointer;
9547  } else {
9548    this.parseError = true;
9549    this.state = "special authority ignore slashes";
9550    --this.pointer;
9551  }
9552
9553  return true;
9554};
9555
9556URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) {
9557  if (c !== 47 && c !== 92) {
9558    this.state = "authority";
9559    --this.pointer;
9560  } else {
9561    this.parseError = true;
9562  }
9563
9564  return true;
9565};
9566
9567URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) {
9568  if (c === 64) {
9569    this.parseError = true;
9570    if (this.atFlag) {
9571      this.buffer = "%40" + this.buffer;
9572    }
9573    this.atFlag = true;
9574
9575    // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars
9576    const len = countSymbols(this.buffer);
9577    for (let pointer = 0; pointer < len; ++pointer) {
9578      const codePoint = this.buffer.codePointAt(pointer);
9579
9580      if (codePoint === 58 && !this.passwordTokenSeenFlag) {
9581        this.passwordTokenSeenFlag = true;
9582        continue;
9583      }
9584      const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);
9585      if (this.passwordTokenSeenFlag) {
9586        this.url.password += encodedCodePoints;
9587      } else {
9588        this.url.username += encodedCodePoints;
9589      }
9590    }
9591    this.buffer = "";
9592  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
9593             (isSpecial(this.url) && c === 92)) {
9594    if (this.atFlag && this.buffer === "") {
9595      this.parseError = true;
9596      return failure;
9597    }
9598    this.pointer -= countSymbols(this.buffer) + 1;
9599    this.buffer = "";
9600    this.state = "host";
9601  } else {
9602    this.buffer += cStr;
9603  }
9604
9605  return true;
9606};
9607
9608URLStateMachine.prototype["parse hostname"] =
9609URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) {
9610  if (this.stateOverride && this.url.scheme === "file") {
9611    --this.pointer;
9612    this.state = "file host";
9613  } else if (c === 58 && !this.arrFlag) {
9614    if (this.buffer === "") {
9615      this.parseError = true;
9616      return failure;
9617    }
9618
9619    const host = parseHost(this.buffer, isSpecial(this.url));
9620    if (host === failure) {
9621      return failure;
9622    }
9623
9624    this.url.host = host;
9625    this.buffer = "";
9626    this.state = "port";
9627    if (this.stateOverride === "hostname") {
9628      return false;
9629    }
9630  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
9631             (isSpecial(this.url) && c === 92)) {
9632    --this.pointer;
9633    if (isSpecial(this.url) && this.buffer === "") {
9634      this.parseError = true;
9635      return failure;
9636    } else if (this.stateOverride && this.buffer === "" &&
9637               (includesCredentials(this.url) || this.url.port !== null)) {
9638      this.parseError = true;
9639      return false;
9640    }
9641
9642    const host = parseHost(this.buffer, isSpecial(this.url));
9643    if (host === failure) {
9644      return failure;
9645    }
9646
9647    this.url.host = host;
9648    this.buffer = "";
9649    this.state = "path start";
9650    if (this.stateOverride) {
9651      return false;
9652    }
9653  } else {
9654    if (c === 91) {
9655      this.arrFlag = true;
9656    } else if (c === 93) {
9657      this.arrFlag = false;
9658    }
9659    this.buffer += cStr;
9660  }
9661
9662  return true;
9663};
9664
9665URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) {
9666  if (isASCIIDigit(c)) {
9667    this.buffer += cStr;
9668  } else if (isNaN(c) || c === 47 || c === 63 || c === 35 ||
9669             (isSpecial(this.url) && c === 92) ||
9670             this.stateOverride) {
9671    if (this.buffer !== "") {
9672      const port = parseInt(this.buffer);
9673      if (port > Math.pow(2, 16) - 1) {
9674        this.parseError = true;
9675        return failure;
9676      }
9677      this.url.port = port === defaultPort(this.url.scheme) ? null : port;
9678      this.buffer = "";
9679    }
9680    if (this.stateOverride) {
9681      return false;
9682    }
9683    this.state = "path start";
9684    --this.pointer;
9685  } else {
9686    this.parseError = true;
9687    return failure;
9688  }
9689
9690  return true;
9691};
9692
9693const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]);
9694
9695URLStateMachine.prototype["parse file"] = function parseFile(c) {
9696  this.url.scheme = "file";
9697
9698  if (c === 47 || c === 92) {
9699    if (c === 92) {
9700      this.parseError = true;
9701    }
9702    this.state = "file slash";
9703  } else if (this.base !== null && this.base.scheme === "file") {
9704    if (isNaN(c)) {
9705      this.url.host = this.base.host;
9706      this.url.path = this.base.path.slice();
9707      this.url.query = this.base.query;
9708    } else if (c === 63) {
9709      this.url.host = this.base.host;
9710      this.url.path = this.base.path.slice();
9711      this.url.query = "";
9712      this.state = "query";
9713    } else if (c === 35) {
9714      this.url.host = this.base.host;
9715      this.url.path = this.base.path.slice();
9716      this.url.query = this.base.query;
9717      this.url.fragment = "";
9718      this.state = "fragment";
9719    } else {
9720      if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points
9721          !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) ||
9722          (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points
9723           !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) {
9724        this.url.host = this.base.host;
9725        this.url.path = this.base.path.slice();
9726        shortenPath(this.url);
9727      } else {
9728        this.parseError = true;
9729      }
9730
9731      this.state = "path";
9732      --this.pointer;
9733    }
9734  } else {
9735    this.state = "path";
9736    --this.pointer;
9737  }
9738
9739  return true;
9740};
9741
9742URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) {
9743  if (c === 47 || c === 92) {
9744    if (c === 92) {
9745      this.parseError = true;
9746    }
9747    this.state = "file host";
9748  } else {
9749    if (this.base !== null && this.base.scheme === "file") {
9750      if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {
9751        this.url.path.push(this.base.path[0]);
9752      } else {
9753        this.url.host = this.base.host;
9754      }
9755    }
9756    this.state = "path";
9757    --this.pointer;
9758  }
9759
9760  return true;
9761};
9762
9763URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) {
9764  if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {
9765    --this.pointer;
9766    if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
9767      this.parseError = true;
9768      this.state = "path";
9769    } else if (this.buffer === "") {
9770      this.url.host = "";
9771      if (this.stateOverride) {
9772        return false;
9773      }
9774      this.state = "path start";
9775    } else {
9776      let host = parseHost(this.buffer, isSpecial(this.url));
9777      if (host === failure) {
9778        return failure;
9779      }
9780      if (host === "localhost") {
9781        host = "";
9782      }
9783      this.url.host = host;
9784
9785      if (this.stateOverride) {
9786        return false;
9787      }
9788
9789      this.buffer = "";
9790      this.state = "path start";
9791    }
9792  } else {
9793    this.buffer += cStr;
9794  }
9795
9796  return true;
9797};
9798
9799URLStateMachine.prototype["parse path start"] = function parsePathStart(c) {
9800  if (isSpecial(this.url)) {
9801    if (c === 92) {
9802      this.parseError = true;
9803    }
9804    this.state = "path";
9805
9806    if (c !== 47 && c !== 92) {
9807      --this.pointer;
9808    }
9809  } else if (!this.stateOverride && c === 63) {
9810    this.url.query = "";
9811    this.state = "query";
9812  } else if (!this.stateOverride && c === 35) {
9813    this.url.fragment = "";
9814    this.state = "fragment";
9815  } else if (c !== undefined) {
9816    this.state = "path";
9817    if (c !== 47) {
9818      --this.pointer;
9819    }
9820  }
9821
9822  return true;
9823};
9824
9825URLStateMachine.prototype["parse path"] = function parsePath(c) {
9826  if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) ||
9827      (!this.stateOverride && (c === 63 || c === 35))) {
9828    if (isSpecial(this.url) && c === 92) {
9829      this.parseError = true;
9830    }
9831
9832    if (isDoubleDot(this.buffer)) {
9833      shortenPath(this.url);
9834      if (c !== 47 && !(isSpecial(this.url) && c === 92)) {
9835        this.url.path.push("");
9836      }
9837    } else if (isSingleDot(this.buffer) && c !== 47 &&
9838               !(isSpecial(this.url) && c === 92)) {
9839      this.url.path.push("");
9840    } else if (!isSingleDot(this.buffer)) {
9841      if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
9842        if (this.url.host !== "" && this.url.host !== null) {
9843          this.parseError = true;
9844          this.url.host = "";
9845        }
9846        this.buffer = this.buffer[0] + ":";
9847      }
9848      this.url.path.push(this.buffer);
9849    }
9850    this.buffer = "";
9851    if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) {
9852      while (this.url.path.length > 1 && this.url.path[0] === "") {
9853        this.parseError = true;
9854        this.url.path.shift();
9855      }
9856    }
9857    if (c === 63) {
9858      this.url.query = "";
9859      this.state = "query";
9860    }
9861    if (c === 35) {
9862      this.url.fragment = "";
9863      this.state = "fragment";
9864    }
9865  } else {
9866    // TODO: If c is not a URL code point and not "%", parse error.
9867
9868    if (c === 37 &&
9869      (!isASCIIHex(this.input[this.pointer + 1]) ||
9870        !isASCIIHex(this.input[this.pointer + 2]))) {
9871      this.parseError = true;
9872    }
9873
9874    this.buffer += percentEncodeChar(c, isPathPercentEncode);
9875  }
9876
9877  return true;
9878};
9879
9880URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) {
9881  if (c === 63) {
9882    this.url.query = "";
9883    this.state = "query";
9884  } else if (c === 35) {
9885    this.url.fragment = "";
9886    this.state = "fragment";
9887  } else {
9888    // TODO: Add: not a URL code point
9889    if (!isNaN(c) && c !== 37) {
9890      this.parseError = true;
9891    }
9892
9893    if (c === 37 &&
9894        (!isASCIIHex(this.input[this.pointer + 1]) ||
9895         !isASCIIHex(this.input[this.pointer + 2]))) {
9896      this.parseError = true;
9897    }
9898
9899    if (!isNaN(c)) {
9900      this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);
9901    }
9902  }
9903
9904  return true;
9905};
9906
9907URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) {
9908  if (isNaN(c) || (!this.stateOverride && c === 35)) {
9909    if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
9910      this.encodingOverride = "utf-8";
9911    }
9912
9913    const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead
9914    for (let i = 0; i < buffer.length; ++i) {
9915      if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 ||
9916          buffer[i] === 0x3C || buffer[i] === 0x3E) {
9917        this.url.query += percentEncode(buffer[i]);
9918      } else {
9919        this.url.query += String.fromCodePoint(buffer[i]);
9920      }
9921    }
9922
9923    this.buffer = "";
9924    if (c === 35) {
9925      this.url.fragment = "";
9926      this.state = "fragment";
9927    }
9928  } else {
9929    // TODO: If c is not a URL code point and not "%", parse error.
9930    if (c === 37 &&
9931      (!isASCIIHex(this.input[this.pointer + 1]) ||
9932        !isASCIIHex(this.input[this.pointer + 2]))) {
9933      this.parseError = true;
9934    }
9935
9936    this.buffer += cStr;
9937  }
9938
9939  return true;
9940};
9941
9942URLStateMachine.prototype["parse fragment"] = function parseFragment(c) {
9943  if (isNaN(c)) { // do nothing
9944  } else if (c === 0x0) {
9945    this.parseError = true;
9946  } else {
9947    // TODO: If c is not a URL code point and not "%", parse error.
9948    if (c === 37 &&
9949      (!isASCIIHex(this.input[this.pointer + 1]) ||
9950        !isASCIIHex(this.input[this.pointer + 2]))) {
9951      this.parseError = true;
9952    }
9953
9954    this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);
9955  }
9956
9957  return true;
9958};
9959
9960function serializeURL(url, excludeFragment) {
9961  let output = url.scheme + ":";
9962  if (url.host !== null) {
9963    output += "//";
9964
9965    if (url.username !== "" || url.password !== "") {
9966      output += url.username;
9967      if (url.password !== "") {
9968        output += ":" + url.password;
9969      }
9970      output += "@";
9971    }
9972
9973    output += serializeHost(url.host);
9974
9975    if (url.port !== null) {
9976      output += ":" + url.port;
9977    }
9978  } else if (url.host === null && url.scheme === "file") {
9979    output += "//";
9980  }
9981
9982  if (url.cannotBeABaseURL) {
9983    output += url.path[0];
9984  } else {
9985    for (const string of url.path) {
9986      output += "/" + string;
9987    }
9988  }
9989
9990  if (url.query !== null) {
9991    output += "?" + url.query;
9992  }
9993
9994  if (!excludeFragment && url.fragment !== null) {
9995    output += "#" + url.fragment;
9996  }
9997
9998  return output;
9999}
10000
10001function serializeOrigin(tuple) {
10002  let result = tuple.scheme + "://";
10003  result += serializeHost(tuple.host);
10004
10005  if (tuple.port !== null) {
10006    result += ":" + tuple.port;
10007  }
10008
10009  return result;
10010}
10011
10012module.exports.serializeURL = serializeURL;
10013
10014module.exports.serializeURLOrigin = function (url) {
10015  // https://url.spec.whatwg.org/#concept-url-origin
10016  switch (url.scheme) {
10017    case "blob":
10018      try {
10019        return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0]));
10020      } catch (e) {
10021        // serializing an opaque origin returns "null"
10022        return "null";
10023      }
10024    case "ftp":
10025    case "gopher":
10026    case "http":
10027    case "https":
10028    case "ws":
10029    case "wss":
10030      return serializeOrigin({
10031        scheme: url.scheme,
10032        host: url.host,
10033        port: url.port
10034      });
10035    case "file":
10036      // spec says "exercise to the reader", chrome says "file://"
10037      return "file://";
10038    default:
10039      // serializing an opaque origin returns "null"
10040      return "null";
10041  }
10042};
10043
10044module.exports.basicURLParse = function (input, options) {
10045  if (options === undefined) {
10046    options = {};
10047  }
10048
10049  const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);
10050  if (usm.failure) {
10051    return "failure";
10052  }
10053
10054  return usm.url;
10055};
10056
10057module.exports.setTheUsername = function (url, username) {
10058  url.username = "";
10059  const decoded = punycode.ucs2.decode(username);
10060  for (let i = 0; i < decoded.length; ++i) {
10061    url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
10062  }
10063};
10064
10065module.exports.setThePassword = function (url, password) {
10066  url.password = "";
10067  const decoded = punycode.ucs2.decode(password);
10068  for (let i = 0; i < decoded.length; ++i) {
10069    url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
10070  }
10071};
10072
10073module.exports.serializeHost = serializeHost;
10074
10075module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
10076
10077module.exports.serializeInteger = function (integer) {
10078  return String(integer);
10079};
10080
10081module.exports.parseURL = function (input, options) {
10082  if (options === undefined) {
10083    options = {};
10084  }
10085
10086  // We don't handle blobs, so this just delegates:
10087  return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });
10088};
10089
10090/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(113).Buffer))
10091
10092/***/ }),
10093/* 181 */
10094/***/ (function(module, exports, __webpack_require__) {
10095
10096// extracted by mini-css-extract-plugin
10097module.exports = {"svg":"LiveIcon-module__svg--2x9A3","animate":"LiveIcon-module__animate--19edr","circle":"LiveIcon-module__circle--1-3_N"};
10098
10099/***/ }),
10100/* 182 */
10101/***/ (function(module, exports, __webpack_require__) {
10102
10103"use strict";
10104
10105var $ = __webpack_require__(2);
10106var $find = __webpack_require__(46).find;
10107var addToUnscopables = __webpack_require__(118);
10108var arrayMethodUsesToLength = __webpack_require__(63);
10109
10110var FIND = 'find';
10111var SKIPS_HOLES = true;
10112
10113var USES_TO_LENGTH = arrayMethodUsesToLength(FIND);
10114
10115// Shouldn't skip holes
10116if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
10117
10118// `Array.prototype.find` method
10119// https://tc39.github.io/ecma262/#sec-array.prototype.find
10120$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
10121  find: function find(callbackfn /* , that = undefined */) {
10122    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
10123  }
10124});
10125
10126// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
10127addToUnscopables(FIND);
10128
10129
10130/***/ }),
10131/* 183 */,
10132/* 184 */
10133/***/ (function(module, __webpack_exports__, __webpack_require__) {
10134
10135"use strict";
10136
10137// EXPORTS
10138__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ useAnalyticsbabel_target_legacy_useAnalytics; });
10139__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ AnalyticsProviderbabel_target_legacy_AnalyticsProvider; });
10140
10141// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
10142var hooks_modulebabel_target_legacy = __webpack_require__(4);
10143
10144// EXTERNAL MODULE: ./src/lib/Analytics/AnalyticsContext.ts?babel-target=legacy
10145var AnalyticsContextbabel_target_legacy = __webpack_require__(268);
10146
10147// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js?babel-target=legacy
10148var es_array_findbabel_target_legacy = __webpack_require__(182);
10149
10150// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js?babel-target=legacy
10151var es_array_iteratorbabel_target_legacy = __webpack_require__(138);
10152
10153// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
10154var es_function_namebabel_target_legacy = __webpack_require__(123);
10155
10156// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
10157var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
10158
10159// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js?babel-target=legacy
10160var es_regexp_to_stringbabel_target_legacy = __webpack_require__(156);
10161
10162// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js?babel-target=legacy
10163var es_string_iteratorbabel_target_legacy = __webpack_require__(237);
10164
10165// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js?babel-target=legacy
10166var web_dom_collections_iteratorbabel_target_legacy = __webpack_require__(257);
10167
10168// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js?babel-target=legacy
10169var web_urlbabel_target_legacy = __webpack_require__(349);
10170
10171// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
10172var slicedToArraybabel_target_legacy = __webpack_require__(8);
10173var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
10174
10175// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
10176var loggerbabel_target_legacy = __webpack_require__(10);
10177
10178// EXTERNAL MODULE: ./src/lib/EventBus/index.ts?babel-target=legacy
10179var EventBusbabel_target_legacy = __webpack_require__(152);
10180
10181// CONCATENATED MODULE: ./src/lib/Analytics/lib.ts?babel-target=legacy
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194var getNonIabConsents = function getNonIabConsents() {
10195  var _rpConsent$consent, _gaConsent$consent;
10196
10197  if (!window.UC_UI) {
10198    if (window.ANALYTICS_ALLOWED) return true;
10199    return false;
10200  }
10201
10202  var services = window.UC_UI.getServicesBaseInfo();
10203  var rpConsent = services.find(function (s) {
10204    return s.name === "Radioplayer";
10205  });
10206  var gaConsent = services.find(function (s) {
10207    return s.name === "Google Analytics";
10208  });
10209  var rpConsentedTo = rpConsent === null || rpConsent === void 0 ? void 0 : (_rpConsent$consent = rpConsent.consent) === null || _rpConsent$consent === void 0 ? void 0 : _rpConsent$consent.status;
10210  var gaConsentedTo = gaConsent === null || gaConsent === void 0 ? void 0 : (_gaConsent$consent = gaConsent.consent) === null || _gaConsent$consent === void 0 ? void 0 : _gaConsent$consent.status;
10211  return gaConsentedTo && rpConsentedTo;
10212};
10213var libbabel_target_legacy_postAnalyticsMessage = function postAnalyticsMessage(iframe, message) {
10214  var hasAnalyticsPermission = getNonIabConsents();
10215
10216  if (!hasAnalyticsPermission) {
10217    Object(loggerbabel_target_legacy["c" /* log */])("No analytics permission");
10218  } else if (!iframe || !iframe.contentWindow) {
10219    Object(loggerbabel_target_legacy["e" /* warn */])("Could not send message", message);
10220    return;
10221  } else {
10222    Object(loggerbabel_target_legacy["c" /* log */])("Posting message", message);
10223    iframe.contentWindow.postMessage(JSON.stringify(message), "*");
10224  }
10225};
10226var postPageview = function postPageview(iframe, reason) {
10227  return libbabel_target_legacy_postAnalyticsMessage(iframe, {
10228    type: "Pageview",
10229    reason: reason
10230  });
10231};
10232var postHeartbeat = function postHeartbeat(iframe) {
10233  return libbabel_target_legacy_postAnalyticsMessage(iframe, {
10234    type: "Heartbeat"
10235  });
10236};
10237var postEvent = function postEvent(iframe, category, action, label, value, noninteraction) {
10238  return libbabel_target_legacy_postAnalyticsMessage(iframe, {
10239    type: "Event",
10240    category: category,
10241    action: action,
10242    label: label,
10243    value: value,
10244    noninteraction: noninteraction
10245  });
10246};
10247
10248/**
10249 * Helper function. Builds query params for analytics in the hook below.
10250 */
10251var getAnalyticsQueryParams = function getAnalyticsQueryParams(_ref) {
10252  var rpId = _ref.rpId,
10253      cm = _ref.cm,
10254      odItem = _ref.odItem,
10255      odId = _ref.odId,
10256      end = _ref.end;
10257  var params = new URLSearchParams();
10258  params.set("rpid", rpId);
10259
10260  if (cm) {
10261    params.set("cm", encodeURIComponent(cm));
10262  }
10263
10264  if (odItem) {
10265    params.set("cType", "od");
10266    params.set("od", encodeURIComponent(odItem.streams[0].url));
10267
10268    if (end !== undefined) {
10269      params.set("duration", end);
10270    }
10271
10272    if (odItem.seriesId) {
10273      params.set("seriesId", odItem.seriesId);
10274    }
10275
10276    if (odId) {
10277      params.set("odId", odId);
10278    }
10279  }
10280
10281  if (!odItem) {
10282    params.set("cType", "live");
10283  }
10284
10285  return params.toString();
10286};
10287
10288/**
10289 * Hook to consolidate building query params to send to analytics.html
10290 * */
10291var libbabel_target_legacy_useAnalyticsQueryParams = function useAnalyticsQueryParams(_ref2) {
10292  var rpId = _ref2.rpId,
10293      cm = _ref2.cm,
10294      odItem = _ref2.odItem,
10295      odId = _ref2.odId;
10296
10297  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(""),
10298      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
10299      queryParams = _useState2[0],
10300      setQueryParams = _useState2[1];
10301
10302  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])({}),
10303      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
10304      playbackStatus = _useState4[0],
10305      setPlaybackStatus = _useState4[1];
10306
10307  var _useEventBus = Object(EventBusbabel_target_legacy["b" /* useEventBus */])(),
10308      emitter = _useEventBus.emitter; // tracks playback status from emitter
10309
10310
10311  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
10312    if (!emitter) {
10313      return;
10314    }
10315
10316    var callback = function callback(status) {
10317      setPlaybackStatus(status);
10318    };
10319
10320    emitter.on("time", callback);
10321    return function () {
10322      return emitter.off("time", callback);
10323    };
10324  }, [emitter]);
10325  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
10326    var _playbackStatus$end;
10327
10328    var params = getAnalyticsQueryParams({
10329      rpId: rpId,
10330      cm: cm,
10331      odItem: odItem,
10332      odId: odId,
10333      end: playbackStatus === null || playbackStatus === void 0 ? void 0 : (_playbackStatus$end = playbackStatus.end) === null || _playbackStatus$end === void 0 ? void 0 : _playbackStatus$end.toString()
10334    });
10335    setQueryParams(params);
10336  }, [rpId, cm, odItem, odId, playbackStatus.end]);
10337  return queryParams;
10338};
10339// CONCATENATED MODULE: ./src/lib/Analytics/useAnalytics.ts?babel-target=legacy
10340
10341
10342
10343
10344var isAudibleEvent = function isAudibleEvent(event) {
10345  return event === "start" || event === "unmute";
10346};
10347
10348var getTrackedEventName = function getTrackedEventName(event) {
10349  return event === "pause" ? "stop" : event;
10350}; //We track pause as stop
10351
10352
10353var useAnalyticsbabel_target_legacy_useAnalytics = function useAnalytics() {
10354  var context = Object(hooks_modulebabel_target_legacy["b" /* useContext */])(AnalyticsContextbabel_target_legacy["a" /* AnalyticsContext */]);
10355
10356  var _ref = context || {
10357    iframe: undefined,
10358    notifyTrackingObservers: function notifyTrackingObservers(i) {}
10359  },
10360      iframe = _ref.iframe,
10361      notifyTrackingObservers = _ref.notifyTrackingObservers,
10362      updateAlPermissions = _ref.updateAlPermissions;
10363
10364  var ifm = iframe && iframe.current !== null ? iframe.current : undefined;
10365
10366  var heartbeat = function heartbeat() {
10367    return postHeartbeat(ifm);
10368  };
10369
10370  var sendEvent = function sendEvent(category, action, label, value, noninteraction) {
10371    return postEvent(ifm, category, action, label, value, noninteraction);
10372  };
10373
10374  var sendPageview = function sendPageview(reason) {
10375    return postPageview(ifm, reason);
10376  };
10377
10378  var onTrackedEvent = function onTrackedEvent(eventName, rpId, additionalData) {
10379    updateAlPermissions();
10380    var pageViewString = isAudibleEvent(eventName) ? "" : "/".concat(eventName);
10381    sendPageview(pageViewString);
10382    var trackedEventName = getTrackedEventName(eventName);
10383    notifyTrackingObservers(trackedEventName, rpId, additionalData || {});
10384  };
10385
10386  return {
10387    heartbeat: heartbeat,
10388    sendEvent: sendEvent,
10389    sendPageview: sendPageview,
10390    onTrackedEvent: onTrackedEvent
10391  };
10392};
10393// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
10394var es_array_concatbabel_target_legacy = __webpack_require__(75);
10395
10396// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
10397var regenerator_babel_target_legacy = __webpack_require__(6);
10398var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
10399
10400// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
10401var runtimebabel_target_legacy = __webpack_require__(60);
10402
10403// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
10404var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
10405var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
10406
10407// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
10408var preact_modulebabel_target_legacy = __webpack_require__(1);
10409
10410// EXTERNAL MODULE: ./src/lib/Analytics/AnalyticsProvider.module.scss
10411var AnalyticsProvider_module = __webpack_require__(315);
10412var AnalyticsProvider_module_default = /*#__PURE__*/__webpack_require__.n(AnalyticsProvider_module);
10413
10414// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
10415var APIManagerbabel_target_legacy = __webpack_require__(32);
10416
10417// CONCATENATED MODULE: ./src/lib/Analytics/AnalyticsProvider.tsx?babel-target=legacy
10418
10419
10420
10421
10422
10423
10424/* eslint-disable @typescript-eslint/no-explicit-any */
10425
10426
10427
10428
10429
10430
10431var AnalyticsProviderbabel_target_legacy_AnalyticsProvider = function AnalyticsProvider(_ref) {
10432  var children = _ref.children,
10433      cm = _ref.cm,
10434      odItem = _ref.odItem,
10435      odId = _ref.odId,
10436      id = _ref.rpId,
10437      mapi = _ref.mapi,
10438      al = _ref.al,
10439      notifyTrackingObservers = _ref.notifyTrackingObservers;
10440
10441  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(id),
10442      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
10443      rpId = _useState2[0],
10444      setRpId = _useState2[1];
10445
10446  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(""),
10447      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
10448      url = _useState4[0],
10449      setUrl = _useState4[1];
10450
10451  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(""),
10452      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
10453      baseUrl = _useState6[0],
10454      setBaseUrl = _useState6[1];
10455
10456  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(getNonIabConsents()),
10457      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 2),
10458      alPermissions = _useState8[0],
10459      setAlPermissions = _useState8[1];
10460
10461  var iframe = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
10462  var queryParams = libbabel_target_legacy_useAnalyticsQueryParams({
10463    rpId: rpId,
10464    cm: cm,
10465    odItem: odItem,
10466    odId: odId
10467  });
10468  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
10469    var ping = function ping() {
10470      return postHeartbeat(iframe.current);
10471    };
10472
10473    var tim = window.setTimeout(ping, 20000);
10474    window.addEventListener("beforeunload", ping);
10475    postPageview(iframe.current, "");
10476    return function () {
10477      window.clearTimeout(tim);
10478      window.removeEventListener("beforeunload", ping);
10479    };
10480  }, []);
10481  var initialiseAnalytics = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])( /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
10482    var _UC_UI;
10483
10484    var addAnalyticsHtml;
10485    return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
10486      while (1) {
10487        switch (_context2.prev = _context2.next) {
10488          case 0:
10489            addAnalyticsHtml = /*#__PURE__*/function () {
10490              var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
10491                var analyticsUrl, _url, finalUrl, _finalUrl;
10492
10493                return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
10494                  while (1) {
10495                    switch (_context.prev = _context.next) {
10496                      case 0:
10497                        if (baseUrl) {
10498                          _context.next = 10;
10499                          break;
10500                        }
10501
10502                        _context.next = 3;
10503                        return Object(APIManagerbabel_target_legacy["n" /* loadAnalyticsURL */])(mapi);
10504
10505                      case 3:
10506                        analyticsUrl = _context.sent;
10507                        //if nothing comes back from mapi, set the analytics to the fallback
10508                        _url = analyticsUrl || al;
10509                        setBaseUrl(_url || ""); // when they're using a CMP, we only want to add this one if they've consented to google analytics and RP (both 
10509non-iab vendors)
10510
10511                        finalUrl = "".concat(_url, "?").concat(queryParams);
10512                        setUrl(finalUrl);
10513                        _context.next = 12;
10514                        break;
10515
10516                      case 10:
10517                        _finalUrl = "".concat(baseUrl, "?").concat(queryParams);
10518                        setUrl(_finalUrl);
10519
10520                      case 12:
10521                      case "end":
10522                        return _context.stop();
10523                    }
10524                  }
10525                }, _callee);
10526              }));
10527
10528              return function addAnalyticsHtml() {
10529                return _ref3.apply(this, arguments);
10530              };
10531            }();
10532
10533            if ((_UC_UI = window.UC_UI) === null || _UC_UI === void 0 ? void 0 : _UC_UI.isInitialized()) {
10534              if (getNonIabConsents()) addAnalyticsHtml();
10535            } else if (window.UC_UI) {
10536              window.addEventListener("UC_UI_INITIALIZED", function (e) {
10537                if (getNonIabConsents()) addAnalyticsHtml();
10538              });
10539            } else if (getNonIabConsents()) {
10540              addAnalyticsHtml();
10541            } else {
10542              setUrl("");
10543              setBaseUrl("");
10544            }
10545
10546          case 2:
10547          case "end":
10548            return _context2.stop();
10549        }
10550      }
10551    }, _callee2);
10552  })), [al, baseUrl, mapi, queryParams]); //get the most up to date analytics URL from mapi
10553
10554  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
10555    var t = setTimeout(initialiseAnalytics, 1500); // Give the player a moment to init UserCentrics
10556
10557    return function () {
10558      return clearTimeout(t);
10559    };
10560  }, [alPermissions, al, mapi, initialiseAnalytics, baseUrl]);
10561  var memoisedUrl = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
10562    return url;
10563  }, [url]); // Memoize the URL so we don't re-render the iframe on every state change
10564
10565  return Object(preact_modulebabel_target_legacy["h"])(AnalyticsContextbabel_target_legacy["a" /* AnalyticsContext */].Provider, {
10566    value: {
10567      notifyTrackingObservers: notifyTrackingObservers,
10568      iframe: iframe,
10569      setAnalyticsRpId: setRpId,
10570      updateAlPermissions: initialiseAnalytics
10571    }
10572  }, children, Object(preact_modulebabel_target_legacy["h"])("iframe", {
10573    key: memoisedUrl,
10574    id: "analytics",
10575    title: "Analytics",
10576    "aria-hidden": true,
10577    ref: iframe,
10578    src: memoisedUrl,
10579    className: AnalyticsProvider_module_default.a.analyticsFrame
10580  }));
10581};
10582// CONCATENATED MODULE: ./src/lib/Analytics/index.ts?babel-target=legacy
10583
10584
10585
10586/***/ }),
10587/* 185 */,
10588/* 186 */
10589/***/ (function(module, exports) {
10590
10591module.exports = function(module) {
10592	if (!module.webpackPolyfill) {
10593		module.deprecate = function() {};
10594		module.paths = [];
10595		// module.parent = undefined by default
10596		if (!module.children) module.children = [];
10597		Object.defineProperty(module, "loaded", {
10598			enumerable: true,
10599			get: function() {
10600				return module.l;
10601			}
10602		});
10603		Object.defineProperty(module, "id", {
10604			enumerable: true,
10605			get: function() {
10606				return module.i;
10607			}
10608		});
10609		module.webpackPolyfill = 1;
10610	}
10611	return module;
10612};
10613
10614
10615/***/ }),
10616/* 187 */
10617/***/ (function(module, exports, __webpack_require__) {
10618
10619"use strict";
10620
10621var $ = __webpack_require__(2);
10622var IS_PURE = __webpack_require__(72);
10623var global = __webpack_require__(16);
10624var getBuiltIn = __webpack_require__(67);
10625var NativePromise = __webpack_require__(382);
10626var redefine = __webpack_require__(54);
10627var redefineAll = __webpack_require__(150);
10628var setToStringTag = __webpack_require__(80);
10629var setSpecies = __webpack_require__(147);
10630var isObject = __webpack_require__(19);
10631var aFunction = __webpack_require__(59);
10632var anInstance = __webpack_require__(119);
10633var inspectSource = __webpack_require__(275);
10634var iterate = __webpack_require__(117);
10635var checkCorrectnessOfIteration = __webpack_require__(215);
10636var speciesConstructor = __webpack_require__(103);
10637var task = __webpack_require__(295).set;
10638var microtask = __webpack_require__(384);
10639var promiseResolve = __webpack_require__(385);
10640var hostReportErrors = __webpack_require__(655);
10641var newPromiseCapabilityModule = __webpack_require__(228);
10642var perform = __webpack_require__(296);
10643var InternalStateModule = __webpack_require__(58);
10644var isForced = __webpack_require__(169);
10645var wellKnownSymbol = __webpack_require__(23);
10646var IS_NODE = __webpack_require__(146);
10647var V8_VERSION = __webpack_require__(176
vendor: 7,545 bytes, lines 10647-10874
10647);
10648
10649var SPECIES = wellKnownSymbol('species');
10650var PROMISE = 'Promise';
10651var getInternalState = InternalStateModule.get;
10652var setInternalState = InternalStateModule.set;
10653var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
10654var PromiseConstructor = NativePromise;
10655var TypeError = global.TypeError;
10656var document = global.document;
10657var process = global.process;
10658var $fetch = getBuiltIn('fetch');
10659var newPromiseCapability = newPromiseCapabilityModule.f;
10660var newGenericPromiseCapability = newPromiseCapability;
10661var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
10662var NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';
10663var UNHANDLED_REJECTION = 'unhandledrejection';
10664var REJECTION_HANDLED = 'rejectionhandled';
10665var PENDING = 0;
10666var FULFILLED = 1;
10667var REJECTED = 2;
10668var HANDLED = 1;
10669var UNHANDLED = 2;
10670var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
10671
10672var FORCED = isForced(PROMISE, function () {
10673  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
10674  if (!GLOBAL_CORE_JS_PROMISE) {
10675    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
10676    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
10677    // We can't detect it synchronously, so just check versions
10678    if (V8_VERSION === 66) return true;
10679    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test
10680    if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;
10681  }
10682  // We need Promise#finally in the pure version for preventing prototype pollution
10683  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;
10684  // We can't use @@species feature detection in V8 since it causes
10685  // deoptimization and performance degradation
10686  // https://github.com/zloirock/core-js/issues/679
10687  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;
10688  // Detect correctness of subclassing with @@species support
10689  var promise = PromiseConstructor.resolve(1);
10690  var FakePromise = function (exec) {
10691    exec(function () { /* empty */ }, function () { /* empty */ });
10692  };
10693  var constructor = promise.constructor = {};
10694  constructor[SPECIES] = FakePromise;
10695  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);
10696});
10697
10698var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
10699  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });
10700});
10701
10702// helpers
10703var isThenable = function (it) {
10704  var then;
10705  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
10706};
10707
10708var notify = function (state, isReject) {
10709  if (state.notified) return;
10710  state.notified = true;
10711  var chain = state.reactions;
10712  microtask(function () {
10713    var value = state.value;
10714    var ok = state.state == FULFILLED;
10715    var index = 0;
10716    // variable length - can't use forEach
10717    while (chain.length > index) {
10718      var reaction = chain[index++];
10719      var handler = ok ? reaction.ok : reaction.fail;
10720      var resolve = reaction.resolve;
10721      var reject = reaction.reject;
10722      var domain = reaction.domain;
10723      var result, then, exited;
10724      try {
10725        if (handler) {
10726          if (!ok) {
10727            if (state.rejection === UNHANDLED) onHandleUnhandled(state);
10728            state.rejection = HANDLED;
10729          }
10730          if (handler === true) result = value;
10731          else {
10732            if (domain) domain.enter();
10733            result = handler(value); // can throw
10734            if (domain) {
10735              domain.exit();
10736              exited = true;
10737            }
10738          }
10739          if (result === reaction.promise) {
10740            reject(TypeError('Promise-chain cycle'));
10741          } else if (then = isThenable(result)) {
10742            then.call(result, resolve, reject);
10743          } else resolve(result);
10744        } else reject(value);
10745      } catch (error) {
10746        if (domain && !exited) domain.exit();
10747        reject(error);
10748      }
10749    }
10750    state.reactions = [];
10751    state.notified = false;
10752    if (isReject && !state.rejection) onUnhandled(state);
10753  });
10754};
10755
10756var dispatchEvent = function (name, promise, reason) {
10757  var event, handler;
10758  if (DISPATCH_EVENT) {
10759    event = document.createEvent('Event');
10760    event.promise = promise;
10761    event.reason = reason;
10762    event.initEvent(name, false, true);
10763    global.dispatchEvent(event);
10764  } else event = { promise: promise, reason: reason };
10765  if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);
10766  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
10767};
10768
10769var onUnhandled = function (state) {
10770  task.call(global, function () {
10771    var promise = state.facade;
10772    var value = state.value;
10773    var IS_UNHANDLED = isUnhandled(state);
10774    var result;
10775    if (IS_UNHANDLED) {
10776      result = perform(function () {
10777        if (IS_NODE) {
10778          process.emit('unhandledRejection', value, promise);
10779        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
10780      });
10781      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
10782      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
10783      if (result.error) throw result.value;
10784    }
10785  });
10786};
10787
10788var isUnhandled = function (state) {
10789  return state.rejection !== HANDLED && !state.parent;
10790};
10791
10792var onHandleUnhandled = function (state) {
10793  task.call(global, function () {
10794    var promise = state.facade;
10795    if (IS_NODE) {
10796      process.emit('rejectionHandled', promise);
10797    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
10798  });
10799};
10800
10801var bind = function (fn, state, unwrap) {
10802  return function (value) {
10803    fn(state, value, unwrap);
10804  };
10805};
10806
10807var internalReject = function (state, value, unwrap) {
10808  if (state.done) return;
10809  state.done = true;
10810  if (unwrap) state = unwrap;
10811  state.value = value;
10812  state.state = REJECTED;
10813  notify(state, true);
10814};
10815
10816var internalResolve = function (state, value, unwrap) {
10817  if (state.done) return;
10818  state.done = true;
10819  if (unwrap) state = unwrap;
10820  try {
10821    if (state.facade === value) throw TypeError("Promise can't be resolved itself");
10822    var then = isThenable(value);
10823    if (then) {
10824      microtask(function () {
10825        var wrapper = { done: false };
10826        try {
10827          then.call(value,
10828            bind(internalResolve, wrapper, state),
10829            bind(internalReject, wrapper, state)
10830          );
10831        } catch (error) {
10832          internalReject(wrapper, error, state);
10833        }
10834      });
10835    } else {
10836      state.value = value;
10837      state.state = FULFILLED;
10838      notify(state, false);
10839    }
10840  } catch (error) {
10841    internalReject({ done: false }, error, state);
10842  }
10843};
10844
10845// constructor polyfill
10846if (FORCED) {
10847  // 25.4.3.1 Promise(executor)
10848  PromiseConstructor = function Promise(executor) {
10849    anInstance(this, PromiseConstructor, PROMISE);
10850    aFunction(executor);
10851    Internal.call(this);
10852    var state = getInternalState(this);
10853    try {
10854      executor(bind(internalResolve, state), bind(internalReject, state));
10855    } catch (error) {
10856      internalReject(state, error);
10857    }
10858  };
10859  // eslint-disable-next-line no-unused-vars
10860  Internal = function Promise(executor) {
10861    setInternalState(this, {
10862      type: PROMISE,
10863      done: false,
10864      notified: false,
10865      parent: false,
10866      reactions: [],
10867      rejection: false,
10868      state: PENDING,
10869      value: undefined
10870    });
10871  };
10872  Internal.prototype = redefineAll(PromiseConstructor.prototype, {
10873    // `Promise.prototype.then` method
10874    // https://tc39.
vendor: 1,884 bytes, lines 10874-10918
10874github.io/ecma262/#sec-promise.prototype.then
10875    then: function then(onFulfilled, onRejected) {
10876      var state = getInternalPromiseState(this);
10877      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
10878      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
10879      reaction.fail = typeof onRejected == 'function' && onRejected;
10880      reaction.domain = IS_NODE ? process.domain : undefined;
10881      state.parent = true;
10882      state.reactions.push(reaction);
10883      if (state.state != PENDING) notify(state, false);
10884      return reaction.promise;
10885    },
10886    // `Promise.prototype.catch` method
10887    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch
10888    'catch': function (onRejected) {
10889      return this.then(undefined, onRejected);
10890    }
10891  });
10892  OwnPromiseCapability = function () {
10893    var promise = new Internal();
10894    var state = getInternalState(promise);
10895    this.promise = promise;
10896    this.resolve = bind(internalResolve, state);
10897    this.reject = bind(internalReject, state);
10898  };
10899  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
10900    return C === PromiseConstructor || C === PromiseWrapper
10901      ? new OwnPromiseCapability(C)
10902      : newGenericPromiseCapability(C);
10903  };
10904
10905  if (!IS_PURE && typeof NativePromise == 'function') {
10906    nativeThen = NativePromise.prototype.then;
10907
10908    // wrap native Promise#then for native async functions
10909    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
10910      var that = this;
10911      return new PromiseConstructor(function (resolve, reject) {
10912        nativeThen.call(that, resolve, reject);
10913      }).then(onFulfilled, onRejected);
10914    // https://github.com/zloirock/core-js/issues/640
10915    }, { unsafe: true });
10916
10917    // wrap fetch result
10918    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {
10919      // eslint-disable-next-line no-unused-vars
10920      fetch: function fetch(input /* , init */) {
10921        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
10922      }
10923    });
10924  }
10925}
10926
10927$({ global: true, wrap: true, forced: FORCED }, {
10928  Promise: PromiseConstructor
10929});
10930
10931setToStringTag(PromiseConstructor, PROMISE, false, true);
10932setSpecies(PROMISE);
10933
10934PromiseWrapper = getBuiltIn(PROMISE);
10935
10936// statics
10937$({ target: PROMISE, stat: true, forced: FORCED }, {
10938  // `Promise.reject` method
10939  // https://tc39.github.io/ecma262/#sec-promise.reject
10940  reject: function reject(r) {
10941    var capability = newPromiseCapability(this);
10942    capability.reject.call(undefined, r);
10943    return capability.promise;
10944  }
10945});
10946
10947$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {
10948  // `Promise.resolve` method
10949  // https://tc39.github.io/ecma262/#sec-promise.resolve
10950  resolve: function resolve(x) {
10951    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
10952  }
10953});
10954
10955$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {
10956  // `Promise.all` method
10957  // https://tc39.github.io/ecma262/#sec-promise.all
10958  all: function all(iterable) {
10959    var C = this;
10960    var capability = newPromiseCapability(C);
10961    var resolve = capability.resolve;
10962    var reject = capability.reject;
10963    var result = perform(function () {
10964      var $promiseResolve = aFunction(C.resolve);
10965      var values = [];
10966      var counter = 0;
10967      var remaining = 1;
10968      iterate(iterable, function (promise) {
10969        var index = counter++;
10970        var alreadyCalled = false;
10971        values.push(undefined);
10972        remaining++;
10973        $promiseResolve.call(C, promise).then(function (value) {
10974          if (alreadyCalled) return;
10975          alreadyCalled = true;
10976          values[index] = value;
10977          --remaining || resolve(values);
10978        }, reject);
10979      });
10980      --remaining || resolve(values);
10981    });
10982    if (result.error) reject(result.value);
10983    return capability.promise;
10984  },
10985  // `Promise.race` method
10986  // https://tc39.github.io/ecma262/#sec-promise.race
10987  race: function race(iterable) {
10988    var C = this;
10989    var capability = newPromiseCapability(C);
10990    var reject = capability.reject;
10991    var result = perform(function () {
10992      var $promiseResolve = aFunction(C.resolve);
10993      iterate(iterable, function (promise) {
10994        $promiseResolve.call(C, promise).then(capability.resolve, reject);
10995      });
10996    });
10997    if (result.error) reject(result.value);
10998    return capability.promise;
10999  }
11000});
11001
11002
11003/***/ }),
11004/* 188 */,
11005/* 189 */
11006/***/ (function(module, __webpack_exports__, __webpack_require__) {
11007
11008"use strict";
11009
11010// EXPORTS
11011__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ ContentCardbabel_target_legacy_ContentCard; });
11012
11013// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
11014var es_symbolbabel_target_legacy = __webpack_require__(71);
11015
11016// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js?babel-target=legacy
11017var es_symbol_descriptionbabel_target_legacy = __webpack_require__(199);
11018
11019// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
11020var es_array_mapbabel_target_legacy = __webpack_require__(77);
11021
11022// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
11023var definePropertybabel_target_legacy = __webpack_require__(15);
11024var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
11025
11026// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
11027var preact_modulebabel_target_legacy = __webpack_require__(1);
11028
11029// EXTERNAL MODULE: ./src/components/FaveButton/index.ts?babel-target=legacy + 3 modules
11030var FaveButtonbabel_target_legacy = __webpack_require__(330);
11031
11032// EXTERNAL MODULE: ./src/components/IconSprite/index.ts?babel-target=legacy + 1 modules
11033var IconSpritebabel_target_legacy = __webpack_require__(131);
11034
11035// EXTERNAL MODULE: ./src/components/LiveIcon/index.ts?babel-target=legacy + 1 modules
11036var LiveIconbabel_target_legacy = __webpack_require__(305);
11037
11038// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
11039var classnames_babel_target_legacy = __webpack_require__(27);
11040var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
11041
11042// EXTERNAL MODULE: ./node_modules/striptags/striptags.js?babel-target=legacy
11043var striptagsbabel_target_legacy = __webpack_require__(485);
11044var striptagsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(striptagsbabel_target_legacy);
11045
11046// EXTERNAL MODULE: ./src/components/ContentCard/ContentCard.module.scss
11047var ContentCard_module = __webpack_require__(61);
11048var ContentCard_module_default = /*#__PURE__*/__webpack_require__.n(ContentCard_module);
11049
11050// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
11051var es_babel_target_legacy = __webpack_require__(25);
11052
11053// CONCATENATED MODULE: ./src/components/ContentCard/ContentCard.tsx?babel-target=legacy
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066var ContentCardbabel_target_legacy_ContentCard = function ContentCard(_ref) {
11067  var url = _ref.url,
11068      imageUrl = _ref.imageUrl,
11069      title = _ref.title,
11070      description = _ref.description,
11071      subtitle = _ref.subtitle,
11072      tags = _ref.tags,
11073      onDemand = _ref.onDemand,
11074      live = _ref.live,
11075      rpId = _ref.rpId,
11076      suggestion = _ref.suggestion;
11077
11078  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
11079      t = _useTranslation.t;
11080
11081  var className = classnames_babel_target_legacy_default()(ContentCard_module_default.a.card, definePropertybabel_target_legacy_default()({}, ContentCard_module_default.a.suggestion, suggestion));
11082
11083  var renderOnDemandLabel = function renderOnDemandLabel() {
11084    return Object(preact_modulebabel_target_legacy["h"])("span", {
11085      className: ContentCard_module_default.a.ondemand
11086    }, t("LABEL_ON_DEMAND"));
11087  };
11088
11089  var renderLiveLabel = function renderLiveLabel() {
11090    return Object(preact_modulebabel_target_legacy["h"])("span", {
11091      className: ContentCard_module_default.a.live
11092    }, Object(preact_modulebabel_target_legacy["h"])("span", {
11093      className: ContentCard_module_default.a.liveIcon
11094    }, Object(preact_modulebabel_target_legacy["h"])(LiveIconbabel_target_legacy["a" /* LiveIcon */], {
11095      animate: false
11096    })), t("LABEL_LIVE"));
11097  };
11098
11099  return Object(preact_modulebabel_target_legacy["h"])("a", {
11100    href: url,
11101    className: className
11102  }, Object(preact_modulebabel_target_legacy["h"])("div", {
11103    className: ContentCard_module_default.a.imgbox
11104  }, Object(preact_modulebabel_target_legacy["h"])("img", {
11105    src: imageUrl,
11106    alt: title
11107  })), Object(preact_modulebabel_target_legacy["h"])("div", {
11108    className: ContentCard_module_default.a.info
11109  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
11110    className: ContentCard_module_default.a.title
11111  }, striptagsbabel_target_legacy_default()(title)), subtitle && Object(preact_modulebabel_target_legacy["h"])("h3", {
11112    className: ContentCard_module_default.a.subtitle
11113  }, subtitle), Object(preact_modulebabel_target_legacy["h"])("p", {
11114    className: ContentCard_module_default.a.description
11115  }, striptagsbabel_target_legacy_default()(description || "")), tags && tags.length && Object(preact_modulebabel_target_legacy["h"])("p", {
11116    className: ContentCard_module_default.a.tags
11117  }, tags.map(function (tag) {
11118    return Object(preact_modulebabel_target_legacy["h"])("span", {
11119      key: tag
11120    }, tag.toUpperCase());
11121  }))), Object(preact_modulebabel_target_legacy["h"])("div", {
11122    className: ContentCard_module_default.a.controls
11123  }, onDemand ? renderOnDemandLabel() : live ? renderLiveLabel() : Object(preact_modulebabel_target_legacy["h"])("span", {
11124    className: ContentCard_module_default.a.noLabel
11125  }), Object(preact_modulebabel_target_legacy["h"])("div", {
11126    className: ContentCard_module_default.a.buttons
11127  }, rpId && Object(preact_modulebabel_target_legacy["h"])(FaveButtonbabel_target_legacy["a" /* FaveButton */], {
11128    id: rpId
11129  }), Object(preact_modulebabel_target_legacy["h"])("a", {
11130    href: url,
11131    className: ContentCard_module_default.a.play
11132  }, Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
11133    className: ContentCard_module_default.a.nohover,
11134    name: "small-play"
11135  }), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
11136    className: ContentCard_module_default.a.hover,
11137    name: "small-play-circle"
11138  })))));
11139};
11140/* harmony default export */ var ContentCardbabel_target_legacy = (ContentCardbabel_target_legacy_ContentCard);
11141// CONCATENATED MODULE: ./src/components/ContentCard/index.ts?babel-target=legacy
11142
11143
11144/***/ }),
11145/* 190 */
11146/***/ (function(module, exports, __webpack_require__) {
11147
11148// extracted by mini-css-extract-plugin
11149module.exports = {"visuallyHidden":"MenuPanel-module__visuallyHidden--1vWlU","cookielink":"MenuPanel-module__cookielink--y20Qu","cmpButton":"MenuPanel-module__cmpButton--pUs2Y","button":"MenuPanel-module__button--3Y9Xr","wrap":"MenuPanel-module__wrap--1caDO","panel":"MenuPanel-module__panel--2JIRa"};
11150
11151/***/ }),
11152/* 191 */
11153/***/ (function(module, exports, __webpack_require__) {
11154
11155// extracted by mini-css-extract-plugin
11156module.exports = {"visuallyHidden":"AToZList-module__visuallyHidden--3L0_p","header":"AToZList-module__header--35aum","letter":"AToZList-module__letter--3mfg0","listcontainer":"AToZList-module__listcontainer--dJHEV","current":"AToZList-module__current--3PRDY","alphabet":"AToZList-module__alphabet--2BRD2"};
11157
11158/***/ }),
11159/* 192 */
11160/***/ (function(module, exports, __webpack_require__) {
11161
11162// extracted by mini-css-extract-plugin
11163module.exports = {"visuallyHidden":"FaveNote-module__visuallyHidden--_C6fF","closeText":"FaveNote-module__closeText--nqLTN","faveNotificationText":"FaveNote-module__faveNotificationText--tPcD0","faveNotificationHeader":"FaveNote-module__faveNotificationHeader--pKcuu","faveNotificationContainer":"FaveNote-module__faveNotificationContainer--3fJcZ","faveNotificationContainerInner":"FaveNote-module__faveNotificationContainerInner--3HjhA"};
11164
11165/***/ }),
11166/* 193 */
11167/***/ (function(module, exports, __webpack_require__) {
11168
11169// extracted by mini-css-extract-plugin
11170module.exports = {"visuallyHidden":"SkipBackButton-module__visuallyHidden--1Pp2F","button":"SkipBackButton-module__button--2Ifcb","arrow":"SkipBackButton-module__arrow--3IGnm","text":"SkipBackButton-module__text--I1Zs0","rotate":"SkipBackButton-module__rotate--KVI8h","dark":"SkipBackButton-module__dark--2BPul"};
11171
11172/***/ }),
11173/* 194 */
11174/***/ (function(module, exports, __webpack_require__) {
11175
11176// extracted by mini-css-extract-plugin
11177module.exports = {"visuallyHidden":"SkipForwardButton-module__visuallyHidden--daWxy","button":"SkipForwardButton-module__button--nFQze","arrow":"SkipForwardButton-module__arrow--wJnOU","text":"SkipForwardButton-module__text--3i6O5","rotate":"SkipForwardButton-module__rotate--3WSYC","dark":"SkipForwardButton-module__dark--3Yh7R"};
11178
11179/***/ }),
11180/* 195 */
11181/***/ (function(module, exports, __webpack_require__) {
11182
11183// extracted by mini-css-extract-plugin
11184module.exports = {"visuallyHidden":"SkipToLiveButton-module__visuallyHidden--3AbV3","button":"SkipToLiveButton-module__button--JE_uh","arrow":"SkipToLiveButton-module__arrow--cfCME","text":"SkipToLiveButton-module__text--2TW39","rotate":"SkipToLiveButton-module__rotate--2RWuu","dark":"SkipToLiveButton-module__dark--2Hmn1"};
11185
11186/***/ }),
11187/* 196 */
11188/***/ (function(module, exports, __webpack_require__) {
11189
11190// extracted by mini-css-extract-plugin
11191module.exports = {"visuallyHidden":"SkipToStartButton-module__visuallyHidden--3Hv7a","button":"SkipToStartButton-module__button--2Etuz","arrow":"SkipToStartButton-module__arrow--1v4GA","text":"SkipToStartButton-module__text--6tycM","rotate":"SkipToStartButton-module__rotate--2LoqS","dark":"SkipToStartButton-module__dark--1zBNA"};
11192
11193/***/ }),
11194/* 197 */,
11195/* 198 */,
11196/* 199 */
11197/***/ (function(module, exports, __webpack_require__) {
11198
11199"use strict";
11200// `Symbol.prototype.description` getter
11201// https://tc39.github.io/ecma262/#sec-symbol.prototype.description
11202
11203var $ = __webpack_require__(2);
11204var DESCRIPTORS = __webpack_require__(21);
11205var global = __webpack_require__(16);
11206var has = __webpack_require__(35);
11207var isObject = __webpack_require__(19);
11208var defineProperty = __webpack_require__(30).f;
11209var copyConstructorProperties = __webpack_require__(358);
11210
11211var NativeSymbol = global.Symbol;
11212
11213if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||
11214  // Safari 12 bug
11215  NativeSymbol().description !== undefined
11216)) {
11217  var EmptyStringDescriptionStore = {};
11218  // wrap Symbol constructor for correct work with undefined description
11219  var SymbolWrapper = function Symbol() {
11220    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
11221    var result = this instanceof SymbolWrapper
11222      ? new NativeSymbol(description)
11223      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
11224      : description === undefined ? NativeSymbol() : NativeSymbol(description);
11225    if (description === '') EmptyStringDescriptionStore[result] = true;
11226    return result;
11227  };
11228  copyConstructorProperties(SymbolWrapper, NativeSymbol);
11229  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
11230  symbolPrototype.constructor = SymbolWrapper;
11231
11232  var symbolToString = symbolPrototype.toString;
11233  var native = String(NativeSymbol('test')) == 'Symbol(test)';
11234  var regexp = /^Symbol\((.*)\)[^)]+$/;
11235  defineProperty(symbolPrototype, 'description', {
11236    configurable: true,
11237    get: function description() {
11238      var symbol = isObject(this) ? this.valueOf() : this;
11239      var string = symbolToString.call(symbol);
11240      if (has(EmptyStringDescriptionStore, symbol)) return '';
11241      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
11242      return desc === '' ? undefined : desc;
11243    }
11244  });
11245
11246  $({ global: true, forced: true }, {
11247    Symbol: SymbolWrapper
11248  });
11249}
11250
11251
11252/***/ }),
11253/* 200 */
11254/***/ (function(module, exports, __webpack_require__) {
11255
11256try {
11257  var util = __webpack_require__(311);
11258  /* istanbul ignore next */
11259  if (typeof util.inherits !== 'function') throw '';
11260  module.exports = util.inherits;
11261} catch (e) {
11262  /* istanbul ignore next */
11263  module.exports = __webpack_require__(902);
11264}
11265
11266
11267/***/ }),
11268/* 201 */,
11269/* 202 */
11270/***/ (function(module, exports, __webpack_require__) {
11271
11272"use strict";
11273/* WEBPACK VAR INJECTION */(function(process) {
11274
11275var Buffer = __webpack_require__(313).Buffer;
11276var Transform = __webpack_require__(129).Transform;
11277var binding = __webpack_require__(929);
11278var util = __webpack_require__(311);
11279var assert = __webpack_require__(740).ok;
11280var kMaxLength = __webpack_require__(313).kMaxLength;
11281var kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';
11282
11283// zlib doesn't provide these, so kludge them in following the same
11284// const naming scheme zlib uses.
11285binding.Z_MIN_WINDOWBITS = 8;
11286binding.Z_MAX_WINDOWBITS = 15;
11287binding.Z_DEFAULT_WINDOWBITS = 15;
11288
11289// fewer than 64 bytes per chunk is stupid.
11290// technically it could work with as few as 8, but even 64 bytes
11291// is absurdly low.  Usually a MB or more is best.
11292binding.Z_MIN_CHUNK = 64;
11293binding.Z_MAX_CHUNK = Infinity;
11294binding.Z_DEFAULT_CHUNK = 16 * 1024;
11295
11296binding.Z_MIN_MEMLEVEL = 1;
11297binding.Z_MAX_MEMLEVEL = 9;
11298binding.Z_DEFAULT_MEMLEVEL = 8;
11299
11300binding.Z_MIN_LEVEL = -1;
11301binding.Z_MAX_LEVEL = 9;
11302binding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;
11303
11304// expose all the zlib constants
11305var bkeys = Object.keys(binding);
11306for (var bk = 0; bk < bkeys.length; bk++) {
11307  var bkey = bkeys[bk];
11308  if (bkey.match(/^Z/)) {
11309    Object.defineProperty(exports, bkey, {
11310      enumerable: true, value: binding[bkey], writable: false
11311    });
11312  }
11313}
11314
11315// translation table for return codes.
11316var codes = {
11317  Z_OK: binding.Z_OK,
11318  Z_STREAM_END: binding.Z_STREAM_END,
11319  Z_NEED_DICT: binding.Z_NEED_DICT,
11320  Z_ERRNO: binding.Z_ERRNO,
11321  Z_STREAM_ERROR: binding.Z_STREAM_ERROR,
11322  Z_DATA_ERROR: binding.Z_DATA_ERROR,
11323  Z_MEM_ERROR: binding.Z_MEM_ERROR,
11324  Z_BUF_ERROR: binding.Z_BUF_ERROR,
11325  Z_VERSION_ERROR: binding.Z_VERSION_ERROR
11326};
11327
11328var ckeys = Object.keys(codes);
11329for (var ck = 0; ck < ckeys.length; ck++) {
11330  var ckey = ckeys[ck];
11331  codes[codes[ckey]] = ckey;
11332}
11333
11334Object.defineProperty(exports, 'codes', {
11335  enumerable: true, value: Object.freeze(codes), writable: false
11336}
vendor: 14,778 bytes, lines 11336-11881
11336);
11337
11338exports.Deflate = Deflate;
11339exports.Inflate = Inflate;
11340exports.Gzip = Gzip;
11341exports.Gunzip = Gunzip;
11342exports.DeflateRaw = DeflateRaw;
11343exports.InflateRaw = InflateRaw;
11344exports.Unzip = Unzip;
11345
11346exports.createDeflate = function (o) {
11347  return new Deflate(o);
11348};
11349
11350exports.createInflate = function (o) {
11351  return new Inflate(o);
11352};
11353
11354exports.createDeflateRaw = function (o) {
11355  return new DeflateRaw(o);
11356};
11357
11358exports.createInflateRaw = function (o) {
11359  return new InflateRaw(o);
11360};
11361
11362exports.createGzip = function (o) {
11363  return new Gzip(o);
11364};
11365
11366exports.createGunzip = function (o) {
11367  return new Gunzip(o);
11368};
11369
11370exports.createUnzip = function (o) {
11371  return new Unzip(o);
11372};
11373
11374// Convenience methods.
11375// compress/decompress a string or buffer in one step.
11376exports.deflate = function (buffer, opts, callback) {
11377  if (typeof opts === 'function') {
11378    callback = opts;
11379    opts = {};
11380  }
11381  return zlibBuffer(new Deflate(opts), buffer, callback);
11382};
11383
11384exports.deflateSync = function (buffer, opts) {
11385  return zlibBufferSync(new Deflate(opts), buffer);
11386};
11387
11388exports.gzip = function (buffer, opts, callback) {
11389  if (typeof opts === 'function') {
11390    callback = opts;
11391    opts = {};
11392  }
11393  return zlibBuffer(new Gzip(opts), buffer, callback);
11394};
11395
11396exports.gzipSync = function (buffer, opts) {
11397  return zlibBufferSync(new Gzip(opts), buffer);
11398};
11399
11400exports.deflateRaw = function (buffer, opts, callback) {
11401  if (typeof opts === 'function') {
11402    callback = opts;
11403    opts = {};
11404  }
11405  return zlibBuffer(new DeflateRaw(opts), buffer, callback);
11406};
11407
11408exports.deflateRawSync = function (buffer, opts) {
11409  return zlibBufferSync(new DeflateRaw(opts), buffer);
11410};
11411
11412exports.unzip = function (buffer, opts, callback) {
11413  if (typeof opts === 'function') {
11414    callback = opts;
11415    opts = {};
11416  }
11417  return zlibBuffer(new Unzip(opts), buffer, callback);
11418};
11419
11420exports.unzipSync = function (buffer, opts) {
11421  return zlibBufferSync(new Unzip(opts), buffer);
11422};
11423
11424exports.inflate = function (buffer, opts, callback) {
11425  if (typeof opts === 'function') {
11426    callback = opts;
11427    opts = {};
11428  }
11429  return zlibBuffer(new Inflate(opts), buffer, callback);
11430};
11431
11432exports.inflateSync = function (buffer, opts) {
11433  return zlibBufferSync(new Inflate(opts), buffer);
11434};
11435
11436exports.gunzip = function (buffer, opts, callback) {
11437  if (typeof opts === 'function') {
11438    callback = opts;
11439    opts = {};
11440  }
11441  return zlibBuffer(new Gunzip(opts), buffer, callback);
11442};
11443
11444exports.gunzipSync = function (buffer, opts) {
11445  return zlibBufferSync(new Gunzip(opts), buffer);
11446};
11447
11448exports.inflateRaw = function (buffer, opts, callback) {
11449  if (typeof opts === 'function') {
11450    callback = opts;
11451    opts = {};
11452  }
11453  return zlibBuffer(new InflateRaw(opts), buffer, callback);
11454};
11455
11456exports.inflateRawSync = function (buffer, opts) {
11457  return zlibBufferSync(new InflateRaw(opts), buffer);
11458};
11459
11460function zlibBuffer(engine, buffer, callback) {
11461  var buffers = [];
11462  var nread = 0;
11463
11464  engine.on('error', onError);
11465  engine.on('end', onEnd);
11466
11467  engine.end(buffer);
11468  flow();
11469
11470  function flow() {
11471    var chunk;
11472    while (null !== (chunk = engine.read())) {
11473      buffers.push(chunk);
11474      nread += chunk.length;
11475    }
11476    engine.once('readable', flow);
11477  }
11478
11479  function onError(err) {
11480    engine.removeListener('end', onEnd);
11481    engine.removeListener('readable', flow);
11482    callback(err);
11483  }
11484
11485  function onEnd() {
11486    var buf;
11487    var err = null;
11488
11489    if (nread >= kMaxLength) {
11490      err = new RangeError(kRangeErrorMessage);
11491    } else {
11492      buf = Buffer.concat(buffers, nread);
11493    }
11494
11495    buffers = [];
11496    engine.close();
11497    callback(err, buf);
11498  }
11499}
11500
11501function zlibBufferSync(engine, buffer) {
11502  if (typeof buffer === 'string') buffer = Buffer.from(buffer);
11503
11504  if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');
11505
11506  var flushFlag = engine._finishFlushFlag;
11507
11508  return engine._processChunk(buffer, flushFlag);
11509}
11510
11511// generic zlib
11512// minimal 2-byte header
11513function Deflate(opts) {
11514  if (!(this instanceof Deflate)) return new Deflate(opts);
11515  Zlib.call(this, opts, binding.DEFLATE);
11516}
11517
11518function Inflate(opts) {
11519  if (!(this instanceof Inflate)) return new Inflate(opts);
11520  Zlib.call(this, opts, binding.INFLATE);
11521}
11522
11523// gzip - bigger header, same deflate compression
11524function Gzip(opts) {
11525  if (!(this instanceof Gzip)) return new Gzip(opts);
11526  Zlib.call(this, opts, binding.GZIP);
11527}
11528
11529function Gunzip(opts) {
11530  if (!(this instanceof Gunzip)) return new Gunzip(opts);
11531  Zlib.call(this, opts, binding.GUNZIP);
11532}
11533
11534// raw - no header
11535function DeflateRaw(opts) {
11536  if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);
11537  Zlib.call(this, opts, binding.DEFLATERAW);
11538}
11539
11540function InflateRaw(opts) {
11541  if (!(this instanceof InflateRaw)) return new InflateRaw(opts);
11542  Zlib.call(this, opts, binding.INFLATERAW);
11543}
11544
11545// auto-detect header.
11546function Unzip(opts) {
11547  if (!(this instanceof Unzip)) return new Unzip(opts);
11548  Zlib.call(this, opts, binding.UNZIP);
11549}
11550
11551function isValidFlushFlag(flag) {
11552  return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;
11553}
11554
11555// the Zlib class they all inherit from
11556// This thing manages the queue of requests, and returns
11557// true or false if there is anything in the queue when
11558// you call the .write() method.
11559
11560function Zlib(opts, mode) {
11561  var _this = this;
11562
11563  this._opts = opts = opts || {};
11564  this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;
11565
11566  Transform.call(this, opts);
11567
11568  if (opts.flush && !isValidFlushFlag(opts.flush)) {
11569    throw new Error('Invalid flush flag: ' + opts.flush);
11570  }
11571  if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {
11572    throw new Error('Invalid flush flag: ' + opts.finishFlush);
11573  }
11574
11575  this._flushFlag = opts.flush || binding.Z_NO_FLUSH;
11576  this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;
11577
11578  if (opts.chunkSize) {
11579    if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {
11580      throw new Error('Invalid chunk size: ' + opts.chunkSize);
11581    }
11582  }
11583
11584  if (opts.windowBits) {
11585    if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {
11586      throw new Error('Invalid windowBits: ' + opts.windowBits);
11587    }
11588  }
11589
11590  if (opts.level) {
11591    if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {
11592      throw new Error('Invalid compression level: ' + opts.level);
11593    }
11594  }
11595
11596  if (opts.memLevel) {
11597    if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {
11598      throw new Error('Invalid memLevel: ' + opts.memLevel);
11599    }
11600  }
11601
11602  if (opts.strategy) {
11603    if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {
11604      throw new Error('Invalid strategy: ' + opts.strategy);
11605    }
11606  }
11607
11608  if (opts.dictionary) {
11609    if (!Buffer.isBuffer(opts.dictionary)) {
11610      throw new Error('Invalid dictionary: it should be a Buffer instance');
11611    }
11612  }
11613
11614  this._handle = new binding.Zlib(mode);
11615
11616  var self = this;
11617  this._hadError = false;
11618  this._handle.onerror = function (message, errno) {
11619    // there is no way to cleanly recover.
11620    // continuing only obscures problems.
11621    _close(self);
11622    self._hadError = true;
11623
11624    var error = new Error(message);
11625    error.errno = errno;
11626    error.code = exports.codes[errno];
11627    self.emit('error', error);
11628  };
11629
11630  var level = exports.Z_DEFAULT_COMPRESSION;
11631  if (typeof opts.level === 'number') level = opts.level;
11632
11633  var strategy = exports.Z_DEFAULT_STRATEGY;
11634  if (typeof opts.strategy === 'number') strategy = opts.strategy;
11635
11636  this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);
11637
11638  this._buffer = Buffer.allocUnsafe(this._chunkSize);
11639  this._offset = 0;
11640  this._level = level;
11641  this._strategy = strategy;
11642
11643  this.once('end', this.close);
11644
11645  Object.defineProperty(this, '_closed', {
11646    get: function () {
11647      return !_this._handle;
11648    },
11649    configurable: true,
11650    enumerable: true
11651  });
11652}
11653
11654util.inherits(Zlib, Transform);
11655
11656Zlib.prototype.params = function (level, strategy, callback) {
11657  if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {
11658    throw new RangeError('Invalid compression level: ' + level);
11659  }
11660  if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {
11661    throw new TypeError('Invalid strategy: ' + strategy);
11662  }
11663
11664  if (this._level !== level || this._strategy !== strategy) {
11665    var self = this;
11666    this.flush(binding.Z_SYNC_FLUSH, function () {
11667      assert(self._handle, 'zlib binding closed');
11668      self._handle.params(level, strategy);
11669      if (!self._hadError) {
11670        self._level = level;
11671        self._strategy = strategy;
11672        if (callback) callback();
11673      }
11674    });
11675  } else {
11676    process.nextTick(callback);
11677  }
11678};
11679
11680Zlib.prototype.reset = function () {
11681  assert(this._handle, 'zlib binding closed');
11682  return this._handle.reset();
11683};
11684
11685// This is the _flush function called by the transform class,
11686// internally, when the last chunk has been written.
11687Zlib.prototype._flush = function (callback) {
11688  this._transform(Buffer.alloc(0), '', callback);
11689};
11690
11691Zlib.prototype.flush = function (kind, callback) {
11692  var _this2 = this;
11693
11694  var ws = this._writableState;
11695
11696  if (typeof kind === 'function' || kind === undefined && !callback) {
11697    callback = kind;
11698    kind = binding.Z_FULL_FLUSH;
11699  }
11700
11701  if (ws.ended) {
11702    if (callback) process.nextTick(callback);
11703  } else if (ws.ending) {
11704    if (callback) this.once('end', callback);
11705  } else if (ws.needDrain) {
11706    if (callback) {
11707      this.once('drain', function () {
11708        return _this2.flush(kind, callback);
11709      });
11710    }
11711  } else {
11712    this._flushFlag = kind;
11713    this.write(Buffer.alloc(0), '', callback);
11714  }
11715};
11716
11717Zlib.prototype.close = function (callback) {
11718  _close(this, callback);
11719  process.nextTick(emitCloseNT, this);
11720};
11721
11722function _close(engine, callback) {
11723  if (callback) process.nextTick(callback);
11724
11725  // Caller may invoke .close after a zlib error (which will null _handle).
11726  if (!engine._handle) return;
11727
11728  engine._handle.close();
11729  engine._handle = null;
11730}
11731
11732function emitCloseNT(self) {
11733  self.emit('close');
11734}
11735
11736Zlib.prototype._transform = function (chunk, encoding, cb) {
11737  var flushFlag;
11738  var ws = this._writableState;
11739  var ending = ws.ending || ws.ended;
11740  var last = ending && (!chunk || ws.length === chunk.length);
11741
11742  if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));
11743
11744  if (!this._handle) return cb(new Error('zlib binding closed'));
11745
11746  // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag
11747  // (or whatever flag was provided using opts.finishFlush).
11748  // If it's explicitly flushing at some other time, then we use
11749  // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression
11750  // goodness.
11751  if (last) flushFlag = this._finishFlushFlag;else {
11752    flushFlag = this._flushFlag;
11753    // once we've flushed the last of the queue, stop flushing and
11754    // go back to the normal behavior.
11755    if (chunk.length >= ws.length) {
11756      this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;
11757    }
11758  }
11759
11760  this._processChunk(chunk, flushFlag, cb);
11761};
11762
11763Zlib.prototype._processChunk = function (chunk, flushFlag, cb) {
11764  var availInBefore = chunk && chunk.length;
11765  var availOutBefore = this._chunkSize - this._offset;
11766  var inOff = 0;
11767
11768  var self = this;
11769
11770  var async = typeof cb === 'function';
11771
11772  if (!async) {
11773    var buffers = [];
11774    var nread = 0;
11775
11776    var error;
11777    this.on('error', function (er) {
11778      error = er;
11779    });
11780
11781    assert(this._handle, 'zlib binding closed');
11782    do {
11783      var res = this._handle.writeSync(flushFlag, chunk, // in
11784      inOff, // in_off
11785      availInBefore, // in_len
11786      this._buffer, // out
11787      this._offset, //out_off
11788      availOutBefore); // out_len
11789    } while (!this._hadError && callback(res[0], res[1]));
11790
11791    if (this._hadError) {
11792      throw error;
11793    }
11794
11795    if (nread >= kMaxLength) {
11796      _close(this);
11797      throw new RangeError(kRangeErrorMessage);
11798    }
11799
11800    var buf = Buffer.concat(buffers, nread);
11801    _close(this);
11802
11803    return buf;
11804  }
11805
11806  assert(this._handle, 'zlib binding closed');
11807  var req = this._handle.write(flushFlag, chunk, // in
11808  inOff, // in_off
11809  availInBefore, // in_len
11810  this._buffer, // out
11811  this._offset, //out_off
11812  availOutBefore); // out_len
11813
11814  req.buffer = chunk;
11815  req.callback = callback;
11816
11817  function callback(availInAfter, availOutAfter) {
11818    // When the callback is used in an async write, the callback's
11819    // context is the `req` object that was created. The req object
11820    // is === this._handle, and that's why it's important to null
11821    // out the values after they are done being used. `this._handle`
11822    // can stay in memory longer than the callback and buffer are needed.
11823    if (this) {
11824      this.buffer = null;
11825      this.callback = null;
11826    }
11827
11828    if (self._hadError) return;
11829
11830    var have = availOutBefore - availOutAfter;
11831    assert(have >= 0, 'have should not go down');
11832
11833    if (have > 0) {
11834      var out = self._buffer.slice(self._offset, self._offset + have);
11835      self._offset += have;
11836      // serve some output to the consumer.
11837      if (async) {
11838        self.push(out);
11839      } else {
11840        buffers.push(out);
11841        nread += out.length;
11842      }
11843    }
11844
11845    // exhausted the output buffer, or used all the input create a new one.
11846    if (availOutAfter === 0 || self._offset >= self._chunkSize) {
11847      availOutBefore = self._chunkSize;
11848      self._offset = 0;
11849      self._buffer = Buffer.allocUnsafe(self._chunkSize);
11850    }
11851
11852    if (availOutAfter === 0) {
11853      // Not actually done.  Need to reprocess.
11854      // Also, update the availInBefore to the availInAfter value,
11855      // so that if we have to hit it a third (fourth, etc.) time,
11856      // it'll have the correct byte counts.
11857      inOff += availInBefore - availInAfter;
11858      availInBefore = availInAfter;
11859
11860      if (!async) return true;
11861
11862      var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);
11863      newReq.callback = callback; // this same function
11864      newReq.buffer = chunk;
11865      return;
11866    }
11867
11868    if (!async) return false;
11869
11870    // finished with the chunk.
11871    cb();
11872  }
11873};
11874
11875util.inherits(Deflate, Zlib);
11876util.inherits(Inflate, Zlib);
11877util.inherits(Gzip, Zlib);
11878util.inherits(Gunzip, Zlib);
11879util.inherits(DeflateRaw, Zlib);
11880util.inherits(InflateRaw, Zlib);
11881util.inherits(Unzip, Zlib);
11882/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57)))
11883
11884/***/ }),
11885/* 203 */,
11886/* 204 */,
11887/* 205 */
11888/***/ (function(module, __webpack_exports__, __webpack_require__) {
11889
11890"use strict";
11891/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export Immer */
11892/* unused harmony export applyPatches */
11893/* unused harmony export createDraft */
11894/* unused harmony export finishDraft */
11895/* unused harmony export immerable */
11896/* unused harmony export isDraft */
11897/* unused harmony export isDraftable */
11898/* unused harmony export nothing */
11899/* unused harmony export original */
11900/* unused harmony export produce */
11901/* unused harmony export setAutoFreeze */
11902/* unused harmony export setUseProxies */
11903var obj;
11904var NOTHING = typeof Symbol !== "undefined" ? Symbol("immer-nothing") : ( obj = {}, obj["immer-nothing"] = true, obj );
11905var DRAFTABLE = typeof Symbol !== "undefined" ? Symbol.for("immer-draftable") : "__$immer_draftable";
11906var DRAFT_STATE = typeof Symbol !== "undefined" ? Symbol.for("immer-state") : "__$immer_state";
11907function isDraft(value) {
11908  return !!value && !!value[DRAFT_STATE];
11909}
11910function isDraftable(value) {
11911  if (!value || typeof value !== "object") { return false; }
11912  if (Array.isArray(value)) { return true; }
11913  var proto = Object.getPrototypeOf(value);
11914  if (!proto || proto === Object.prototype) { return true; }
11915  return !!value[DRAFTABLE] || !!value.constructor[DRAFTABLE];
11916}
11917function original(value) {
11918  if (value && value[DRAFT_STATE]) {
11919    return value[DRAFT_STATE].base;
11920  } // otherwise return undefined
11921
11922}
11923var assign = Object.assign || function assign(target, value) {
11924  for (var key in value) {
11925    if (has(value, key)) {
11926      target[key] = value[key];
11927    }
11928  }
11929
11930  return target;
11931};
11932var ownKeys = typeof Reflect !== "undefined" && Reflect.ownKeys ? Reflect.ownKeys : typeof Object.getOwnPropertySymbols !== "undefined" ? function (obj) { return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)); } : Object.getOwnPropertyNames;
11933function shallowCopy(base, invokeGetters) {
11934  if ( invokeGetters === void 0 ) invokeGetters = false;
11935
11936  if (Array.isArray(base)) { return base.slice(); }
11937  var clone = Object.create(Object.getPrototypeOf(base));
11938  ownKeys(base).forEach(function (key) {
11939    if (key === DRAFT_STATE) {
11940      return; // Never copy over draft state.
11941    }
11942
11943    var desc = Object.getOwnPropertyDescriptor(base, key);
11944    var value = desc.value;
11945
11946    if (desc.get) {
11947      if (!invokeGetters) {
11948        throw new Error("Immer drafts cannot have computed properties");
11949      }
11950
11951      value = desc.get.call(base);
11952    }
11953
11954    if (desc.enumerable) {
11955      clone[key] = value;
11956    } else {
11957      Object.defineProperty(clone, key, {
11958        value: value,
11959        writable: true,
11960        configurable: true
11961      });
11962    }
11963  });
11964  return clone;
11965}
11966function each(value, cb) {
11967  if (Array.isArray(value)) {
11968    for (var i = 0; i < value.length; i++) { cb(i, value[i], value); }
11969  } else {
11970    ownKeys(value).forEach(function (key) { return cb(key, value[key], value); });
11971  }
11972}
11973function isEnumerable(base, prop) {
11974  return Object.getOwnPropertyDescriptor(base, prop).enumerable;
11975}
11976function has(thing, prop) {
11977  return Object.prototype.hasOwnProperty.call(thing, prop);
11978}
11979function is(x, y) {
11980  // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
11981  if (x === y) {
11982    return x !== 0 || 1 / x === 1 / y;
11983  } else {
11984    return x !== x && y !== y;
11985  }
11986}
11987
11988/** Each scope represents a `produce` call. */
11989
11990var ImmerScope = function ImmerScope(parent) {
11991  this.drafts = [];
11992  this.parent = parent; // Whenever the modified draft contains a draft from another scope, we
11993  // need to prevent auto-freezing so the unowned draft can be finalized.
11994
11995  this.canAutoFreeze = true; // To avoid prototype lookups:
11996
11997  this.patches = null;
11998};
11999
12000ImmerScope.prototype.usePatches = function usePatches (patchListener) {
12001  if (patchListener) {
12002    this.patches = [];
12003    this.inversePatches = [];
12004    this.patchListener = patchListener;
12005  }
12006};
12007
12008ImmerScope.prototype.revoke = function revoke$1 () {
12009  this.leave();
12010  this.drafts.forEach(revoke);
12011  this.drafts = null; // Make draft-related methods throw.
12012};
12013
12014ImmerScope.prototype.leave = function leave () {
12015  if (this === ImmerScope.current) {
12016    ImmerScope.current = this.parent;
12017  }
12018};
12019ImmerScope.current = null;
12020
12021ImmerScope.enter = function () {
12022  return this.current = new ImmerScope(this.current);
12023};
12024
12025function revoke(draft) {
12026  draft[DRAFT_STATE].revoke();
12027}
12028
12029// but share them all instead
12030
12031var descriptors = {};
12032function willFinalize(scope, result, isReplaced) {
12033  scope.drafts.forEach(function (draft) {
12034    draft[DRAFT_STATE].finalizing = true;
12035  });
12036
12037  if (!isReplaced) {
12038    if (scope.patches) {
12039      markChangesRecursively(scope.drafts[0]);
12040    } // This is faster when we don't care about which attributes changed.
12041
12042
12043    markChangesSweep(scope.drafts);
12044  } // When a child draft is returned, look for changes.
12045  else if (isDraft(result) && result[DRAFT_STATE].scope === scope) {
12046      markChangesSweep(scope.drafts);
12047    }
12048}
12049function createProxy(base, parent) {
12050  var isArray = Array.isArray(base);
12051  var draft = clonePotentialDraft(base);
12052  each(draft, function (prop) {
12053    proxyProperty(draft, prop, isArray || isEnumerable(base, prop));
12054  }); // See "proxy.js" for property documentation.
12055
12056  var scope = parent ? parent.scope : ImmerScope.current;
12057  var state = {
12058    scope: scope,
12059    modified: false,
12060    finalizing: false,
12061    // es5 only
12062    finalized: false,
12063    assigned: {},
12064    parent: parent,
12065    base: base,
12066    draft: draft,
12067    copy: null,
12068    revoke: revoke$1,
12069    revoked: false // es5 only
12070
12071  };
12072  createHiddenProperty(draft, DRAFT_STATE, state);
12073  scope.drafts.push(draft);
12074  return draft;
12075}
12076
12077function revoke$1() {
12078  this.revoked = true;
12079}
12080
12081function source(state) {
12082  return state.copy || state.base;
12083} // Access a property without creating an Immer draft.
12084
12085
12086function peek(draft, prop) {
12087  var state = draft[DRAFT_STATE];
12088
12089  if (state && !state.finalizing) {
12090    state.finalizing = true;
12091    var value = draft[prop];
12092    state.finalizing = false;
12093    return value;
12094  }
12095
12096  return draft[prop];
12097}
12098
12099function get(state, prop) {
12100  assertUnrevoked(state);
12101  var value = peek(source(state), prop);
12102  if (state.finalizing) { return value; } // Create a draft if the value is unmodified.
12103
12104  if (value === peek(state.base, prop) && isDraftable(value)) {
12105    prepareCopy(state);
12106    return state.copy[prop] = createProxy(value, state);
12107  }
12108
12109  return value;
12110}
12111
12112function set(state, prop, value) {
12113  assertUnrevoked(state);
12114  state.assigned[prop] = true;
12115
12116  if (!state.modified) {
12117    if (is(value, peek(source(state), prop))) { return; }
12118    markChanged(state);
12119    prepareCopy(state);
12120  }
12121
12122  state.copy[prop] = value;
12123}
12124
12125function markChanged(state) {
12126  if (!state.modified) {
12127    state.modified = true;
12128    if (state.parent) { markChanged(state.parent); }
12129  }
12130}
12131
12132function prepareCopy(state) {
12133  if (!state.copy) { state.copy = clonePotentialDraft(state.base); }
12134}
12135
12136function clonePotentialDraft(base) {
12137  var state = base && base[DRAFT_STATE];
12138
12139  if (state) {
12140    state.finalizing = true;
12141    var draft = shallowCopy(state.draft, true);
12142    state.finalizing = false;
12143    return draft;
12144  }
12145
12146  return shallowCopy(base);
12147}
12148
12149function proxyProperty(draft, prop, enumerable) {
12150  var desc = descriptors[prop];
12151
12152  if (desc) {
12153    desc.enumerable = enumerable;
12154  } else {
12155    descriptors[prop] = desc = {
12156      configurable: true,
12157      enumerable: enumerable,
12158
12159      get: function get$1() {
12160        return get(this[DRAFT_STATE], prop);
12161      },
12162
12163      set: function set$1(value) {
12164        set(this[DRAFT_STATE], prop, value);
12165      }
12166
12167    };
12168  }
12169
12170  Object.defineProperty(draft, prop, desc);
12171}
12172
12173function assertUnrevoked(state) {
12174  if (state.revoked === true) { throw new Error("Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? " + JSON.stringify(source(state))); }
12175} // This looks expensive, but only proxies are visited, and only objects without known changes are scanned.
12176
12177
12178function markChangesSweep(drafts) {
12179  // The natural order of drafts in the `scope` array is based on when they
12180  // were accessed. By processing drafts in reverse natural order, we have a
12181  // better chance of processing leaf nodes first. When a leaf node is known to
12182  // have changed, we can avoid any traversal of its ancestor nodes.
12183  for (var i = drafts.length - 1; i >= 0; i--) {
12184    var state = drafts[i][DRAFT_STATE];
12185
12186    if (!state.modified) {
12187      if (Array.isArray(state.base)) {
12188        if (hasArrayChanges(state)) { markChanged(state); }
12189      } else if (hasObjectChanges(state)) { markChanged(state); }
12190    }
12191  }
12192}
12193
12194function markChangesRecursively(object) {
12195  if (!object || typeof object !== "object") { return; }
12196  var state = object[DRAFT_STATE];
12197  if (!state) { return; }
12198  var base = state.base;
12199  var draft = state.draft;
12200  var assigned = state.assigned;
12201
12202  if (!Array.isArray(object)) {
12203    // Look for added keys.
12204    Object.keys(draft).forEach(function (key) {
12205      // The `undefined` check is a fast path for pre-existing keys.
12206      if (base[key] === undefined && !has(base, key)) {
12207        assigned[key] = true;
12208        markChanged(state);
12209      } else if (!assigned[key]) {
12210        // Only untouched properties trigger recursion.
12211        markChangesRecursively(draft[key]);
12212      }
12213    }); // Look for removed keys.
12214
12215    Object.keys(base).forEach(function (key) {
12216      // The `undefined` check is a fast path for pre-existing keys.
12217      if (draft[key] === undefined && !has(draft, key)) {
12218        assigned[key] = false;
12219        markChanged(state);
12220      }
12221    });
12222  } else if (hasArrayChanges(state)) {
12223    markChanged(state);
12224    assigned.length = true;
12225
12226    if (draft.length < base.length) {
12227      for (var i = draft.length; i < base.length; i++) { assigned[i] = false; }
12228    } else {
12229      for (var i$1 = base.length; i$1 < draft.length; i$1++) { assigned[i$1] = true; }
12230    }
12231
12232    for (var i$2 = 0; i$2 < draft.length; i$2++) {
12233      // Only untouched indices trigger recursion.
12234      if (assigned[i$2] === undefined) { markChangesRecursively(draft[i$2]); }
12235    }
12236  }
12237}
12238
12239function hasObjectChanges(state) {
12240  var base = state.base;
12241  var draft = state.draft; // Search for added keys and changed keys. Start at the back, because
12242  // non-numeric keys are ordered by time of definition on the object.
12243
12244  var keys = Object.keys(draft);
12245
12246  for (var i = keys.length - 1; i >= 0; i--) {
12247    var key = keys[i];
12248    var baseValue = base[key]; // The `undefined` check is a fast path for pre-existing keys.
12249
12250    if (baseValue === undefined && !has(base, key)) {
12251      return true;
12252    } // Once a base key is deleted, future changes go undetected, because its
12253    // descriptor is erased. This branch detects any missed changes.
12254    else {
12255        var value = draft[key];
12256        var state$1 = value && value[DRAFT_STATE];
12257
12258        if (state$1 ? state$1.base !== baseValue : !is(value, baseValue)) {
12259          return true;
12260        }
12261      }
12262  } // At this point, no keys were added or changed.
12263  // Compare key count to determine if keys were deleted.
12264
12265
12266  return keys.length !== Object.keys(base).length;
12267}
12268
12269function hasArrayChanges(state) {
12270  var draft = state.draft;
12271  if (draft.length !== state.base.length) { return true; } // See #116
12272  // If we first shorten the length, our array interceptors will be removed.
12273  // If after that new items are added, result in the same original length,
12274  // those last items will have no intercepting property.
12275  // So if there is no own descriptor on the last position, we know that items were removed and added
12276  // N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check
12277  // the last one
12278
12279  var descriptor = Object.getOwnPropertyDescriptor(draft, draft.length - 1); // descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)
12280
12281  if (descriptor && !descriptor.get) { return true; } // For all other cases, we don't have to compare, as they would have been picked up by the index setters
12282
12283  return false;
12284}
12285
12286function createHiddenProperty(target, prop, value) {
12287  Object.defineProperty(target, prop, {
12288    value: value,
12289    enumerable: false,
12290    writable: true
12291  });
12292}
12293
12294var legacyProxy = /*#__PURE__*/Object.freeze({
12295    willFinalize: willFinalize,
12296    createProxy: createProxy
12297});
12298
12299function willFinalize$1() {}
12300function createProxy$1(base, parent) {
12301  var scope = parent ? parent.scope : ImmerScope.current;
12302  var state = {
12303    // Track which produce call this is associated with.
12304    scope: scope,
12305    // True for both shallow and deep changes.
12306    modified: false,
12307    // Used during finalization.
12308    finalized: false,
12309    // Track which properties have been assigned (true) or deleted (false).
12310    assigned: {},
12311    // The parent draft state.
12312    parent: parent,
12313    // The base state.
12314    base: base,
12315    // The base proxy.
12316    draft: null,
12317    // Any property proxies.
12318    drafts: {},
12319    // The base copy with any updated values.
12320    copy: null,
12321    // Called by the `produce` function.
12322    revoke: null
12323  };
12324  var ref = Array.isArray(base) ? // [state] is used for arrays, to make sure the proxy is array-ish and not violate invariants,
12325  // although state itself is an object
12326  Proxy.revocable([state], arrayTraps) : Proxy.revocable(state, objectTraps);
12327  var revoke = ref.revoke;
12328  var proxy = ref.proxy;
12329  state.draft = proxy;
12330  state.revoke = revoke;
12331  scope.drafts.push(proxy);
12332  return proxy;
12333}
12334var objectTraps = {
12335  get: get$1,
12336
12337  has: function has(target, prop) {
12338    return prop in source$1(target);
12339  },
12340
12341  ownKeys: function ownKeys(target) {
12342    return Reflect.ownKeys(source$1(target));
12343  },
12344
12345  set: set$1,
12346  deleteProperty: deleteProperty,
12347  getOwnPropertyDescriptor: getOwnPropertyDescriptor,
12348
12349  defineProperty: function defineProperty() {
12350    throw new Error("Object.defineProperty() cannot be used on an Immer draft"); // prettier-ignore
12351  },
12352
12353  getPrototypeOf: function getPrototypeOf(target) {
12354    return Object.getPrototypeOf(target.base);
12355  },
12356
12357  setPrototypeOf: function setPrototypeOf() {
12358    throw new Error("Object.setPrototypeOf() cannot be used on an Immer draft"); // prettier-ignore
12359  }
12360
12361};
12362var arrayTraps = {};
12363each(objectTraps, function (key, fn) {
12364  arrayTraps[key] = function () {
12365    arguments[0] = arguments[0][0];
12366    return fn.apply(this, arguments);
12367  };
12368});
12369
12370arrayTraps.deleteProperty = function (state, prop) {
12371  if (isNaN(parseInt(prop))) {
12372    throw new Error("Immer only supports deleting array indices"); // prettier-ignore
12373  }
12374
12375  return objectTraps.deleteProperty.call(this, state[0], prop);
12376};
12377
12378arrayTraps.set = function (state, prop, value) {
12379  if (prop !== "length" && isNaN(parseInt(prop))) {
12380    throw new Error("Immer only supports setting array indices and the 'length' property"); // prettier-ignore
12381  }
12382
12383  return objectTraps.set.call(this, state[0], prop, value);
12384}; // returns the object we should be reading the current value from, which is base, until some change has been made
12385
12386
12387function source$1(state) {
12388  return state.copy || state.base;
12389} // Access a property without creating an Immer draft.
12390
12391
12392function peek$1(draft, prop) {
12393  var state = draft[DRAFT_STATE];
12394  var desc = Reflect.getOwnPropertyDescriptor(state ? source$1(state) : draft, prop);
12395  return desc && desc.value;
12396}
12397
12398function get$1(state, prop) {
12399  if (prop === DRAFT_STATE) { return state; }
12400  var drafts = state.drafts; // Check for existing draft in unmodified state.
12401
12402  if (!state.modified && has(drafts, prop)) {
12403    return drafts[prop];
12404  }
12405
12406  var value = source$1(state)[prop];
12407
12408  if (state.finalized || !isDraftable(value)) {
12409    return value;
12410  } // Check for existing draft in modified state.
12411
12412
12413  if (state.modified) {
12414    // Assigned values are never drafted. This catches any drafts we created, too.
12415    if (value !== peek$1(state.base, prop)) { return value; } // Store drafts on the copy (when one exists).
12416
12417    drafts = state.copy;
12418  }
12419
12420  return drafts[prop] = createProxy$1(value, state);
12421}
12422
12423function set$1(state, prop, value) {
12424  if (!state.modified) {
12425    var baseValue = peek$1(state.base, prop); // Optimize based on value's truthiness. Truthy values are guaranteed to
12426    // never be undefined, so we can avoid the `in` operator. Lastly, truthy
12427    // values may be drafts, but falsy values are never drafts.
12428
12429    var isUnchanged = value ? is(baseValue, value) || value === state.drafts[prop] : is(baseValue, value) && prop in state.base;
12430    if (isUnchanged) { return true; }
12431    markChanged$1(state);
12432  }
12433
12434  state.assigned[prop] = true;
12435  state.copy[prop] = value;
12436  return true;
12437}
12438
12439function deleteProperty(state, prop) {
12440  // The `undefined` check is a fast path for pre-existing keys.
12441  if (peek$1(state.base, prop) !== undefined || prop in state.base) {
12442    state.assigned[prop] = false;
12443    markChanged$1(state);
12444  }
12445
12446  if (state.copy) { delete state.copy[prop]; }
12447  return true;
12448} // Note: We never coerce `desc.value` into an Immer draft, because we can't make
12449// the same guarantee in ES5 mode.
12450
12451
12452function getOwnPropertyDescriptor(state, prop) {
12453  var owner = source$1(state);
12454  var desc = Reflect.getOwnPropertyDescriptor(owner, prop);
12455
12456  if (desc) {
12457    desc.writable = true;
12458    desc.configurable = !Array.isArray(owner) || prop !== "length";
12459  }
12460
12461  return desc;
12462}
12463
12464function markChanged$1(state) {
12465  if (!state.modified) {
12466    state.modified = true;
12467    state.copy = assign(shallowCopy(state.base), state.drafts);
12468    state.drafts = null;
12469    if (state.parent) { markChanged$1(state.parent); }
12470  }
12471}
12472
12473var modernProxy = /*#__PURE__*/Object.freeze({
12474    willFinalize: willFinalize$1,
12475    createProxy: createProxy$1
12476});
12477
12478function generatePatches(state, basePath, patches, inversePatches) {
12479  Array.isArray(state.base) ? generateArrayPatches(state, basePath, patches, inversePatches) : generateObjectPatches(state, basePath, patches, inversePatches);
12480}
12481
12482function generateArrayPatches(state, basePath, patches, inversePatches) {
12483  var assign, assign$1;
12484
12485  var base = state.base;
12486  var copy = state.copy;
12487  var assigned = state.assigned; // Reduce complexity by ensuring `base` is never longer.
12488
12489  if (copy.length < base.length) {
12490    (assign = [copy, base], base = assign[0], copy = assign[1]);
12491    (assign$1 = [inversePatches, patches], patches = assign$1[0], inversePatches = assign$1[1]);
12492  }
12493
12494  var delta = copy.length - base.length; // Find the first replaced index.
12495
12496  var start = 0;
12497
12498  while (base[start] === copy[start] && start < base.length) {
12499    ++start;
12500  } // Find the last replaced index. Search from the end to optimize splice patches.
12501
12502
12503  var end = base.length;
12504
12505  while (end > start && base[end - 1] === copy[end + delta - 1]) {
12506    --end;
12507  } // Process replaced indices.
12508
12509
12510  for (var i = start; i < end; ++i) {
12511    if (assigned[i] && copy[i] !== base[i]) {
12512      var path = basePath.concat([i]);
12513      patches.push({
12514        op: "replace",
12515        path: path,
12516        value: copy[i]
12517      });
12518      inversePatches.push({
12519        op: "replace",
12520        path: path,
12521        value: base[i]
12522      });
12523    }
12524  }
12525
12526  var useRemove = end != base.length;
12527  var replaceCount = patches.length; // Process added indices.
12528
12529  for (var i$1 = end + delta - 1; i$1 >= end; --i$1) {
12530    var path$1 = basePath.concat([i$1]);
12531    patches[replaceCount + i$1 - end] = {
12532      op: "add",
12533      path: path$1,
12534      value: copy[i$1]
12535    };
12536
12537    if (useRemove) {
12538      inversePatches.push({
12539        op: "remove",
12540        path: path$1
12541      });
12542    }
12543  } // One "replace" patch reverses all non-splicing "add" patches.
12544
12545
12546  if (!useRemove) {
12547    inversePatches.push({
12548      op: "replace",
12549      path: basePath.concat(["length"]),
12550      value: base.length
12551    });
12552  }
12553}
12554
12555function generateObjectPatches(state, basePath, patches, inversePatches) {
12556  var base = state.base;
12557  var copy = state.copy;
12558  each(state.assigned, function (key, assignedValue) {
12559    var origValue = base[key];
12560    var value = copy[key];
12561    var op = !assignedValue ? "remove" : key in base ? "replace" : "add";
12562    if (origValue === value && op === "replace") { return; }
12563    var path = basePath.concat(key);
12564    patches.push(op === "remove" ? {
12565      op: op,
12566      path: path
12567    } : {
12568      op: op,
12569      path: path,
12570      value: value
12571    });
12572    inversePatches.push(op === "add" ? {
12573      op: "remove",
12574      path: path
12575    } : op === "remove" ? {
12576      op: "add",
12577      path: path,
12578      value: origValue
12579    } : {
12580      op: "replace",
12581      path: path,
12582      value: origValue
12583    });
12584  });
12585}
12586
12587function applyPatches(draft, patches) {
12588  for (var i = 0; i < patches.length; i++) {
12589    var patch = patches[i];
12590    var path = patch.path;
12591
12592    if (path.length === 0 && patch.op === "replace") {
12593      draft = patch.value;
12594    } else {
12595      var base = draft;
12596
12597      for (var i$1 = 0; i$1 < path.length - 1; i$1++) {
12598        base = base[path[i$1]];
12599        if (!base || typeof base !== "object") { throw new Error("Cannot apply patch, path doesn't resolve: " + path.join("/")); } // prettier-ignore
12600      }
12601
12602      var key = path[path.length - 1];
12603
12604      switch (patch.op) {
12605        case "replace":
12606          base[key] = patch.value;
12607          break;
12608
12609        case "add":
12610          if (Array.isArray(base)) {
12611            // TODO: support "foo/-" paths for appending to an array
12612            base.splice(key, 0, patch.value);
12613          } else {
12614            base[key] = patch.value;
12615          }
12616
12617          break;
12618
12619        case "remove":
12620          if (Array.isArray(base)) {
12621            base.splice(key, 1);
12622          } else {
12623            delete base[key];
12624          }
12625
12626          break;
12627
12628        default:
12629          throw new Error("Unsupported patch operation: " + patch.op);
12630      }
12631    }
12632  }
12633
12634  return draft;
12635}
12636
12637function verifyMinified() {}
12638
12639var configDefaults = {
12640  useProxies: typeof Proxy !== "undefined" && typeof Reflect !== "undefined",
12641  autoFreeze: typeof process !== "undefined" ? "production" !== "production" : verifyMinified.name === "verifyMinified",
12642  onAssign: null,
12643  onDelete: null,
12644  onCopy: null
12645};
12646var Immer = function Immer(config) {
12647  assign(this, configDefaults, config);
12648  this.setUseProxies(this.useProxies);
12649  this.produce = this.produce.bind(this);
12650};
12651
12652Immer.prototype.produce = function produce (base, recipe, patchListener) {
12653    var this$1 = this;
12654
12655  // curried invocation
12656  if (typeof base === "function" && typeof recipe !== "function") {
12657    var defaultBase = recipe;
12658    recipe = base; // prettier-ignore
12659
12660    return function (base) {
12661        if ( base === void 0 ) base = defaultBase;
12662        var args = [], len = arguments.length - 1;
12663        while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];
12664
12665        return this$1.produce(base, function (draft) { return recipe.call.apply(recipe, [ draft, draft ].concat( args )); });
12666      };
12667  } // prettier-ignore
12668
12669
12670  {
12671    if (typeof recipe !== "function") {
12672      throw new Error("The first or second argument to `produce` must be a function");
12673    }
12674
12675    if (patchListener !== undefined && typeof patchListener !== "function") {
12676      throw new Error("The third argument to `produce` must be a function or undefined");
12677    }
12678  }
12679  var result; // Only plain objects, arrays, and "immerable classes" are drafted.
12680
12681  if (isDraftable(base)) {
12682    var scope = ImmerScope.enter();
12683    var proxy = this.createProxy(base);
12684    var hasError = true;
12685
12686    try {
12687      result = recipe.call(proxy, proxy);
12688      hasError = false;
12689    } finally {
12690      // finally instead of catch + rethrow better preserves original stack
12691      if (hasError) { scope.revoke(); }else { scope.leave(); }
12692    }
12693
12694    if (result instanceof Promise) {
12695      return result.then(function (result) {
12696        scope.usePatches(patchListener);
12697        return this$1.processResult(result, scope);
12698      }, function (error) {
12699        scope.revoke();
12700        throw error;
12701      });
12702    }
12703
12704    scope.usePatches(patchListener);
12705    return this.processResult(result, scope);
12706  } else {
12707    result = recipe(base);
12708    if (result === undefined) { return base; }
12709    return result !== NOTHING ? result : undefined;
12710  }
12711};
12712
12713Immer.prototype.createDraft = function createDraft (base) {
12714  if (!isDraftable(base)) {
12715    throw new Error("First argument to `createDraft` must be a plain object, an array, or an immerable object"); // prettier-ignore
12716  }
12717
12718  var scope = ImmerScope.enter();
12719  var proxy = this.createProxy(base);
12720  proxy[DRAFT_STATE].isManual = true;
12721  scope.leave();
12722  return proxy;
12723};
12724
12725Immer.prototype.finishDraft = function finishDraft (draft, patchListener) {
12726  var state = draft && draft[DRAFT_STATE];
12727
12728  if (!state || !state.isManual) {
12729    throw new Error("First argument to `finishDraft` must be a draft returned by `createDraft`"); // prettier-ignore
12730  }
12731
12732  if (state.finalized) {
12733    throw new Error("The given draft is already finalized"); // prettier-ignore
12734  }
12735
12736  var scope = state.scope;
12737  scope.usePatches(patchListener);
12738  return this.processResult(undefined, scope);
12739};
12740
12741Immer.prototype.setAutoFreeze = function setAutoFreeze (value) {
12742  this.autoFreeze = value;
12743};
12744
12745Immer.prototype.setUseProxies = function setUseProxies (value) {
12746  this.useProxies = value;
12747  assign(this, value ? modernProxy : legacyProxy);
12748};
12749
12750Immer.prototype.applyPatches = function applyPatches$1 (base, patches) {
12751  // Mutate the base state when a draft is passed.
12752  if (isDraft(base)) {
12753    return applyPatches(base, patches);
12754  } // Otherwise, produce a copy of the base state.
12755
12756
12757  return this.produce(base, function (draft) { return applyPatches(draft, patches); });
12758};
12759/** @internal */
12760
12761
12762Immer.prototype.processResult = function processResult (result, scope) {
12763  var baseDraft = scope.drafts[0];
12764  var isReplaced = result !== undefined && result !== baseDraft;
12765  this.willFinalize(scope, result, isReplaced);
12766
12767  if (isReplaced) {
12768    if (baseDraft[DRAFT_STATE].modified) {
12769      scope.revoke();
12770      throw new Error("An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft."); // prettier-ignore
12771    }
12772
12773    if (isDraftable(result)) {
12774      // Finalize the result in case it contains (or is) a subset of the draft.
12775      result = this.finalize(result, null, scope);
12776    }
12777
12778    if (scope.patches) {
12779      scope.patches.push({
12780        op: "replace",
12781        path: [],
12782        value: result
12783      });
12784      scope.inversePatches.push({
12785        op: "replace",
12786        path: [],
12787        value: baseDraft[DRAFT_STATE].base
12788      });
12789    }
12790  } else {
12791    // Finalize the base draft.
12792    result = this.finalize(baseDraft, [], scope);
12793  }
12794
12795  scope.revoke();
12796
12797  if (scope.patches) {
12798    scope.patchListener(scope.patches, scope.inversePatches);
12799  }
12800
12801  return result !== NOTHING ? result : undefined;
12802};
12803/**
12804 * @internal
12805 * Finalize a draft, returning either the unmodified base state or a modified
12806 * copy of the base state.
12807 */
12808
12809
12810Immer.prototype.finalize = function finalize (draft, path, scope) {
12811    var this$1 = this;
12812
12813  var state = draft[DRAFT_STATE];
12814
12815  if (!state) {
12816    if (Object.isFrozen(draft)) { return draft; }
12817    return this.finalizeTree(draft, null, scope);
12818  } // Never finalize drafts owned by another scope.
12819
12820
12821  if (state.scope !== scope) {
12822    return draft;
12823  }
12824
12825  if (!state.modified) {
12826    return state.base;
12827  }
12828
12829  if (!state.finalized) {
12830    state.finalized = true;
12831    this.finalizeTree(state.draft, path, scope);
12832
12833    if (this.onDelete) {
12834      // The `assigned` object is unreliable with ES5 drafts.
12835      if (this.useProxies) {
12836        var assigned = state.assigned;
12837
12838        for (var prop in assigned) {
12839          if (!assigned[prop]) { this.onDelete(state, prop); }
12840        }
12841      } else {
12842        var base = state.base;
12843          var copy = state.copy;
12844        each(base, function (prop) {
12845          if (!has(copy, prop)) { this$1.onDelete(state, prop); }
12846        });
12847      }
12848    }
12849
12850    if (this.onCopy) {
12851      this.onCopy(state);
12852    } // At this point, all descendants of `state.copy` have been finalized,
12853    // so we can be sure that `scope.canAutoFreeze` is accurate.
12854
12855
12856    if (this.autoFreeze && scope.canAutoFreeze) {
12857      Object.freeze(state.copy);
12858    }
12859
12860    if (path && scope.patches) {
12861      generatePatches(state, path, scope.patches, scope.inversePatches);
12862    }
12863  }
12864
12865  return state.copy;
12866};
12867/**
12868 * @internal
12869 * Finalize all drafts in the given state tree.
12870 */
12871
12872
12873Immer.prototype.finalizeTree = function finalizeTree (root, rootPath, scope) {
12874    var this$1 = this;
12875
12876  var state = root[DRAFT_STATE];
12877
12878  if (state) {
12879    if (!this.useProxies) {
12880      // Create the final copy, with added keys and without deleted keys.
12881      state.copy = shallowCopy(state.draft, true);
12882    }
12883
12884    root = state.copy;
12885  }
12886
12887  var needPatches = !!rootPath && !!scope.patches;
12888
12889  var finalizeProperty = function (prop, value, parent) {
12890    if (value === parent) {
12891      throw Error("Immer forbids circular references");
12892    } // In the `finalizeTree` method, only the `root` object may be a draft.
12893
12894
12895    var isDraftProp = !!state && parent === root;
12896
12897    if (isDraft(value)) {
12898      var path = isDraftProp && needPatches && !state.assigned[prop] ? rootPath.concat(prop) : null; // Drafts owned by `scope` are finalized here.
12899
12900      value = this$1.finalize(value, path, scope); // Drafts from another scope must prevent auto-freezing.
12901
12902      if (isDraft(value)) {
12903        scope.canAutoFreeze = false;
12904      } // Preserve non-enumerable properties.
12905
12906
12907      if (Array.isArray(parent) || isEnumerable(parent, prop)) {
12908        parent[prop] = value;
12909      } else {
12910        Object.defineProperty(parent, prop, {
12911          value: value
12912        });
12913      } // Unchanged drafts are never passed to the `onAssign` hook.
12914
12915
12916      if (isDraftProp && value === state.base[prop]) { return; }
12917    } // Unchanged draft properties are ignored.
12918    else if (isDraftProp && is(value, state.base[prop])) {
12919        return;
12920      } // Search new objects for unfinalized drafts. Frozen objects should never contain drafts.
12921      else if (isDraftable(value) && !Object.isFrozen(value)) {
12922          each(value, finalizeProperty);
12923        }
12924
12925    if (isDraftProp && this$1.onAssign) {
12926      this$1.onAssign(state, prop, value);
12927    }
12928  };
12929
12930  each(root, finalizeProperty);
12931  return root;
12932};
12933
12934var immer = new Immer();
12935/**
12936 * The `produce` function takes a value and a "recipe function" (whose
12937 * return value often depends on the base state). The recipe function is
12938 * free to mutate its first argument however it wants. All mutations are
12939 * only ever applied to a __copy__ of the base state.
12940 *
12941 * Pass only a function to create a "curried producer" which relieves you
12942 * from passing the recipe function every time.
12943 *
12944 * Only plain objects and arrays are made mutable. All other objects are
12945 * considered uncopyable.
12946 *
12947 * Note: This function is __bound__ to its `Immer` instance.
12948 *
12949 * @param {any} base - the initial state
12950 * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified
12951 * @param {Function} patchListener - optional function that will be called with all the patches produced here
12952 * @returns {any} a new state, or the initial state if nothing was modified
12953 */
12954
12955var produce = immer.produce;
12956/**
12957 * Pass true to automatically freeze all copies created by Immer.
12958 *
12959 * By default, auto-freezing is disabled in production.
12960 */
12961
12962var setAutoFreeze = immer.setAutoFreeze.bind(immer);
12963/**
12964 * Pass true to use the ES2015 `Proxy` class when creating drafts, which is
12965 * always faster than using ES5 proxies.
12966 *
12967 * By default, feature detection is used, so calling this is rarely necessary.
12968 */
12969
12970var setUseProxies = immer.setUseProxies.bind(immer);
12971/**
12972 * Apply an array of Immer patches to the first argument.
12973 *
12974 * This function is a producer, which means copy-on-write is in effect.
12975 */
12976
12977var applyPatches$1 = immer.applyPatches.bind(immer);
12978/**
12979 * Create an Immer draft from the given base state, which may be a draft itself.
12980 * The draft can be modified until you finalize it with the `finishDraft` function.
12981 */
12982
12983var createDraft = immer.createDraft.bind(immer);
12984/**
12985 * Finalize an Immer draft from a `createDraft` call, returning the base state
12986 * (if no changes were made) or a modified copy. The draft must *not* be
12987 * mutated afterwards.
12988 *
12989 * Pass a function as the 2nd argument to generate Immer patches based on the
12990 * changes that were made.
12991 */
12992
12993var finishDraft = immer.finishDraft.bind(immer);
12994
12995/* harmony default export */ __webpack_exports__["a"] = (produce);
12996
12997//# sourceMappingURL=immer.module.js.map
12998
12999/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57)))
13000
13001/***/ }),
13002/* 206 */,
13003/* 207 */,
13004/* 208 */,
13005/* 209 */,
13006/* 210 */,
13007/* 211 */,
13008/* 212 */,
13009/* 213 */
13010/***/ (function(module, exports, __webpack_require__) {
13011
13012"use strict";
13013
13014var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
13015var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
13016
13017// Nashorn ~ JDK8 bug
13018var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
13019
13020// `Object.prototype.propertyIsEnumerable` method implementation
13021// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
13022exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
13023  var descriptor = getOwnPropertyDescriptor(this, V);
13024  return !!descriptor && descriptor.enumerable;
13025} : nativePropertyIsEnumerable;
13026
13027
13028/***/ }),
13029/* 214 */
13030/***/ (function(module, exports, __webpack_require__) {
13031
13032var shared = __webpack_require__(277);
13033var uid = __webpack_require__(165);
13034
13035var keys = shared('keys');
13036
13037module.exports = function (key) {
13038  return keys[key] || (keys[key] = uid(key));
13039};
13040
13041
13042/***/ }),
13043/* 215 */
13044/***/ (function(module, exports, __webpack_require__) {
13045
13046var wellKnownSymbol = __webpack_require__(23);
13047
13048var ITERATOR = wellKnownSymbol('iterator');
13049var SAFE_CLOSING = false;
vendor: 14,406 bytes, lines 13050-13526
13050
13051try {
13052  var called = 0;
13053  var iteratorWithReturn = {
13054    next: function () {
13055      return { done: !!called++ };
13056    },
13057    'return': function () {
13058      SAFE_CLOSING = true;
13059    }
13060  };
13061  iteratorWithReturn[ITERATOR] = function () {
13062    return this;
13063  };
13064  // eslint-disable-next-line no-throw-literal
13065  Array.from(iteratorWithReturn, function () { throw 2; });
13066} catch (error) { /* empty */ }
13067
13068module.exports = function (exec, SKIP_CLOSING) {
13069  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
13070  var ITERATION_SUPPORT = false;
13071  try {
13072    var object = {};
13073    object[ITERATOR] = function () {
13074      return {
13075        next: function () {
13076          return { done: ITERATION_SUPPORT = true };
13077        }
13078      };
13079    };
13080    exec(object);
13081  } catch (error) { /* empty */ }
13082  return ITERATION_SUPPORT;
13083};
13084
13085
13086/***/ }),
13087/* 216 */
13088/***/ (function(module, exports, __webpack_require__) {
13089
13090var getBuiltIn = __webpack_require__(67);
13091
13092module.exports = getBuiltIn('navigator', 'userAgent') || '';
13093
13094
13095/***/ }),
13096/* 217 */
13097/***/ (function(module, exports, __webpack_require__) {
13098
13099var aFunction = __webpack_require__(59);
13100var toObject = __webpack_require__(33);
13101var IndexedObject = __webpack_require__(164);
13102var toLength = __webpack_require__(28);
13103
13104// `Array.prototype.{ reduce, reduceRight }` methods implementation
13105var createMethod = function (IS_RIGHT) {
13106  return function (that, callbackfn, argumentsLength, memo) {
13107    aFunction(callbackfn);
13108    var O = toObject(that);
13109    var self = IndexedObject(O);
13110    var length = toLength(O.length);
13111    var index = IS_RIGHT ? length - 1 : 0;
13112    var i = IS_RIGHT ? -1 : 1;
13113    if (argumentsLength < 2) while (true) {
13114      if (index in self) {
13115        memo = self[index];
13116        index += i;
13117        break;
13118      }
13119      index += i;
13120      if (IS_RIGHT ? index < 0 : length <= index) {
13121        throw TypeError('Reduce of empty array with no initial value');
13122      }
13123    }
13124    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {
13125      memo = callbackfn(memo, self[index], index, O);
13126    }
13127    return memo;
13128  };
13129};
13130
13131module.exports = {
13132  // `Array.prototype.reduce` method
13133  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
13134  left: createMethod(false),
13135  // `Array.prototype.reduceRight` method
13136  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
13137  right: createMethod(true)
13138};
13139
13140
13141/***/ }),
13142/* 218 */
13143/***/ (function(module, exports, __webpack_require__) {
13144
13145"use strict";
13146
13147var IS_PURE = __webpack_require__(72);
13148var global = __webpack_require__(16);
13149var fails = __webpack_require__(11);
13150
13151// Forced replacement object prototype accessors methods
13152module.exports = IS_PURE || !fails(function () {
13153  var key = Math.random();
13154  // In FF throws only define methods
13155  // eslint-disable-next-line no-undef, no-useless-call
13156  __defineSetter__.call(null, key, function () { /* empty */ });
13157  delete global[key];
13158});
13159
13160
13161/***/ }),
13162/* 219 */
13163/***/ (function(module, exports, __webpack_require__) {
13164
13165var toInteger = __webpack_require__(73);
13166var requireObjectCoercible = __webpack_require__(52);
13167
13168// `String.prototype.{ codePointAt, at }` methods implementation
13169var createMethod = function (CONVERT_TO_STRING) {
13170  return function ($this, pos) {
13171    var S = String(requireObjectCoercible($this));
13172    var position = toInteger(pos);
13173    var size = S.length;
13174    var first, second;
13175    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
13176    first = S.charCodeAt(position);
13177    return first < 0xD800 || first > 0xDBFF || position + 1 === size
13178      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
13179        ? CONVERT_TO_STRING ? S.charAt(position) : first
13180        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
13181  };
13182};
13183
13184module.exports = {
13185  // `String.prototype.codePointAt` method
13186  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
13187  codeAt: createMethod(false),
13188  // `String.prototype.at` method
13189  // https://github.com/mathiasbynens/String.prototype.at
13190  charAt: createMethod(true)
13191};
13192
13193
13194/***/ }),
13195/* 220 */
13196/***/ (function(module, exports, __webpack_require__) {
13197
13198"use strict";
13199
13200// TODO: Remove from `core-js@4` since it's moved to entry points
13201__webpack_require__(93);
13202var redefine = __webpack_require__(54);
13203var fails = __webpack_require__(11);
13204var wellKnownSymbol = __webpack_require__(23);
13205var regexpExec = __webpack_require__(221);
13206var createNonEnumerableProperty = __webpack_require__(53);
13207
13208var SPECIES = wellKnownSymbol('species');
13209
13210var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
13211  // #replace needs built-in support for named groups.
13212  // #match works fine because it just return the exec results, even if it has
13213  // a "grops" property.
13214  var re = /./;
13215  re.exec = function () {
13216    var result = [];
13217    result.groups = { a: '7' };
13218    return result;
13219  };
13220  return ''.replace(re, '$<a>') !== '7';
13221});
13222
13223// IE <= 11 replaces $0 with the whole match, as if it was $&
13224// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
13225var REPLACE_KEEPS_$0 = (function () {
13226  return 'a'.replace(/./, '$0') === '$0';
13227})();
13228
13229var REPLACE = wellKnownSymbol('replace');
13230// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
13231var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
13232  if (/./[REPLACE]) {
13233    return /./[REPLACE]('a', '$0') === '';
13234  }
13235  return false;
13236})();
13237
13238// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
13239// Weex JS has frozen built-in prototypes, so use try / catch wrapper
13240var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
13241  var re = /(?:)/;
13242  var originalExec = re.exec;
13243  re.exec = function () { return originalExec.apply(this, arguments); };
13244  var result = 'ab'.split(re);
13245  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
13246});
13247
13248module.exports = function (KEY, length, exec, sham) {
13249  var SYMBOL = wellKnownSymbol(KEY);
13250
13251  var DELEGATES_TO_SYMBOL = !fails(function () {
13252    // String methods call symbol-named RegEp methods
13253    var O = {};
13254    O[SYMBOL] = function () { return 7; };
13255    return ''[KEY](O) != 7;
13256  });
13257
13258  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
13259    // Symbol-named RegExp methods call .exec
13260    var execCalled = false;
13261    var re = /a/;
13262
13263    if (KEY === 'split') {
13264      // We can't use real regex here since it causes deoptimization
13265      // and serious performance degradation in V8
13266      // https://github.com/zloirock/core-js/issues/306
13267      re = {};
13268      // RegExp[@@split] doesn't call the regex's exec method, but first creates
13269      // a new one. We need to return the patched regex when creating the new one.
13270      re.constructor = {};
13271      re.constructor[SPECIES] = function () { return re; };
13272      re.flags = '';
13273      re[SYMBOL] = /./[SYMBOL];
13274    }
13275
13276    re.exec = function () { execCalled = true; return null; };
13277
13278    re[SYMBOL]('');
13279    return !execCalled;
13280  });
13281
13282  if (
13283    !DELEGATES_TO_SYMBOL ||
13284    !DELEGATES_TO_EXEC ||
13285    (KEY === 'replace' && !(
13286      REPLACE_SUPPORTS_NAMED_GROUPS &&
13287      REPLACE_KEEPS_$0 &&
13288      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
13289    )) ||
13290    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
13291  ) {
13292    var nativeRegExpMethod = /./[SYMBOL];
13293    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
13294      if (regexp.exec === regexpExec) {
13295        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
13296          // The native String method already delegates to @@method (this
13297          // polyfilled function), leasing to infinite recursion.
13298          // We avoid it by directly calling the native @@method method.
13299          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
13300        }
13301        return { done: true, value: nativeMethod.call(str, regexp, arg2) };
13302      }
13303      return { done: false };
13304    }, {
13305      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
13306      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
13307    });
13308    var stringMethod = methods[0];
13309    var regexMethod = methods[1];
13310
13311    redefine(String.prototype, KEY, stringMethod);
13312    redefine(RegExp.prototype, SYMBOL, length == 2
13313      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
13314      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
13315      ? function (string, arg) { return regexMethod.call(string, this, arg); }
13316      // 21.2.5.6 RegExp.prototype[@@match](string)
13317      // 21.2.5.9 RegExp.prototype[@@search](string)
13318      : function (string) { return regexMethod.call(string, this); }
13319    );
13320  }
13321
13322  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
13323};
13324
13325
13326/***/ }),
13327/* 221 */
13328/***/ (function(module, exports, __webpack_require__) {
13329
13330"use strict";
13331
13332var regexpFlags = __webpack_require__(148);
13333var stickyHelpers = __webpack_require__(222);
13334
13335var nativeExec = RegExp.prototype.exec;
13336// This always refers to the native implementation, because the
13337// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
13338// which loads this file before patching the method.
13339var nativeReplace = String.prototype.replace;
13340
13341var patchedExec = nativeExec;
13342
13343var UPDATES_LAST_INDEX_WRONG = (function () {
13344  var re1 = /a/;
13345  var re2 = /b*/g;
13346  nativeExec.call(re1, 'a');
13347  nativeExec.call(re2, 'a');
13348  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
13349})();
13350
13351var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;
13352
13353// nonparticipating capturing group, copied from es5-shim's String#split patch.
13354var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
13355
13356var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;
13357
13358if (PATCH) {
13359  patchedExec = function exec(str) {
13360    var re = this;
13361    var lastIndex, reCopy, match, i;
13362    var sticky = UNSUPPORTED_Y && re.sticky;
13363    var flags = regexpFlags.call(re);
13364    var source = re.source;
13365    var charsAdded = 0;
13366    var strCopy = str;
13367
13368    if (sticky) {
13369      flags = flags.replace('y', '');
13370      if (flags.indexOf('g') === -1) {
13371        flags += 'g';
13372      }
13373
13374      strCopy = String(str).slice(re.lastIndex);
13375      // Support anchored sticky behavior.
13376      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
13377        source = '(?: ' + source + ')';
13378        strCopy = ' ' + strCopy;
13379        charsAdded++;
13380      }
13381      // ^(? + rx + ) is needed, in combination with some str slicing, to
13382      // simulate the 'y' flag.
13383      reCopy = new RegExp('^(?:' + source + ')', flags);
13384    }
13385
13386    if (NPCG_INCLUDED) {
13387      reCopy = new RegExp('^' + source + '$(?!\\s)', flags);
13388    }
13389    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
13390
13391    match = nativeExec.call(sticky ? reCopy : re, strCopy);
13392
13393    if (sticky) {
13394      if (match) {
13395        match.input = match.input.slice(charsAdded);
13396        match[0] = match[0].slice(charsAdded);
13397        match.index = re.lastIndex;
13398        re.lastIndex += match[0].length;
13399      } else re.lastIndex = 0;
13400    } else if (UPDATES_LAST_INDEX_WRONG && match) {
13401      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
13402    }
13403    if (NPCG_INCLUDED && match && match.length > 1) {
13404      // Fix browsers whose `exec` methods don't consistently return `undefined`
13405      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
13406      nativeReplace.call(match[0], reCopy, function () {
13407        for (i = 1; i < arguments.length - 2; i++) {
13408          if (arguments[i] === undefined) match[i] = undefined;
13409        }
13410      });
13411    }
13412
13413    return match;
13414  };
13415}
13416
13417module.exports = patchedExec;
13418
13419
13420/***/ }),
13421/* 222 */
13422/***/ (function(module, exports, __webpack_require__) {
13423
13424"use strict";
13425
13426
13427var fails = __webpack_require__(11);
13428
13429// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
13430// so we use an intermediate function.
13431function RE(s, f) {
13432  return RegExp(s, f);
13433}
13434
13435exports.UNSUPPORTED_Y = fails(function () {
13436  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
13437  var re = RE('a', 'y');
13438  re.lastIndex = 2;
13439  return re.exec('abcd') != null;
13440});
13441
13442exports.BROKEN_CARET = fails(function () {
13443  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
13444  var re = RE('^r', 'gy');
13445  re.lastIndex = 2;
13446  return re.exec('str') != null;
13447});
13448
13449
13450/***/ }),
13451/* 223 */
13452/***/ (function(module, exports, __webpack_require__) {
13453
13454"use strict";
13455
13456var charAt = __webpack_require__(219).charAt;
13457
13458// `AdvanceStringIndex` abstract operation
13459// https://tc39.github.io/ecma262/#sec-advancestringindex
13460module.exports = function (S, index, unicode) {
13461  return index + (unicode ? charAt(S, index).length : 1);
13462};
13463
13464
13465/***/ }),
13466/* 224 */
13467/***/ (function(module, exports, __webpack_require__) {
13468
13469var classof = __webpack_require__(101);
13470var regexpExec = __webpack_require__(221);
13471
13472// `RegExpExec` abstract operation
13473// https://tc39.github.io/ecma262/#sec-regexpexec
13474module.exports = function (R, S) {
13475  var exec = R.exec;
13476  if (typeof exec === 'function') {
13477    var result = exec.call(R, S);
13478    if (typeof result !== 'object') {
13479      throw TypeError('RegExp exec method returned something other than an Object or null');
13480    }
13481    return result;
13482  }
13483
13484  if (classof(R) !== 'RegExp') {
13485    throw TypeError('RegExp#exec called on incompatible receiver');
13486  }
13487
13488  return regexpExec.call(R, S);
13489};
13490
13491
13492
13493/***/ }),
13494/* 225 */
13495/***/ (function(module, exports) {
13496
13497// a string of all valid unicode whitespaces
13498// eslint-disable-next-line max-len
13499module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
13500
13501
13502/***/ }),
13503/* 226 */
13504/***/ (function(module, exports, __webpack_require__) {
13505
13506var isObject = __webpack_require__(19);
13507var setPrototypeOf = __webpack_require__(116);
13508
13509// makes subclassing work correct for wrapped built-ins
13510module.exports = function ($this, dummy, Wrapper) {
13511  var NewTarget, NewTargetPrototype;
13512  if (
13513    // it can work only with native `setPrototypeOf`
13514    setPrototypeOf &&
13515    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
13516    typeof (NewTarget = dummy.constructor) == 'function' &&
13517    NewTarget !== Wrapper &&
13518    isObject(NewTargetPrototype = NewTarget.prototype) &&
13519    NewTargetPrototype !== Wrapper.prototype
13520  ) setPrototypeOf($this, NewTargetPrototype);
13521  return $this;
13522};
13523
13524
13525/***/ }),
13526/* 227 */
vendor: 5,764 bytes, lines 13527-13688
13527/***/ (function(module, exports) {
13528
13529var nativeExpm1 = Math.expm1;
13530var exp = Math.exp;
13531
13532// `Math.expm1` method implementation
13533// https://tc39.github.io/ecma262/#sec-math.expm1
13534module.exports = (!nativeExpm1
13535  // Old FF bug
13536  || nativeExpm1(10) > 22025.465794806719 || nativeExpm1(10) < 22025.4657948067165168
13537  // Tor Browser bug
13538  || nativeExpm1(-2e-17) != -2e-17
13539) ? function expm1(x) {
13540  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : exp(x) - 1;
13541} : nativeExpm1;
13542
13543
13544/***/ }),
13545/* 228 */
13546/***/ (function(module, exports, __webpack_require__) {
13547
13548"use strict";
13549
13550var aFunction = __webpack_require__(59);
13551
13552var PromiseCapability = function (C) {
13553  var resolve, reject;
13554  this.promise = new C(function ($$resolve, $$reject) {
13555    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
13556    resolve = $$resolve;
13557    reject = $$reject;
13558  });
13559  this.resolve = aFunction(resolve);
13560  this.reject = aFunction(reject);
13561};
13562
13563// 25.4.1.5 NewPromiseCapability(C)
13564module.exports.f = function (C) {
13565  return new PromiseCapability(C);
13566};
13567
13568
13569/***/ }),
13570/* 229 */
13571/***/ (function(module, exports, __webpack_require__) {
13572
13573"use strict";
13574
13575var $ = __webpack_require__(2);
13576var global = __webpack_require__(16);
13577var isForced = __webpack_require__(169);
13578var redefine = __webpack_require__(54);
13579var InternalMetadataModule = __webpack_require__(135);
13580var iterate = __webpack_require__(117);
13581var anInstance = __webpack_require__(119);
13582var isObject = __webpack_require__(19);
13583var fails = __webpack_require__(11);
13584var checkCorrectnessOfIteration = __webpack_require__(215);
13585var setToStringTag = __webpack_require__(80);
13586var inheritIfRequired = __webpack_require__(226);
13587
13588module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
13589  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
13590  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
13591  var ADDER = IS_MAP ? 'set' : 'add';
13592  var NativeConstructor = global[CONSTRUCTOR_NAME];
13593  var NativePrototype = NativeConstructor && NativeConstructor.prototype;
13594  var Constructor = NativeConstructor;
13595  var exported = {};
13596
13597  var fixMethod = function (KEY) {
13598    var nativeMethod = NativePrototype[KEY];
13599    redefine(NativePrototype, KEY,
13600      KEY == 'add' ? function add(value) {
13601        nativeMethod.call(this, value === 0 ? 0 : value);
13602        return this;
13603      } : KEY == 'delete' ? function (key) {
13604        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
13605      } : KEY == 'get' ? function get(key) {
13606        return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);
13607      } : KEY == 'has' ? function has(key) {
13608        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
13609      } : function set(key, value) {
13610        nativeMethod.call(this, key === 0 ? 0 : key, value);
13611        return this;
13612      }
13613    );
13614  };
13615
13616  // eslint-disable-next-line max-len
13617  if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {
13618    new NativeConstructor().entries().next();
13619  })))) {
13620    // create collection constructor
13621    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
13622    InternalMetadataModule.REQUIRED = true;
13623  } else if (isForced(CONSTRUCTOR_NAME, true)) {
13624    var instance = new Constructor();
13625    // early implementations not supports chaining
13626    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
13627    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
13628    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
13629    // most early implementations doesn't supports iterables, most modern - not close it correctly
13630    // eslint-disable-next-line no-new
13631    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });
13632    // for early implementations -0 and +0 not the same
13633    var BUGGY_ZERO = !IS_WEAK && fails(function () {
13634      // V8 ~ Chromium 42- fails only with 5+ elements
13635      var $instance = new NativeConstructor();
13636      var index = 5;
13637      while (index--) $instance[ADDER](index, index);
13638      return !$instance.has(-0);
13639    });
13640
13641    if (!ACCEPT_ITERABLES) {
13642      Constructor = wrapper(function (dummy, iterable) {
13643        anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
13644        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
13645        if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
13646        return that;
13647      });
13648      Constructor.prototype = NativePrototype;
13649      NativePrototype.constructor = Constructor;
13650    }
13651
13652    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
13653      fixMethod('delete');
13654      fixMethod('has');
13655      IS_MAP && fixMethod('get');
13656    }
13657
13658    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
13659
13660    // weak collections should not contains .clear method
13661    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;
13662  }
13663
13664  exported[CONSTRUCTOR_NAME] = Constructor;
13665  $({ global: true, forced: Constructor != NativeConstructor }, exported);
13666
13667  setToStringTag(Constructor, CONSTRUCTOR_NAME);
13668
13669  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
13670
13671  return Constructor;
13672};
13673
13674
13675/***/ }),
13676/* 230 */
13677/***/ (function(module, exports, __webpack_require__) {
13678
13679"use strict";
13680
13681var global = __webpack_require__(16);
13682var DESCRIPTORS = __webpack_require__(21);
13683var NATIVE_ARRAY_BUFFER = __webpack_require__(297);
13684var createNonEnumerableProperty = __webpack_require__(53);
13685var redefineAll = __webpack_require__(150);
13686var fails = __webpack_require__(11);
13687var anInstance = __webpack_require__(119);
13688var toInteger = __webpack_require__(73);
13689var toLength = __webpack_require__(28);
13690var toIndex = __webpack_require__(388);
13691var IEEE754 = __webpack_require__(664);
13692var getPrototypeOf = __webpack_require__(74);
13693var setPrototypeOf = __webpack_require__(116);
13694var getOwnPropertyNames = __webpack_require__(132).f;
13695var defineProperty = __webpack_require__(30).f;
13696var arrayFill = __webpack_require__(286);
13697var setToStringTag = __webpack_require__(80);
13698var InternalStateModule = __webpack_require__(58);
13699
13700var getInternalState = InternalStateModule.get;
13701var setInternalState = InternalStateModule.set;
13702var ARRAY_BUFFER = 'ArrayBuffer';
13703var DATA_VIEW = 'DataView';
13704var PROTOTYPE = 'prototype';
13705var WRONG_LENGTH = 'Wrong length';
13706var WRONG_INDEX = 'Wrong index';
13707var NativeArrayBuffer = global[ARRAY_BUFFER];
13708var $ArrayBuffer = NativeArrayBuffer;
13709var $DataView = global[DATA_VIEW];
13710var $DataViewPrototype = $DataView && $DataView[PROTOTYPE];
13711var ObjectPrototype = Object.prototype;
13712var RangeError = global.RangeError;
13713
13714var packIEEE754 = IEEE754.pack;
13715var unpackIEEE754 = IEEE754.unpack;
13716
13717var packInt8 = function (number) {
13718  return [number & 0xFF];
13719};
13720
13721var packInt16 = function (number) {
13722  return [number & 0xFF, number >> 8 & 0xFF];
13723};
13724
13725var packInt32 = function (number) {
13726  return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];
13727};
13728
13729var unpackInt32 = function (buffer) {
13730  return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];
13731};
13732
13733var packFloat32 = function (number) {
13734  return packIEEE754(number, 23, 4);
13735};
13736
13737var packFloat64 = function (number) {
13738  return packIEEE754(number, 52, 8);
13739};
13740
13741var addGetter = function (Constructor, key) {
13742  defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });
13743};
13744
13745var get = function (view, count, index, isLittleEndian) {
13746  var intIndex = toIndex(index);
13747  var store = getInternalState(view);
13748  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
13749  var bytes = getInternalState(store.buffer).bytes;
13750  var start = intIndex + store.byteOffset;
13751  var pack = bytes.slice(start, start + count);
13752  return isLittleEndian ? pack : pack.reverse();
13753};
13754
13755var set = function (view, count, index, conversion, value, isLittleEndian) {
13756  var intIndex = toIndex(index);
13757  var store = getInternalState(view);
13758  if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);
13759  var bytes = getInternalState(store.buffer).bytes;
13760  var start = intIndex + store.byteOffset;
13761  var pack = conversion(+value);
13762  for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];
13763};
13764
13765if (!NATIVE_ARRAY_BUFFER) {
13766  $ArrayBuffer = function ArrayBuffer(length) {
13767    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
13768    var byteLength = toIndex(length);
13769    setInternalState(this, {
13770      bytes: arrayFill.call(new Array(byteLength), 0),
13771      byteLength: byteLength
13772    });
13773    if (!DESCRIPTORS) this.byteLength = byteLength;
13774  };
13775
13776  $DataView = function DataView(buffer, byteOffset, byteLength) {
13777    anInstance(this, $DataView, DATA_VIEW);
13778    anInstance(buffer, $ArrayBuffer, DATA_VIEW);
13779    var bufferLength = getInternalState(buffer).byteLength;
13780    var offset = toInteger(byteOffset);
13781    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');
13782    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
13783    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
13784    setInternalState(this, {
13785      buffer: buffer,
13786      byteLength: byteLength,
13787      byteOffset: offset
13788    });
13789    if (!DESCRIPTORS) {
13790      this.buffer = buffer;
13791      this.byteLength = byteLength;
13792      this.byteOffset = offset;
13793    }
13794  };
13795
13796  if (DESCRIPTORS) {
13797    addGetter($ArrayBuffer, 'byteLength');
13798    addGetter($DataView, 'buffer');
13799    addGetter($DataView, 'byteLength');
13800    addGetter($DataView, 'byteOffset');
13801  }
13802
13803  redefineAll($DataView[PROTOTYPE], {
13804    getInt8: function getInt8(byteOffset) {
13805      return get(this, 1, byteOffset)[0] << 24 >> 24;
13806    },
13807    getUint8: function getUint8(byteOffset) {
13808      return get(this, 1, byteOffset)[0];
13809    },
13810    getInt16: function getInt16(byteOffset /* , littleEndian */) {
13811      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
13812      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
13813    },
13814    getUint16: function getUint16(byteOffset /* , littleEndian */) {
13815      var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);
13816      return bytes[1] << 8 | bytes[0];
13817    },
13818    getInt32: function getInt32(byteOffset /* , littleEndian */) {
13819      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));
13820    },
13821    getUint32: function getUint32(byteOffset /* , littleEndian */) {
13822      return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;
13823    },
13824    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
13825      return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);
13826    },
13827    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
13828      return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);
13829    },
13830    setInt8: function setInt8(byteOffset, value) {
13831      set(this, 1, byteOffset, packInt8, value);
13832    },
13833    setUint8: function setUint8(byteOffset, value) {
13834      set(this, 1, byteOffset, packInt8, value);
13835    },
13836    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
13837      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
13838    },
13839    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
13840      set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);
13841    },
13842    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
13843      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
13844    },
13845    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
13846      set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);
13847    },
13848    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
13849      set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);
13850    },
13851    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
13852      set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);
13853    }
13854  });
13855} else {
13856  if (!fails(function () {
13857    NativeArrayBuffer(1);
13858  }) || !fails(function () {
13859    new NativeArrayBuffer(-1); // eslint-disable-line no-new
13860  }) || fails(function () {
13861    new NativeArrayBuffer(); // eslint-disable-line no-new
13862    new NativeArrayBuffer(1.5); // eslint-disable-line no-new
13863    new NativeArrayBuffer(NaN); // eslint-disable-line no-new
13864    return NativeArrayBuffer.name != ARRAY_BUFFER;
13865  })) {
13866    $ArrayBuffer = function ArrayBuffer(length) {
13867      anInstance(this, $ArrayBuffer);
13868      return new NativeArrayBuffer(toIndex(length));
13869    };
13870    var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];
13871    for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {
13872      if (!((key = keys[j++]) in $ArrayBuffer)) {
13873        createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);
13874      }
13875    }
13876    ArrayBufferPrototype.constructor = $ArrayBuffer;
13877  }
13878
13879  // WebKit bug - the same parent prototype for typed arrays and data view
13880  if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {
13881    setPrototypeOf($DataViewPrototype, ObjectPrototype);
13882  }
13883
13884  // iOS Safari 7.x bug
13885  var testView = new $DataView(new $ArrayBuffer(2));
13886  var nativeSetInt8 = $DataViewPrototype.setInt8;
13887  testView.setInt8(0, 2147483648);
13888  testView.setInt8(1, 2147483649);
13889  if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {
13890    setInt8: function setInt8(byteOffset, value) {
13891      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
13892    },
13893    setUint8: function setUint8(byteOffset, value) {
13894      nativeSetInt8.call(this, byteOffset, value << 24 >> 24);
13895    }
13896  }, { unsafe: true });
13897}
13898
13899setToStringTag($ArrayBuffer, ARRAY_BUFFER);
13900setToStringTag($DataView, DATA_VIEW);
13901
13902module.exports = {
13903  ArrayBuffer: $ArrayBuffer,
13904  DataView: $DataView
13905};
13906
13907
13908/***/ }),
13909/* 231 */,
13910/* 232 */,
13911/* 233 */
vendor: 4,514 bytes, lines 13912-14011
13912/***/ (function(module, exports) {
13913
13914function _classCallCheck(instance, Constructor) {
13915  if (!(instance instanceof Constructor)) {
13916    throw new TypeError("Cannot call a class as a function");
13917  }
13918}
13919
13920module.exports = _classCallCheck;
13921
13922/***/ }),
13923/* 234 */
13924/***/ (function(module, exports) {
13925
13926function _defineProperties(target, props) {
13927  for (var i = 0; i < props.length; i++) {
13928    var descriptor = props[i];
13929    descriptor.enumerable = descriptor.enumerable || false;
13930    descriptor.configurable = true;
13931    if ("value" in descriptor) descriptor.writable = true;
13932    Object.defineProperty(target, descriptor.key, descriptor);
13933  }
13934}
13935
13936function _createClass(Constructor, protoProps, staticProps) {
13937  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
13938  if (staticProps) _defineProperties(Constructor, staticProps);
13939  return Constructor;
13940}
13941
13942module.exports = _createClass;
13943
13944/***/ }),
13945/* 235 */,
13946/* 236 */
13947/***/ (function(module, __webpack_exports__, __webpack_require__) {
13948
13949"use strict";
13950
13951// EXPORTS
13952__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ Spinnerbabel_target_legacy_Spinner; });
13953
13954// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
13955var es_symbolbabel_target_legacy = __webpack_require__(71);
13956
13957// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
13958var es_array_filterbabel_target_legacy = __webpack_require__(70);
13959
13960// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
13961var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
13962
13963// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
13964var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
13965
13966// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
13967var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
13968
13969// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
13970var es_object_keysbabel_target_legacy = __webpack_require__(89);
13971
13972// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
13973var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
13974
13975// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
13976var extendsbabel_target_legacy = __webpack_require__(50);
13977var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
13978
13979// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
13980var definePropertybabel_target_legacy = __webpack_require__(15);
13981var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
13982
13983// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
13984var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
13985var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
13986
13987// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
13988var preact_modulebabel_target_legacy = __webpack_require__(1);
13989
13990// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
13991var es_babel_target_legacy = __webpack_require__(25);
13992
13993// EXTERNAL MODULE: ./src/components/Spinner/Spinner.module.scss
13994var Spinner_module = __webpack_require__(107);
13995var Spinner_module_default = /*#__PURE__*/__webpack_require__.n(Spinner_module);
13996
13997// CONCATENATED MODULE: ./src/components/Spinner/Spinner.tsx?babel-target=legacy
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
14010
14011function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
14011 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
14012
14013
14014
14015
14016var Spinnerbabel_target_legacy_Spinner = function Spinner(_ref) {
14017  var _ref$colour = _ref.colour,
14018      colour = _ref$colour === void 0 ? "black" : _ref$colour,
14019      style = _ref.style,
14020      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["colour", "style"]);
14021
14022  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
14023      t = _useTranslation.t;
14024
14025  return Object(preact_modulebabel_target_legacy["h"])("div", extendsbabel_target_legacy_default()({
14026    role: "status",
14027    "aria-label": t("ARIA_LOADING"),
14028    style: _objectSpread(_objectSpread({}, style), {}, {
14029      color: colour
14030    })
14031  }, props), Object(preact_modulebabel_target_legacy["h"])("div", {
14032    className: Spinner_module_default.a.loading
14033  }, Object(preact_modulebabel_target_legacy["h"])("div", {
14034    className: Spinner_module_default.a.spinner,
14035    style: {
14036      color: colour
14037    }
14038  }, Object(preact_modulebabel_target_legacy["h"])("div", {
14039    className: Spinner_module_default.a.circle,
14040    style: {
14041      color: colour
14042    }
14043  }, Object(preact_modulebabel_target_legacy["h"])("div", {
14044    className: Spinner_module_default.a.circleinner,
14045    style: {
14046      color: colour
14047    }
14048  })), Object(preact_modulebabel_target_legacy["h"])("div", {
14049    className: Spinner_module_default.a.circle2,
14050    style: {
14051      color: colour
14052    }
14053  }, Object(preact_modulebabel_target_legacy["h"])("div", {
14054    className: Spinner_module_default.a.circleinner,
14055    style: {
14056      color: colour
14057    }
14058  })))));
14059};
14060/* harmony default export */ var Spinnerbabel_target_legacy = (Spinnerbabel_target_legacy_Spinner);
14061// CONCATENATED MODULE: ./src/components/Spinner/index.ts?babel-target=legacy
14062
14063
14064/***/ }),
14065/* 237 */
14066/***/ (function(module, exports, __webpack_require__) {
14067
14068"use strict";
14069
14070var charAt = __webpack_require__(219).charAt;
14071var InternalStateModule = __webpack_require__(58);
14072var defineIterator = __webpack_require__(287);
14073
14074var STRING_ITERATOR = 'String Iterator';
14075var setInternalState = InternalStateModule.set;
14076var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
14077
14078// `String.prototype[@@iterator]` method
14079// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator
14080defineIterator(String, 'String', function (iterated) {
14081  setInternalState(this, {
14082    type: STRING_ITERATOR,
14083    string: String(iterated),
14084    index: 0
14085  });
14086// `%StringIteratorPrototype%.next` method
14087// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next
14088}, function next() {
14089  var state = getInternalState(this);
14090  var string = state.string;
14091  var index = state.index;
14092  var point;
14093  if (index >= string.length) return { value: undefined, done: true };
14094  point = charAt(string, index);
14095  state.index += point.length;
14096  return { value: point, done: false };
14097});
14098
14099
14100/***/ }),
14101/* 238 */,
14102/* 239 */,
14103/* 240 */
14104/***/ (function(module, exports, __webpack_require__) {
14105
14106"use strict";
14107// Copyright Joyent, Inc. and other Node contributors.
14108//
14109// Permission is hereby granted, free of charge, to any person obtaining a
14110// copy of this software and associated documentation files (the
14111// "Software"), to deal in the Software without restriction, including
14112// without limitation the rights to use, copy, modify, merge, publish,
14113// distribute, sublicense, and/or sell copies of the Software, and to permit
14114// persons to whom the Software is furnished to do so, subject to the
14115// following conditions:
14116//
14117// The above copyright notice and this permission notice shall be included
14118// in all copies or substantial portions of the Software.
14119//
14120// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14121// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14122// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
14123// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
14124// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
14125// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
14126// USE OR OTHER DEALINGS IN THE SOFTWARE.
14127
14128// a duplex stream is just a stream that is both readable and writable.
14129// Since JS doesn't have multiple prototypal inheritance, this class
14130// prototypally inherits from Readable, and then parasitically from
14131// Writable.
14132
14133
14134
14135/*<replacement>*/
14136
14137var pna = __webpack_require__(394);
14138/*</replacement>*/
14139
14140/*<replacement>*/
14141var objectKeys = Object.keys || function (obj) {
14142  var keys = [];
14143  for (var key in obj) {
14144    keys.push(key);
14145  }return keys;
14146};
14147/*</replacement>*/
14148
14149module.exports = Duplex;
14150
14151/*<replacement>*/
14152var util = Object.create(__webpack_require__(314));
14153util.inherits = __webpack_require__(200);
14154/*</replacement>*/
14155
14156var Readable = __webpack_require__(732);
14157var Writable = __webpack_require__(471);
14158
14159util.inherits(Duplex, Readable);
14160
14161{
vendor: 3,191 bytes, lines 14162-14271
14162  // avoid scope creep, the keys array can then be collected
14163  var keys = objectKeys(Writable.prototype);
14164  for (var v = 0; v < keys.length; v++) {
14165    var method = keys[v];
14166    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
14167  }
14168}
14169
14170function Duplex(options) {
14171  if (!(this instanceof Duplex)) return new Duplex(options);
14172
14173  Readable.call(this, options);
14174  Writable.call(this, options);
14175
14176  if (options && options.readable === false) this.readable = false;
14177
14178  if (options && options.writable === false) this.writable = false;
14179
14180  this.allowHalfOpen = true;
14181  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
14182
14183  this.once('end', onend);
14184}
14185
14186Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
14187  // making it explicit this property is not enumerable
14188  // because otherwise some prototype manipulation in
14189  // userland will fail
14190  enumerable: false,
14191  get: function () {
14192    return this._writableState.highWaterMark;
14193  }
14194});
14195
14196// the no-half-open enforcer
14197function onend() {
14198  // if we allow half-open state, or if the writable side ended,
14199  // then we're ok.
14200  if (this.allowHalfOpen || this._writableState.ended) return;
14201
14202  // no more data can be written.
14203  // But allow more writes to happen in this tick.
14204  pna.nextTick(onEndNT, this);
14205}
14206
14207function onEndNT(self) {
14208  self.end();
14209}
14210
14211Object.defineProperty(Duplex.prototype, 'destroyed', {
14212  get: function () {
14213    if (this._readableState === undefined || this._writableState === undefined) {
14214      return false;
14215    }
14216    return this._readableState.destroyed && this._writableState.destroyed;
14217  },
14218  set: function (value) {
14219    // we ignore the value if the stream
14220    // has not been initialized yet
14221    if (this._readableState === undefined || this._writableState === undefined) {
14222      return;
14223    }
14224
14225    // backward compatibility, the user is explicitly
14226    // managing destroyed
14227    this._readableState.destroyed = value;
14228    this._writableState.destroyed = value;
14229  }
14230});
14231
14232Duplex.prototype._destroy = function (err, cb) {
14233  this.push(null);
14234  this.end();
14235
14236  pna.nextTick(cb, err);
14237};
14238
14239/***/ }),
14240/* 241 */
14241/***/ (function(module, exports, __webpack_require__) {
14242
14243// extracted by mini-css-extract-plugin
14244
14245/***/ }),
14246/* 242 */
14247/***/ (function(module, exports, __webpack_require__) {
14248
14249// extracted by mini-css-extract-plugin
14250module.exports = {"wrap":"ToggleSwitch-module__wrap--1CHpH","checked":"ToggleSwitch-module__checked--nQSUq"};
14251
14252/***/ }),
14253/* 243 */
14254/***/ (function(module, exports, __webpack_require__) {
14255
14256// extracted by mini-css-extract-plugin
14257module.exports = {"visuallyHidden":"PlayButton-module__visuallyHidden--kQnYV","button":"PlayButton-module__button--3behY","pulsate":"PlayButton-module__pulsate--2NsSE","heartbeat":"PlayButton-module__heartbeat--3v2HD"};
14258
14259/***/ }),
14260/* 244 */
14261/***/ (function(module, exports, __webpack_require__) {
14262
14263// extracted by mini-css-extract-plugin
14264module.exports = {"visuallyHidden":"StationLogo-module__visuallyHidden--opBj-","logo":"StationLogo-module__logo--2C3Cz","logoSmall":"StationLogo-module__logoSmall--hn-gQ"};
14265
14266/***/ }),
14267/* 245 */,
14268/* 246 */
14269/***/ (function(module, exports, __webpack_require__) {
14270
14271"use strict";
vendor: 5,554 bytes, lines 14272-14438
14272// Copyright Joyent, Inc. and other Node contributors.
14273//
14274// Permission is hereby granted, free of charge, to any person obtaining a
14275// copy of this software and associated documentation files (the
14276// "Software"), to deal in the Software without restriction, including
14277// without limitation the rights to use, copy, modify, merge, publish,
14278// distribute, sublicense, and/or sell copies of the Software, and to permit
14279// persons to whom the Software is furnished to do so, subject to the
14280// following conditions:
14281//
14282// The above copyright notice and this permission notice shall be included
14283// in all copies or substantial portions of the Software.
14284//
14285// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14286// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14287// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
14288// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
14289// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
14290// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
14291// USE OR OTHER DEALINGS IN THE SOFTWARE.
14292
14293
14294
14295var punycode = __webpack_require__(472);
14296var util = __webpack_require__(919);
14297
14298exports.parse = urlParse;
14299exports.resolve = urlResolve;
14300exports.resolveObject = urlResolveObject;
14301exports.format = urlFormat;
14302
14303exports.Url = Url;
14304
14305function Url() {
14306  this.protocol = null;
14307  this.slashes = null;
14308  this.auth = null;
14309  this.host = null;
14310  this.port = null;
14311  this.hostname = null;
14312  this.hash = null;
14313  this.search = null;
14314  this.query = null;
14315  this.pathname = null;
14316  this.path = null;
14317  this.href = null;
14318}
14319
14320// Reference: RFC 3986, RFC 1808, RFC 2396
14321
14322// define these here so at least they only have to be
14323// compiled once on the first module load.
14324var protocolPattern = /^([a-z0-9.+-]+:)/i,
14325    portPattern = /:[0-9]*$/,
14326
14327    // Special case for a simple path URL
14328    simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
14329
14330    // RFC 2396: characters reserved for delimiting URLs.
14331    // We actually just auto-escape these.
14332    delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],
14333
14334    // RFC 2396: characters not allowed for various reasons.
14335    unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),
14336
14337    // Allowed by RFCs, but cause of XSS attacks.  Always escape these.
14338    autoEscape = ['\''].concat(unwise),
14339    // Characters that are never ever allowed in a hostname.
14340    // Note that any invalid chars are also handled, but these
14341    // are the ones that are *expected* to be seen, so we fast-path
14342    // them.
14343    nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),
14344    hostEndingChars = ['/', '?', '#'],
14345    hostnameMaxLen = 255,
14346    hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,
14347    hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
14348    // protocols that can allow "unsafe" and "unwise" chars.
14349    unsafeProtocol = {
14350      'javascript': true,
14351      'javascript:': true
14352    },
14353    // protocols that never have a hostname.
14354    hostlessProtocol = {
14355      'javascript': true,
14356      'javascript:': true
14357    },
14358    // protocols that always contain a // bit.
14359    slashedProtocol = {
14360      'http': true,
14361      'https': true,
14362      'ftp': true,
14363      'gopher': true,
14364      'file': true,
14365      'http:': true,
14366      'https:': true,
14367      'ftp:': true,
14368      'gopher:': true,
14369      'file:': true
14370    },
14371    querystring = __webpack_require__(920);
14372
14373function urlParse(url, parseQueryString, slashesDenoteHost) {
14374  if (url && util.isObject(url) && url instanceof Url) return url;
14375
14376  var u = new Url;
14377  u.parse(url, parseQueryString, slashesDenoteHost);
14378  return u;
14379}
14380
14381Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
14382  if (!util.isString(url)) {
14383    throw new TypeError("Parameter 'url' must be a string, not " + typeof url);
14384  }
14385
14386  // Copy chrome, IE, opera backslash-handling behavior.
14387  // Back slashes before the query string get converted to forward slashes
14388  // See: https://code.google.com/p/chromium/issues/detail?id=25916
14389  var queryIndex = url.indexOf('?'),
14390      splitter =
14391          (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',
14392      uSplit = url.split(splitter),
14393      slashRegex = /\\/g;
14394  uSplit[0] = uSplit[0].replace(slashRegex, '/');
14395  url = uSplit.join(splitter);
14396
14397  var rest = url;
14398
14399  // trim before proceeding.
14400  // This is to support parse stuff like "  http://foo.com  \n"
14401  rest = rest.trim();
14402
14403  if (!slashesDenoteHost && url.split('#').length === 1) {
14404    // Try fast path regexp
14405    var simplePath = simplePathPattern.exec(rest);
14406    if (simplePath) {
14407      this.path = rest;
14408      this.href = rest;
14409      this.pathname = simplePath[1];
14410      if (simplePath[2]) {
14411        this.search = simplePath[2];
14412        if (parseQueryString) {
14413          this.query = querystring.parse(this.search.substr(1));
14414        } else {
14415          this.query = this.search.substr(1);
14416        }
14417      } else if (parseQueryString) {
14418        this.search = '';
14419        this.query = {};
14420      }
14421      return this;
14422    }
14423  }
14424
14425  var proto = protocolPattern.exec(rest);
14426  if (proto) {
14427    proto = proto[0];
14428    var lowerProto = proto.toLowerCase();
14429    this.protocol = lowerProto;
14430    rest = rest.substr(proto.length);
14431  }
14432
14433  // figure out if it's got a host
14434  // user@server is *always* interpreted as a hostname, and url
14435  // resolution will treat //foo/bar as host=foo,path=bar because that's
14436  // how the browser resolves relative URLs.
14437  if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
14438    var slashes = rest.substr(0, 2) === '//';
vendor: 10,589 bytes, lines 14439-14786
14439    if (slashes && !(proto && hostlessProtocol[proto])) {
14440      rest = rest.substr(2);
14441      this.slashes = true;
14442    }
14443  }
14444
14445  if (!hostlessProtocol[proto] &&
14446      (slashes || (proto && !slashedProtocol[proto]))) {
14447
14448    // there's a hostname.
14449    // the first instance of /, ?, ;, or # ends the host.
14450    //
14451    // If there is an @ in the hostname, then non-host chars *are* allowed
14452    // to the left of the last @ sign, unless some host-ending character
14453    // comes *before* the @-sign.
14454    // URLs are obnoxious.
14455    //
14456    // ex:
14457    // http://a@b@c/ => user:a@b host:c
14458    // http://a@b?@c => user:a host:c path:/?@c
14459
14460    // v0.12 TODO(isaacs): This is not quite how Chrome does things.
14461    // Review our test case against browsers more comprehensively.
14462
14463    // find the first instance of any hostEndingChars
14464    var hostEnd = -1;
14465    for (var i = 0; i < hostEndingChars.length; i++) {
14466      var hec = rest.indexOf(hostEndingChars[i]);
14467      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
14468        hostEnd = hec;
14469    }
14470
14471    // at this point, either we have an explicit point where the
14472    // auth portion cannot go past, or the last @ char is the decider.
14473    var auth, atSign;
14474    if (hostEnd === -1) {
14475      // atSign can be anywhere.
14476      atSign = rest.lastIndexOf('@');
14477    } else {
14478      // atSign must be in auth portion.
14479      // http://a@b/c@d => host:b auth:a path:/c@d
14480      atSign = rest.lastIndexOf('@', hostEnd);
14481    }
14482
14483    // Now we have a portion which is definitely the auth.
14484    // Pull that off.
14485    if (atSign !== -1) {
14486      auth = rest.slice(0, atSign);
14487      rest = rest.slice(atSign + 1);
14488      this.auth = decodeURIComponent(auth);
14489    }
14490
14491    // the host is the remaining to the left of the first non-host char
14492    hostEnd = -1;
14493    for (var i = 0; i < nonHostChars.length; i++) {
14494      var hec = rest.indexOf(nonHostChars[i]);
14495      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
14496        hostEnd = hec;
14497    }
14498    // if we still have not hit it, then the entire thing is a host.
14499    if (hostEnd === -1)
14500      hostEnd = rest.length;
14501
14502    this.host = rest.slice(0, hostEnd);
14503    rest = rest.slice(hostEnd);
14504
14505    // pull out port.
14506    this.parseHost();
14507
14508    // we've indicated that there is a hostname,
14509    // so even if it's empty, it has to be present.
14510    this.hostname = this.hostname || '';
14511
14512    // if hostname begins with [ and ends with ]
14513    // assume that it's an IPv6 address.
14514    var ipv6Hostname = this.hostname[0] === '[' &&
14515        this.hostname[this.hostname.length - 1] === ']';
14516
14517    // validate a little.
14518    if (!ipv6Hostname) {
14519      var hostparts = this.hostname.split(/\./);
14520      for (var i = 0, l = hostparts.length; i < l; i++) {
14521        var part = hostparts[i];
14522        if (!part) continue;
14523        if (!part.match(hostnamePartPattern)) {
14524          var newpart = '';
14525          for (var j = 0, k = part.length; j < k; j++) {
14526            if (part.charCodeAt(j) > 127) {
14527              // we replace non-ASCII char with a temporary placeholder
14528              // we need this to make sure size of hostname is not
14529              // broken by replacing non-ASCII by nothing
14530              newpart += 'x';
14531            } else {
14532              newpart += part[j];
14533            }
14534          }
14535          // we test again with ASCII char only
14536          if (!newpart.match(hostnamePartPattern)) {
14537            var validParts = hostparts.slice(0, i);
14538            var notHost = hostparts.slice(i + 1);
14539            var bit = part.match(hostnamePartStart);
14540            if (bit) {
14541              validParts.push(bit[1]);
14542              notHost.unshift(bit[2]);
14543            }
14544            if (notHost.length) {
14545              rest = '/' + notHost.join('.') + rest;
14546            }
14547            this.hostname = validParts.join('.');
14548            break;
14549          }
14550        }
14551      }
14552    }
14553
14554    if (this.hostname.length > hostnameMaxLen) {
14555      this.hostname = '';
14556    } else {
14557      // hostnames are always lower case.
14558      this.hostname = this.hostname.toLowerCase();
14559    }
14560
14561    if (!ipv6Hostname) {
14562      // IDNA Support: Returns a punycoded representation of "domain".
14563      // It only converts parts of the domain name that
14564      // have non-ASCII characters, i.e. it doesn't matter if
14565      // you call it with a domain that already is ASCII-only.
14566      this.hostname = punycode.toASCII(this.hostname);
14567    }
14568
14569    var p = this.port ? ':' + this.port : '';
14570    var h = this.hostname || '';
14571    this.host = h + p;
14572    this.href += this.host;
14573
14574    // strip [ and ] from the hostname
14575    // the host field still retains them, though
14576    if (ipv6Hostname) {
14577      this.hostname = this.hostname.substr(1, this.hostname.length - 2);
14578      if (rest[0] !== '/') {
14579        rest = '/' + rest;
14580      }
14581    }
14582  }
14583
14584  // now rest is set to the post-host stuff.
14585  // chop off any delim chars.
14586  if (!unsafeProtocol[lowerProto]) {
14587
14588    // First, make 100% sure that any "autoEscape" chars get
14589    // escaped, even if encodeURIComponent doesn't think they
14590    // need to be.
14591    for (var i = 0, l = autoEscape.length; i < l; i++) {
14592      var ae = autoEscape[i];
14593      if (rest.indexOf(ae) === -1)
14594        continue;
14595      var esc = encodeURIComponent(ae);
14596      if (esc === ae) {
14597        esc = escape(ae);
14598      }
14599      rest = rest.split(ae).join(esc);
14600    }
14601  }
14602
14603
14604  // chop off from the tail first.
14605  var hash = rest.indexOf('#');
14606  if (hash !== -1) {
14607    // got a fragment string.
14608    this.hash = rest.substr(hash);
14609    rest = rest.slice(0, hash);
14610  }
14611  var qm = rest.indexOf('?');
14612  if (qm !== -1) {
14613    this.search = rest.substr(qm);
14614    this.query = rest.substr(qm + 1);
14615    if (parseQueryString) {
14616      this.query = querystring.parse(this.query);
14617    }
14618    rest = rest.slice(0, qm);
14619  } else if (parseQueryString) {
14620    // no query string, but parseQueryString still requested
14621    this.search = '';
14622    this.query = {};
14623  }
14624  if (rest) this.pathname = rest;
14625  if (slashedProtocol[lowerProto] &&
14626      this.hostname && !this.pathname) {
14627    this.pathname = '/';
14628  }
14629
14630  //to support http.request
14631  if (this.pathname || this.search) {
14632    var p = this.pathname || '';
14633    var s = this.search || '';
14634    this.path = p + s;
14635  }
14636
14637  // finally, reconstruct the href based on what has been validated.
14638  this.href = this.format();
14639  return this;
14640};
14641
14642// format a parsed object into a url string
14643function urlFormat(obj) {
14644  // ensure it's an object, and not a string url.
14645  // If it's an obj, this is a no-op.
14646  // this way, you can call url_format() on strings
14647  // to clean up potentially wonky urls.
14648  if (util.isString(obj)) obj = urlParse(obj);
14649  if (!(obj instanceof Url)) return Url.prototype.format.call(obj);
14650  return obj.format();
14651}
14652
14653Url.prototype.format = function() {
14654  var auth = this.auth || '';
14655  if (auth) {
14656    auth = encodeURIComponent(auth);
14657    auth = auth.replace(/%3A/i, ':');
14658    auth += '@';
14659  }
14660
14661  var protocol = this.protocol || '',
14662      pathname = this.pathname || '',
14663      hash = this.hash || '',
14664      host = false,
14665      query = '';
14666
14667  if (this.host) {
14668    host = auth + this.host;
14669  } else if (this.hostname) {
14670    host = auth + (this.hostname.indexOf(':') === -1 ?
14671        this.hostname :
14672        '[' + this.hostname + ']');
14673    if (this.port) {
14674      host += ':' + this.port;
14675    }
14676  }
14677
14678  if (this.query &&
14679      util.isObject(this.query) &&
14680      Object.keys(this.query).length) {
14681    query = querystring.stringify(this.query);
14682  }
14683
14684  var search = this.search || (query && ('?' + query)) || '';
14685
14686  if (protocol && protocol.substr(-1) !== ':') protocol += ':';
14687
14688  // only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.
14689  // unless they had them to begin with.
14690  if (this.slashes ||
14691      (!protocol || slashedProtocol[protocol]) && host !== false) {
14692    host = '//' + (host || '');
14693    if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;
14694  } else if (!host) {
14695    host = '';
14696  }
14697
14698  if (hash && hash.charAt(0) !== '#') hash = '#' + hash;
14699  if (search && search.charAt(0) !== '?') search = '?' + search;
14700
14701  pathname = pathname.replace(/[?#]/g, function(match) {
14702    return encodeURIComponent(match);
14703  });
14704  search = search.replace('#', '%23');
14705
14706  return protocol + host + pathname + search + hash;
14707};
14708
14709function urlResolve(source, relative) {
14710  return urlParse(source, false, true).resolve(relative);
14711}
14712
14713Url.prototype.resolve = function(relative) {
14714  return this.resolveObject(urlParse(relative, false, true)).format();
14715};
14716
14717function urlResolveObject(source, relative) {
14718  if (!source) return relative;
14719  return urlParse(source, false, true).resolveObject(relative);
14720}
14721
14722Url.prototype.resolveObject = function(relative) {
14723  if (util.isString(relative)) {
14724    var rel = new Url();
14725    rel.parse(relative, false, true);
14726    relative = rel;
14727  }
14728
14729  var result = new Url();
14730  var tkeys = Object.keys(this);
14731  for (var tk = 0; tk < tkeys.length; tk++) {
14732    var tkey = tkeys[tk];
14733    result[tkey] = this[tkey];
14734  }
14735
14736  // hash is always overridden, no matter what.
14737  // even href="" will remove it.
14738  result.hash = relative.hash;
14739
14740  // if the relative url is empty, then there's nothing left to do here.
14741  if (relative.href === '') {
14742    result.href = result.format();
14743    return result;
14744  }
14745
14746  // hrefs like //foo/bar always cut to the protocol.
14747  if (relative.slashes && !relative.protocol) {
14748    // take everything except the protocol from relative
14749    var rkeys = Object.keys(relative);
14750    for (var rk = 0; rk < rkeys.length; rk++) {
14751      var rkey = rkeys[rk];
14752      if (rkey !== 'protocol')
14753        result[rkey] = relative[rkey];
14754    }
14755
14756    //urlParse appends trailing / to urls like http://www.example.com
14757    if (slashedProtocol[result.protocol] &&
14758        result.hostname && !result.pathname) {
14759      result.path = result.pathname = '/';
14760    }
14761
14762    result.href = result.format();
14763    return result;
14764  }
14765
14766  if (relative.protocol && relative.protocol !== result.protocol) {
14767    // if it's a known url protocol, then changing
14768    // the protocol does weird things
14769    // first, if it's not file:, then we MUST have a host,
14770    // and if there was a path
14771    // to begin with, then we MUST have a path.
14772    // if it is file:, then the host is dropped,
14773    // because that's known to be hostless.
14774    // anything else is assumed to be absolute.
14775    if (!slashedProtocol[relative.protocol]) {
14776      var keys = Object.keys(relative);
14777      for (var v = 0; v < keys.length; v++) {
14778        var k = keys[v];
14779        result[k] = relative[k];
14780      }
14781      result.href = result.format();
14782      return result;
14783    }
14784
14785    result.protocol = relative.protocol;
14786    if (!relative.host && !hostlessProtocol[relative.protocol]) {
14787      var relPath = (relative.pathname || '').split('/');
14788      while (relPath.length && !(relative.host = relPath.shift()));
14789      if (!relative.host) relative.host = '';
14790      if (!relative.hostname) relative.hostname = '';
14791      if (relPath[0] !== '') relPath.unshift('');
14792      if (relPath.length < 2) relPath.unshift('');
14793      result.pathname = relPath.join('/');
14794    } else {
14795      result.pathname = relative.pathname;
14796    }
14797    result.search = relative.search;
14798    result.query = relative.query;
14799    result.host = relative.host || '';
14800    result.auth = relative.auth;
14801    result.hostname = relative.hostname || relative.host;
14802    result.port = relative.port;
14803    // to support http.request
14804    if (result.pathname || result.search) {
14805      var p = result.pathname || '';
14806      var s = result.search || '';
14807      result.path = p + s;
14808    }
14809    result.slashes = result.slashes || relative.slashes;
14810    result.href = result.format();
14811    return result;
14812  }
14813
14814  var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),
14815      isRelAbs = (
14816          relative.host ||
14817          relative.pathname && relative.pathname.charAt(0) === '/'
14818      ),
14819      mustEndAbs = (isRelAbs || isSourceAbs ||
14820                    (result.host && relative.pathname)),
14821      removeAllDots = mustEndAbs,
14822      srcPath = result.pathname && result.pathname.split('/') || [],
14823      relPath = relative.pathname && relative.pathname.split('/') || [],
14824      psychotic = result.protocol && !slashedProtocol[result.protocol];
14825
14826  // if the url is a non-slashed url, then relative
14827  // links like ../.. should be able
14828  // to crawl up to the hostname, as well.  This is strange.
14829  // result.protocol has already been set by now.
14830  // Later on, put the first path part into the host field.
14831  if (psychotic) {
14832    result.hostname = '';
14833    result.port = null;
14834    if (result.host) {
14835      if (srcPath[0] === '') srcPath[0] = result.host;
14836      else srcPath.unshift(result.host);
14837    }
14838    result.host = '';
14839    if (relative.protocol) {
14840      relative.hostname = null;
14841      relative.port = null;
14842      if (relative.host) {
14843        if (relPath[0] === '') relPath[0] = relative.host;
14844        else relPath.unshift(relative.host);
14845      }
14846      relative.host = null;
14847    }
14848    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');
14849  }
14850
14851  if (isRelAbs) {
14852    // it's absolute.
14853    result.host = (relative.host || relative.host === '') ?
14854                  relative.host : result.host;
14855    result.hostname = (relative.hostname || relative.hostname === '') ?
14856                      relative.hostname : result.hostname;
14857    result.search = relative.search;
14858    result.query = relative.query;
14859    srcPath = relPath;
14860    // fall through to the dot-handling below.
vendor: 5,897 bytes, lines 14861-15034
14861  } else if (relPath.length) {
14862    // it's relative
14863    // throw away the existing file, and take the new path instead.
14864    if (!srcPath) srcPath = [];
14865    srcPath.pop();
14866    srcPath = srcPath.concat(relPath);
14867    result.search = relative.search;
14868    result.query = relative.query;
14869  } else if (!util.isNullOrUndefined(relative.search)) {
14870    // just pull out the search.
14871    // like href='?foo'.
14872    // Put this after the other two cases because it simplifies the booleans
14873    if (psychotic) {
14874      result.hostname = result.host = srcPath.shift();
14875      //occationaly the auth can get stuck only in host
14876      //this especially happens in cases like
14877      //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
14878      var authInHost = result.host && result.host.indexOf('@') > 0 ?
14879                       result.host.split('@') : false;
14880      if (authInHost) {
14881        result.auth = authInHost.shift();
14882        result.host = result.hostname = authInHost.shift();
14883      }
14884    }
14885    result.search = relative.search;
14886    result.query = relative.query;
14887    //to support http.request
14888    if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
14889      result.path = (result.pathname ? result.pathname : '') +
14890                    (result.search ? result.search : '');
14891    }
14892    result.href = result.format();
14893    return result;
14894  }
14895
14896  if (!srcPath.length) {
14897    // no path at all.  easy.
14898    // we've already handled the other stuff above.
14899    result.pathname = null;
14900    //to support http.request
14901    if (result.search) {
14902      result.path = '/' + result.search;
14903    } else {
14904      result.path = null;
14905    }
14906    result.href = result.format();
14907    return result;
14908  }
14909
14910  // if a url ENDs in . or .., then it must get a trailing slash.
14911  // however, if it ends in anything else non-slashy,
14912  // then it must NOT get a trailing slash.
14913  var last = srcPath.slice(-1)[0];
14914  var hasTrailingSlash = (
14915      (result.host || relative.host || srcPath.length > 1) &&
14916      (last === '.' || last === '..') || last === '');
14917
14918  // strip single dots, resolve double dots to parent dir
14919  // if the path tries to go above the root, `up` ends up > 0
14920  var up = 0;
14921  for (var i = srcPath.length; i >= 0; i--) {
14922    last = srcPath[i];
14923    if (last === '.') {
14924      srcPath.splice(i, 1);
14925    } else if (last === '..') {
14926      srcPath.splice(i, 1);
14927      up++;
14928    } else if (up) {
14929      srcPath.splice(i, 1);
14930      up--;
14931    }
14932  }
14933
14934  // if the path is allowed to go above the root, restore leading ..s
14935  if (!mustEndAbs && !removeAllDots) {
14936    for (; up--; up) {
14937      srcPath.unshift('..');
14938    }
14939  }
14940
14941  if (mustEndAbs && srcPath[0] !== '' &&
14942      (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {
14943    srcPath.unshift('');
14944  }
14945
14946  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {
14947    srcPath.push('');
14948  }
14949
14950  var isAbsolute = srcPath[0] === '' ||
14951      (srcPath[0] && srcPath[0].charAt(0) === '/');
14952
14953  // put the host back
14954  if (psychotic) {
14955    result.hostname = result.host = isAbsolute ? '' :
14956                                    srcPath.length ? srcPath.shift() : '';
14957    //occationaly the auth can get stuck only in host
14958    //this especially happens in cases like
14959    //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
14960    var authInHost = result.host && result.host.indexOf('@') > 0 ?
14961                     result.host.split('@') : false;
14962    if (authInHost) {
14963      result.auth = authInHost.shift();
14964      result.host = result.hostname = authInHost.shift();
14965    }
14966  }
14967
14968  mustEndAbs = mustEndAbs || (result.host && srcPath.length);
14969
14970  if (mustEndAbs && !isAbsolute) {
14971    srcPath.unshift('');
14972  }
14973
14974  if (!srcPath.length) {
14975    result.pathname = null;
14976    result.path = null;
14977  } else {
14978    result.pathname = srcPath.join('/');
14979  }
14980
14981  //to support request.http
14982  if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
14983    result.path = (result.pathname ? result.pathname : '') +
14984                  (result.search ? result.search : '');
14985  }
14986  result.auth = relative.auth || result.auth;
14987  result.slashes = result.slashes || relative.slashes;
14988  result.href = result.format();
14989  return result;
14990};
14991
14992Url.prototype.parseHost = function() {
14993  var host = this.host;
14994  var port = portPattern.exec(host);
14995  if (port) {
14996    port = port[0];
14997    if (port !== ':') {
14998      this.port = port.substr(1);
14999    }
15000    host = host.substr(0, host.length - port.length);
15001  }
15002  if (host) this.hostname = host;
15003};
15004
15005
15006/***/ }),
15007/* 247 */
15008/***/ (function(module, exports, __webpack_require__) {
15009
15010// extracted by mini-css-extract-plugin
15011module.exports = {"visuallyHidden":"RecommendationsList-module__visuallyHidden--3NoAz","title":"RecommendationsList-module__title--2fKrL","empty":"RecommendationsList-module__empty--pEHmP","sub":"RecommendationsList-module__sub--2P2qH","wrap":"RecommendationsList-module__wrap--2Nyad","head":"RecommendationsList-module__head--3SeE2"};
15012
15013/***/ }),
15014/* 248 */
15015/***/ (function(module, exports, __webpack_require__) {
15016
15017// extracted by mini-css-extract-plugin
15018module.exports = {"visuallyHidden":"ScheduleWidget-module__visuallyHidden--ETtd7","header":"ScheduleWidget-module__header--VCi5i","tabs":"ScheduleWidget-module__tabs--AB7tH","wrap":"ScheduleWidget-module__wrap--53KLn","stacked":"ScheduleWidget-module__stacked--2m0aC","list":"ScheduleWidget-module__list--36bzv","placeholder":"ScheduleWidget-module__placeholder--E963Z","spinner":"ScheduleWidget-module__spinner--WPvHF","gradient":"ScheduleWidget-module__gradient--3ih4A"};
15019
15020/***/ }),
15021/* 249 */,
15022/* 250 */,
15023/* 251 */,
15024/* 252 */
15025/***/ (function(module, exports, __webpack_require__) {
15026
15027"use strict";
15028
15029var fixRegExpWellKnownSymbolLogic = __webpack_require__(220);
15030var isRegExp = __webpack_require__(179);
15031var anObject = __webpack_require__(20);
15032var requireObjectCoercible = __webpack_require__(52);
15033var speciesConstructor = __webpack_require__(103);
15034var advanceStringIndex = __webpack_require__(223);
vendor: 5,819 bytes, lines 15035-15186
15035var toLength = __webpack_require__(28);
15036var callRegExpExec = __webpack_require__(224);
15037var regexpExec = __webpack_require__(221);
15038var fails = __webpack_require__(11);
15039
15040var arrayPush = [].push;
15041var min = Math.min;
15042var MAX_UINT32 = 0xFFFFFFFF;
15043
15044// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
15045var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });
15046
15047// @@split logic
15048fixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
15049  var internalSplit;
15050  if (
15051    'abbc'.split(/(b)*/)[1] == 'c' ||
15052    'test'.split(/(?:)/, -1).length != 4 ||
15053    'ab'.split(/(?:ab)*/).length != 2 ||
15054    '.'.split(/(.?)(.?)/).length != 4 ||
15055    '.'.split(/()()/).length > 1 ||
15056    ''.split(/.?/).length
15057  ) {
15058    // based on es5-shim implementation, need to rework it
15059    internalSplit = function (separator, limit) {
15060      var string = String(requireObjectCoercible(this));
15061      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
15062      if (lim === 0) return [];
15063      if (separator === undefined) return [string];
15064      // If `separator` is not a regex, use native split
15065      if (!isRegExp(separator)) {
15066        return nativeSplit.call(string, separator, lim);
15067      }
15068      var output = [];
15069      var flags = (separator.ignoreCase ? 'i' : '') +
15070                  (separator.multiline ? 'm' : '') +
15071                  (separator.unicode ? 'u' : '') +
15072                  (separator.sticky ? 'y' : '');
15073      var lastLastIndex = 0;
15074      // Make `global` and avoid `lastIndex` issues by working with a copy
15075      var separatorCopy = new RegExp(separator.source, flags + 'g');
15076      var match, lastIndex, lastLength;
15077      while (match = regexpExec.call(separatorCopy, string)) {
15078        lastIndex = separatorCopy.lastIndex;
15079        if (lastIndex > lastLastIndex) {
15080          output.push(string.slice(lastLastIndex, match.index));
15081          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
15082          lastLength = match[0].length;
15083          lastLastIndex = lastIndex;
15084          if (output.length >= lim) break;
15085        }
15086        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
15087      }
15088      if (lastLastIndex === string.length) {
15089        if (lastLength || !separatorCopy.test('')) output.push('');
15090      } else output.push(string.slice(lastLastIndex));
15091      return output.length > lim ? output.slice(0, lim) : output;
15092    };
15093  // Chakra, V8
15094  } else if ('0'.split(undefined, 0).length) {
15095    internalSplit = function (separator, limit) {
15096      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
15097    };
15098  } else internalSplit = nativeSplit;
15099
15100  return [
15101    // `String.prototype.split` method
15102    // https://tc39.github.io/ecma262/#sec-string.prototype.split
15103    function split(separator, limit) {
15104      var O = requireObjectCoercible(this);
15105      var splitter = separator == undefined ? undefined : separator[SPLIT];
15106      return splitter !== undefined
15107        ? splitter.call(separator, O, limit)
15108        : internalSplit.call(String(O), separator, limit);
15109    },
15110    // `RegExp.prototype[@@split]` method
15111    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
15112    //
15113    // NOTE: This cannot be properly polyfilled in engines that don't support
15114    // the 'y' flag.
15115    function (regexp, limit) {
15116      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
15117      if (res.done) return res.value;
15118
15119      var rx = anObject(regexp);
15120      var S = String(this);
15121      var C = speciesConstructor(rx, RegExp);
15122
15123      var unicodeMatching = rx.unicode;
15124      var flags = (rx.ignoreCase ? 'i' : '') +
15125                  (rx.multiline ? 'm' : '') +
15126                  (rx.unicode ? 'u' : '') +
15127                  (SUPPORTS_Y ? 'y' : 'g');
15128
15129      // ^(? + rx + ) is needed, in combination with some S slicing, to
15130      // simulate the 'y' flag.
15131      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
15132      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
15133      if (lim === 0) return [];
15134      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
15135      var p = 0;
15136      var q = 0;
15137      var A = [];
15138      while (q < S.length) {
15139        splitter.lastIndex = SUPPORTS_Y ? q : 0;
15140        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
15141        var e;
15142        if (
15143          z === null ||
15144          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
15145        ) {
15146          q = advanceStringIndex(S, q, unicodeMatching);
15147        } else {
15148          A.push(S.slice(p, q));
15149          if (A.length === lim) return A;
15150          for (var i = 1; i <= z.length - 1; i++) {
15151            A.push(z[i]);
15152            if (A.length === lim) return A;
15153          }
15154          q = p = e;
15155        }
15156      }
15157      A.push(S.slice(p));
15158      return A;
15159    }
15160  ];
15161}, !SUPPORTS_Y);
15162
15163
15164/***/ }),
15165/* 253 */,
15166/* 254 */
15167/***/ (function(module, exports, __webpack_require__) {
15168
15169"use strict";
15170
15171var fixRegExpWellKnownSymbolLogic = __webpack_require__(220);
15172var anObject = __webpack_require__(20);
15173var requireObjectCoercible = __webpack_require__(52);
15174var sameValue = __webpack_require__(375);
15175var regExpExec = __webpack_require__(224);
15176
15177// @@search logic
15178fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {
15179  return [
15180    // `String.prototype.search` method
15181    // https://tc39.github.io/ecma262/#sec-string.prototype.search
15182    function search(regexp) {
15183      var O = requireObjectCoercible(this);
15184      var searcher = regexp == undefined ? undefined : regexp[SEARCH];
15185      return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
15186    },
15187    // `RegExp.prototype[@@search]` method
15188    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
15189    function (regexp) {
15190      var res = maybeCallNative(nativeSearch, regexp, this);
15191      if (res.done) return res.value;
15192
15193      var rx = anObject(regexp);
15194      var S = String(this);
15195
15196      var previousLastIndex = rx.lastIndex;
15197      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
15198      var result = regExpExec(rx, S);
15199      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
15200      return result === null ? -1 : result.index;
15201    }
15202  ];
15203});
15204
15205
15206/***/ }),
15207/* 255 */,
15208/* 256 */,
15209/* 257 */
15210/***/ (function(module, exports, __webpack_require__) {
15211
15212var global = __webpack_require__(16);
15213var DOMIterables = __webpack_require__(391);
15214var ArrayIteratorMethods = __webpack_require__(138);
15215var createNonEnumerableProperty = __webpack_require__(53);
15216var wellKnownSymbol = __webpack_require__(23);
15217
15218var ITERATOR = wellKnownSymbol('iterator');
15219var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15220var ArrayValues = ArrayIteratorMethods.values;
15221
15222for (var COLLECTION_NAME in DOMIterables) {
15223  var Collection = global[COLLECTION_NAME];
15224  var CollectionPrototype = Collection && Collection.prototype;
15225  if (CollectionPrototype) {
15226    // some Chrome versions have non-configurable methods on DOMTokenList
15227    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {
15228      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
15229    } catch (error) {
15230      CollectionPrototype[ITERATOR] = ArrayValues;
15231    }
15232    if (!CollectionPrototype[TO_STRING_TAG]) {
15233      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
15234    }
15235    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {
15236      // some Chrome versions have non-configurable methods on DOMTokenList
15237      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {
15238        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
15239      } catch (error) {
15240        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
15241      }
15242    }
15243  }
15244}
15245
15246
15247/***/ }),
15248/* 258 */,
15249/* 259 */
15250/***/ (function(module, exports, __webpack_require__) {
15251
15252// extracted by mini-css-extract-plugin
15253module.exports = {"visuallyHidden":"ProgrammeCard-module__visuallyHidden--3JEKm","title":"ProgrammeCard-module__title--2KTby","live":"ProgrammeCard-module__live--2SKgL","next":"ProgrammeCard-module__next--180hu","description":"ProgrammeCard-module__description--3K3DJ","time":"ProgrammeCard-module__time--N4mXm","imgbox":"ProgrammeCard-module__imgbox--1cmd9","wrap":"ProgrammeCard-module__wrap--3U3UX","past":"ProgrammeCard-module__past--_YuH1","info":"ProgrammeCard-module__info--3PpCb"};
15254
15255/***/ }),
15256/* 260 */
15257/***/ (function(module, exports, __webpack_require__) {
15258
15259// extracted by mini-css-extract-plugin
15260module.exports = {"visuallyHidden":"OnDemandListItem-module__visuallyHidden--3a3ry","title":"OnDemandListItem-module__title--IHMgN","date":"OnDemandListItem-module__date--3cOs0","episode":"OnDemandListItem-module__episode--3wljR","wrap":"OnDemandListItem-module__wrap--1exbD","body":"OnDemandListItem-module__body--1gyLj","buttonarea":"OnDemandListItem-module__buttonarea--2jl3k","play":"OnDemandListItem-module__play--b0V-m","hover":"OnDemandListItem-module__hover--SpFEd","nohover":"OnDemandListItem-module__nohover--2uM9A"};
15261
15262/***/ }),
15263/* 261 */,
15264/* 262 */,
15265/* 263 */,
15266/* 264 */,
15267/* 265 */
15268/***/ (function(module, exports, __webpack_require__) {
15269
15270"use strict";
15271
15272var $ = __webpack_require__(2);
15273var $indexOf = __webpack_require__(168).indexOf;
15274var arrayMethodIsStrict = __webpack_require__(102);
15275var arrayMethodUsesToLength = __webpack_require__(63);
15276
15277var nativeIndexOf = [].indexOf;
15278
15279var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
15280var STRICT_METHOD = arrayMethodIsStrict('indexOf');
15281var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
15282
15283// `Array.prototype.indexOf` method
15284// https://tc39.github.io/ecma262/#sec-array.prototype.indexof
15285$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {
15286  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
15287    return NEGATIVE_ZERO
15288      // convert -0 to +0
15289      ? nativeIndexOf.apply(this, arguments) || 0
15290      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
15291  }
15292});
15293
15294
15295/***/ }),
15296/* 266 */
15297/***/ (function(module, exports, __webpack_require__) {
15298
15299"use strict";
15300
15301var $ = __webpack_require__(2);
15302var getOwnPropertyDescriptor = __webpack_require__(51).f;
15303var toLength = __webpack_require__(28);
15304var notARegExp = __webpack_require__(289);
15305var requireObjectCoercible = __webpack_require__(52);
15306var correctIsRegExpLogic = __webpack_require__(290);
15307var IS_PURE = __webpack_require__(72);
15308
15309var nativeEndsWith = ''.endsWith;
15310var min = Math.min;
15311
15312var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');
15313// https://github.com/zloirock/core-js/pull/702
15314var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
15315  var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');
15316  return descriptor && !descriptor.writable;
15317}();
15318
15319// `String.prototype.endsWith` method
15320// https://tc39.github.io/ecma262/#sec-string.prototype.endswith
15321$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {
15322  endsWith: function endsWith(searchString /* , endPosition = @length */) {
15323    var that = String(requireObjectCoercible(this));
15324    notARegExp(searchString);
15325    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
15326    var len = toLength(that.length);
15327    var end = endPosition === undefined ? len : min(toLength(endPosition), len);
15328    var search = String(searchString);
15329    return nativeEndsWith
15330      ? nativeEndsWith.call(that, search, end)
15331      : that.slice(end - search.length, end) === search;
15332  }
15333});
15334
15335
15336/***/ }),
15337/* 267 */,
15338/* 268 */
15339/***/ (function(module, __webpack_exports__, __webpack_require__) {
15340
15341"use strict";
15342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnalyticsContext; });
15343/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
15344
15345var AnalyticsContext = Object(preact__WEBPACK_IMPORTED_MODULE_0__["createContext"])({
15346  notifyTrackingObservers: function notifyTrackingObservers() {},
15347  setAnalyticsRpId: function setAnalyticsRpId() {},
15348  updateAlPermissions: function updateAlPermissions() {}
15349});
15350
15351/***/ }),
15352/* 269 */
15353/***/ (function(module, exports, __webpack_require__) {
15354
15355"use strict";
15356
15357var fixRegExpWellKnownSymbolLogic = __webpack_require__(220);
15358var anObject = __webpack_require__(20);
15359var toObject = __webpack_require__(33);
15360var toLength = __webpack_require__(28);
15361var toInteger = __webpack_require__(73);
15362var requireObjectCoercible = __webpack_require__(52);
15363var advanceStringIndex = __webpack_require__(223);
15364var regExpExec = __webpack_require__(224);
15365
15366var max = Math.max;
15367var min = Math.min;
15368var floor = Math.floor;
15369var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
15370var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
15371
15372var maybeToString = function (it) {
15373  return it === undefined ? it : String(it);
15374};
15375
15376// @@replace logic
15377fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
15378  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
15379  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
15380  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
15381
15382  return [
15383    // `String.prototype.replace` method
15384    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
15385    function replace(searchValue, replaceValue) {
15386      var O = requireObjectCoercible(this);
15387      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
15388      return replacer !== undefined
15389        ? replacer.call(searchValue, O, replaceValue)
15390        : nativeReplace.call(String(O), searchValue, replaceValue);
15391    },
15392    // `RegExp.prototype[@@replace]` method
15393    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
15394    function (regexp, replaceValue) {
15395      if (
15396        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
15397        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
15398      ) {
15399        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
15400        if (res.done) return res.value;
15401      }
15402
15403      var rx = anObject(regexp);
15404      var S = String(this);
15405
15406      var functionalReplace = typeof replaceValue === 'function';
15407      if (!functionalReplace) replaceValue = String(replaceValue);
15408
15409      var global = rx.global;
15410      if (global) {
15411        var fullUnicode = rx.unicode;
15412        rx.lastIndex = 0;
15413      }
15414      var results = [];
15415      while (true) {
15416        var result = regExpExec(rx, S);
15417        if (result === null) break;
15418
15419        results.push(result);
15420        if (!global) break;
15421
15422        var matchStr = String(result[0]);
15423        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLe
vendor: 5,204 bytes, lines 15423-15593
15423ngth(rx.lastIndex), fullUnicode);
15424      }
15425
15426      var accumulatedResult = '';
15427      var nextSourcePosition = 0;
15428      for (var i = 0; i < results.length; i++) {
15429        result = results[i];
15430
15431        var matched = String(result[0]);
15432        var position = max(min(toInteger(result.index), S.length), 0);
15433        var captures = [];
15434        // NOTE: This is equivalent to
15435        //   captures = result.slice(1).map(maybeToString)
15436        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
15437        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
15438        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
15439        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
15440        var namedCaptures = result.groups;
15441        if (functionalReplace) {
15442          var replacerArgs = [matched].concat(captures, position, S);
15443          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
15444          var replacement = String(replaceValue.apply(undefined, replacerArgs));
15445        } else {
15446          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
15447        }
15448        if (position >= nextSourcePosition) {
15449          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
15450          nextSourcePosition = position + matched.length;
15451        }
15452      }
15453      return accumulatedResult + S.slice(nextSourcePosition);
15454    }
15455  ];
15456
15457  // https://tc39.github.io/ecma262/#sec-getsubstitution
15458  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
15459    var tailPos = position + matched.length;
15460    var m = captures.length;
15461    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
15462    if (namedCaptures !== undefined) {
15463      namedCaptures = toObject(namedCaptures);
15464      symbols = SUBSTITUTION_SYMBOLS;
15465    }
15466    return nativeReplace.call(replacement, symbols, function (match, ch) {
15467      var capture;
15468      switch (ch.charAt(0)) {
15469        case '$': return '$';
15470        case '&': return matched;
15471        case '`': return str.slice(0, position);
15472        case "'": return str.slice(tailPos);
15473        case '<':
15474          capture = namedCaptures[ch.slice(1, -1)];
15475          break;
15476        default: // \d\d?
15477          var n = +ch;
15478          if (n === 0) return match;
15479          if (n > m) {
15480            var f = floor(n / 10);
15481            if (f === 0) return match;
15482            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
15483            return match;
15484          }
15485          capture = captures[n - 1];
15486      }
15487      return capture === undefined ? '' : capture;
15488    });
15489  }
15490});
15491
15492
15493/***/ }),
15494/* 270 */,
15495/* 271 */,
15496/* 272 */,
15497/* 273 */
15498/***/ (function(module, exports, __webpack_require__) {
15499
15500var global = __webpack_require__(16);
15501var isObject = __webpack_require__(19);
15502
15503var document = global.document;
15504// typeof document.createElement is 'object' in old IE
15505var EXISTS = isObject(document) && isObject(document.createElement);
15506
15507module.exports = function (it) {
15508  return EXISTS ? document.createElement(it) : {};
15509};
15510
15511
15512/***/ }),
15513/* 274 */
15514/***/ (function(module, exports, __webpack_require__) {
15515
15516var global = __webpack_require__(16);
15517var createNonEnumerableProperty = __webpack_require__(53);
15518
15519module.exports = function (key, value) {
15520  try {
15521    createNonEnumerableProperty(global, key, value);
15522  } catch (error) {
15523    global[key] = value;
15524  } return value;
15525};
15526
15527
15528/***/ }),
15529/* 275 */
15530/***/ (function(module, exports, __webpack_require__) {
15531
15532var store = __webpack_require__(276);
15533
15534var functionToString = Function.toString;
15535
15536// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
15537if (typeof store.inspectSource != 'function') {
15538  store.inspectSource = function (it) {
15539    return functionToString.call(it);
15540  };
15541}
15542
15543module.exports = store.inspectSource;
15544
15545
15546/***/ }),
15547/* 276 */
15548/***/ (function(module, exports, __webpack_require__) {
15549
15550var global = __webpack_require__(16);
15551var setGlobal = __webpack_require__(274);
15552
15553var SHARED = '__core-js_shared__';
15554var store = global[SHARED] || setGlobal(SHARED, {});
15555
15556module.exports = store;
15557
15558
15559/***/ }),
15560/* 277 */
15561/***/ (function(module, exports, __webpack_require__) {
15562
15563var IS_PURE = __webpack_require__(72);
15564var store = __webpack_require__(276);
15565
15566(module.exports = function (key, value) {
15567  return store[key] || (store[key] = value !== undefined ? value : {});
15568})('versions', []).push({
15569  version: '3.7.0',
15570  mode: IS_PURE ? 'pure' : 'global',
15571  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
15572});
15573
15574
15575/***/ }),
15576/* 278 */
15577/***/ (function(module, exports, __webpack_require__) {
15578
15579var getBuiltIn = __webpack_require__(67);
15580var getOwnPropertyNamesModule = __webpack_require__(132);
15581var getOwnPropertySymbolsModule = __webpack_require__(280);
15582var anObject = __webpack_require__(20);
15583
15584// all object keys, includes non-enumerable and symbols
15585module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
15586  var keys = getOwnPropertyNamesModule.f(anObject(it));
15587  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
15588  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
15589};
15590
15591
15592/***/ }),
15593/* 279 */
vendor: 4,715 bytes, lines 15594-15757
15594/***/ (function(module, exports) {
15595
15596// IE8- don't enum bug keys
15597module.exports = [
15598  'constructor',
15599  'hasOwnProperty',
15600  'isPrototypeOf',
15601  'propertyIsEnumerable',
15602  'toLocaleString',
15603  'toString',
15604  'valueOf'
15605];
15606
15607
15608/***/ }),
15609/* 280 */
15610/***/ (function(module, exports) {
15611
15612exports.f = Object.getOwnPropertySymbols;
15613
15614
15615/***/ }),
15616/* 281 */
15617/***/ (function(module, exports, __webpack_require__) {
15618
15619var fails = __webpack_require__(11);
15620
15621module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
15622  // Chrome 38 Symbol has incorrect toString conversion
15623  // eslint-disable-next-line no-undef
15624  return !String(Symbol());
15625});
15626
15627
15628/***/ }),
15629/* 282 */
15630/***/ (function(module, exports, __webpack_require__) {
15631
15632var DESCRIPTORS = __webpack_require__(21);
15633var definePropertyModule = __webpack_require__(30);
15634var anObject = __webpack_require__(20);
15635var objectKeys = __webpack_require__(170);
15636
15637// `Object.defineProperties` method
15638// https://tc39.github.io/ecma262/#sec-object.defineproperties
15639module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
15640  anObject(O);
15641  var keys = objectKeys(Properties);
15642  var length = keys.length;
15643  var index = 0;
15644  var key;
15645  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);
15646  return O;
15647};
15648
15649
15650/***/ }),
15651/* 283 */
15652/***/ (function(module, exports, __webpack_require__) {
15653
15654var fails = __webpack_require__(11);
15655
15656module.exports = !fails(function () {
15657  function F() { /* empty */ }
15658  F.prototype.constructor = null;
15659  return Object.getPrototypeOf(new F()) !== F.prototype;
15660});
15661
15662
15663/***/ }),
15664/* 284 */
15665/***/ (function(module, exports, __webpack_require__) {
15666
15667var wellKnownSymbol = __webpack_require__(23);
15668var Iterators = __webpack_require__(172);
15669
15670var ITERATOR = wellKnownSymbol('iterator');
15671var ArrayPrototype = Array.prototype;
15672
15673// check on default Array iterator
15674module.exports = function (it) {
15675  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
15676};
15677
15678
15679/***/ }),
15680/* 285 */
15681/***/ (function(module, exports, __webpack_require__) {
15682
15683var wellKnownSymbol = __webpack_require__(23);
15684
15685var TO_STRING_TAG = wellKnownSymbol('toStringTag');
15686var test = {};
15687
15688test[TO_STRING_TAG] = 'z';
15689
15690module.exports = String(test) === '[object z]';
15691
15692
15693/***/ }),
15694/* 286 */
15695/***/ (function(module, exports, __webpack_require__) {
15696
15697"use strict";
15698
15699var toObject = __webpack_require__(33);
15700var toAbsoluteIndex = __webpack_require__(114);
15701var toLength = __webpack_require__(28);
15702
15703// `Array.prototype.fill` method implementation
15704// https://tc39.github.io/ecma262/#sec-array.prototype.fill
15705module.exports = function fill(value /* , start = 0, end = @length */) {
15706  var O = toObject(this);
15707  var length = toLength(O.length);
15708  var argumentsLength = arguments.length;
15709  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);
15710  var end = argumentsLength > 2 ? arguments[2] : undefined;
15711  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
15712  while (endPos > index) O[index++] = value;
15713  return O;
15714};
15715
15716
15717/***/ }),
15718/* 287 */
15719/***/ (function(module, exports, __webpack_require__) {
15720
15721"use strict";
15722
15723var $ = __webpack_require__(2);
15724var createIteratorConstructor = __webpack_require__(288);
15725var getPrototypeOf = __webpack_require__(74);
15726var setPrototypeOf = __webpack_require__(116);
15727var setToStringTag = __webpack_require__(80);
15728var createNonEnumerableProperty = __webpack_require__(53);
15729var redefine = __webpack_require__(54);
15730var wellKnownSymbol = __webpack_require__(23);
15731var IS_PURE = __webpack_require__(72);
15732var Iterators = __webpack_require__(172);
15733var IteratorsCore = __webpack_require__(371);
15734
15735var IteratorPrototype = IteratorsCore.IteratorPrototype;
15736var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
15737var ITERATOR = wellKnownSymbol('iterator');
15738var KEYS = 'keys';
15739var VALUES = 'values';
15740var ENTRIES = 'entries';
15741
15742var returnThis = function () { return this; };
15743
15744module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
15745  createIteratorConstructor(IteratorConstructor, NAME, next);
15746
15747  var getIterationMethod = function (KIND) {
15748    if (KIND === DEFAULT && defaultIterator) return defaultIterator;
15749    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];
15750    switch (KIND) {
15751      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };
15752      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };
15753      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };
15754    } return function () { return new IteratorConstructor(this); };
15755  };
15756
15757  var TO_STRING_TAG = NAME + ' Iterator';
vendor: 4,240 bytes, lines 15758-15886
15758  var INCORRECT_VALUES_NAME = false;
15759  var IterablePrototype = Iterable.prototype;
15760  var nativeIterator = IterablePrototype[ITERATOR]
15761    || IterablePrototype['@@iterator']
15762    || DEFAULT && IterablePrototype[DEFAULT];
15763  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
15764  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
15765  var CurrentIteratorPrototype, methods, KEY;
15766
15767  // fix native
15768  if (anyNativeIterator) {
15769    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
15770    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
15771      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
15772        if (setPrototypeOf) {
15773          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
15774        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
15775          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
15776        }
15777      }
15778      // Set @@toStringTag to native iterators
15779      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
15780      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;
15781    }
15782  }
15783
15784  // fix Array#{values, @@iterator}.name in V8 / FF
15785  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
15786    INCORRECT_VALUES_NAME = true;
15787    defaultIterator = function values() { return nativeIterator.call(this); };
15788  }
15789
15790  // define iterator
15791  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
15792    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
15793  }
15794  Iterators[NAME] = defaultIterator;
15795
15796  // export additional methods
15797  if (DEFAULT) {
15798    methods = {
15799      values: getIterationMethod(VALUES),
15800      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
15801      entries: getIterationMethod(ENTRIES)
15802    };
15803    if (FORCED) for (KEY in methods) {
15804      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
15805        redefine(IterablePrototype, KEY, methods[KEY]);
15806      }
15807    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
15808  }
15809
15810  return methods;
15811};
15812
15813
15814/***/ }),
15815/* 288 */
15816/***/ (function(module, exports, __webpack_require__) {
15817
15818"use strict";
15819
15820var IteratorPrototype = __webpack_require__(371).IteratorPrototype;
15821var create = __webpack_require__(92);
15822var createPropertyDescriptor = __webpack_require__(100);
15823var setToStringTag = __webpack_require__(80);
15824var Iterators = __webpack_require__(172);
15825
15826var returnThis = function () { return this; };
15827
15828module.exports = function (IteratorConstructor, NAME, next) {
15829  var TO_STRING_TAG = NAME + ' Iterator';
15830  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
15831  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
15832  Iterators[TO_STRING_TAG] = returnThis;
15833  return IteratorConstructor;
15834};
15835
15836
15837/***/ }),
15838/* 289 */
15839/***/ (function(module, exports, __webpack_require__) {
15840
15841var isRegExp = __webpack_require__(179);
15842
15843module.exports = function (it) {
15844  if (isRegExp(it)) {
15845    throw TypeError("The method doesn't accept regular expressions");
15846  } return it;
15847};
15848
15849
15850/***/ }),
15851/* 290 */
15852/***/ (function(module, exports, __webpack_require__) {
15853
15854var wellKnownSymbol = __webpack_require__(23);
15855
15856var MATCH = wellKnownSymbol('match');
15857
15858module.exports = function (METHOD_NAME) {
15859  var regexp = /./;
15860  try {
15861    '/./'[METHOD_NAME](regexp);
15862  } catch (error1) {
15863    try {
15864      regexp[MATCH] = false;
15865      return '/./'[METHOD_NAME](regexp);
15866    } catch (error2) { /* empty */ }
15867  } return false;
15868};
15869
15870
15871/***/ }),
15872/* 291 */
15873/***/ (function(module, exports, __webpack_require__) {
15874
15875// https://github.com/tc39/proposal-string-pad-start-end
15876var toLength = __webpack_require__(28);
15877var repeat = __webpack_require__(292);
15878var requireObjectCoercible = __webpack_require__(52);
15879
15880var ceil = Math.ceil;
15881
15882// `String.prototype.{ padStart, padEnd }` methods implementation
15883var createMethod = function (IS_END) {
15884  return function ($this, maxLength, fillString) {
15885    var S = String(requireObjectCoercible($this));
15886    var stringLength = S.length;
15887    var fillStr = fillString === undefined ? ' ' : String(fillString);
15888    var intMaxLength = toLength(maxLength);
15889    var fillLen, stringFiller;
15890    if (intMaxLength <= stringLength || fillStr == '') return S;
15891    fillLen = intMaxLength - stringLength;
15892    stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
15893    if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
15894    return IS_END ? S + stringFiller : stringFiller + S;
15895  };
15896};
15897
15898module.exports = {
15899  // `String.prototype.padStart` method
15900  // https://tc39.github.io/ecma262/#sec-string.prototype.padstart
15901  start: createMethod(false),
15902  // `String.prototype.padEnd` method
15903  // https://tc39.github.io/ecma262/#sec-string.prototype.padend
15904  end: createMethod(true)
15905};
15906
15907
15908/***/ }),
15909/* 292 */
15910/***/ (function(module, exports, __webpack_require__) {
15911
15912"use strict";
15913
15914var toInteger = __webpack_require__(73);
15915var requireObjectCoercible = __webpack_require__(52);
15916
15917// `String.prototype.repeat` method implementation
15918// https://tc39.github.io/ecma262/#sec-string.prototype.repeat
15919module.exports = ''.repeat || function repeat(count) {
15920  var str = String(requireObjectCoercible(this));
15921  var result = '';
15922  var n = toInteger(count);
15923  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');
15924  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
15925  return result;
15926};
15927
15928
15929/***/ }),
15930/* 293 */
15931/***/ (function(module, exports, __webpack_require__) {
15932
15933var fails = __webpack_require__(11);
15934var whitespaces = __webpack_require__(225);
15935
15936var non = '\u200B\u0085\u180E';
15937
15938// check that a method works with the correct list
15939// of whitespaces and has a correct name
15940module.exports = function (METHOD_NAME) {
15941  return fails(function () {
15942    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
15943  });
15944};
15945
15946
15947/***/ }),
15948/* 294 */
15949/***/ (function(module, exports) {
15950
15951// `Math.sign` method implementation
15952// https://tc39.github.io/ecma262/#sec-math.sign
15953module.exports = Math.sign || function sign(x) {
15954  // eslint-disable-next-line no-self-compare
15955  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
15956};
15957
15958
15959/***/ }),
15960/* 295 */
15961/***/ (function(module, exports, __webpack_require__) {
15962
15963var global = __webpack_require__(16);
15964var fails = __webpack_require__(11);
15965var bind = __webpack_require__(115);
15966var html = __webpack_require__(361);
15967var createElement = __webpack_require__(273);
15968var IS_IOS = __webpack_require__(383);
15969var IS_NODE = __webpack_require__(146);
15970
15971var location = global.location;
15972var set = global.setImmediate;
15973var clear = global.clearImmediate;
15974var process = global.process;
15975var MessageChannel = global.MessageChannel;
15976var Dispatch = global.Dispatch;
15977var counter = 0;
15978var queue = {};
15979var ONREADYSTATECHANGE = 'onreadystatechange';
15980var defer, channel, port;
15981
15982var run = function (id) {
15983  // eslint-disable-next-line no-prototype-builtins
15984  if (queue.hasOwnProperty(id)) {
15985    var fn = queue[id];
15986    delete queue[id];
15987    fn();
15988  }
15989};
15990
15991var runner = function (id) {
15992  return function () {
15993    run(id);
15994  };
15995};
15996
15997var listener = function (event) {
15998  run(event.data);
15999};
16000
16001var post = function (id) {
16002  // old engines have not location.origin
16003  global.postMessage(id + '', location.protocol + '//' + location.host);
16004};
16005
16006// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
16007if (!set || !clear) {
16008  set = function setImmediate(fn) {
16009    var args = [];
16010    var i = 1;
16011    while (arguments.length > i) args.push(arguments[i++]);
16012    queue[++counter] = function () {
16013      // eslint-disable-next-line no-new-func
16014      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
16015    };
16016    defer(counter);
16017    return counter;
16018  };
16019  clear = function clearImmediate(id) {
16020    delete queue[id];
16021  };
16022  // Node.js 0.8-
16023  if (IS_NODE) {
16024    defer = function (id) {
16025      process.nextTick(runner(id));
16026    };
16027  // Sphere (JS game engine) Dispatch API
16028  } else if (Dispatch && Dispatch.now) {
16029    defer = function (id) {
16030      Dispatch.now(runner(id));
16031    };
16032  // Browsers with MessageChannel, includes WebWorkers
16033  // except iOS - https://github.com/zloirock/core-js/issues/624
16034  } else if (MessageChannel && !IS_IOS) {
16035    channel = new MessageChannel();
16036    port = channel.port2;
16037    channel.port1.onmessage = listener;
16038    defer = bind(port.postMessage, port, 1);
16039  // Browsers with postMessage, skip WebWorkers
16040  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
16041  } else if (
16042    global.addEventListener &&
16043    typeof postMessage == 'function' &&
16044    !global.importScripts &&
16045    location && location.protocol !== 'file:' &&
16046    !fails(post)
16047  ) {
16048    defer = post;
16049    global.addEventListener('message', listener, false);
16050  // IE8-
16051  } else if (ONREADYSTATECHANGE in createElement('script')) {
16052    defer = function (id) {
16053      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
16054        html.removeChild(this);
16055        run(id);
16056      };
16057    };
16058  // Rest old browsers
16059  } else {
16060    defer = function (id) {
16061      setTimeout(runner(id), 0);
16062    };
16063  }
16064}
16065
16066module.exports = {
16067  set: set,
16068  clear: clear
16069};
16070
16071
16072/***/ }),
16073/* 296 */
16074/***/ (function(module, exports) {
16075
16076module.exports = function (exec) {
16077  try {
16078    return { error: false, value: exec() };
16079  } catch (error) {
16080    return { error: true, value: error };
16081  }
16082};
16083
16084
16085/***/ }),
16086/* 297 */
16087/***/ (function(module, exports) {
16088
16089module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';
16090
16091
16092/***/ }),
16093/* 298 */
16094/***/ (function(module, exports, __webpack_require__) {
16095
16096/* eslint-disable no-new */
16097var global = __webpack_require__(16);
16098var fails = __webpack_require__(11);
16099var checkCorrectnessOfIteration = __webpack_require__(215);
16100var NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(29).NATIVE_ARRAY_BUFFER_VIEWS;
16101
16102var ArrayBuffer = global.ArrayBuffer;
16103var Int8Array = global.Int8Array;
16104
16105module.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {
16106  Int8Array(1);
16107}) || !fails(function () {
16108  new Int8Array(-1);
16109}) || !checkCorrectnessOfIteration(function (iterable) {
16110  new Int8Array();
16111  new Int8Array(null);
16112  new Int8Array(1.5);
16113  new Int8Array(iterable);
16114}, true) || fails(function () {
16115  // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill
16116  return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;
16117});
16118
16119
16120/***/ }),
16121/* 299 */
16122/***/ (function(module, exports, __webpack_require__) {
16123
16124// extracted by mini-css-extract-plugin
16125module.exports = {"visuallyHidden":"Scrubber-module__visuallyHidden--18vAj","labels":"Scrubber-module__labels--1yLSS","wrap":"Scrubber-module__wrap--16DEz","dark":"Scrubber-module__dark--3iEk5","input":"Scrubber-module__input--11FXs"};
16126
16127/***/ }),
16128/* 300 */
16129/***/ (function(module, exports, __webpack_require__) {
16130
16131// extracted by mini-css-extract-plugin
16132module.exports = {"visuallyHidden":"WidgetSpace-module__visuallyHidden--2iFAZ","widget":"WidgetSpace-module__widget--1agAi","wrap":"WidgetSpace-module__wrap--1sPjl","hiddenH1":"WidgetSpace-module__hiddenH1--1oxPD WidgetSpace-module__visuallyHidden--2iFAZ","inner":"WidgetSpace-module__inner--2V0fN","full":"WidgetSpace-module__full--NInLM","widgetsInline":"WidgetSpace-module__widgetsInline--3jCus","widgetColumn":"WidgetSpace-module__widgetColumn--1s5Nv","stackedWidgetColumn":"WidgetSpace-module__stackedWidgetColumn--3Bpk_","companion":"WidgetSpace-module__companion--2rPgx"};
16133
16134/***/ }),
16135/* 301 */
16136/***/ (function(module, exports, __webpack_require__) {
16137
16138// extracted by mini-css-extract-plugin
16139module.exports = {"bar":"EqualizerIcon-module__bar--2v1ns","eq-uppydowny":"EqualizerIcon-module__eq-uppydowny--1T4vz","eq1":"EqualizerIcon-module__eq1--1Q9HF","eq2":"EqualizerIcon-module__eq2--213lL","eq3":"EqualizerIcon-module__eq3--3POGX","eq4":"EqualizerIcon-module__eq4--urpEz"};
16140
16141/***/ }),
16142/* 302 */
16143/***/ (function(module, exports, __webpack_require__) {
16144
16145"use strict";
16146
16147var fixRegExpWellKnownSymbolLogic = __webpack_require__(220);
16148var anObject = __webpack_require__(20);
16149var toLength = __webpack_require__(28);
16150var requireObjectCoercible = __webpack_require__(52);
16151var advanceStringIndex = __webpack_require__(223);
16152var regExpExec = __webpack_require__(224);
16153
16154// @@match logic
16155fixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
16156  return [
16157    // `String.prototype.match` method
16158    // https://tc39.github.io/ecma262/#sec-string.prototype.match
16159    function match(regexp) {
16160      var O = requireObjectCoercible(this);
16161      var matcher = regexp == undefined ? undefined : regexp[MATCH];
16162      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
16163    },
16164    // `RegExp.prototype[@@match]` method
16165    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
16166    function (regexp) {
16167      var res = maybeCallNative(nativeMatch, regexp, this);
16168      if (res.done) return res.value;
16169
16170      var rx = anObject(regexp);
16171      var S = String(this);
16172
16173      if (!rx.global) return regExpExec(rx, S);
16174
16175      var fullUnicode = rx.unicode;
16176      rx.lastIndex = 0;
16177      var A = [];
16178      var n = 0;
16179      var result;
16180      while ((result = regExpExec(rx, S)) !== null) {
16181        var matchStr = String(result[0]);
16182        A[n] = matchStr;
16183        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLe
16183ngth(rx.lastIndex), fullUnicode);
16184        n++;
16185      }
16186      return n === 0 ? null : A;
16187    }
16188  ];
16189});
16190
16191
16192/***/ }),
16193/* 303 */
16194/***/ (function(module, exports, __webpack_require__) {
16195
16196"use strict";
16197
16198var $ = __webpack_require__(2);
16199var $trim = __webpack_require__(149).trim;
16200var forcedStringTrimMethod = __webpack_require__(293);
16201
16202// `String.prototype.trim` method
16203// https://tc39.github.io/ecma262/#sec-string.prototype.trim
16204$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
16205  trim: function trim() {
16206    return $trim(this);
16207  }
16208});
16209
16210
16211/***/ }),
16212/* 304 */,
16213/* 305 */
16214/***/ (function(module, __webpack_exports__, __webpack_require__) {
16215
16216"use strict";
16217
16218// EXPORTS
16219__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ LiveIconbabel_target_legacy_LiveIcon; });
16220
16221// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
16222var definePropertybabel_target_legacy = __webpack_require__(15);
16223var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
16224
16225// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
16226var preact_modulebabel_target_legacy = __webpack_require__(1);
16227
16228// EXTERNAL MODULE: ./src/components/LiveIcon/LiveIcon.module.css
16229var LiveIcon_module = __webpack_require__(181);
16230var LiveIcon_module_default = /*#__PURE__*/__webpack_require__.n(LiveIcon_module);
16231
16232// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
16233var classnames_babel_target_legacy = __webpack_require__(27);
16234var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
16235
16236// CONCATENATED MODULE: ./src/components/LiveIcon/LiveIcon.tsx?babel-target=legacy
16237
16238
16239
16240
16241var LiveIconbabel_target_legacy_LiveIcon = function LiveIcon(_ref) {
16242  var animate = _ref.animate;
16243  var className = classnames_babel_target_legacy_default()(LiveIcon_module_default.a.svg, definePropertybabel_target_legacy_default()({}, LiveIcon_module_default.a.animate, animate));
16244  return Object(preact_modulebabel_target_legacy["h"])("svg", {
16245    width: "12",
16246    height: "12",
16247    className: className
16248  }, Object(preact_modulebabel_target_legacy["h"])("circle", {
16249    className: LiveIcon_module_default.a.circle,
16250    cx: "6",
16251    cy: "6",
16252    r: "3"
16253  }), Object(preact_modulebabel_target_legacy["h"])("path", {
16254    d: "M5.96681502,10.3410568 C8.38342771,10.3410568 10.3424794,8.38388329 10.3424794,5.96958745 C10.3424794,3.5552916 8.38342771,1.59811812 5.96681502,1.59811812 C3.55020233,1.59811812 1.59115067,3.5552916 1.59115067,5.96958745 C1.59115067,8.38388329 3.55020233,10.3410568 5.96681502,10.3410568 Z M5.96681502,11.930682 C2.67143408,11.930682 0,9.26180906 0,5.96958745 C0,2.67736584 2.67143408,0.00849290887 5.96681502,0.00849290887 C9.26219596,0.00849290887 11.93363,2.67736584 11.93363,5.96958745 C11.93363,9.26180906 9.26219596,11.930682 5.96681502,11.930682 Z"
16255  }));
16256};
16257/* harmony default export */ var LiveIconbabel_target_legacy = (LiveIconbabel_target_legacy_LiveIcon);
16258// CONCATENATED MODULE: ./src/components/LiveIcon/index.ts?babel-target=legacy
16259
16260
16261/***/ }),
16262/* 306 */,
16263/* 307 */,
16264/* 308 */,
16265/* 309 */,
16266/* 310 */,
16267/* 311 */
16268/***/ (function(module, exports, __webpack_require__) {
16269
16270/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.
16271//
16272// Permission is hereby granted, free of charge, to any person obtaining a
16273// copy of this software and associated documentation files (the
16274// "Software"), to deal in the Software without restriction, including
16275// without limitation the rights to use, copy, modify, merge, publish,
16276// distribute, sublicense, and/or sell copies of the Software, and to permit
16277// persons to whom the Software is furnished to do so, subject to the
16278// following conditions:
16279//
16280// The above copyright notice and this permission notice shall be included
16281// in all copies or substantial portions of the Software.
16282//
16283// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16284// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16285// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
16286// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
16287// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16288// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
16289// USE OR OTHER DEALINGS IN THE SOFTWARE.
16290
16291var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||
16292  function getOwnPropertyDescriptors(obj) {
16293    var keys = Object.keys(obj);
16294    var descriptors = {};
16295    for (var i = 0; i < keys.length; i++) {
16296      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);
16297    }
16298    return descriptors;
16299  };
16300
16301var formatRegExp = /%[sdj%]/g;
16302exports.format = function(f) {
16303  if (!isString(f)) {
16304    var objects = [];
16305    for (var i = 0; i < arguments.length; i++) {
16306      objects.push(inspect(arguments[i]));
16307    }
16308    return objects.join(' ');
16309  }
16310
16311  var i = 1;
16312  var args = arguments;
16313  var len = args.length;
16314  var str = String(f).replace(formatRegExp, function(x) {
16315    if (x === '%%') return '%';
16316    if (i >= len) return x;
16317    switch (x) {
16318      case '%s': return String(args[i++]);
16319      case '%d': return Number(args[i++]);
16320      case '%j':
16321        try {
16322          return JSON.stringify(args[i++]);
16323        } catch (_) {
16324          return '[Circular]';
16325        }
16326      default:
16327        return x;
16328    }
16329  });
16330  for (var x = args[i]; i < len; x = args[++i]) {
16331    if (isNull(x) || !isObject(x)) {
16332      str += ' ' + x;
16333    } else {
16334      str += ' ' + inspect(x);
16335    }
16336  }
16337  return str;
16338};
16339
16340
16341// Mark that a method should not be used.
16342// Returns a modified function which warns once by default.
16343// If --no-deprecation is set, then it is a no-op.
16344exports.deprecate = function(fn, msg) {
16345  if (typeof process !== 'undefined' && process.noDeprecation === true) {
16346    return fn;
16347  }
16348
16349  // Allow for deprecating things in the process of starting up.
16350  if (typeof process === 'undefined') {
16351    return function() {
16352      return exports.deprecate(fn, msg).apply(this, arguments);
16353    };
16354  }
16355
16356  var warned = false;
vendor: 12,907 bytes, lines 16357-16857
16357  function deprecated() {
16358    if (!warned) {
16359      if (process.throwDeprecation) {
16360        throw new Error(msg);
16361      } else if (process.traceDeprecation) {
16362        console.trace(msg);
16363      } else {
16364        console.error(msg);
16365      }
16366      warned = true;
16367    }
16368    return fn.apply(this, arguments);
16369  }
16370
16371  return deprecated;
16372};
16373
16374
16375var debugs = {};
16376var debugEnviron;
16377exports.debuglog = function(set) {
16378  if (isUndefined(debugEnviron))
16379    debugEnviron = process.env.NODE_DEBUG || '';
16380  set = set.toUpperCase();
16381  if (!debugs[set]) {
16382    if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
16383      var pid = process.pid;
16384      debugs[set] = function() {
16385        var msg = exports.format.apply(exports, arguments);
16386        console.error('%s %d: %s', set, pid, msg);
16387      };
16388    } else {
16389      debugs[set] = function() {};
16390    }
16391  }
16392  return debugs[set];
16393};
16394
16395
16396/**
16397 * Echos the value of a value. Trys to print the value out
16398 * in the best way possible given the different types.
16399 *
16400 * @param {Object} obj The object to print out.
16401 * @param {Object} opts Optional options object that alters the output.
16402 */
16403/* legacy: obj, showHidden, depth, colors*/
16404function inspect(obj, opts) {
16405  // default options
16406  var ctx = {
16407    seen: [],
16408    stylize: stylizeNoColor
16409  };
16410  // legacy...
16411  if (arguments.length >= 3) ctx.depth = arguments[2];
16412  if (arguments.length >= 4) ctx.colors = arguments[3];
16413  if (isBoolean(opts)) {
16414    // legacy...
16415    ctx.showHidden = opts;
16416  } else if (opts) {
16417    // got an "options" object
16418    exports._extend(ctx, opts);
16419  }
16420  // set default options
16421  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
16422  if (isUndefined(ctx.depth)) ctx.depth = 2;
16423  if (isUndefined(ctx.colors)) ctx.colors = false;
16424  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
16425  if (ctx.colors) ctx.stylize = stylizeWithColor;
16426  return formatValue(ctx, obj, ctx.depth);
16427}
16428exports.inspect = inspect;
16429
16430
16431// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
16432inspect.colors = {
16433  'bold' : [1, 22],
16434  'italic' : [3, 23],
16435  'underline' : [4, 24],
16436  'inverse' : [7, 27],
16437  'white' : [37, 39],
16438  'grey' : [90, 39],
16439  'black' : [30, 39],
16440  'blue' : [34, 39],
16441  'cyan' : [36, 39],
16442  'green' : [32, 39],
16443  'magenta' : [35, 39],
16444  'red' : [31, 39],
16445  'yellow' : [33, 39]
16446};
16447
16448// Don't use 'blue' not visible on cmd.exe
16449inspect.styles = {
16450  'special': 'cyan',
16451  'number': 'yellow',
16452  'boolean': 'yellow',
16453  'undefined': 'grey',
16454  'null': 'bold',
16455  'string': 'green',
16456  'date': 'magenta',
16457  // "name": intentionally not styling
16458  'regexp': 'red'
16459};
16460
16461
16462function stylizeWithColor(str, styleType) {
16463  var style = inspect.styles[styleType];
16464
16465  if (style) {
16466    return '\u001b[' + inspect.colors[style][0] + 'm' + str +
16467           '\u001b[' + inspect.colors[style][1] + 'm';
16468  } else {
16469    return str;
16470  }
16471}
16472
16473
16474function stylizeNoColor(str, styleType) {
16475  return str;
16476}
16477
16478
16479function arrayToHash(array) {
16480  var hash = {};
16481
16482  array.forEach(function(val, idx) {
16483    hash[val] = true;
16484  });
16485
16486  return hash;
16487}
16488
16489
16490function formatValue(ctx, value, recurseTimes) {
16491  // Provide a hook for user-specified inspect functions.
16492  // Check that value is an object with an inspect function on it
16493  if (ctx.customInspect &&
16494      value &&
16495      isFunction(value.inspect) &&
16496      // Filter out the util module, it's inspect function is special
16497      value.inspect !== exports.inspect &&
16498      // Also filter out any prototype objects using the circular check.
16499      !(value.constructor && value.constructor.prototype === value)) {
16500    var ret = value.inspect(recurseTimes, ctx);
16501    if (!isString(ret)) {
16502      ret = formatValue(ctx, ret, recurseTimes);
16503    }
16504    return ret;
16505  }
16506
16507  // Primitive types cannot have properties
16508  var primitive = formatPrimitive(ctx, value);
16509  if (primitive) {
16510    return primitive;
16511  }
16512
16513  // Look up the keys of the object.
16514  var keys = Object.keys(value);
16515  var visibleKeys = arrayToHash(keys);
16516
16517  if (ctx.showHidden) {
16518    keys = Object.getOwnPropertyNames(value);
16519  }
16520
16521  // IE doesn't make error fields non-enumerable
16522  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx
16523  if (isError(value)
16524      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {
16525    return formatError(value);
16526  }
16527
16528  // Some type of object without properties can be shortcutted.
16529  if (keys.length === 0) {
16530    if (isFunction(value)) {
16531      var name = value.name ? ': ' + value.name : '';
16532      return ctx.stylize('[Function' + name + ']', 'special');
16533    }
16534    if (isRegExp(value)) {
16535      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
16536    }
16537    if (isDate(value)) {
16538      return ctx.stylize(Date.prototype.toString.call(value), 'date');
16539    }
16540    if (isError(value)) {
16541      return formatError(value);
16542    }
16543  }
16544
16545  var base = '', array = false, braces = ['{', '}'];
16546
16547  // Make Array say that they are Array
16548  if (isArray(value)) {
16549    array = true;
16550    braces = ['[', ']'];
16551  }
16552
16553  // Make functions say that they are functions
16554  if (isFunction(value)) {
16555    var n = value.name ? ': ' + value.name : '';
16556    base = ' [Function' + n + ']';
16557  }
16558
16559  // Make RegExps say that they are RegExps
16560  if (isRegExp(value)) {
16561    base = ' ' + RegExp.prototype.toString.call(value);
16562  }
16563
16564  // Make dates with properties first say the date
16565  if (isDate(value)) {
16566    base = ' ' + Date.prototype.toUTCString.call(value);
16567  }
16568
16569  // Make error with message first say the error
16570  if (isError(value)) {
16571    base = ' ' + formatError(value);
16572  }
16573
16574  if (keys.length === 0 && (!array || value.length == 0)) {
16575    return braces[0] + base + braces[1];
16576  }
16577
16578  if (recurseTimes < 0) {
16579    if (isRegExp(value)) {
16580      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
16581    } else {
16582      return ctx.stylize('[Object]', 'special');
16583    }
16584  }
16585
16586  ctx.seen.push(value);
16587
16588  var output;
16589  if (array) {
16590    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
16591  } else {
16592    output = keys.map(function(key) {
16593      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
16594    });
16595  }
16596
16597  ctx.seen.pop();
16598
16599  return reduceToSingleString(output, base, braces);
16600}
16601
16602
16603function formatPrimitive(ctx, value) {
16604  if (isUndefined(value))
16605    return ctx.stylize('undefined', 'undefined');
16606  if (isString(value)) {
16607    var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
16608                                             .replace(/'/g, "\\'")
16609                                             .replace(/\\"/g, '"') + '\'';
16610    return ctx.stylize(simple, 'string');
16611  }
16612  if (isNumber(value))
16613    return ctx.stylize('' + value, 'number');
16614  if (isBoolean(value))
16615    return ctx.stylize('' + value, 'boolean');
16616  // For some reason typeof null is "object", so special case here.
16617  if (isNull(value))
16618    return ctx.stylize('null', 'null');
16619}
16620
16621
16622function formatError(value) {
16623  return '[' + Error.prototype.toString.call(value) + ']';
16624}
16625
16626
16627function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
16628  var output = [];
16629  for (var i = 0, l = value.length; i < l; ++i) {
16630    if (hasOwnProperty(value, String(i))) {
16631      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
16632          String(i), true));
16633    } else {
16634      output.push('');
16635    }
16636  }
16637  keys.forEach(function(key) {
16638    if (!key.match(/^\d+$/)) {
16639      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
16640          key, true));
16641    }
16642  });
16643  return output;
16644}
16645
16646
16647function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
16648  var name, str, desc;
16649  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
16650  if (desc.get) {
16651    if (desc.set) {
16652      str = ctx.stylize('[Getter/Setter]', 'special');
16653    } else {
16654      str = ctx.stylize('[Getter]', 'special');
16655    }
16656  } else {
16657    if (desc.set) {
16658      str = ctx.stylize('[Setter]', 'special');
16659    }
16660  }
16661  if (!hasOwnProperty(visibleKeys, key)) {
16662    name = '[' + key + ']';
16663  }
16664  if (!str) {
16665    if (ctx.seen.indexOf(desc.value) < 0) {
16666      if (isNull(recurseTimes)) {
16667        str = formatValue(ctx, desc.value, null);
16668      } else {
16669        str = formatValue(ctx, desc.value, recurseTimes - 1);
16670      }
16671      if (str.indexOf('\n') > -1) {
16672        if (array) {
16673          str = str.split('\n').map(function(line) {
16674            return '  ' + line;
16675          }).join('\n').substr(2);
16676        } else {
16677          str = '\n' + str.split('\n').map(function(line) {
16678            return '   ' + line;
16679          }).join('\n');
16680        }
16681      }
16682    } else {
16683      str = ctx.stylize('[Circular]', 'special');
16684    }
16685  }
16686  if (isUndefined(name)) {
16687    if (array && key.match(/^\d+$/)) {
16688      return str;
16689    }
16690    name = JSON.stringify('' + key);
16691    if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
16692      name = name.substr(1, name.length - 2);
16693      name = ctx.stylize(name, 'name');
16694    } else {
16695      name = name.replace(/'/g, "\\'")
16696                 .replace(/\\"/g, '"')
16697                 .replace(/(^"|"$)/g, "'");
16698      name = ctx.stylize(name, 'string');
16699    }
16700  }
16701
16702  return name + ': ' + str;
16703}
16704
16705
16706function reduceToSingleString(output, base, braces) {
16707  var numLinesEst = 0;
16708  var length = output.reduce(function(prev, cur) {
16709    numLinesEst++;
16710    if (cur.indexOf('\n') >= 0) numLinesEst++;
16711    return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
16712  }, 0);
16713
16714  if (length > 60) {
16715    return braces[0] +
16716           (base === '' ? '' : base + '\n ') +
16717           ' ' +
16718           output.join(',\n  ') +
16719           ' ' +
16720           braces[1];
16721  }
16722
16723  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
16724}
16725
16726
16727// NOTE: These type checking functions intentionally don't use `instanceof`
16728// because it is fragile and can be easily faked with `Object.create()`.
16729function isArray(ar) {
16730  return Array.isArray(ar);
16731}
16732exports.isArray = isArray;
16733
16734function isBoolean(arg) {
16735  return typeof arg === 'boolean';
16736}
16737exports.isBoolean = isBoolean;
16738
16739function isNull(arg) {
16740  return arg === null;
16741}
16742exports.isNull = isNull;
16743
16744function isNullOrUndefined(arg) {
16745  return arg == null;
16746}
16747exports.isNullOrUndefined = isNullOrUndefined;
16748
16749function isNumber(arg) {
16750  return typeof arg === 'number';
16751}
16752exports.isNumber = isNumber;
16753
16754function isString(arg) {
16755  return typeof arg === 'string';
16756}
16757exports.isString = isString;
16758
16759function isSymbol(arg) {
16760  return typeof arg === 'symbol';
16761}
16762exports.isSymbol = isSymbol;
16763
16764function isUndefined(arg) {
16765  return arg === void 0;
16766}
16767exports.isUndefined = isUndefined;
16768
16769function isRegExp(re) {
16770  return isObject(re) && objectToString(re) === '[object RegExp]';
16771}
16772exports.isRegExp = isRegExp;
16773
16774function isObject(arg) {
16775  return typeof arg === 'object' && arg !== null;
16776}
16777exports.isObject = isObject;
16778
16779function isDate(d) {
16780  return isObject(d) && objectToString(d) === '[object Date]';
16781}
16782exports.isDate = isDate;
16783
16784function isError(e) {
16785  return isObject(e) &&
16786      (objectToString(e) === '[object Error]' || e instanceof Error);
16787}
16788exports.isError = isError;
16789
16790function isFunction(arg) {
16791  return typeof arg === 'function';
16792}
16793exports.isFunction = isFunction;
16794
16795function isPrimitive(arg) {
16796  return arg === null ||
16797         typeof arg === 'boolean' ||
16798         typeof arg === 'number' ||
16799         typeof arg === 'string' ||
16800         typeof arg === 'symbol' ||  // ES6 symbol
16801         typeof arg === 'undefined';
16802}
16803exports.isPrimitive = isPrimitive;
16804
16805exports.isBuffer = __webpack_require__(899);
16806
16807function objectToString(o) {
16808  return Object.prototype.toString.call(o);
16809}
16810
16811
16812function pad(n) {
16813  return n < 10 ? '0' + n.toString(10) : n.toString(10);
16814}
16815
16816
16817var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
16818              'Oct', 'Nov', 'Dec'];
16819
16820// 26 Feb 16:19:34
16821function timestamp() {
16822  var d = new Date();
16823  var time = [pad(d.getHours()),
16824              pad(d.getMinutes()),
16825              pad(d.getSeconds())].join(':');
16826  return [d.getDate(), months[d.getMonth()], time].join(' ');
16827}
16828
16829
16830// log is just a thin wrapper to console.log that prepends a timestamp
16831exports.log = function() {
16832  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
16833};
16834
16835
16836/**
16837 * Inherit the prototype methods from one constructor into another.
16838 *
16839 * The Function.prototype.inherits from lang.js rewritten as a standalone
16840 * function (not on Function.prototype). NOTE: If this file is to be loaded
16841 * during bootstrapping this function needs to be rewritten using some native
16842 * functions as prototype setup using normal JavaScript does not work as
16843 * expected during bootstrapping (see mirror.js in r114903).
16844 *
16845 * @param {function} ctor Constructor function which needs to inherit the
16846 *     prototype.
16847 * @param {function} superCtor Constructor function to inherit prototype from.
16848 */
16849exports.inherits = __webpack_require__(900);
16850
16851exports._extend = function(origin, add) {
16852  // Don't do anything if add isn't an object
16853  if (!add || !isObject(add)) return origin;
16854
16855  var keys = Object.keys(add);
16856  var i = keys.length;
16857  while (i--) {
vendor: 4,467 bytes, lines 16858-17006
16858    origin[keys[i]] = add[keys[i]];
16859  }
16860  return origin;
16861};
16862
16863function hasOwnProperty(obj, prop) {
16864  return Object.prototype.hasOwnProperty.call(obj, prop);
16865}
16866
16867var kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;
16868
16869exports.promisify = function promisify(original) {
16870  if (typeof original !== 'function')
16871    throw new TypeError('The "original" argument must be of type Function');
16872
16873  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
16874    var fn = original[kCustomPromisifiedSymbol];
16875    if (typeof fn !== 'function') {
16876      throw new TypeError('The "util.promisify.custom" argument must be of type Function');
16877    }
16878    Object.defineProperty(fn, kCustomPromisifiedSymbol, {
16879      value: fn, enumerable: false, writable: false, configurable: true
16880    });
16881    return fn;
16882  }
16883
16884  function fn() {
16885    var promiseResolve, promiseReject;
16886    var promise = new Promise(function (resolve, reject) {
16887      promiseResolve = resolve;
16888      promiseReject = reject;
16889    });
16890
16891    var args = [];
16892    for (var i = 0; i < arguments.length; i++) {
16893      args.push(arguments[i]);
16894    }
16895    args.push(function (err, value) {
16896      if (err) {
16897        promiseReject(err);
16898      } else {
16899        promiseResolve(value);
16900      }
16901    });
16902
16903    try {
16904      original.apply(this, args);
16905    } catch (err) {
16906      promiseReject(err);
16907    }
16908
16909    return promise;
16910  }
16911
16912  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
16913
16914  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {
16915    value: fn, enumerable: false, writable: false, configurable: true
16916  });
16917  return Object.defineProperties(
16918    fn,
16919    getOwnPropertyDescriptors(original)
16920  );
16921}
16922
16923exports.promisify.custom = kCustomPromisifiedSymbol
16924
16925function callbackifyOnRejected(reason, cb) {
16926  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).
16927  // Because `null` is a special error value in callbacks which means "no error
16928  // occurred", we error-wrap so the callback consumer can distinguish between
16929  // "the promise rejected with null" or "the promise fulfilled with undefined".
16930  if (!reason) {
16931    var newReason = new Error('Promise was rejected with a falsy value');
16932    newReason.reason = reason;
16933    reason = newReason;
16934  }
16935  return cb(reason);
16936}
16937
16938function callbackify(original) {
16939  if (typeof original !== 'function') {
16940    throw new TypeError('The "original" argument must be of type Function');
16941  }
16942
16943  // We DO NOT return the promise as it gives the user a false sense that
16944  // the promise is actually somehow related to the callback's execution
16945  // and that the callback throwing will reject the promise.
16946  function callbackified() {
16947    var args = [];
16948    for (var i = 0; i < arguments.length; i++) {
16949      args.push(arguments[i]);
16950    }
16951
16952    var maybeCb = args.pop();
16953    if (typeof maybeCb !== 'function') {
16954      throw new TypeError('The last argument must be of type Function');
16955    }
16956    var self = this;
16957    var cb = function() {
16958      return maybeCb.apply(self, arguments);
16959    };
16960    // In true node style we process the callback on `nextTick` with all the
16961    // implications (stack, `uncaughtException`, `async_hooks`)
16962    original.apply(this, args)
16963      .then(function(ret) { process.nextTick(cb, null, ret) },
16964            function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });
16965  }
16966
16967  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));
16968  Object.defineProperties(callbackified,
16969                          getOwnPropertyDescriptors(original));
16970  return callbackified;
16971}
16972exports.callbackify = callbackify;
16973
16974/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57)))
16975
16976/***/ }),
16977/* 312 */
16978/***/ (function(module, exports, __webpack_require__) {
16979
16980exports = module.exports = __webpack_require__(732);
16981exports.Stream = exports;
16982exports.Readable = exports;
16983exports.Writable = __webpack_require__(471);
16984exports.Duplex = __webpack_require__(240);
16985exports.Transform = __webpack_require__(737);
16986exports.PassThrough = __webpack_require__(910);
16987
16988
16989/***/ }),
16990/* 313 */
16991/***/ (function(module, exports, __webpack_require__) {
16992
16993"use strict";
16994/* WEBPACK VAR INJECTION */(function(global) {/*!
16995 * The buffer module from node.js, for the browser.
16996 *
16997 * @author   Feross Aboukhadijeh <http://feross.org>
16998 * @license  MIT
16999 */
17000/* eslint-disable no-proto */
17001
17002
17003
17004var base64 = __webpack_require__(903)
17005var ieee754 = __webpack_require__(904)
17006var isArray = __webpack_require__(733
vendor: 6,472 bytes, lines 17006-17228
17006)
17007
17008exports.Buffer = Buffer
17009exports.SlowBuffer = SlowBuffer
17010exports.INSPECT_MAX_BYTES = 50
17011
17012/**
17013 * If `Buffer.TYPED_ARRAY_SUPPORT`:
17014 *   === true    Use Uint8Array implementation (fastest)
17015 *   === false   Use Object implementation (most compatible, even IE6)
17016 *
17017 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
17018 * Opera 11.6+, iOS 4.2+.
17019 *
17020 * Due to various browser bugs, sometimes the Object implementation will be used even
17021 * when the browser supports typed arrays.
17022 *
17023 * Note:
17024 *
17025 *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
17026 *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
17027 *
17028 *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
17029 *
17030 *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
17031 *     incorrect length in some situations.
17032
17033 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
17034 * get the Object implementation, which is slower but behaves correctly.
17035 */
17036Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
17037  ? global.TYPED_ARRAY_SUPPORT
17038  : typedArraySupport()
17039
17040/*
17041 * Export kMaxLength after typed array support is determined.
17042 */
17043exports.kMaxLength = kMaxLength()
17044
17045function typedArraySupport () {
17046  try {
17047    var arr = new Uint8Array(1)
17048    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
17049    return arr.foo() === 42 && // typed array instances can be augmented
17050        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
17051        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
17052  } catch (e) {
17053    return false
17054  }
17055}
17056
17057function kMaxLength () {
17058  return Buffer.TYPED_ARRAY_SUPPORT
17059    ? 0x7fffffff
17060    : 0x3fffffff
17061}
17062
17063function createBuffer (that, length) {
17064  if (kMaxLength() < length) {
17065    throw new RangeError('Invalid typed array length')
17066  }
17067  if (Buffer.TYPED_ARRAY_SUPPORT) {
17068    // Return an augmented `Uint8Array` instance, for best performance
17069    that = new Uint8Array(length)
17070    that.__proto__ = Buffer.prototype
17071  } else {
17072    // Fallback: Return an object instance of the Buffer class
17073    if (that === null) {
17074      that = new Buffer(length)
17075    }
17076    that.length = length
17077  }
17078
17079  return that
17080}
17081
17082/**
17083 * The Buffer constructor returns instances of `Uint8Array` that have their
17084 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
17085 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
17086 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
17087 * returns a single octet.
17088 *
17089 * The `Uint8Array` prototype remains unmodified.
17090 */
17091
17092function Buffer (arg, encodingOrOffset, length) {
17093  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
17094    return new Buffer(arg, encodingOrOffset, length)
17095  }
17096
17097  // Common case.
17098  if (typeof arg === 'number') {
17099    if (typeof encodingOrOffset === 'string') {
17100      throw new Error(
17101        'If encoding is specified then the first argument must be a string'
17102      )
17103    }
17104    return allocUnsafe(this, arg)
17105  }
17106  return from(this, arg, encodingOrOffset, length)
17107}
17108
17109Buffer.poolSize = 8192 // not used by this implementation
17110
17111// TODO: Legacy, not needed anymore. Remove in next major version.
17112Buffer._augment = function (arr) {
17113  arr.__proto__ = Buffer.prototype
17114  return arr
17115}
17116
17117function from (that, value, encodingOrOffset, length) {
17118  if (typeof value === 'number') {
17119    throw new TypeError('"value" argument must not be a number')
17120  }
17121
17122  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
17123    return fromArrayBuffer(that, value, encodingOrOffset, length)
17124  }
17125
17126  if (typeof value === 'string') {
17127    return fromString(that, value, encodingOrOffset)
17128  }
17129
17130  return fromObject(that, value)
17131}
17132
17133/**
17134 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
17135 * if value is a number.
17136 * Buffer.from(str[, encoding])
17137 * Buffer.from(array)
17138 * Buffer.from(buffer)
17139 * Buffer.from(arrayBuffer[, byteOffset[, length]])
17140 **/
17141Buffer.from = function (value, encodingOrOffset, length) {
17142  return from(null, value, encodingOrOffset, length)
17143}
17144
17145if (Buffer.TYPED_ARRAY_SUPPORT) {
17146  Buffer.prototype.__proto__ = Uint8Array.prototype
17147  Buffer.__proto__ = Uint8Array
17148  if (typeof Symbol !== 'undefined' && Symbol.species &&
17149      Buffer[Symbol.species] === Buffer) {
17150    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
17151    Object.defineProperty(Buffer, Symbol.species, {
17152      value: null,
17153      configurable: true
17154    })
17155  }
17156}
17157
17158function assertSize (size) {
17159  if (typeof size !== 'number') {
17160    throw new TypeError('"size" argument must be a number')
17161  } else if (size < 0) {
17162    throw new RangeError('"size" argument must not be negative')
17163  }
17164}
17165
17166function alloc (that, size, fill, encoding) {
17167  assertSize(size)
17168  if (size <= 0) {
17169    return createBuffer(that, size)
17170  }
17171  if (fill !== undefined) {
17172    // Only pay attention to encoding if it's a string. This
17173    // prevents accidentally sending in a number that would
17174    // be interpretted as a start offset.
17175    return typeof encoding === 'string'
17176      ? createBuffer(that, size).fill(fill, encoding)
17177      : createBuffer(that, size).fill(fill)
17178  }
17179  return createBuffer(that, size)
17180}
17181
17182/**
17183 * Creates a new filled Buffer instance.
17184 * alloc(size[, fill[, encoding]])
17185 **/
17186Buffer.alloc = function (size, fill, encoding) {
17187  return alloc(null, size, fill, encoding)
17188}
17189
17190function allocUnsafe (that, size) {
17191  assertSize(size)
17192  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
17193  if (!Buffer.TYPED_ARRAY_SUPPORT) {
17194    for (var i = 0; i < size; ++i) {
17195      that[i] = 0
17196    }
17197  }
17198  return that
17199}
17200
17201/**
17202 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
17203 * */
17204Buffer.allocUnsafe = function (size) {
17205  return allocUnsafe(null, size)
17206}
17207/**
17208 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
17209 */
17210Buffer.allocUnsafeSlow = function (size) {
17211  return allocUnsafe(null, size)
17212}
17213
17214function fromString (that, string, encoding) {
17215  if (typeof encoding !== 'string' || encoding === '') {
17216    encoding = 'utf8'
17217  }
17218
17219  if (!Buffer.isEncoding(encoding)) {
17220    throw new TypeError('"encoding" must be a valid string encoding')
17221  }
17222
17223  var length = byteLength(string, encoding) | 0
17224  that = createBuffer(that, length)
17225
17226  var actual = that.write(string, encoding)
17227
17228  if (actual !== length) {
vendor: 8,522 bytes, lines 17229-17576
17229    // Writing a hex string, for example, that contains invalid characters will
17230    // cause everything after the first invalid character to be ignored. (e.g.
17231    // 'abxxcd' will be treated as 'ab')
17232    that = that.slice(0, actual)
17233  }
17234
17235  return that
17236}
17237
17238function fromArrayLike (that, array) {
17239  var length = array.length < 0 ? 0 : checked(array.length) | 0
17240  that = createBuffer(that, length)
17241  for (var i = 0; i < length; i += 1) {
17242    that[i] = array[i] & 255
17243  }
17244  return that
17245}
17246
17247function fromArrayBuffer (that, array, byteOffset, length) {
17248  array.byteLength // this throws if `array` is not a valid ArrayBuffer
17249
17250  if (byteOffset < 0 || array.byteLength < byteOffset) {
17251    throw new RangeError('\'offset\' is out of bounds')
17252  }
17253
17254  if (array.byteLength < byteOffset + (length || 0)) {
17255    throw new RangeError('\'length\' is out of bounds')
17256  }
17257
17258  if (byteOffset === undefined && length === undefined) {
17259    array = new Uint8Array(array)
17260  } else if (length === undefined) {
17261    array = new Uint8Array(array, byteOffset)
17262  } else {
17263    array = new Uint8Array(array, byteOffset, length)
17264  }
17265
17266  if (Buffer.TYPED_ARRAY_SUPPORT) {
17267    // Return an augmented `Uint8Array` instance, for best performance
17268    that = array
17269    that.__proto__ = Buffer.prototype
17270  } else {
17271    // Fallback: Return an object instance of the Buffer class
17272    that = fromArrayLike(that, array)
17273  }
17274  return that
17275}
17276
17277function fromObject (that, obj) {
17278  if (Buffer.isBuffer(obj)) {
17279    var len = checked(obj.length) | 0
17280    that = createBuffer(that, len)
17281
17282    if (that.length === 0) {
17283      return that
17284    }
17285
17286    obj.copy(that, 0, 0, len)
17287    return that
17288  }
17289
17290  if (obj) {
17291    if ((typeof ArrayBuffer !== 'undefined' &&
17292        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
17293      if (typeof obj.length !== 'number' || isnan(obj.length)) {
17294        return createBuffer(that, 0)
17295      }
17296      return fromArrayLike(that, obj)
17297    }
17298
17299    if (obj.type === 'Buffer' && isArray(obj.data)) {
17300      return fromArrayLike(that, obj.data)
17301    }
17302  }
17303
17304  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
17305}
17306
17307function checked (length) {
17308  // Note: cannot use `length < kMaxLength()` here because that fails when
17309  // length is NaN (which is otherwise coerced to zero.)
17310  if (length >= kMaxLength()) {
17311    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
17312                         'size: 0x' + kMaxLength().toString(16) + ' bytes')
17313  }
17314  return length | 0
17315}
17316
17317function SlowBuffer (length) {
17318  if (+length != length) { // eslint-disable-line eqeqeq
17319    length = 0
17320  }
17321  return Buffer.alloc(+length)
17322}
17323
17324Buffer.isBuffer = function isBuffer (b) {
17325  return !!(b != null && b._isBuffer)
17326}
17327
17328Buffer.compare = function compare (a, b) {
17329  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
17330    throw new TypeError('Arguments must be Buffers')
17331  }
17332
17333  if (a === b) return 0
17334
17335  var x = a.length
17336  var y = b.length
17337
17338  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
17339    if (a[i] !== b[i]) {
17340      x = a[i]
17341      y = b[i]
17342      break
17343    }
17344  }
17345
17346  if (x < y) return -1
17347  if (y < x) return 1
17348  return 0
17349}
17350
17351Buffer.isEncoding = function isEncoding (encoding) {
17352  switch (String(encoding).toLowerCase()) {
17353    case 'hex':
17354    case 'utf8':
17355    case 'utf-8':
17356    case 'ascii':
17357    case 'latin1':
17358    case 'binary':
17359    case 'base64':
17360    case 'ucs2':
17361    case 'ucs-2':
17362    case 'utf16le':
17363    case 'utf-16le':
17364      return true
17365    default:
17366      return false
17367  }
17368}
17369
17370Buffer.concat = function concat (list, length) {
17371  if (!isArray(list)) {
17372    throw new TypeError('"list" argument must be an Array of Buffers')
17373  }
17374
17375  if (list.length === 0) {
17376    return Buffer.alloc(0)
17377  }
17378
17379  var i
17380  if (length === undefined) {
17381    length = 0
17382    for (i = 0; i < list.length; ++i) {
17383      length += list[i].length
17384    }
17385  }
17386
17387  var buffer = Buffer.allocUnsafe(length)
17388  var pos = 0
17389  for (i = 0; i < list.length; ++i) {
17390    var buf = list[i]
17391    if (!Buffer.isBuffer(buf)) {
17392      throw new TypeError('"list" argument must be an Array of Buffers')
17393    }
17394    buf.copy(buffer, pos)
17395    pos += buf.length
17396  }
17397  return buffer
17398}
17399
17400function byteLength (string, encoding) {
17401  if (Buffer.isBuffer(string)) {
17402    return string.length
17403  }
17404  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
17405      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
17406    return string.byteLength
17407  }
17408  if (typeof string !== 'string') {
17409    string = '' + string
17410  }
17411
17412  var len = string.length
17413  if (len === 0) return 0
17414
17415  // Use a for loop to avoid recursion
17416  var loweredCase = false
17417  for (;;) {
17418    switch (encoding) {
17419      case 'ascii':
17420      case 'latin1':
17421      case 'binary':
17422        return len
17423      case 'utf8':
17424      case 'utf-8':
17425      case undefined:
17426        return utf8ToBytes(string).length
17427      case 'ucs2':
17428      case 'ucs-2':
17429      case 'utf16le':
17430      case 'utf-16le':
17431        return len * 2
17432      case 'hex':
17433        return len >>> 1
17434      case 'base64':
17435        return base64ToBytes(string).length
17436      default:
17437        if (loweredCase) return utf8ToBytes(string).length // assume utf8
17438        encoding = ('' + encoding).toLowerCase()
17439        loweredCase = true
17440    }
17441  }
17442}
17443Buffer.byteLength = byteLength
17444
17445function slowToString (encoding, start, end) {
17446  var loweredCase = false
17447
17448  // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
17449  // property of a typed array.
17450
17451  // This behaves neither like String nor Uint8Array in that we set start/end
17452  // to their upper/lower bounds if the value passed is out of range.
17453  // undefined is handled specially as per ECMA-262 6th Edition,
17454  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
17455  if (start === undefined || start < 0) {
17456    start = 0
17457  }
17458  // Return early if start > this.length. Done here to prevent potential uint32
17459  // coercion fail below.
17460  if (start > this.length) {
17461    return ''
17462  }
17463
17464  if (end === undefined || end > this.length) {
17465    end = this.length
17466  }
17467
17468  if (end <= 0) {
17469    return ''
17470  }
17471
17472  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
17473  end >>>= 0
17474  start >>>= 0
17475
17476  if (end <= start) {
17477    return ''
17478  }
17479
17480  if (!encoding) encoding = 'utf8'
17481
17482  while (true) {
17483    switch (encoding) {
17484      case 'hex':
17485        return hexSlice(this, start, end)
17486
17487      case 'utf8':
17488      case 'utf-8':
17489        return utf8Slice(this, start, end)
17490
17491      case 'ascii':
17492        return asciiSlice(this, start, end)
17493
17494      case 'latin1':
17495      case 'binary':
17496        return latin1Slice(this, start, end)
17497
17498      case 'base64':
17499        return base64Slice(this, start, end)
17500
17501      case 'ucs2':
17502      case 'ucs-2':
17503      case 'utf16le':
17504      case 'utf-16le':
17505        return utf16leSlice(this, start, end)
17506
17507      default:
17508        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
17509        encoding = (encoding + '').toLowerCase()
17510        loweredCase = true
17511    }
17512  }
17513}
17514
17515// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
17516// Buffer instances.
17517Buffer.prototype._isBuffer = true
17518
17519function swap (b, n, m) {
17520  var i = b[n]
17521  b[n] = b[m]
17522  b[m] = i
17523}
17524
17525Buffer.prototype.swap16 = function swap16 () {
17526  var len = this.length
17527  if (len % 2 !== 0) {
17528    throw new RangeError('Buffer size must be a multiple of 16-bits')
17529  }
17530  for (var i = 0; i < len; i += 2) {
17531    swap(this, i, i + 1)
17532  }
17533  return this
17534}
17535
17536Buffer.prototype.swap32 = function swap32 () {
17537  var len = this.length
17538  if (len % 4 !== 0) {
17539    throw new RangeError('Buffer size must be a multiple of 32-bits')
17540  }
17541  for (var i = 0; i < len; i += 4) {
17542    swap(this, i, i + 3)
17543    swap(this, i + 1, i + 2)
17544  }
17545  return this
17546}
17547
17548Buffer.prototype.swap64 = function swap64 () {
17549  var len = this.length
17550  if (len % 8 !== 0) {
17551    throw new RangeError('Buffer size must be a multiple of 64-bits')
17552  }
17553  for (var i = 0; i < len; i += 8) {
17554    swap(this, i, i + 7)
17555    swap(this, i + 1, i + 6)
17556    swap(this, i + 2, i + 5)
17557    swap(this, i + 3, i + 4)
17558  }
17559  return this
17560}
17561
17562Buffer.prototype.toString = function toString () {
17563  var length = this.length | 0
17564  if (length === 0) return ''
17565  if (arguments.length === 0) return utf8Slice(this, 0, length)
17566  return slowToString.apply(this, arguments)
17567}
17568
17569Buffer.prototype.equals = function equals (b) {
17570  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
17571  if (this === b) return true
17572  return Buffer.compare(this, b) === 0
17573}
17574
17575Buffer.prototype.inspect = function inspect () {
17576  var str = ''
vendor: 2,989 bytes, lines 17577-17689
17577  var max = exports.INSPECT_MAX_BYTES
17578  if (this.length > 0) {
17579    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
17580    if (this.length > max) str += ' ... '
17581  }
17582  return '<Buffer ' + str + '>'
17583}
17584
17585Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
17586  if (!Buffer.isBuffer(target)) {
17587    throw new TypeError('Argument must be a Buffer')
17588  }
17589
17590  if (start === undefined) {
17591    start = 0
17592  }
17593  if (end === undefined) {
17594    end = target ? target.length : 0
17595  }
17596  if (thisStart === undefined) {
17597    thisStart = 0
17598  }
17599  if (thisEnd === undefined) {
17600    thisEnd = this.length
17601  }
17602
17603  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
17604    throw new RangeError('out of range index')
17605  }
17606
17607  if (thisStart >= thisEnd && start >= end) {
17608    return 0
17609  }
17610  if (thisStart >= thisEnd) {
17611    return -1
17612  }
17613  if (start >= end) {
17614    return 1
17615  }
17616
17617  start >>>= 0
17618  end >>>= 0
17619  thisStart >>>= 0
17620  thisEnd >>>= 0
17621
17622  if (this === target) return 0
17623
17624  var x = thisEnd - thisStart
17625  var y = end - start
17626  var len = Math.min(x, y)
17627
17628  var thisCopy = this.slice(thisStart, thisEnd)
17629  var targetCopy = target.slice(start, end)
17630
17631  for (var i = 0; i < len; ++i) {
17632    if (thisCopy[i] !== targetCopy[i]) {
17633      x = thisCopy[i]
17634      y = targetCopy[i]
17635      break
17636    }
17637  }
17638
17639  if (x < y) return -1
17640  if (y < x) return 1
17641  return 0
17642}
17643
17644// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
17645// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
17646//
17647// Arguments:
17648// - buffer - a Buffer to search
17649// - val - a string, Buffer, or number
17650// - byteOffset - an index into `buffer`; will be clamped to an int32
17651// - encoding - an optional encoding, relevant is val is a string
17652// - dir - true for indexOf, false for lastIndexOf
17653function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
17654  // Empty buffer means no match
17655  if (buffer.length === 0) return -1
17656
17657  // Normalize byteOffset
17658  if (typeof byteOffset === 'string') {
17659    encoding = byteOffset
17660    byteOffset = 0
17661  } else if (byteOffset > 0x7fffffff) {
17662    byteOffset = 0x7fffffff
17663  } else if (byteOffset < -0x80000000) {
17664    byteOffset = -0x80000000
17665  }
17666  byteOffset = +byteOffset  // Coerce to Number.
17667  if (isNaN(byteOffset)) {
17668    // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
17669    byteOffset = dir ? 0 : (buffer.length - 1)
17670  }
17671
17672  // Normalize byteOffset: negative offsets start from the end of the buffer
17673  if (byteOffset < 0) byteOffset = buffer.length + byteOffset
17674  if (byteOffset >= buffer.length) {
17675    if (dir) return -1
17676    else byteOffset = buffer.length - 1
17677  } else if (byteOffset < 0) {
17678    if (dir) byteOffset = 0
17679    else return -1
17680  }
17681
17682  // Normalize val
17683  if (typeof val === 'string') {
17684    val = Buffer.from(val, encoding)
17685  }
17686
17687  // Finally, search either indexOf (if dir is true) or lastIndexOf
17688  if (Buffer.isBuffer(val)) {
17689    // Special case: looking for empty string/buffer always fail
vendor: 30,332 bytes, lines 17689-18783
17689s
17690    if (val.length === 0) {
17691      return -1
17692    }
17693    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
17694  } else if (typeof val === 'number') {
17695    val = val & 0xFF // Search for a byte value [0-255]
17696    if (Buffer.TYPED_ARRAY_SUPPORT &&
17697        typeof Uint8Array.prototype.indexOf === 'function') {
17698      if (dir) {
17699        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
17700      } else {
17701        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
17702      }
17703    }
17704    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
17705  }
17706
17707  throw new TypeError('val must be string, number or Buffer')
17708}
17709
17710function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
17711  var indexSize = 1
17712  var arrLength = arr.length
17713  var valLength = val.length
17714
17715  if (encoding !== undefined) {
17716    encoding = String(encoding).toLowerCase()
17717    if (encoding === 'ucs2' || encoding === 'ucs-2' ||
17718        encoding === 'utf16le' || encoding === 'utf-16le') {
17719      if (arr.length < 2 || val.length < 2) {
17720        return -1
17721      }
17722      indexSize = 2
17723      arrLength /= 2
17724      valLength /= 2
17725      byteOffset /= 2
17726    }
17727  }
17728
17729  function read (buf, i) {
17730    if (indexSize === 1) {
17731      return buf[i]
17732    } else {
17733      return buf.readUInt16BE(i * indexSize)
17734    }
17735  }
17736
17737  var i
17738  if (dir) {
17739    var foundIndex = -1
17740    for (i = byteOffset; i < arrLength; i++) {
17741      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
17742        if (foundIndex === -1) foundIndex = i
17743        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
17744      } else {
17745        if (foundIndex !== -1) i -= i - foundIndex
17746        foundIndex = -1
17747      }
17748    }
17749  } else {
17750    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
17751    for (i = byteOffset; i >= 0; i--) {
17752      var found = true
17753      for (var j = 0; j < valLength; j++) {
17754        if (read(arr, i + j) !== read(val, j)) {
17755          found = false
17756          break
17757        }
17758      }
17759      if (found) return i
17760    }
17761  }
17762
17763  return -1
17764}
17765
17766Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
17767  return this.indexOf(val, byteOffset, encoding) !== -1
17768}
17769
17770Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
17771  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
17772}
17773
17774Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
17775  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
17776}
17777
17778function hexWrite (buf, string, offset, length) {
17779  offset = Number(offset) || 0
17780  var remaining = buf.length - offset
17781  if (!length) {
17782    length = remaining
17783  } else {
17784    length = Number(length)
17785    if (length > remaining) {
17786      length = remaining
17787    }
17788  }
17789
17790  // must be an even number of digits
17791  var strLen = string.length
17792  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
17793
17794  if (length > strLen / 2) {
17795    length = strLen / 2
17796  }
17797  for (var i = 0; i < length; ++i) {
17798    var parsed = parseInt(string.substr(i * 2, 2), 16)
17799    if (isNaN(parsed)) return i
17800    buf[offset + i] = parsed
17801  }
17802  return i
17803}
17804
17805function utf8Write (buf, string, offset, length) {
17806  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
17807}
17808
17809function asciiWrite (buf, string, offset, length) {
17810  return blitBuffer(asciiToBytes(string), buf, offset, length)
17811}
17812
17813function latin1Write (buf, string, offset, length) {
17814  return asciiWrite(buf, string, offset, length)
17815}
17816
17817function base64Write (buf, string, offset, length) {
17818  return blitBuffer(base64ToBytes(string), buf, offset, length)
17819}
17820
17821function ucs2Write (buf, string, offset, length) {
17822  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
17823}
17824
17825Buffer.prototype.write = function write (string, offset, length, encoding) {
17826  // Buffer#write(string)
17827  if (offset === undefined) {
17828    encoding = 'utf8'
17829    length = this.length
17830    offset = 0
17831  // Buffer#write(string, encoding)
17832  } else if (length === undefined && typeof offset === 'string') {
17833    encoding = offset
17834    length = this.length
17835    offset = 0
17836  // Buffer#write(string, offset[, length][, encoding])
17837  } else if (isFinite(offset)) {
17838    offset = offset | 0
17839    if (isFinite(length)) {
17840      length = length | 0
17841      if (encoding === undefined) encoding = 'utf8'
17842    } else {
17843      encoding = length
17844      length = undefined
17845    }
17846  // legacy write(string, encoding, offset, length) - remove in v0.13
17847  } else {
17848    throw new Error(
17849      'Buffer.write(string, encoding, offset[, length]) is no longer supported'
17850    )
17851  }
17852
17853  var remaining = this.length - offset
17854  if (length === undefined || length > remaining) length = remaining
17855
17856  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
17857    throw new RangeError('Attempt to write outside buffer bounds')
17858  }
17859
17860  if (!encoding) encoding = 'utf8'
17861
17862  var loweredCase = false
17863  for (;;) {
17864    switch (encoding) {
17865      case 'hex':
17866        return hexWrite(this, string, offset, length)
17867
17868      case 'utf8':
17869      case 'utf-8':
17870        return utf8Write(this, string, offset, length)
17871
17872      case 'ascii':
17873        return asciiWrite(this, string, offset, length)
17874
17875      case 'latin1':
17876      case 'binary':
17877        return latin1Write(this, string, offset, length)
17878
17879      case 'base64':
17880        // Warning: maxLength not taken into account in base64Write
17881        return base64Write(this, string, offset, length)
17882
17883      case 'ucs2':
17884      case 'ucs-2':
17885      case 'utf16le':
17886      case 'utf-16le':
17887        return ucs2Write(this, string, offset, length)
17888
17889      default:
17890        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
17891        encoding = ('' + encoding).toLowerCase()
17892        loweredCase = true
17893    }
17894  }
17895}
17896
17897Buffer.prototype.toJSON = function toJSON () {
17898  return {
17899    type: 'Buffer',
17900    data: Array.prototype.slice.call(this._arr || this, 0)
17901  }
17902}
17903
17904function base64Slice (buf, start, end) {
17905  if (start === 0 && end === buf.length) {
17906    return base64.fromByteArray(buf)
17907  } else {
17908    return base64.fromByteArray(buf.slice(start, end))
17909  }
17910}
17911
17912function utf8Slice (buf, start, end) {
17913  end = Math.min(buf.length, end)
17914  var res = []
17915
17916  var i = start
17917  while (i < end) {
17918    var firstByte = buf[i]
17919    var codePoint = null
17920    var bytesPerSequence = (firstByte > 0xEF) ? 4
17921      : (firstByte > 0xDF) ? 3
17922      : (firstByte > 0xBF) ? 2
17923      : 1
17924
17925    if (i + bytesPerSequence <= end) {
17926      var secondByte, thirdByte, fourthByte, tempCodePoint
17927
17928      switch (bytesPerSequence) {
17929        case 1:
17930          if (firstByte < 0x80) {
17931            codePoint = firstByte
17932          }
17933          break
17934        case 2:
17935          secondByte = buf[i + 1]
17936          if ((secondByte & 0xC0) === 0x80) {
17937            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
17938            if (tempCodePoint > 0x7F) {
17939              codePoint = tempCodePoint
17940            }
17941          }
17942          break
17943        case 3:
17944          secondByte = buf[i + 1]
17945          thirdByte = buf[i + 2]
17946          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
17947            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
17948            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
17949              codePoint = tempCodePoint
17950            }
17951          }
17952          break
17953        case 4:
17954          secondByte = buf[i + 1]
17955          thirdByte = buf[i + 2]
17956          fourthByte = buf[i + 3]
17957          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
17958            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
17959            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
17960              codePoint = tempCodePoint
17961            }
17962          }
17963      }
17964    }
17965
17966    if (codePoint === null) {
17967      // we did not generate a valid codePoint so insert a
17968      // replacement char (U+FFFD) and advance only 1 byte
17969      codePoint = 0xFFFD
17970      bytesPerSequence = 1
17971    } else if (codePoint > 0xFFFF) {
17972      // encode to utf16 (surrogate pair dance)
17973      codePoint -= 0x10000
17974      res.push(codePoint >>> 10 & 0x3FF | 0xD800)
17975      codePoint = 0xDC00 | codePoint & 0x3FF
17976    }
17977
17978    res.push(codePoint)
17979    i += bytesPerSequence
17980  }
17981
17982  return decodeCodePointsArray(res)
17983}
17984
17985// Based on http://stackoverflow.com/a/22747272/680742, the browser with
17986// the lowest limit is Chrome, with 0x10000 args.
17987// We go 1 magnitude less, for safety
17988var MAX_ARGUMENTS_LENGTH = 0x1000
17989
17990function decodeCodePointsArray (codePoints) {
17991  var len = codePoints.length
17992  if (len <= MAX_ARGUMENTS_LENGTH) {
17993    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
17994  }
17995
17996  // Decode in chunks to avoid "call stack size exceeded".
17997  var res = ''
17998  var i = 0
17999  while (i < len) {
18000    res += String.fromCharCode.apply(
18001      String,
18002      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
18003    )
18004  }
18005  return res
18006}
18007
18008function asciiSlice (buf, start, end) {
18009  var ret = ''
18010  end = Math.min(buf.length, end)
18011
18012  for (var i = start; i < end; ++i) {
18013    ret += String.fromCharCode(buf[i] & 0x7F)
18014  }
18015  return ret
18016}
18017
18018function latin1Slice (buf, start, end) {
18019  var ret = ''
18020  end = Math.min(buf.length, end)
18021
18022  for (var i = start; i < end; ++i) {
18023    ret += String.fromCharCode(buf[i])
18024  }
18025  return ret
18026}
18027
18028function hexSlice (buf, start, end) {
18029  var len = buf.length
18030
18031  if (!start || start < 0) start = 0
18032  if (!end || end < 0 || end > len) end = len
18033
18034  var out = ''
18035  for (var i = start; i < end; ++i) {
18036    out += toHex(buf[i])
18037  }
18038  return out
18039}
18040
18041function utf16leSlice (buf, start, end) {
18042  var bytes = buf.slice(start, end)
18043  var res = ''
18044  for (var i = 0; i < bytes.length; i += 2) {
18045    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
18046  }
18047  return res
18048}
18049
18050Buffer.prototype.slice = function slice (start, end) {
18051  var len = this.length
18052  start = ~~start
18053  end = end === undefined ? len : ~~end
18054
18055  if (start < 0) {
18056    start += len
18057    if (start < 0) start = 0
18058  } else if (start > len) {
18059    start = len
18060  }
18061
18062  if (end < 0) {
18063    end += len
18064    if (end < 0) end = 0
18065  } else if (end > len) {
18066    end = len
18067  }
18068
18069  if (end < start) end = start
18070
18071  var newBuf
18072  if (Buffer.TYPED_ARRAY_SUPPORT) {
18073    newBuf = this.subarray(start, end)
18074    newBuf.__proto__ = Buffer.prototype
18075  } else {
18076    var sliceLen = end - start
18077    newBuf = new Buffer(sliceLen, undefined)
18078    for (var i = 0; i < sliceLen; ++i) {
18079      newBuf[i] = this[i + start]
18080    }
18081  }
18082
18083  return newBuf
18084}
18085
18086/*
18087 * Need to make sure that buffer isn't trying to write out of bounds.
18088 */
18089function checkOffset (offset, ext, length) {
18090  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
18091  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
18092}
18093
18094Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
18095  offset = offset | 0
18096  byteLength = byteLength | 0
18097  if (!noAssert) checkOffset(offset, byteLength, this.length)
18098
18099  var val = this[offset]
18100  var mul = 1
18101  var i = 0
18102  while (++i < byteLength && (mul *= 0x100)) {
18103    val += this[offset + i] * mul
18104  }
18105
18106  return val
18107}
18108
18109Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
18110  offset = offset | 0
18111  byteLength = byteLength | 0
18112  if (!noAssert) {
18113    checkOffset(offset, byteLength, this.length)
18114  }
18115
18116  var val = this[offset + --byteLength]
18117  var mul = 1
18118  while (byteLength > 0 && (mul *= 0x100)) {
18119    val += this[offset + --byteLength] * mul
18120  }
18121
18122  return val
18123}
18124
18125Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
18126  if (!noAssert) checkOffset(offset, 1, this.length)
18127  return this[offset]
18128}
18129
18130Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
18131  if (!noAssert) checkOffset(offset, 2, this.length)
18132  return this[offset] | (this[offset + 1] << 8)
18133}
18134
18135Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
18136  if (!noAssert) checkOffset(offset, 2, this.length)
18137  return (this[offset] << 8) | this[offset + 1]
18138}
18139
18140Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
18141  if (!noAssert) checkOffset(offset, 4, this.length)
18142
18143  return ((this[offset]) |
18144      (this[offset + 1] << 8) |
18145      (this[offset + 2] << 16)) +
18146      (this[offset + 3] * 0x1000000)
18147}
18148
18149Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
18150  if (!noAssert) checkOffset(offset, 4, this.length)
18151
18152  return (this[offset] * 0x1000000) +
18153    ((this[offset + 1] << 16) |
18154    (this[offset + 2] << 8) |
18155    this[offset + 3])
18156}
18157
18158Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
18159  offset = offset | 0
18160  byteLength = byteLength | 0
18161  if (!noAssert) checkOffset(offset, byteLength, this.length)
18162
18163  var val = this[offset]
18164  var mul = 1
18165  var i = 0
18166  while (++i < byteLength && (mul *= 0x100)) {
18167    val += this[offset + i] * mul
18168  }
18169  mul *= 0x80
18170
18171  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
18172
18173  return val
18174}
18175
18176Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
18177  offset = offset | 0
18178  byteLength = byteLength | 0
18179  if (!noAssert) checkOffset(offset, byteLength, this.length)
18180
18181  var i = byteLength
18182  var mul = 1
18183  var val = this[offset + --i]
18184  while (i > 0 && (mul *= 0x100)) {
18185    val += this[offset + --i] * mul
18186  }
18187  mul *= 0x80
18188
18189  if (val >= mul) val -= Math.pow(2, 8 * byteLength)
18190
18191  return val
18192}
18193
18194Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
18195  if (!noAssert) checkOffset(offset, 1, this.length)
18196  if (!(this[offset] & 0x80)) return (this[offset])
18197  return ((0xff - this[offset] + 1) * -1)
18198}
18199
18200Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
18201  if (!noAssert) checkOffset(offset, 2, this.length)
18202  var val = this[offset] | (this[offset + 1] << 8)
18203  return (val & 0x8000) ? val | 0xFFFF0000 : val
18204}
18205
18206Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
18207  if (!noAssert) checkOffset(offset, 2, this.length)
18208  var val = this[offset + 1] | (this[offset] << 8)
18209  return (val & 0x8000) ? val | 0xFFFF0000 : val
18210}
18211
18212Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
18213  if (!noAssert) checkOffset(offset, 4, this.length)
18214
18215  return (this[offset]) |
18216    (this[offset + 1] << 8) |
18217    (this[offset + 2] << 16) |
18218    (this[offset + 3] << 24)
18219}
18220
18221Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
18222  if (!noAssert) checkOffset(offset, 4, this.length)
18223
18224  return (this[offset] << 24) |
18225    (this[offset + 1] << 16) |
18226    (this[offset + 2] << 8) |
18227    (this[offset + 3])
18228}
18229
18230Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
18231  if (!noAssert) checkOffset(offset, 4, this.length)
18232  return ieee754.read(this, offset, true, 23, 4)
18233}
18234
18235Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
18236  if (!noAssert) checkOffset(offset, 4, this.length)
18237  return ieee754.read(this, offset, false, 23, 4)
18238}
18239
18240Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
18241  if (!noAssert) checkOffset(offset, 8, this.length)
18242  return ieee754.read(this, offset, true, 52, 8)
18243}
18244
18245Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
18246  if (!noAssert) checkOffset(offset, 8, this.length)
18247  return ieee754.read(this, offset, false, 52, 8)
18248}
18249
18250function checkInt (buf, value, offset, ext, max, min) {
18251  if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
18252  if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
18253  if (offset + ext > buf.length) throw new RangeError('Index out of range')
18254}
18255
18256Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
18257  value = +value
18258  offset = offset | 0
18259  byteLength = byteLength | 0
18260  if (!noAssert) {
18261    var maxBytes = Math.pow(2, 8 * byteLength) - 1
18262    checkInt(this, value, offset, byteLength, maxBytes, 0)
18263  }
18264
18265  var mul = 1
18266  var i = 0
18267  this[offset] = value & 0xFF
18268  while (++i < byteLength && (mul *= 0x100)) {
18269    this[offset + i] = (value / mul) & 0xFF
18270  }
18271
18272  return offset + byteLength
18273}
18274
18275Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
18276  value = +value
18277  offset = offset | 0
18278  byteLength = byteLength | 0
18279  if (!noAssert) {
18280    var maxBytes = Math.pow(2, 8 * byteLength) - 1
18281    checkInt(this, value, offset, byteLength, maxBytes, 0)
18282  }
18283
18284  var i = byteLength - 1
18285  var mul = 1
18286  this[offset + i] = value & 0xFF
18287  while (--i >= 0 && (mul *= 0x100)) {
18288    this[offset + i] = (value / mul) & 0xFF
18289  }
18290
18291  return offset + byteLength
18292}
18293
18294Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
18295  value = +value
18296  offset = offset | 0
18297  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
18298  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
18299  this[offset] = (value & 0xff)
18300  return offset + 1
18301}
18302
18303function objectWriteUInt16 (buf, value, offset, littleEndian) {
18304  if (value < 0) value = 0xffff + value + 1
18305  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
18306    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
18307      (littleEndian ? i : 1 - i) * 8
18308  }
18309}
18310
18311Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
18312  value = +value
18313  offset = offset | 0
18314  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
18315  if (Buffer.TYPED_ARRAY_SUPPORT) {
18316    this[offset] = (value & 0xff)
18317    this[offset + 1] = (value >>> 8)
18318  } else {
18319    objectWriteUInt16(this, value, offset, true)
18320  }
18321  return offset + 2
18322}
18323
18324Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
18325  value = +value
18326  offset = offset | 0
18327  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
18328  if (Buffer.TYPED_ARRAY_SUPPORT) {
18329    this[offset] = (value >>> 8)
18330    this[offset + 1] = (value & 0xff)
18331  } else {
18332    objectWriteUInt16(this, value, offset, false)
18333  }
18334  return offset + 2
18335}
18336
18337function objectWriteUInt32 (buf, value, offset, littleEndian) {
18338  if (value < 0) value = 0xffffffff + value + 1
18339  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
18340    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
18341  }
18342}
18343
18344Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
18345  value = +value
18346  offset = offset | 0
18347  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
18348  if (Buffer.TYPED_ARRAY_SUPPORT) {
18349    this[offset + 3] = (value >>> 24)
18350    this[offset + 2] = (value >>> 16)
18351    this[offset + 1] = (value >>> 8)
18352    this[offset] = (value & 0xff)
18353  } else {
18354    objectWriteUInt32(this, value, offset, true)
18355  }
18356  return offset + 4
18357}
18358
18359Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
18360  value = +value
18361  offset = offset | 0
18362  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
18363  if (Buffer.TYPED_ARRAY_SUPPORT) {
18364    this[offset] = (value >>> 24)
18365    this[offset + 1] = (value >>> 16)
18366    this[offset + 2] = (value >>> 8)
18367    this[offset + 3] = (value & 0xff)
18368  } else {
18369    objectWriteUInt32(this, value, offset, false)
18370  }
18371  return offset + 4
18372}
18373
18374Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
18375  value = +value
18376  offset = offset | 0
18377  if (!noAssert) {
18378    var limit = Math.pow(2, 8 * byteLength - 1)
18379
18380    checkInt(this, value, offset, byteLength, limit - 1, -limit)
18381  }
18382
18383  var i = 0
18384  var mul = 1
18385  var sub = 0
18386  this[offset] = value & 0xFF
18387  while (++i < byteLength && (mul *= 0x100)) {
18388    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
18389      sub = 1
18390    }
18391    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
18392  }
18393
18394  return offset + byteLength
18395}
18396
18397Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
18398  value = +value
18399  offset = offset | 0
18400  if (!noAssert) {
18401    var limit = Math.pow(2, 8 * byteLength - 1)
18402
18403    checkInt(this, value, offset, byteLength, limit - 1, -limit)
18404  }
18405
18406  var i = byteLength - 1
18407  var mul = 1
18408  var sub = 0
18409  this[offset + i] = value & 0xFF
18410  while (--i >= 0 && (mul *= 0x100)) {
18411    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
18412      sub = 1
18413    }
18414    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
18415  }
18416
18417  return offset + byteLength
18418}
18419
18420Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
18421  value = +value
18422  offset = offset | 0
18423  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
18424  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
18425  if (value < 0) value = 0xff + value + 1
18426  this[offset] = (value & 0xff)
18427  return offset + 1
18428}
18429
18430Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
18431  value = +value
18432  offset = offset | 0
18433  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
18434  if (Buffer.TYPED_ARRAY_SUPPORT) {
18435    this[offset] = (value & 0xff)
18436    this[offset + 1] = (value >>> 8)
18437  } else {
18438    objectWriteUInt16(this, value, offset, true)
18439  }
18440  return offset + 2
18441}
18442
18443Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
18444  value = +value
18445  offset = offset | 0
18446  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
18447  if (Buffer.TYPED_ARRAY_SUPPORT) {
18448    this[offset] = (value >>> 8)
18449    this[offset + 1] = (value & 0xff)
18450  } else {
18451    objectWriteUInt16(this, value, offset, false)
18452  }
18453  return offset + 2
18454}
18455
18456Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
18457  value = +value
18458  offset = offset | 0
18459  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
18460  if (Buffer.TYPED_ARRAY_SUPPORT) {
18461    this[offset] = (value & 0xff)
18462    this[offset + 1] = (value >>> 8)
18463    this[offset + 2] = (value >>> 16)
18464    this[offset + 3] = (value >>> 24)
18465  } else {
18466    objectWriteUInt32(this, value, offset, true)
18467  }
18468  return offset + 4
18469}
18470
18471Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
18472  value = +value
18473  offset = offset | 0
18474  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
18475  if (value < 0) value = 0xffffffff + value + 1
18476  if (Buffer.TYPED_ARRAY_SUPPORT) {
18477    this[offset] = (value >>> 24)
18478    this[offset + 1] = (value >>> 16)
18479    this[offset + 2] = (value >>> 8)
18480    this[offset + 3] = (value & 0xff)
18481  } else {
18482    objectWriteUInt32(this, value, offset, false)
18483  }
18484  return offset + 4
18485}
18486
18487function checkIEEE754 (buf, value, offset, ext, max, min) {
18488  if (offset + ext > buf.length) throw new RangeError('Index out of range')
18489  if (offset < 0) throw new RangeError('Index out of range')
18490}
18491
18492function writeFloat (buf, value, offset, littleEndian, noAssert) {
18493  if (!noAssert) {
18494    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
18495  }
18496  ieee754.write(buf, value, offset, littleEndian, 23, 4)
18497  return offset + 4
18498}
18499
18500Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
18501  return writeFloat(this, value, offset, true, noAssert)
18502}
18503
18504Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
18505  return writeFloat(this, value, offset, false, noAssert)
18506}
18507
18508function writeDouble (buf, value, offset, littleEndian, noAssert) {
18509  if (!noAssert) {
18510    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
18511  }
18512  ieee754.write(buf, value, offset, littleEndian, 52, 8)
18513  return offset + 8
18514}
18515
18516Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
18517  return writeDouble(this, value, offset, true, noAssert)
18518}
18519
18520Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
18521  return writeDouble(this, value, offset, false, noAssert)
18522}
18523
18524// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
18525Buffer.prototype.copy = function copy (target, targetStart, start, end) {
18526  if (!start) start = 0
18527  if (!end && end !== 0) end = this.length
18528  if (targetStart >= target.length) targetStart = target.length
18529  if (!targetStart) targetStart = 0
18530  if (end > 0 && end < start) end = start
18531
18532  // Copy 0 bytes; we're done
18533  if (end === start) return 0
18534  if (target.length === 0 || this.length === 0) return 0
18535
18536  // Fatal error conditions
18537  if (targetStart < 0) {
18538    throw new RangeError('targetStart out of bounds')
18539  }
18540  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
18541  if (end < 0) throw new RangeError('sourceEnd out of bounds')
18542
18543  // Are we oob?
18544  if (end > this.length) end = this.length
18545  if (target.length - targetStart < end - start) {
18546    end = target.length - targetStart + start
18547  }
18548
18549  var len = end - start
18550  var i
18551
18552  if (this === target && start < targetStart && targetStart < end) {
18553    // descending copy from end
18554    for (i = len - 1; i >= 0; --i) {
18555      target[i + targetStart] = this[i + start]
18556    }
18557  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
18558    // ascending copy from start
18559    for (i = 0; i < len; ++i) {
18560      target[i + targetStart] = this[i + start]
18561    }
18562  } else {
18563    Uint8Array.prototype.set.call(
18564      target,
18565      this.subarray(start, start + len),
18566      targetStart
18567    )
18568  }
18569
18570  return len
18571}
18572
18573// Usage:
18574//    buffer.fill(number[, offset[, end]])
18575//    buffer.fill(buffer[, offset[, end]])
18576//    buffer.fill(string[, offset[, end]][, encoding])
18577Buffer.prototype.fill = function fill (val, start, end, encoding) {
18578  // Handle string cases:
18579  if (typeof val === 'string') {
18580    if (typeof start === 'string') {
18581      encoding = start
18582      start = 0
18583      end = this.length
18584    } else if (typeof end === 'string') {
18585      encoding = end
18586      end = this.length
18587    }
18588    if (val.length === 1) {
18589      var code = val.charCodeAt(0)
18590      if (code < 256) {
18591        val = code
18592      }
18593    }
18594    if (encoding !== undefined && typeof encoding !== 'string') {
18595      throw new TypeError('encoding must be a string')
18596    }
18597    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
18598      throw new TypeError('Unknown encoding: ' + encoding)
18599    }
18600  } else if (typeof val === 'number') {
18601    val = val & 255
18602  }
18603
18604  // Invalid ranges are not set to a default, so can range check early.
18605  if (start < 0 || this.length < start || this.length < end) {
18606    throw new RangeError('Out of range index')
18607  }
18608
18609  if (end <= start) {
18610    return this
18611  }
18612
18613  start = start >>> 0
18614  end = end === undefined ? this.length : end >>> 0
18615
18616  if (!val) val = 0
18617
18618  var i
18619  if (typeof val === 'number') {
18620    for (i = start; i < end; ++i) {
18621      this[i] = val
18622    }
18623  } else {
18624    var bytes = Buffer.isBuffer(val)
18625      ? val
18626      : utf8ToBytes(new Buffer(val, encoding).toString())
18627    var len = bytes.length
18628    for (i = 0; i < end - start; ++i) {
18629      this[i + start] = bytes[i % len]
18630    }
18631  }
18632
18633  return this
18634}
18635
18636// HELPER FUNCTIONS
18637// ================
18638
18639var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
18640
18641function base64clean (str) {
18642  // Node strips out invalid characters like \n and \t from the string, base64-js does not
18643  str = stringtrim(str).replace(INVALID_BASE64_RE, '')
18644  // Node converts strings with length < 2 to ''
18645  if (str.length < 2) return ''
18646  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
18647  while (str.length % 4 !== 0) {
18648    str = str + '='
18649  }
18650  return str
18651}
18652
18653function stringtrim (str) {
18654  if (str.trim) return str.trim()
18655  return str.replace(/^\s+|\s+$/g, '')
18656}
18657
18658function toHex (n) {
18659  if (n < 16) return '0' + n.toString(16)
18660  return n.toString(16)
18661}
18662
18663function utf8ToBytes (string, units) {
18664  units = units || Infinity
18665  var codePoint
18666  var length = string.length
18667  var leadSurrogate = null
18668  var bytes = []
18669
18670  for (var i = 0; i < length; ++i) {
18671    codePoint = string.charCodeAt(i)
18672
18673    // is surrogate component
18674    if (codePoint > 0xD7FF && codePoint < 0xE000) {
18675      // last char was a lead
18676      if (!leadSurrogate) {
18677        // no lead yet
18678        if (codePoint > 0xDBFF) {
18679          // unexpected trail
18680          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
18681          continue
18682        } else if (i + 1 === length) {
18683          // unpaired lead
18684          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
18685          continue
18686        }
18687
18688        // valid lead
18689        leadSurrogate = codePoint
18690
18691        continue
18692      }
18693
18694      // 2 leads in a row
18695      if (codePoint < 0xDC00) {
18696        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
18697        leadSurrogate = codePoint
18698        continue
18699      }
18700
18701      // valid surrogate pair
18702      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
18703    } else if (leadSurrogate) {
18704      // valid bmp char, but last char was a lead
18705      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
18706    }
18707
18708    leadSurrogate = null
18709
18710    // encode utf8
18711    if (codePoint < 0x80) {
18712      if ((units -= 1) < 0) break
18713      bytes.push(codePoint)
18714    } else if (codePoint < 0x800) {
18715      if ((units -= 2) < 0) break
18716      bytes.push(
18717        codePoint >> 0x6 | 0xC0,
18718        codePoint & 0x3F | 0x80
18719      )
18720    } else if (codePoint < 0x10000) {
18721      if ((units -= 3) < 0) break
18722      bytes.push(
18723        codePoint >> 0xC | 0xE0,
18724        codePoint >> 0x6 & 0x3F | 0x80,
18725        codePoint & 0x3F | 0x80
18726      )
18727    } else if (codePoint < 0x110000) {
18728      if ((units -= 4) < 0) break
18729      bytes.push(
18730        codePoint >> 0x12 | 0xF0,
18731        codePoint >> 0xC & 0x3F | 0x80,
18732        codePoint >> 0x6 & 0x3F | 0x80,
18733        codePoint & 0x3F | 0x80
18734      )
18735    } else {
18736      throw new Error('Invalid code point')
18737    }
18738  }
18739
18740  return bytes
18741}
18742
18743function asciiToBytes (str) {
18744  var byteArray = []
18745  for (var i = 0; i < str.length; ++i) {
18746    // Node's code seems to be doing this and not & 0x7F..
18747    byteArray.push(str.charCodeAt(i) & 0xFF)
18748  }
18749  return byteArray
18750}
18751
18752function utf16leToBytes (str, units) {
18753  var c, hi, lo
18754  var byteArray = []
18755  for (var i = 0; i < str.length; ++i) {
18756    if ((units -= 2) < 0) break
18757
18758    c = str.charCodeAt(i)
18759    hi = c >> 8
18760    lo = c % 256
18761    byteArray.push(lo)
18762    byteArray.push(hi)
18763  }
18764
18765  return byteArray
18766}
18767
18768function base64ToBytes (str) {
18769  return base64.toByteArray(base64clean(str))
18770}
18771
18772function blitBuffer (src, dst, offset, length) {
18773  for (var i = 0; i < length; ++i) {
18774    if ((i + offset >= dst.length) || (i >= src.length)) break
18775    dst[i + offset] = src[i]
18776  }
18777  return i
18778}
18779
18780function isnan (val) {
18781  return val !== val // eslint-disable-line no-self-compare
18782}
18783
vendor: 3,287 bytes, lines 18784-18899
18784/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
18785
18786/***/ }),
18787/* 314 */
18788/***/ (function(module, exports, __webpack_require__) {
18789
18790/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.
18791//
18792// Permission is hereby granted, free of charge, to any person obtaining a
18793// copy of this software and associated documentation files (the
18794// "Software"), to deal in the Software without restriction, including
18795// without limitation the rights to use, copy, modify, merge, publish,
18796// distribute, sublicense, and/or sell copies of the Software, and to permit
18797// persons to whom the Software is furnished to do so, subject to the
18798// following conditions:
18799//
18800// The above copyright notice and this permission notice shall be included
18801// in all copies or substantial portions of the Software.
18802//
18803// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18804// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18805// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
18806// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18807// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18808// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
18809// USE OR OTHER DEALINGS IN THE SOFTWARE.
18810
18811// NOTE: These type checking functions intentionally don't use `instanceof`
18812// because it is fragile and can be easily faked with `Object.create()`.
18813
18814function isArray(arg) {
18815  if (Array.isArray) {
18816    return Array.isArray(arg);
18817  }
18818  return objectToString(arg) === '[object Array]';
18819}
18820exports.isArray = isArray;
18821
18822function isBoolean(arg) {
18823  return typeof arg === 'boolean';
18824}
18825exports.isBoolean = isBoolean;
18826
18827function isNull(arg) {
18828  return arg === null;
18829}
18830exports.isNull = isNull;
18831
18832function isNullOrUndefined(arg) {
18833  return arg == null;
18834}
18835exports.isNullOrUndefined = isNullOrUndefined;
18836
18837function isNumber(arg) {
18838  return typeof arg === 'number';
18839}
18840exports.isNumber = isNumber;
18841
18842function isString(arg) {
18843  return typeof arg === 'string';
18844}
18845exports.isString = isString;
18846
18847function isSymbol(arg) {
18848  return typeof arg === 'symbol';
18849}
18850exports.isSymbol = isSymbol;
18851
18852function isUndefined(arg) {
18853  return arg === void 0;
18854}
18855exports.isUndefined = isUndefined;
18856
18857function isRegExp(re) {
18858  return objectToString(re) === '[object RegExp]';
18859}
18860exports.isRegExp = isRegExp;
18861
18862function isObject(arg) {
18863  return typeof arg === 'object' && arg !== null;
18864}
18865exports.isObject = isObject;
18866
18867function isDate(d) {
18868  return objectToString(d) === '[object Date]';
18869}
18870exports.isDate = isDate;
18871
18872function isError(e) {
18873  return (objectToString(e) === '[object Error]' || e instanceof Error);
18874}
18875exports.isError = isError;
18876
18877function isFunction(arg) {
18878  return typeof arg === 'function';
18879}
18880exports.isFunction = isFunction;
18881
18882function isPrimitive(arg) {
18883  return arg === null ||
18884         typeof arg === 'boolean' ||
18885         typeof arg === 'number' ||
18886         typeof arg === 'string' ||
18887         typeof arg === 'symbol' ||  // ES6 symbol
18888         typeof arg === 'undefined';
18889}
18890exports.isPrimitive = isPrimitive;
18891
18892exports.isBuffer = Buffer.isBuffer;
18893
18894function objectToString(o) {
18895  return Object.prototype.toString.call(o);
18896}
18897
18898/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(113).Buffer))
18899
18900/***/ }),
18901/* 315 */
18902/***/ (function(module, exports, __webpack_require__) {
18903
18904// extracted by mini-css-extract-plugin
18905module.exports = {"analyticsFrame":"AnalyticsProvider-module__analyticsFrame--2zWta"};
18906
18907/***/ }),
18908/* 316 */,
18909/* 317 */
18910/***/ (function(module, exports, __webpack_require__) {
18911
18912/* WEBPACK VAR INJECTION */(function(global) {var ClientRequest = __webpack_require__(915)
18913var response = __webpack_require__(739)
18914var extend = __webpack_require__(917)
18915var statusCodes = __webpack_require__(918)
18916var url = __webpack_require__(246)
18917
18918var http = exports
18919
18920http.request = function (opts, cb) {
18921	if (typeof opts === 'string')
18922		opts = url.parse(opts)
18923	else
18924		opts = extend(opts)
18925
18926	// Normally, the page is loaded from http or https, so not specifying a protocol
18927	// will result in a (valid) protocol-relative url. However, this won't work if
18928	// the protocol is something else, like 'file:'
18929	var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''
18930
18931	var protocol = opts.protocol || defaultProtocol
18932	var host = opts.hostname || opts.host
18933	var port = opts.port
18934	var path = opts.path || '/'
18935
18936	// Necessary for IPv6 addresses
18937	if (host && host.indexOf(':') !== -1)
18938		host = '[' + host + ']'
18939
18940	// This may be a relative url. The browser should always be able to interpret it c
18940orrectly.
18941	opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path
18942	opts.method = (opts.method || 'GET').toUpperCase()
18943	opts.headers = opts.headers || {}
18944
18945	// Also valid opts.auth, opts.mode
18946
18947	var req = new ClientRequest(opts)
18948	if (cb)
18949		req.on('response', cb)
18950	return req
18951}
18952
18953http.get = function get (opts, cb) {
18954	var req = http.request(opts, cb)
18955	req.end()
18956	return req
18957}
18958
18959http.ClientRequest = ClientRequest
18960http.IncomingMessage = response.IncomingMessage
18961
18962http.Agent = function () {}
18963http.Agent.defaultMaxSockets = 4
18964
18965http.globalAgent = new http.Agent()
18966
18967http.STATUS_CODES = statusCodes
18968
18969http.METHODS = [
18970	'CHECKOUT',
18971	'CONNECT',
18972	'COPY',
18973	'DELETE',
18974	'GET',
18975	'HEAD',
18976	'LOCK',
18977	'M-SEARCH',
18978	'MERGE',
18979	'MKACTIVITY',
18980	'MKCOL',
18981	'MOVE',
18982	'NOTIFY',
18983	'OPTIONS',
18984	'PATCH',
18985	'POST',
18986	'PROPFIND',
18987	'PROPPATCH',
18988	'PURGE',
18989	'PUT',
18990	'REPORT',
18991	'SEARCH',
18992	'SUBSCRIBE',
18993	'TRACE',
18994	'UNLOCK',
18995	'UNSUBSCRIBE'
18996]
18997/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
18998
18999/***/ }),
19000/* 318 */,
19001/* 319 */
19002/***/ (function(module, __webpack_exports__, __webpack_require__) {
19003
19004"use strict";
19005/* unused harmony export defaults */
19006/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hasXMLHttpRequest; });
19007/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return makePromise; });
19008function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
19009var arr = [];
19010var each = arr.forEach;
19011var slice = arr.slice;
19012function defaults(obj) {
19013  each.call(slice.call(arguments, 1), function (source) {
19014    if (source) {
19015      for (var prop in source) {
19016        if (obj[prop] === undefined) obj[prop] = source[prop];
19017      }
19018    }
19019  });
19020  return obj;
19021}
19022function hasXMLHttpRequest() {
19023  return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === "undefined" ? "undefined" : _typeof(XMLHttpRequest)) === 'object';
19024}
19025function isPromise(maybePromise) {
19026  return !!maybePromise && typeof maybePromise.then === 'function';
19027}
19028function makePromise(maybePromise) {
19029  if (isPromise(maybePromise)) {
19030    return maybePromise;
19031  }
19032  return Promise.resolve(maybePromise);
19033}
19034
19035/***/ }),
19036/* 320 */,
19037/* 321 */
19038/***/ (function(module, __webpack_exports__, __webpack_require__) {
19039
19040"use strict";
19041
19042// EXPORTS
19043__webpack_require__.d(__webpack_exports__, "c", function() { return /* binding */ i18nOpts; });
19044__webpack_require__.d(__webpack_exports__, "d", function() { return /* binding */ initI18n; });
19045__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ changeLanguage; });
19046
19047// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
19048var es_symbolbabel_target_legacy = __webpack_require__(71);
19049
19050// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
19051var es_array_concatbabel_target_legacy = __webpack_require__(75);
19052
19053// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
19054var es_array_filterbabel_target_legacy = __webpack_require__(70);
19055
19056// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
19057var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
19058
19059// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js?babel-target=legacy
19060var es_array_includesbabel_target_legacy = __webpack_require__(124);
19061
19062// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
19063var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
19064
19065// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
19066var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
19067
19068// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
19069var es_object_keysbabel_target_legacy = __webpack_require__(89);
19070
19071// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
19072var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
19073
19074// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js?babel-target=legacy
19075var es_promisebabel_target_legacy = __webpack_require__(187);
19076
19077// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js?babel-target=legacy
19078var es_regexp_execbabel_target_legacy = __webpack_require__(93);
19079
19080// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.includes.js?babel-target=legacy
19081var es_string_includesbabel_target_legacy = __webpack_require__(140);
19082
19083// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.search.js?babel-target=legacy
19084var es_string_searchbabel_target_legacy = __webpack_require__(254);
19085
19086// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
19087var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
19088
19089// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
19090var definePropertybabel_target_legacy = __webpack_require__(15);
19091var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
19092
19093// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
19094var regenerator_babel_target_legacy = __webpack_require__(6);
19095var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
19096
19097// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
19098var runtimebabel_target_legacy = __webpack_require__(60);
19099
19100// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
19101var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
19102var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
19103
19104// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js?babel-target=legacy
19105function _typeof(obj) {
19106  "@babel/helpers - typeof";
19107
19108  if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
19109    _typeof = function _typeof(obj) {
19110      return typeof obj;
19111    };
19112  } else {
19113    _typeof = function _typeof(obj) {
19114      return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
19115    };
19116  }
19117
19118  return _typeof(obj);
19119}
19120// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js?babel-target=legacy
19121function _defineProperty(obj, key, value) {
19122  if (key in obj) {
19123    Object.defineProperty(obj, key, {
19124      value: value,
19125      enumerable: true,
19126      configurable: true,
19127      writable: true
19128    });
19129  } else {
19130    obj[key] = value;
19131  }
19132
19133  return obj;
19134}
19135// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread.js?babel-target=legacy
19136
19137function _objectSpread(target) {
19138  for (var i = 1; i < arguments.length; i++) {
19139    var source = arguments[i] != null ? Object(arguments[i]) : {};
19140    var ownKeys = Object.keys(source);
19141
19142    if (typeof Object.getOwnPropertySymbols === 'function') {
19143      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
19144        return Object.getOwnPropertyDescriptor(source, sym).enumerable;
19145      }));
19146    }
19147
19148    ownKeys.forEach(function (key) {
19149      _defineProperty(target, key, source[key]);
19150    });
19151  }
19152
19153  return target;
19154}
19155// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js?babel-target=legacy
19156function _classCallCheck(instance, Constructor) {
19157  if (!(instance instanceof Constructor)) {
19158    throw new TypeError("Cannot call a class as a function");
19159  }
19160}
19161// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js?babel-target=legacy
19162function _defineProperties(target, props) {
19163  for (var i = 0; i < props.length; i++) {
19164    var descriptor = props[i];
19165    descriptor.enumerable = descriptor.enumerable || false;
19166    descriptor.configurable = true;
19167    if ("value" in descriptor) descriptor.writable = true;
19168    Object.defineProperty(target, descriptor.key, descriptor);
19169  }
19170}
19171
19172function _createClass(Constructor, protoProps, staticProps) {
19173  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
19174  if (staticProps) _defineProperties(Constructor, staticProps);
19175  return Constructor;
19176}
19177// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?babel-target=legacy
19178var assertThisInitializedbabel_target_legacy = __webpack_require__(110);
19179
19180// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js?babel-target=legacy
19181
19182
19183function _possibleConstructorReturn(self, call) {
19184  if (call && (_typeof(call) === "object" || typeof call === "function")) {
19185    return call;
19186  }
19187
19188  return Object(assertThisInitializedbabel_target_legacy["a" /* default */])(self);
19189}
19190// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js?babel-target=legacy
19191function _getPrototypeOf(o) {
19192  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o
19192) {
19193    return o.__proto__ || Object.getPrototypeOf(o);
19194  };
19195  return _getPrototypeOf(o);
19196}
19197// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?babel-target=legacy
19198function _setPrototypeOf(o, p) {
19199  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
19200    o.__proto__ = p;
19201    return o;
19202  };
19203
19204  return _setPrototypeOf(o, p);
19205}
19206// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js?babel-target=legacy
19207
19208function _inherits(subClass, superClass) {
19209  if (typeof superClass !== "function" && superClass !== null) {
19210    throw new TypeError("Super expression must either be null or a function");
19211  }
19212
19213  subClass.prototype = Object.create(superClass && superClass.prototype, {
19214    constructor: {
19215      value: subClass,
19216      writable: true,
19217      configurable: true
19218    }
19219  });
19220  if (superClass) _setPrototypeOf(subClass, superClass);
19221}
19222// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?babel-target=legacy
19223function _arrayLikeToArray(arr, len) {
19224  if (len == null || len > arr.length) len = arr.length;
19225
19226  for (var i = 0, arr2 = new Array(len); i < len; i++) {
19227    arr2[i] = arr[i];
19228  }
19229
19230  return arr2;
19231}
19232// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?babel-target=legacy
19233
19234function _arrayWithoutHoles(arr) {
19235  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
19236}
19237// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?babel-target=legacy
19238function _iterableToArray(iter) {
19239  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
19240}
19241// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?babel-target=legacy
19242
19243function _unsupportedIterableToArray(o, minLen) {
19244  if (!o) return;
19245  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
19246  var n = Object.prototype.toString.call(o).slice(8, -1);
19247  if (n === "Object" && o.constructor) n = o.constructor.name;
19248  if (n === "Map" || n === "Set") return Array.from(o);
19249  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
19250}
19251// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?babel-target=legacy
19252function _nonIterableSpread() {
19253  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19254}
19255// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?babel-target=legacy
19256
19257
19258
19259
19260function _toConsumableArray(arr) {
19261  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
19262}
19263// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?babel-target=legacy
19264function _arrayWithHoles(arr) {
19265  if (Array.isArray(arr)) return arr;
19266}
19267// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?babel-target=legacy
19268function _iterableToArrayLimit(arr, i) {
19269  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
19270  var _arr = [];
19271  var _n = true;
19272  var _d = false;
19273  var _e = undefined;
19274
19275  try {
19276    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
19277      _arr.push(_s.value);
19278
19279      if (i && _arr.length === i) break;
19280    }
19281  } catch (err) {
19282    _d = true;
19283    _e = err;
19284  } finally {
19285    try {
19286      if (!_n && _i["return"] != null) _i["return"]();
19287    } finally {
19288      if (_d) throw _e;
19289    }
19290  }
19291
19292  return _arr;
19293}
19294// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?babel-target=legacy
19295function _nonIterableRest() {
19296  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
19297}
19298// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js?babel-target=legacy
19299
19300
19301
19302
19303function _slicedToArray(arr, i) {
19304  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
19305}
19306// CONCATENATED MODULE: ./node_modules/i18next/dist/esm/i18next.js?babel-target=legacy
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
19318var consoleLogger = {
19319  type: 'logger',
19320  log: function log(args) {
19321    this.output('log', args);
19322  },
19323  warn: function warn(args) {
19324    this.output('warn', args);
19325  },
19326  error: function error(args) {
19327    this.output('error', args);
19328  },
19329  output: function output(type, args) {
19330    var _console;
19331
19332    /* eslint no-console: 0 */
19333    if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));
19334  }
19335};
19336
19337var i18nextbabel_target_legacy_Logger =
19338/*#__PURE__*/
19339function () {
19340  function Logger(concreteLogger) {
19341    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19342
19343    _classCallCheck(this, Logger);
19344
19345    this.init(concreteLogger, options);
19346  }
19347
19348  _createClass(Logger, [{
19349    key: "init",
19350    value: function init(concreteLogger) {
19351      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19352      this.prefix = options.prefix || 'i18next:';
19353      this.logger = concreteLogger || consoleLogger;
19354      this.options = options;
19355      this.debug = options.debug;
19356    }
19357  }, {
19358    key: "setDebug",
19359    value: function setDebug(bool) {
19360      this.debug = bool;
19361    }
19362  }, {
19363    key: "log",
19364    value: function log() {
19365      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
19366        args[_key] = arguments[_key];
19367      }
19368
19369      return this.forward(args, 'log', '', true);
19370    }
19371  }, {
19372    key: "warn",
19373    value: function warn() {
19374      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
19375        args[_key2] = arguments[_key2];
19376      }
19377
19378      return this.forward(args, 'warn', '', true);
19379    }
19380  }, {
19381    key: "error",
19382    value: function error() {
19383      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
19384        args[_key3] = arguments[_key3];
19385      }
19386
19387      return this.forward(args, 'error', '');
19388    }
19389  }, {
19390    key: "deprecate",
19391    value: function deprecate() {
19392      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
19393        args[_key4] = arguments[_key4];
19394      }
19395
19396      return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);
19397    }
19398  }, {
19399    key: "forward",
19400    value: function forward(args, lvl, prefix, debugOnly) {
19401      if (debugOnly && !this.debug) return null;
19402      if (typeof args[0] === 'string') args[0] = "".concat(prefix).concat(this.prefix, " ").concat(args[0]);
19403      return this.logger[lvl](args);
19404    }
19405  }, {
19406    key: "create",
19407    value: function create(moduleName) {
19408      return new Logger(this.logger, _objectSpread({}, {
19409        prefix: "".concat(this.prefix, ":").concat(moduleName, ":")
19410      }, this.options));
19411    }
19412  }]);
19413
19414  return Logger;
19415}();
19416
19417var baseLogger = new i18nextbabel_target_legacy_Logger();
19418
19419var i18nextbabel_target_legacy_EventEmitter =
19420/*#__PURE__*/
19421function () {
19422  function EventEmitter() {
19423    _classCallCheck(this, EventEmitter);
19424
19425    this.observers = {};
19426  }
19427
19428  _createClass(EventEmitter, [{
19429    key: "on",
19430    value: function on(events, listener) {
19431      var _this = this;
19432
19433      events.split(' ').forEach(function (event) {
19434        _this.observers[event] = _this.observers[event] || [];
19435
19436        _this.observers[event].push(listener);
19437      });
19438      return this;
19439    }
19440  }, {
19441    key: "off",
19442    value: function off(event, listener) {
19443      if (!this.observers[event]) return;
19444
19445      if (!listener) {
19446        delete this.observers[event];
19447        return;
19448      }
19449
19450      this.observers[event] = this.observers[event].filter(function (l) {
19451        return l !== listener;
19452      });
19453    }
19454  }, {
19455    key: "emit",
19456    value: function emit(event) {
19457      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
19458        args[_key - 1] = arguments[_key];
19459      }
19460
19461      if (this.observers[event]) {
19462        var cloned = [].concat(this.observers[event]);
19463        cloned.forEach(function (observer) {
19464          observer.apply(void 0, args);
19465        });
19466      }
19467
19468      if (this.observers['*']) {
19469        var _cloned = [].concat(this.observers['*']);
19470
19471        _cloned.forEach(function (observer) {
19472          observer.apply(observer, [event].concat(args));
19473        });
19474      }
19475    }
19476  }]);
19477
19478  return EventEmitter;
19479}();
19480
19481// http://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/
19482function defer() {
19483  var res;
19484  var rej;
19485  var promise = new Promise(function (resolve, reject) {
19486    res = resolve;
19487    rej = reject;
19488  });
19489  promise.resolve = res;
19490  promise.reject = rej;
19491  return promise;
19492}
19493function makeString(object) {
19494  if (object == null) return '';
19495  /* eslint prefer-template: 0 */
19496
19497  return '' + object;
19498}
19499function copy(a, s, t) {
19500  a.forEach(function (m) {
19501    if (s[m]) t[m] = s[m];
19502  });
19503}
19504
19505function getLastOfPath(object, path, Empty) {
19506  function cleanKey(key) {
19507    return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;
19508  }
19509
19510  function canNotTraverseDeeper() {
19511    return !object || typeof object === 'string';
19512  }
19513
19514  var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');
19515
19516  while (stack.length > 1) {
19517    if (canNotTraverseDeeper()) return {};
19518    var key = cleanKey(stack.shift());
19519    if (!object[key] && Empty) object[key] = new Empty();
19520    object = object[key];
19521  }
19522
19523  if (canNotTraverseDeeper()) return {};
19524  return {
19525    obj: object,
19526    k: cleanKey(stack.shift())
19527  };
19528}
19529
19530function setPath(object, path, newValue) {
19531  var _getLastOfPath = getLastOfPath(object, path, Object),
19532      obj = _getLastOfPath.obj,
19533      k = _getLastOfPath.k;
19534
19535  obj[k] = newValue;
19536}
19537function pushPath(object, path, newValue, concat) {
19538  var _getLastOfPath2 = getLastOfPath(object, path, Object),
19539      obj = _getLastOfPath2.obj,
19540      k = _getLastOfPath2.k;
19541
19542  obj[k] = obj[k] || [];
19543  if (concat) obj[k] = obj[k].concat(newValue);
19544  if (!concat) obj[k].push(newValue);
19545}
19546function getPath(object, path) {
19547  var _getLastOfPath3 = getLastOfPath(object, path),
19548      obj = _getLastOfPath3.obj,
19549      k = _getLastOfPath3.k;
19550
19551  if (!obj) return undefined;
19552  return obj[k];
19553}
19554function getPathWithDefaults(data, defaultData, key) {
19555  var value = getPath(data, key);
19556
19557  if (value !== undefined) {
19558    return value;
19559  } // Fallback to default values
19560
19561
19562  return getPath(defaultData, key);
19563}
19564function deepExtend(target, source, overwrite) {
19565  /* eslint no-restricted-syntax: 0 */
19566  for (var prop in source) {
19567    if (prop in target) {
19568      // If we reached a leaf string in target or source then replace with source or skip depen
19568ding on the 'overwrite' switch
19569      if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {
19570        if (overwrite) target[prop] = source[prop];
19571      } else {
19572        deepExtend(target[prop], source[prop], overwrite);
19573      }
19574    } else {
19575      target[prop] = source[prop];
19576    }
19577  }
19578
19579  return target;
19580}
19581function regexEscape(str) {
19582  /* eslint no-useless-escape: 0 */
19583  return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&');
19584}
19585/* eslint-disable */
19586
19587var _entityMap = {
19588  '&': '&amp;',
19589  '<': '&lt;',
19590  '>': '&gt;',
19591  '"': '&quot;',
19592  "'": '&#39;',
19593  '/': '&#x2F;'
19594};
19595/* eslint-enable */
19596
19597function i18nextbabel_target_legacy_escape(data) {
19598  if (typeof data === 'string') {
19599    return data.replace(/[&<>"'\/]/g, function (s) {
19600      return _entityMap[s];
19601    });
19602  }
19603
19604  return data;
19605}
19606
19607var i18nextbabel_target_legacy_ResourceStore =
19608/*#__PURE__*/
19609function (_EventEmitter) {
19610  _inherits(ResourceStore, _EventEmitter);
19611
19612  function ResourceStore(data) {
19613    var _this;
19614
19615    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
19616      ns: ['translation'],
19617      defaultNS: 'translation'
19618    };
19619
19620    _classCallCheck(this, ResourceStore);
19621
19622    _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));
19623    i18nextbabel_target_legacy_EventEmitter.call(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)); // <=IE10 fix (unable to call parent constructor)
19624
19625    _this.data = data || {};
19626    _this.options = options;
19627
19628    if (_this.options.keySeparator === undefined) {
19629      _this.options.keySeparator = '.';
19630    }
19631
19632    return _this;
19633  }
19634
19635  _createClass(ResourceStore, [{
19636    key: "addNamespaces",
19637    value: function addNamespaces(ns) {
19638      if (this.options.ns.indexOf(ns) < 0) {
19639        this.options.ns.push(ns);
19640      }
19641    }
19642  }, {
19643    key: "removeNamespaces",
19644    value: function removeNamespaces(ns) {
19645      var index = this.options.ns.indexOf(ns);
19646
19647      if (index > -1) {
19648        this.options.ns.splice(index, 1);
19649      }
19650    }
19651  }, {
19652    key: "getResource",
19653    value: function getResource(lng, ns, key) {
19654      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
19655      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
19656      var path = [lng, ns];
19657      if (key && typeof key !== 'string') path = path.concat(key);
19658      if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);
19659
19660      if (lng.indexOf('.') > -1) {
19661        path = lng.split('.');
19662      }
19663
19664      return getPath(this.data, path);
19665    }
19666  }, {
19667    key: "addResource",
19668    value: function addResource(lng, ns, key, value) {
19669      var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
19670        silent: false
19671      };
19672      var keySeparator = this.options.keySeparator;
19673      if (keySeparator === undefined) keySeparator = '.';
19674      var path = [lng, ns];
19675      if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);
19676
19677      if (lng.indexOf('.') > -1) {
19678        path = lng.split('.');
19679        value = ns;
19680        ns = path[1];
19681      }
19682
19683      this.addNamespaces(ns);
19684      setPath(this.data, path, value);
19685      if (!options.silent) this.emit('added', lng, ns, key, value);
19686    }
19687  }, {
19688    key: "addResources",
19689    value: function addResources(lng, ns, resources) {
19690      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
19691        silent: false
19692      };
19693
19694      /* eslint no-restricted-syntax: 0 */
19695      for (var m in resources) {
19696        if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {
19697          silent: true
19698        });
19699      }
19700
19701      if (!options.silent) this.emit('added', lng, ns, resources);
19702    }
19703  }, {
19704    key: "addResourceBundle",
19705    value: function addResourceBundle(lng, ns, resources, deep, overwrite) {
19706      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
19707        silent: false
19708      };
19709      var path = [lng, ns];
19710
19711      if (lng.indexOf('.') > -1) {
19712        path = lng.split('.');
19713        deep = resources;
19714        resources = ns;
19715        ns = path[1];
19716      }
19717
19718      this.addNamespaces(ns);
19719      var pack = getPath(this.data, path) || {};
19720
19721      if (deep) {
19722        deepExtend(pack, resources, overwrite);
19723      } else {
19724        pack = _objectSpread({}, pack, resources);
19725      }
19726
19727      setPath(this.data, path, pack);
19728      if (!options.silent) this.emit('added', lng, ns, resources);
19729    }
19730  }, {
19731    key: "removeResourceBundle",
19732    value: function removeResourceBundle(lng, ns) {
19733      if (this.hasResourceBundle(lng, ns)) {
19734        delete this.data[lng][ns];
19735      }
19736
19737      this.removeNamespaces(ns);
19738      this.emit('removed', lng, ns);
19739    }
19740  }, {
19741    key: "hasResourceBundle",
19742    value: function hasResourceBundle(lng, ns) {
19743      return this.getResource(lng, ns) !== undefined;
19744    }
19745  }, {
19746    key: "getResourceBundle",
19747    value: function getResourceBundle(lng, ns) {
19748      if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0
19749
19750      if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));
19751      return this.getResource(lng, ns);
19752    }
19753  }, {
19754    key: "getDataByLanguage",
19755    value: function getDataByLanguage(lng) {
19756      return this.data[lng];
19757    }
19758  }, {
19759    key: "toJSON",
19760    value: function toJSON() {
19761      return this.data;
19762    }
19763  }]);
19764
19765  return ResourceStore;
19766}(i18nextbabel_target_legacy_EventEmitter);
19767
19768var postProcessor = {
19769  processors: {},
19770  addPostProcessor: function addPostProcessor(module) {
19771    this.processors[module.name] = module;
19772  },
19773  handle: function handle(processors, value, key, options, translator) {
19774    var _this = this;
19775
19776    processors.forEach(function (processor) {
19777      if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);
19778    });
19779    return value;
19780  }
19781};
19782
19783var i18nextbabel_target_legacy_Translator =
19784/*#__PURE__*/
19785function (_EventEmitter) {
19786  _inherits(Translator, _EventEmitter);
19787
19788  function Translator(services) {
19789    var _this;
19790
19791    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
19792
19793    _classCallCheck(this, Translator);
19794
19795    _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));
19796    i18nextbabel_target_legacy_EventEmitter.call(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)); // <=IE10 fix (unable to call parent constructor)
19797
19798    copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this));
19799    _this.options = options;
19800
19801    if (_this.options.keySeparator === undefined) {
19802      _this.options.keySeparator = '.';
19803    }
19804
19805    _this.logger = baseLogger.create('translator');
19806    return _this;
19807  }
19808
19809  _createClass(Translator, [{
19810    key: "changeLanguage",
19811    value: function changeLanguage(lng) {
19812      if (lng) this.language = lng;
19813    }
19814  }, {
19815    key: "exists",
19816    value: function exists(key) {
19817      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
19818        interpolation: {}
19819      };
19820      var resolved = this.resolve(key, options);
19821      return resolved && resolved.res !== undefined;
19822    }
19823  }, {
19824    key: "extractFromKey",
19825    value: function extractFromKey(key, options) {
19826      var nsSeparator = options.nsSeparator || this.options.nsSeparator;
19827      if (nsSeparator === undefined) nsSeparator = ':';
19828      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
19829      var namespaces = options.ns || this.options.defaultNS;
19830
19831      if (nsSeparator && key.indexOf(nsSeparator) > -1) {
19832        var parts = key.split(nsSeparator);
19833        if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();
19834        key = parts.join(keySeparator);
19835      }
19836
19837      if (typeof namespaces === 'string') namespaces = [namespaces];
19838      return {
19839        key: key,
19840        namespaces: namespaces
19841      };
19842    }
19843  }, {
19844    key: "translate",
19845    value: function translate(keys, options) {
19846      var _this2 = this;
19847
19848      if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {
19849        /* eslint prefer-rest-params: 0 */
19850        options = this.options.overloadTranslationOptionHandler(arguments);
19851      }
19852
19853      if (!options) options = {}; // non valid keys handling
19854
19855      if (keys === undefined || keys === null) return '';
19856      if (!Array.isArray(keys)) keys = [String(keys)]; // separators
19857
19858      var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator; // get namespace(s)
19859
19860      var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),
19861          key = _this$extractFromKey.key,
19862          namespaces = _this$extractFromKey.namespaces;
19863
19864      var namespace = namespaces[namespaces.length - 1]; // return key on CIMode
19865
19866      var lng = options.lng || this.language;
19867      var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
19868
19869      if (lng && lng.toLowerCase() === 'cimode') {
19870        if (appendNamespaceToCIMode) {
19871          var nsSeparator = options.nsSeparator || this.options.nsSeparator;
19872          return namespace + nsSeparator + key;
19873        }
19874
19875        return key;
19876      } // resolve from store
19877
19878
19879      var resolved = this.resolve(keys, options);
19880      var res = resolved && resolved.res;
19881      var resUsedKey = resolved && resolved.usedKey || key;
19882      var resExactUsedKey = resolved && resolved.exactUsedKey || key;
19883      var resType = Object.prototype.toString.apply(res);
19884      var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];
19885      var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; // object
19886
19887      var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;
19888      var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';
19889
19890      if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {
19891        if (!options.returnObjects && !this.options.returnObjects) {
19892          this.logger.warn('accessing an object - but returnObjects options is not enabled!');
19893          return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : "key '".concat(key, " (").concat(this.language, ")' returned an object instead of string.");
19894        } // if we got a separator we loop over children - else we just return object as is
19895        // as having it set to false means no hierarchy so no lookup for nested values
19896
19897
19898        if (keySeparator) {
19899          var resTypeIsArray = resType === '[object Array]';
19900          var copy$$1 = resTypeIsArray ? [] : {}; // apply child translation on a copy
19901
19902          /* eslint no-restricted-syntax: 0 */
19903
19904          var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;
19905
19906          for (var m in res) {
19907            if (Object.prototype.hasOwnProperty.call(res, m)) {
19908              var deepKey = "".concat(newKeyToUse).concat(keySeparator).concat(m);
19909              copy$$1[m] = this.translate(deepKey, _objectSpread({}, options, {
19910                joinArrays: false,
19911                ns: namespaces
19912              }));
19913              if (copy$$1[m] === deepKey) copy$$1[m] = res[m]; // if nothing found use orginal value as fallback
19914            }
19915          }
19916
19917          res = copy$$1;
19918        }
19919      } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {
19920        // array special treatment
19921        res = res.join(joinArrays);
19922        if (res) res = this.extendTranslation(res, keys, options);
19923      } else {
19924        // string, empty or null
19925        var usedDefault = false;
19926        var usedKey = false; // fallback value
19927
19928        if (!this.isValidLookup(res) && options.defaultValue !== undefined) {
19929          usedDefault = true;
19930
19931          if (options.count !== undefined) {
19932            var suffix = this.pluralResolver.getSuffix(lng, options.count);
19933            res = options["defaultValue".concat(suffix)];
19934          }
19935
19936          if (!res) res = options.defaultValue;
19937        }
19938
19939        if (!this.isValidLookup(res)) {
19940          usedKey = true;
19941          res = key;
19942        } // save missing
19943
19944
19945        var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;
19946
19947        if (usedKey || usedDefault || updateMissing) {
19948          this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);
19949          var lngs = [];
19950          var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);
19951
19952          if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {
19953            for (var i = 0; i < fallbackLngs.length; i++) {
19954              lngs.push(fallbackLngs[i]);
19955            }
19956          } else if (this.options.saveMissingTo === 'all') {
19957            lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);
19958          } else {
19959            lngs.push(options.lng || this.language);
19960          }
19961
19962          var send = function send(l, k) {
19963            if (_this2.options.missingKeyHandler) {
19964              _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);
19965            } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {
19966              _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);
19967            }
19968
19969            _this2.emit('missingKey', l, namespace, k, res);
19970          };
19971
19972          if (this.options.saveMissing) {
19973            var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
19974
19975            if (this.options.saveMissingPlurals && needsPluralHandling) {
19976              lngs.forEach(function (l) {
19977                var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);
19978
19979                plurals.forEach(function (p) {
19980                  return send([l], p);
19981                });
19982              });
19983            } else {
19984              send(lngs, key);
19985            }
19986          }
19987        } // extend
19988
19989
19990        res = this.extendTranslation(res, keys, options, resolved); // append namespace if still key
19991
19992        if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = "".concat(namespace, ":").concat(key); // parseMissingKeyHandler
19993
19994        if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);
19995      } // return
19996
19997
19998      return res;
19999    }
20000  }, {
20001    key: "extendTranslation",
20002    value: function extendTranslation(res, key, options, resolved) {
20003      var _this3 = this;
20004
20005      if (this.i18nFormat && this.i18nFormat.parse) {
20006        res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {
20007          resolved: resolved
20008        });
20009      } else if (!options.skipInterpolation) {
20010        // i18next.parsing
20011        if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {
20012          interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)
20013        })); // interpolate
20014
20015        var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;
20016        if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);
20017        res = this.interpolator.interpolate(res, data, options.lng || this.language, options); // nesting
20018
20019        if (options.nest !== false) res = this.interpolator.nest(res, function () {
20020          return _this3.translate.apply(_this3, arguments);
20021        }, options);
20022        if (options.interpolation) this.interpolator.reset();
20023      } // post process
20024
20025
20026      var postProcess = options.postProcess || this.options.postProcess;
20027      var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;
20028
20029      if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {
20030        res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({
20031          i18nResolved: resolved
20032        }, options) : options, this);
20033      }
20034
20035      return res;
20036    }
20037  }, {
20038    key: "resolve",
20039    value: function resolve(keys) {
20040      var _this4 = this;
20041
20042      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
20043      var found;
20044      var usedKey; // plain key
20045
20046      var exactUsedKey; // key with context / plural
20047
20048      var usedLng;
20049      var usedNS;
20050      if (typeof keys === 'string') keys = [keys]; // forEach possible key
20051
20052      keys.forEach(function (k) {
20053        if (_this4.isValidLookup(found)) return;
20054
20055        var extracted = _this4.extractFromKey(k, options);
20056
20057        var key = extracted.key;
20058        usedKey = key;
20059        var namespaces = extracted.namespaces;
20060        if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);
20061        var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';
20062        var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';
20063        var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);
20064        namespaces.forEach(function (ns) {
20065          if (_this4.isValidLookup(found)) return;
20066          usedNS = ns;
20067
20068          if (_this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {
20069            _this4.logger.warn("key \"".concat(usedKey, "\" for namespace \"").concat(usedNS, "\" won't get resolved as namespace was not yet loaded"), 'This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');
20070          }
20071
20072          codes.forEach(function (code) {
20073            if (_this4.isValidLookup(found)) return;
20074            usedLng = code;
20075            var finalKey = key;
20076            var finalKeys = [finalKey];
20077
20078            if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {
20079              _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);
20080            } else {
20081              var pluralSuffix;
20082              if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count); // fallback for plural if context not found
20083
20084              if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix); // get key for context if needed
20085
20086              if (needsContextHandling) finalKeys.push(finalKey += "".concat(_this4.options.contextSeparator).concat(options.context)); // get key for plural if needed
20087
20088              if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);
20089            } // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only
20090
20091
20092            var possibleKey;
20093            /* eslint no-cond-assign: 0 */
20094
20095            while (possibleKey = finalKeys.pop()) {
20096              if (!_this4.isValidLookup(found)) {
20097                exactUsedKey = possibleKey;
20098                found = _this4.getResource(code, ns, possibleKey, options);
20099              }
20100            }
20101          });
20102        });
20103      });
20104      return {
20105        res: found,
20106        usedKey: usedKey,
20107        exactUsedKey: exactUsedKey,
20108        usedLng: usedLng,
20109        usedNS: usedNS
20110      };
20111    }
20112  }, {
20113    key: "isValidLookup",
20114    value: function isValidLookup(res) {
20115      return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');
20116    }
20117  }, {
20118    key: "getResource",
20119    value: function getResource(code, ns, key) {
20120      var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
20121      if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);
20122      return this.resourceStore.getResource(code, ns, key, options);
20123    }
20124  }]);
20125
20126  return Translator;
20127}(i18nextbabel_target_legacy_EventEmitter);
20128
20129function capitalize(string) {
20130  return string.charAt(0).toUpperCase() + string.slice(1);
20131}
20132
20133var i18nextbabel_target_legacy_LanguageUtil =
20134/*#__PURE__*/
20135function () {
20136  function LanguageUtil(options) {
20137    _classCallCheck(this, LanguageUtil);
20138
20139    this.options = options;
20140    this.whitelist = this.options.whitelist || false;
20141    this.logger = baseLogger.create('languageUtils');
20142  }
20143
20144  _createClass(LanguageUtil, [{
20145    key: "getScriptPartFromCode",
20146    value: function getScriptPartFromCode(code) {
20147      if (!code || code.indexOf('-') < 0) return null;
20148      var p = code.split('-');
20149      if (p.length === 2) return null;
20150      p.pop();
20151      return this.formatLanguageCode(p.join('-'));
20152    }
20153  }, {
20154    key: "getLanguagePartFromCode",
20155    value: function getLanguagePartFromCode(code) {
20156      if (!code || code.indexOf('-') < 0) return code;
20157      var p = code.split('-');
20158      return this.formatLanguageCode(p[0]);
20159    }
20160  }, {
20161    key: "formatLanguageCode",
20162    value: function formatLanguageCode(code) {
20163      // http://www.iana.org/assignments/language-tags/language-tags.xhtml
20164      if (typeof code === 'string' && code.indexOf('-') > -1) {
20165        var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];
20166        var p = code.split('-');
20167
20168        if (this.options.lowerCaseLng) {
20169          p = p.map(function (part) {
20170            return part.toLowerCase();
20171          });
20172        } else if (p.length === 2) {
20173          p[0] = p[0].toLowerCase();
20174          p[1] = p[1].toUpperCase();
20175          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
20176        } else if (p.length === 3) {
20177          p[0] = p[0].toLowerCase(); // if lenght 2 guess it's a country
20178
20179          if (p[1].length === 2) p[1] = p[1].toUpperCase();
20180          if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();
20181          if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());
20182          if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());
20183        }
20184
20185        return p.join('-');
20186      }
20187
20188      return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;
20189    }
20190  }, {
20191    key: "isWhitelisted",
20192    value: function isWhitelisted(code) {
20193      if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {
20194        code = this.getLanguagePartFromCode(code);
20195      }
20196
20197      return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;
20198    }
20199  }, {
20200    key: "getFallbackCodes",
20201    value: function getFallbackCodes(fallbacks, code) {
20202      if (!fallbacks) return [];
20203      if (typeof fallbacks === 'string') fallbacks = [fallbacks];
20204      if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;
20205      if (!code) return fallbacks["default"] || []; // asume we have an object defining fallbacks
20206
20207      var found = fallbacks[code];
20208      if (!found) found = fallbacks[this.getScriptPartFromCode(code)];
20209      if (!found) found = fallbacks[this.formatLanguageCode(code)];
20210      if (!found) found = fallbacks["default"];
20211      return found || [];
20212    }
20213  }, {
20214    key: "toResolveHierarchy",
20215    value: function toResolveHierarchy(code, fallbackCode) {
20216      var _this = this;
20217
20218      var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);
20219      var codes = [];
20220
20221      var addCode = function addCode(c) {
20222        if (!c) return;
20223
20224        if (_this.isWhitelisted(c)) {
20225          codes.push(c);
20226        } else {
20227          _this.logger.warn("rejecting non-whitelisted language code: ".concat(c));
20228        }
20229      };
20230
20231      if (typeof code === 'string' && code.indexOf('-') > -1) {
20232        if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));
20233        if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));
20234        if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));
20235      } else if (typeof code === 'string') {
20236        addCode(this.formatLanguageCode(code));
20237      }
20238
20239      fallbackCodes.forEach(function (fc) {
20240        if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));
20241      });
20242      return codes;
20243    }
20244  }]);
20245
20246  return LanguageUtil;
20247}();
20248
20249/* eslint-disable */
20250
20251var sets = [{
20252  lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],
20253  nr: [1, 2],
20254  fc: 1
20255}, {
20256  lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],
20257  nr: [1, 2],
20258  fc: 2
20259}, {
20260  lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],
20261  nr: [1],
20262  fc: 3
20263}, {
20264  lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],
20265  nr: [1, 2, 5],
20266  fc: 4
20267}, {
20268  lngs: ['ar'],
20269  nr: [0, 1, 2, 3, 11, 100],
20270  fc: 5
20271}, {
20272  lngs: ['cs', 'sk'],
20273  nr: [1, 2, 5],
20274  fc: 6
20275}, {
20276  lngs: ['csb', 'pl'],
20277  nr: [1, 2, 5],
20278  fc: 7
20279}, {
20280  lngs: ['cy'],
20281  nr: [1, 2, 3, 8],
20282  fc: 8
20283}, {
20284  lngs: ['fr'],
20285  nr: [1, 2],
20286  fc: 9
20287}, {
20288  lngs: ['ga'],
20289  nr: [1, 2, 3, 7, 11],
20290  fc: 10
20291}, {
20292  lngs: ['gd'],
20293  nr: [1, 2, 3, 20],
20294  fc: 11
20295}, {
20296  lngs: ['is'],
20297  nr: [1, 2],
20298  fc: 12
20299}, {
20300  lngs: ['jv'],
20301  nr: [0, 1],
20302  fc: 13
20303}, {
20304  lngs: ['kw'],
20305  nr: [1, 2, 3, 4],
20306  fc: 14
20307}, {
20308  lngs: ['lt'],
20309  nr: [1, 2, 10],
20310  fc: 15
20311}, {
20312  lngs: ['lv'],
20313  nr: [1, 2, 0],
20314  fc: 16
20315}, {
20316  lngs: ['mk'],
20317  nr: [1, 2],
20318  fc: 17
20319}, {
20320  lngs: ['mnk'],
20321  nr: [0, 1, 2],
20322  fc: 18
20323}, {
20324  lngs: ['mt'],
20325  nr: [1, 2, 11, 20],
20326  fc: 19
20327}, {
20328  lngs: ['or'],
20329  nr: [2, 1],
20330  fc: 2
20331}, {
20332  lngs: ['ro'],
20333  nr: [1, 2, 20],
20334  fc: 20
20335}, {
20336  lngs: ['sl'],
20337  nr: [5, 1, 2, 3],
20338  fc: 21
20339}, {
20340  lngs: ['he'],
20341  nr: [1, 2, 20, 21],
20342  fc: 22
20343}];
20344var _rulesPluralsTypes = {
20345  1: function _(n) {
20346    return Number(n > 1);
20347  },
20348  2: function _(n) {
20349    return Number(n != 1);
20350  },
20351  3: function _(n) {
20352    return 0;
20353  },
20354  4: function _(n) {
20355    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
20356  },
20357  5: function _(n) {
20358    return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);
20359  },
20360  6: function _(n) {
20361    return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);
20362  },
20363  7: function _(n) {
20364    return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
20365  },
20366  8: function _(n) {
20367    return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);
20368  },
20369  9: function _(n) {
20370    return Number(n >= 2);
20371  },
20372  10: function _(n) {
20373    return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);
20374  },
20375  11: function _(n) {
20376    return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);
20377  },
20378  12: function _(n) {
20379    return Number(n % 10 != 1 || n % 100 == 11);
20380  },
20381  13: function _(n) {
20382    return Number(n !== 0);
20383  },
20384  14: function _(n) {
20385    return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);
20386  },
20387  15: function _(n) {
20388    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
20389  },
20390  16: function _(n) {
20391    return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);
20392  },
20393  17: function _(n) {
20394    return Number(n == 1 || n % 10 == 1 ? 0 : 1);
20395  },
20396  18: function _(n) {
20397    return Number(n == 0 ? 0 : n == 1 ? 1 : 2);
20398  },
20399  19: function _(n) {
20400    return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);
20401  },
20402  20: function _(n) {
20403    return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);
20404  },
20405  21: function _(n) {
20406    return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);
20407  },
20408  22: function _(n) {
20409    return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);
20410  }
20411};
20412/* eslint-enable */
20413
20414function createRules() {
20415  var rules = {};
20416  sets.forEach(function (set) {
20417    set.lngs.forEach(function (l) {
20418      rules[l] = {
20419        numbers: set.nr,
20420        plurals: _rulesPluralsTypes[set.fc]
20421      };
20422    });
20423  });
20424  return rules;
20425}
20426
20427var i18nextbabel_target_legacy_PluralResolver =
20428/*#__PURE__*/
20429function () {
20430  function PluralResolver(languageUtils) {
20431    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
20432
20433    _classCallCheck(this, PluralResolver);
20434
20435    this.languageUtils = languageUtils;
20436    this.options = options;
20437    this.logger = baseLogger.create('pluralResolver');
20438    this.rules = createRules();
20439  }
20440
20441  _createClass(PluralResolver, [{
20442    key: "addRule",
20443    value: function addRule(lng, obj) {
20444      this.rules[lng] = obj;
20445    }
20446  }, {
20447    key: "getRule",
20448    value: function getRule(code) {
20449      return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];
20450    }
20451  }, {
20452    key: "needsPlural",
20453    value: function needsPlural(code) {
20454      var rule = this.getRule(code);
20455      return rule && rule.numbers.length > 1;
20456    }
20457  }, {
20458    key: "getPluralFormsOfKey",
20459    value: function getPluralFormsOfKey(code, key) {
20460      var _this = this;
20461
20462      var ret = [];
20463      var rule = this.getRule(code);
20464      if (!rule) return ret;
20465      rule.numbers.forEach(function (n) {
20466        var suffix = _this.getSuffix(code, n);
20467
20468        ret.push("".concat(key).concat(suffix));
20469      });
20470      return ret;
20471    }
20472  }, {
20473    key: "getSuffix",
20474    value: function getSuffix(code, count) {
20475      var _this2 = this;
20476
20477      var rule = this.getRule(code);
20478
20479      if (rule) {
20480        // if (rule.numbers.length === 1) return ''; // only singular
20481        var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));
20482        var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural
20483
20484        if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
20485          if (suffix === 2) {
20486            suffix = 'plural';
20487          } else if (suffix === 1) {
20488            suffix = '';
20489          }
20490        }
20491
20492        var returnSuffix = function returnSuffix() {
20493          return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();
20494        }; // COMPATIBILITY JSON
20495        // v1
20496
20497
20498        if (this.options.compatibilityJSON === 'v1') {
20499          if (suffix === 1) return '';
20500          if (typeof suffix === 'number') return "_plural_".concat(suffix.toString());
20501          return returnSuffix();
20502        } else if (
20503        /* v2 */
20504        this.options.compatibilityJSON === 'v2') {
20505          return returnSuffix();
20506        } else if (
20507        /* v3 - gettext index */
20508        this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {
20509          return returnSuffix();
20510        }
20511
20512        return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();
20513      }
20514
20515      this.logger.warn("no plural rule found for: ".concat(code));
20516      return '';
20517    }
20518  }]);
20519
20520  return PluralResolver;
20521}();
20522
20523var i18nextbabel_target_legacy_Interpolator =
20524/*#__PURE__*/
20525function () {
20526  function Interpolator() {
20527    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20528
20529    _classCallCheck(this, Interpolator);
20530
20531    this.logger = baseLogger.create('interpolator');
20532    this.options = options;
20533
20534    this.format = options.interpolation && options.interpolation.format || function (value) {
20535      return value;
20536    };
20537
20538    this.init(options);
20539  }
20540  /* eslint no-param-reassign: 0 */
20541
20542
20543  _createClass(Interpolator, [{
20544    key: "init",
20545    value: function init() {
20546      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20547      if (!options.interpolation) options.interpolation = {
20548        escapeValue: true
20549      };
20550      var iOpts = options.interpolation;
20551      this.escape = iOpts.escape !== undefined ? iOpts.escape : i18nextbabel_target_legacy_escape;
20552      this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;
20553      this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;
20554      this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';
20555      this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';
20556      this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';
20557      this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';
20558      this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';
20559      this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');
20560      this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');
20561      this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000; // the regexp
20562
20563      this.resetRegExp();
20564    }
20565  }, {
20566    key: "reset",
20567    value: function reset() {
20568      if (this.options) this.init(this.options);
20569    }
20570  }, {
20571    key: "resetRegExp",
20572    value: function resetRegExp() {
20573      // the regexp
20574      var regexpStr = "".concat(this.prefix, "(.+?)").concat(this.suffix);
20575      this.regexp = new RegExp(regexpStr, 'g');
20576      var regexpUnescapeStr = "".concat(this.prefix).concat(this.unescapePrefix, "(.+?)").concat(this.unescapeSuffix).concat(this.suffix);
20577      this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');
20578      var nestingRegexpStr = "".concat(this.nestingPrefix, "(.+?)").concat(this.nestingSuffix);
20579      this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');
20580    }
20581  }, {
20582    key: "interpolate",
20583    value: function interpolate(str, data, lng, options) {
20584      var _this = this;
20585
20586      var match;
20587      var value;
20588      var replaces;
20589      var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};
20590
20591      function regexSafe(val) {
20592        return val.replace(/\$/g, '$$$$');
20593      }
20594
20595      var handleFormat = function handleFormat(key) {
20596        if (key.indexOf(_this.formatSeparator) < 0) {
20597          return getPathWithDefaults(data, defaultData, key);
20598        }
20599
20600        var p = key.split(_this.formatSeparator);
20601        var k = p.shift().trim();
20602        var f = p.join(_this.formatSeparator).trim();
20603        return _this.format(getPathWithDefaults(data, defaultData, k), f, lng);
20604      };
20605
20606      this.resetRegExp();
20607      var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;
20608      replaces = 0; // unescape if has unescapePrefix/Suffix
20609
20610      /* eslint no-cond-assign: 0 */
20611
20612      while (match = this.regexpUnescape.exec(str)) {
20613        value = handleFormat(match[1].trim());
20614
20615        if (value === undefined) {
20616          if (typeof missingInterpolationHandler === 'function') {
20617            var temp = missingInterpolationHandler(str, match, options);
20618            value = typeof temp === 'string' ? temp : '';
20619          } else {
20620            this.logger.warn("missed to pass in variable ".concat(match[1], " for interpolating ").concat(str));
20621            value = '';
20622          }
20623        } else if (typeof value !== 'string' && !this.useRawValueToEscape) {
20624          value = makeString(value);
20625        }
20626
20627        str = str.replace(match[0], regexSafe(value));
20628        this.regexpUnescape.lastIndex = 0;
20629        replaces++;
20630
20631        if (replaces >= this.maxReplaces) {
20632          break;
20633        }
20634      }
20635
20636      replaces = 0; // regular escape on demand
20637
20638      while (match = this.regexp.exec(str)) {
20639        value = handleFormat(match[1].trim());
20640
20641        if (value === undefined) {
20642          if (typeof missingInterpolationHandler === 'function') {
20643            var _temp = missingInterpolationHandler(str, match, options);
20644
20645            value = typeof _temp === 'string' ? _temp : '';
20646          } else {
20647            this.logger.warn("missed to pass in variable ".concat(match[1], " for interpolating ").concat(str));
20648            value = '';
20649          }
20650        } else if (typeof value !== 'string' && !this.useRawValueToEscape) {
20651          value = makeString(value);
20652        }
20653
20654        value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);
20655        str = str.replace(match[0], value);
20656        this.regexp.lastIndex = 0;
20657        replaces++;
20658
20659        if (replaces >= this.maxReplaces) {
20660          break;
20661        }
20662      }
20663
20664      return str;
20665    }
20666  }, {
20667    key: "nest",
20668    value: function nest(str, fc) {
20669      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20670      var match;
20671      var value;
20672
20673      var clonedOptions = _objectSpread({}, options);
20674
20675      clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup
20676
20677      delete clonedOptions.defaultValue; // assert we do not get a endless loop on interpolating defaultValue again and again
20678      // if value is something like "myKey": "lorem $(anotherKey, { "count": {{aValueInOptions}} })"
20679
20680      function handleHasOptions(key, inheritedOptions) {
20681        if (key.indexOf(',') < 0) return key;
20682        var p = key.split(',');
20683        key = p.shift();
20684        var optionsString = p.join(',');
20685        optionsString = this.interpolate(optionsString, clonedOptions);
20686        optionsString = optionsString.replace(/'/g, '"');
20687
20688        try {
20689          clonedOptions = JSON.parse(optionsString);
20690          if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);
20691        } catch (e) {
20692          this.logger.error("failed parsing options string in nesting for key ".concat(key), e);
20693        } // assert we do not get a endless loop on interpolating defaultValue again and again
20694
20695
20696        delete clonedOptions.defaultValue;
20697        return key;
20698      } // regular escape on demand
20699
20700
20701      while (match = this.nestingRegexp.exec(str)) {
20702        value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions); // is only the nesting key (key1 = '$(key2)') return the value without stringify
20703
20704        if (value && match[0] === str && typeof value !== 'string') return value; // no string to include or empty
20705
20706        if (typeof value !== 'string') value = makeString(value);
20707
20708        if (!value) {
20709          this.logger.warn("missed to resolve ".concat(match[1], " for nesting ").concat(str));
20710          value = '';
20711        } // Nested keys should not be escaped by default #854
20712        // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);
20713
20714
20715        str = str.replace(match[0], value);
20716        this.regexp.lastIndex = 0;
20717      }
20718
20719      return str;
20720    }
20721  }]);
20722
20723  return Interpolator;
20724}();
20725
20726function remove(arr, what) {
20727  var found = arr.indexOf(what);
20728
20729  while (found !== -1) {
20730    arr.splice(found, 1);
20731    found = arr.indexOf(what);
20732  }
20733}
20734
20735var i18nextbabel_target_legacy_Connector =
20736/*#__PURE__*/
20737function (_EventEmitter) {
20738  _inherits(Connector, _EventEmitter);
20739
20740  function Connector(backend, store, services) {
20741    var _this;
20742
20743    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
20744
20745    _classCallCheck(this, Connector);
20746
20747    _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));
20748    i18nextbabel_target_legacy_EventEmitter.call(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)); // <=IE10 fix (unable to call parent constructor)
20749
20750    _this.backend = backend;
20751    _this.store = store;
20752    _this.services = services;
20753    _this.languageUtils = services.languageUtils;
20754    _this.options = options;
20755    _this.logger = baseLogger.create('backendConnector');
20756    _this.state = {};
20757    _this.queue = [];
20758
20759    if (_this.backend && _this.backend.init) {
20760      _this.backend.init(services, options.backend, options);
20761    }
20762
20763    return _this;
20764  }
20765
20766  _createClass(Connector, [{
20767    key: "queueLoad",
20768    value: function queueLoad(languages, namespaces, options, callback) {
20769      var _this2 = this;
20770
20771      // find what needs to be loaded
20772      var toLoad = [];
20773      var pending = [];
20774      var toLoadLanguages = [];
20775      var toLoadNamespaces = [];
20776      languages.forEach(function (lng) {
20777        var hasAllNamespaces = true;
20778        namespaces.forEach(function (ns) {
20779          var name = "".concat(lng, "|").concat(ns);
20780
20781          if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {
20782            _this2.state[name] = 2; // loaded
20783          } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {
20784            if (pending.indexOf(name) < 0) pending.push(name);
20785          } else {
20786            _this2.state[name] = 1; // pending
20787
20788            hasAllNamespaces = false;
20789            if (pending.indexOf(name) < 0) pending.push(name);
20790            if (toLoad.indexOf(name) < 0) toLoad.push(name);
20791            if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);
20792          }
20793        });
20794        if (!hasAllNamespaces) toLoadLanguages.push(lng);
20795      });
20796
20797      if (toLoad.length || pending.length) {
20798        this.queue.push({
20799          pending: pending,
20800          loaded: {},
20801          errors: [],
20802          callback: callback
20803        });
20804      }
20805
20806      return {
20807        toLoad: toLoad,
20808        pending: pending,
20809        toLoadLanguages: toLoadLanguages,
20810        toLoadNamespaces: toLoadNamespaces
20811      };
20812    }
20813  }, {
20814    key: "loaded",
20815    value: function loaded(name, err, data) {
20816      var _name$split = name.split('|'),
20817          _name$split2 = _slicedToArray(_name$split, 2),
20818          lng = _name$split2[0],
20819          ns = _name$split2[1];
20820
20821      if (err) this.emit('failedLoading', lng, ns, err);
20822
20823      if (data) {
20824        this.store.addResourceBundle(lng, ns, data);
20825      } // set loaded
20826
20827
20828      this.state[name] = err ? -1 : 2; // consolidated loading done in this run - only emit once for a loaded namespace
20829
20830      var loaded = {}; // callback if ready
20831
20832      this.queue.forEach(function (q) {
20833        pushPath(q.loaded, [lng], ns);
20834        remove(q.pending, name);
20835        if (err) q.errors.push(err);
20836
20837        if (q.pending.length === 0 && !q.done) {
20838          // only do once per loaded -> this.emit('loaded', q.loaded);
20839          Object.keys(q.loaded).forEach(function (l) {
20840            if (!loaded[l]) loaded[l] = [];
20841
20842            if (q.loaded[l].length) {
20843              q.loaded[l].forEach(function (ns) {
20844                if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);
20845              });
20846            }
20847          });
20848          /* eslint no-param-reassign: 0 */
20849
20850          q.done = true;
20851
20852          if (q.errors.length) {
20853            q.callback(q.errors);
20854          } else {
20855            q.callback();
20856          }
20857        }
20858      }); // emit consolidated loaded event
20859
20860      this.emit('loaded', loaded); // remove done load requests
20861
20862      this.queue = this.queue.filter(function (q) {
20863        return !q.done;
20864      });
20865    }
20866  }, {
20867    key: "read",
20868    value: function read(lng, ns, fcName) {
20869      var _this3 = this;
20870
20871      var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
20872      var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;
20873      var callback = arguments.length > 5 ? arguments[5] : undefined;
20874      if (!lng.length) return callback(null, {}); // noting to load
20875
20876      return this.backend[fcName](lng, ns, function (err, data) {
20877        if (err && data
20878        /* = retryFlag */
20879        && tried < 5) {
20880          setTimeout(function () {
20881            _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);
20882          }, wait);
20883          return;
20884        }
20885
20886        callback(err, data);
20887      });
20888    }
20889    /* eslint consistent-return: 0 */
20890
20891  }, {
20892    key: "prepareLoading",
20893    value: function prepareLoading(languages, namespaces) {
20894      var _this4 = this;
20895
20896      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
20897      var callback = arguments.length > 3 ? arguments[3] : undefined;
20898
20899      if (!this.backend) {
20900        this.logger.warn('No backend was added via i18next.use. Will not load resources.');
20901        return callback && callback();
20902      }
20903
20904      if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);
20905      if (typeof namespaces === 'string') namespaces = [namespaces];
20906      var toLoad = this.queueLoad(languages, namespaces, options, callback);
20907
20908      if (!toLoad.toLoad.length) {
20909        if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now
20910
20911        return null; // pendings will trigger callback
20912      }
20913
20914      toLoad.toLoad.forEach(function (name) {
20915        _this4.loadOne(name);
20916      });
20917    }
20918  }, {
20919    key: "load",
20920    value: function load(languages, namespaces, callback) {
20921      this.prepareLoading(languages, namespaces, {}, callback);
20922    }
20923  }, {
20924    key: "reload",
20925    value: function reload(languages, namespaces, callback) {
20926      this.prepareLoading(languages, namespaces, {
20927        reload: true
20928      }, callback);
20929    }
20930  }, {
20931    key: "loadOne",
20932    value: function loadOne(name) {
20933      var _this5 = this;
20934
20935      var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
20936
20937      var _name$split3 = name.split('|'),
20938          _name$split4 = _slicedToArray(_name$split3, 2),
20939          lng = _name$split4[0],
20940          ns = _name$split4[1];
20941
20942      this.read(lng, ns, 'read', null, null, function (err, data) {
20943        if (err) _this5.logger.warn("".concat(prefix, "loading namespace ").concat(ns, " for language ").concat(lng, " failed"), err);
20944        if (!err && data) _this5.logger.log("".concat(prefix, "loaded namespace ").concat(ns, " for language ").concat(lng), data);
20945
20946        _this5.loaded(name, err, data);
20947      });
20948    }
20949  }, {
20950    key: "saveMissing",
20951    value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {
20952      var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
20953
20954      if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {
20955        this.logger.warn("did not save key \"".concat(key, "\" for namespace \"").concat(namespace, "\" as the namespace was not yet loaded"), 'This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');
20956        return;
20957      }
20958
20959      if (this.backend && this.backend.create) {
20960        this.backend.create(languages, namespace, key, fallbackValue, null
20961        /* unused callback */
20962        , _objectSpread({}, options, {
20963          isUpdate: isUpdate
20964        }));
20965      } // write to store to avoid resending
20966
20967
20968      if (!languages || !languages[0]) return;
20969      this.store.addResource(languages[0], namespace, key, fallbackValue);
20970    }
20971  }]);
20972
20973  return Connector;
20974}(i18nextbabel_target_legacy_EventEmitter);
20975
20976function get() {
20977  return {
20978    debug: false,
20979    initImmediate: true,
20980    ns: ['translation'],
20981    defaultNS: ['translation'],
20982    fallbackLng: ['dev'],
20983    fallbackNS: false,
20984    // string or array of namespaces
20985    whitelist: false,
20986    // array with whitelisted languages
20987    nonExplicitWhitelist: false,
20988    load: 'all',
20989    // | currentOnly | languageOnly
20990    preload: false,
20991    // array with preload languages
20992    simplifyPluralSuffix: true,
20993    keySeparator: '.',
20994    nsSeparator: ':',
20995    pluralSeparator: '_',
20996    contextSeparator: '_',
20997    partialBundledLanguages: false,
20998    // allow bundling certain languages that are not remotely fetched
20999    saveMissing: false,
21000    // enable to send missing values
21001    updateMissing: false,
21002    // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)
21003    saveMissingTo: 'fallback',
21004    // 'current' || 'all'
21005    saveMissingPlurals: true,
21006    // will save all forms not only singular key
21007    missingKeyHandler: false,
21008    // function(lng, ns, key, fallbackValue) -> override if prefer on handling
21009    missingInterpolationHandler: false,
21010    // function(str, match)
21011    postProcess: false,
21012    // string or array of postProcessor names
21013    postProcessPassResolved: false,
21014    // pass resolved object into 'options.i18nResolved' for postprocessor
21015    returnNull: true,
21016    // allows null value as valid translation
21017    returnEmptyString: true,
21018    // allows empty string value as valid translation
21019    returnObjects: false,
21020    joinArrays: false,
21021    // or string to join array
21022    returnedObjectHandler: false,
21023    // function(key, value, options) triggered if key returns object but returnObjects is set to false
21024    parseMissingKeyHandler: false,
21025    // function(key) parsed a key that was not found in t() before returning
21026    appendNamespaceToMissingKey: false,
21027    appendNamespaceToCIMode: false,
21028    overloadTranslationOptionHandler: function handle(args) {
21029      var ret = {};
21030      if (_typeof(args[1]) === 'object') ret = args[1];
21031      if (typeof args[1] === 'string') ret.defaultValue = args[1];
21032      if (typeof args[2] === 'string') ret.tDescription = args[2];
21033
21034      if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {
21035        var options = args[3] || args[2];
21036        Object.keys(options).forEach(function (key) {
21037          ret[key] = options[key];
21038        });
21039      }
21040
21041      return ret;
21042    },
21043    interpolation: {
21044      escapeValue: true,
21045      format: function format(value, _format, lng) {
21046        return value;
21047      },
21048      prefix: '{{',
21049      suffix: '}}',
21050      formatSeparator: ',',
21051      // prefixEscaped: '{{',
21052      // suffixEscaped: '}}',
21053      // unescapeSuffix: '',
21054      unescapePrefix: '-',
21055      nestingPrefix: '$t(',
21056      nestingSuffix: ')',
21057      // nestingPrefixEscaped: '$t(',
21058      // nestingSuffixEscaped: ')',
21059      // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data
21060      maxReplaces: 1000 // max replaces to prevent endless loop
21061
21062    }
21063  };
21064}
21065/* eslint no-param-reassign: 0 */
21066
21067function transformOptions(options) {
21068  // create namespace object if namespace is passed in as string
21069  if (typeof options.ns === 'string') options.ns = [options.ns];
21070  if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];
21071  if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS]; // extend whitelist with cimode
21072
21073  if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {
21074    options.whitelist = options.whitelist.concat(['cimode']);
21075  }
21076
21077  return options;
21078}
21079
21080function noop() {}
21081
21082var i18nextbabel_target_legacy_I18n =
21083/*#__PURE__*/
21084function (_EventEmitter) {
21085  _inherits(I18n, _EventEmitter);
21086
21087  function I18n() {
21088    var _this;
21089
21090    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21091    var callback = arguments.length > 1 ? arguments[1] : undefined;
21092
21093    _classCallCheck(this, I18n);
21094
21095    _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));
21096    i18nextbabel_target_legacy_EventEmitter.call(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)); // <=IE10 fix (unable to call parent constructor)
21097
21098    _this.options = transformOptions(options);
21099    _this.services = {};
21100    _this.logger = baseLogger;
21101    _this.modules = {
21102      external: []
21103    };
21104
21105    if (callback && !_this.isInitialized && !options.isClone) {
21106      // https://github.com/i18next/i18next/issues/879
21107      if (!_this.options.initImmediate) {
21108        _this.init(options, callback);
21109
21110        return _possibleConstructorReturn(_this, Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this));
21111      }
21112
21113      setTimeout(function () {
21114        _this.init(options, callback);
21115      }, 0);
21116    }
21117
21118    return _this;
21119  }
21120
21121  _createClass(I18n, [{
21122    key: "init",
21123    value: function init() {
21124      var _this2 = this;
21125
21126      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21127      var callback = arguments.length > 1 ? arguments[1] : undefined;
21128
21129      if (typeof options === 'function') {
21130        callback = options;
21131        options = {};
21132      }
21133
21134      this.options = _objectSpread({}, get(), this.options, transformOptions(options));
21135      this.format = this.options.interpolation.format;
21136      if (!callback) callback = noop;
21137
21138      function createClassOnDemand(ClassOrObject) {
21139        if (!ClassOrObject) return null;
21140        if (typeof ClassOrObject === 'function') return new ClassOrObject();
21141        return ClassOrObject;
21142      } // init services
21143
21144
21145      if (!this.options.isClone) {
21146        if (this.modules.logger) {
21147          baseLogger.init(createClassOnDemand(this.modules.logger), this.options);
21148        } else {
21149          baseLogger.init(null, this.options);
21150        }
21151
21152        var lu = new i18nextbabel_target_legacy_LanguageUtil(this.options);
21153        this.store = new i18nextbabel_target_legacy_ResourceStore(this.options.resources, this.options);
21154        var s = this.services;
21155        s.logger = baseLogger;
21156        s.resourceStore = this.store;
21157        s.languageUtils = lu;
21158        s.pluralResolver = new i18nextbabel_target_legacy_PluralResolver(lu, {
21159          prepend: this.options.pluralSeparator,
21160          compatibilityJSON: this.options.compatibilityJSON,
21161          simplifyPluralSuffix: this.options.simplifyPluralSuffix
21162        });
21163        s.interpolator = new i18nextbabel_target_legacy_Interpolator(this.options);
21164        s.utils = {
21165          hasLoadedNamespace: this.hasLoadedNamespace.bind(this)
21166        };
21167        s.backendConnector = new i18nextbabel_target_legacy_Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector
21168
21169        s.backendConnector.on('*', function (event) {
21170          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
21171            args[_key - 1] = arguments[_key];
21172          }
21173
21174          _this2.emit.apply(_this2, [event].concat(args));
21175        });
21176
21177        if (this.modules.languageDetector) {
21178          s.languageDetector = createClassOnDemand(this.modules.languageDetector);
21179          s.languageDetector.init(s, this.options.detection, this.options);
21180        }
21181
21182        if (this.modules.i18nFormat) {
21183          s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);
21184          if (s.i18nFormat.init) s.i18nFormat.init(this);
21185        }
21186
21187        this.translator = new i18nextbabel_target_legacy_Translator(this.services, this.options); // pipe events from translator
21188
21189        this.translator.on('*', function (event) {
21190          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
21191            args[_key2 - 1] = arguments[_key2];
21192          }
21193
21194          _this2.emit.apply(_this2, [event].concat(args));
21195        });
21196        this.modules.external.forEach(function (m) {
21197          if (m.init) m.init(_this2);
21198        });
21199      } // append api
21200
21201
21202      var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];
21203      storeApi.forEach(function (fcName) {
21204        _this2[fcName] = function () {
21205          var _this2$store;
21206
21207          return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);
21208        };
21209      });
21210      var deferred = defer();
21211
21212      var load = function load() {
21213        _this2.changeLanguage(_this2.options.lng, function (err, t) {
21214          _this2.isInitialized = true;
21215
21216          _this2.logger.log('initialized', _this2.options);
21217
21218          _this2.emit('initialized', _this2.options);
21219
21220          deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)
21221
21222          callback(err, t);
21223        });
21224      };
21225
21226      if (this.options.resources || !this.options.initImmediate) {
21227        load();
21228      } else {
21229        setTimeout(load, 0);
21230      }
21231
21232      return deferred;
21233    }
21234    /* eslint consistent-return: 0 */
21235
21236  }, {
21237    key: "loadResources",
21238    value: function loadResources() {
21239      var _this3 = this;
21240
21241      var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;
21242
21243      if (!this.options.resources || this.options.partialBundledLanguages) {
21244        if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode
21245
21246        var toLoad = [];
21247
21248        var append = function append(lng) {
21249          if (!lng) return;
21250
21251          var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);
21252
21253          lngs.forEach(function (l) {
21254            if (toLoad.indexOf(l) < 0) toLoad.push(l);
21255          });
21256        };
21257
21258        if (!this.language) {
21259          // at least load fallbacks in this case
21260          var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
21261          fallbacks.forEach(function (l) {
21262            return append(l);
21263          });
21264        } else {
21265          append(this.language);
21266        }
21267
21268        if (this.options.preload) {
21269          this.options.preload.forEach(function (l) {
21270            return append(l);
21271          });
21272        }
21273
21274        this.services.backendConnector.load(toLoad, this.options.ns, callback);
21275      } else {
21276        callback(null);
21277      }
21278    }
21279  }, {
21280    key: "reloadResources",
21281    value: function reloadResources(lngs, ns, callback) {
21282      var deferred = defer();
21283      if (!lngs) lngs = this.languages;
21284      if (!ns) ns = this.options.ns;
21285      if (!callback) callback = noop;
21286      this.services.backendConnector.reload(lngs, ns, function (err) {
21287        deferred.resolve(); // not rejecting on err (as err is only a loading translation failed warning)
21288
21289        callback(err);
21290      });
21291      return deferred;
21292    }
21293  }, {
21294    key: "use",
21295    value: function use(module) {
21296      if (module.type === 'backend') {
21297        this.modules.backend = module;
21298      }
21299
21300      if (module.type === 'logger' || module.log && module.warn && module.error) {
21301        this.modules.logger = module;
21302      }
21303
21304      if (module.type === 'languageDetector') {
21305        this.modules.languageDetector = module;
21306      }
21307
21308      if (module.type === 'i18nFormat') {
21309        this.modules.i18nFormat = module;
21310      }
21311
21312      if (module.type === 'postProcessor') {
21313        postProcessor.addPostProcessor(module);
21314      }
21315
21316      if (module.type === '3rdParty') {
21317        this.modules.external.push(module);
21318      }
21319
21320      return this;
21321    }
21322  }, {
21323    key: "changeLanguage",
21324    value: function changeLanguage(lng, callback) {
21325      var _this4 = this;
21326
21327      var deferred = defer();
21328      this.emit('languageChanging', lng);
21329
21330      var done = function done(err, l) {
21331        _this4.translator.changeLanguage(l);
21332
21333        if (l) {
21334          _this4.emit('languageChanged', l);
21335
21336          _this4.logger.log('languageChanged', l);
21337        }
21338
21339        deferred.resolve(function () {
21340          return _this4.t.apply(_this4, arguments);
21341        });
21342        if (callback) callback(err, function () {
21343          return _this4.t.apply(_this4, arguments);
21344        });
21345      };
21346
21347      var setLng = function setLng(l) {
21348        if (l) {
21349          _this4.language = l;
21350          _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);
21351          if (!_this4.translator.language) _this4.translator.changeLanguage(l);
21352          if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);
21353        }
21354
21355        _this4.loadResources(function (err) {
21356          done(err, l);
21357        });
21358      };
21359
21360      if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {
21361        setLng(this.services.languageDetector.detect());
21362      } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {
21363        this.services.languageDetector.detect(setLng);
21364      } else {
21365        setLng(lng);
21366      }
21367
21368      return deferred;
21369    }
21370  }, {
21371    key: "getFixedT",
21372    value: function getFixedT(lng, ns) {
21373      var _this5 = this;
21374
21375      var fixedT = function fixedT(key, opts) {
21376        var options;
21377
21378        if (_typeof(opts) !== 'object') {
21379          for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
21380            rest[_key3 - 2] = arguments[_key3];
21381          }
21382
21383          options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));
21384        } else {
21385          options = _objectSpread({}, opts);
21386        }
21387
21388        options.lng = options.lng || fixedT.lng;
21389        options.lngs = options.lngs || fixedT.lngs;
21390        options.ns = options.ns || fixedT.ns;
21391        return _this5.t(key, options);
21392      };
21393
21394      if (typeof lng === 'string') {
21395        fixedT.lng = lng;
21396      } else {
21397        fixedT.lngs = lng;
21398      }
21399
21400      fixedT.ns = ns;
21401      return fixedT;
21402    }
21403  }, {
21404    key: "t",
21405    value: function t() {
21406      var _this$translator;
21407
21408      return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);
21409    }
21410  }, {
21411    key: "exists",
21412    value: function exists() {
21413      var _this$translator2;
21414
21415      return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);
21416    }
21417  }, {
21418    key: "setDefaultNamespace",
21419    value: function setDefaultNamespace(ns) {
21420      this.options.defaultNS = ns;
21421    }
21422  }, {
21423    key: "hasLoadedNamespace",
21424    value: function hasLoadedNamespace(ns) {
21425      var _this6 = this;
21426
21427      if (!this.isInitialized) {
21428        this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);
21429        return false;
21430      }
21431
21432      if (!this.languages || !this.languages.length) {
21433        this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);
21434        return false;
21435      }
21436
21437      var lng = this.languages[0];
21438      var fallbackLng = this.options ? this.options.fallbackLng : false;
21439      var lastLng = this.languages[this.languages.length - 1]; // we're in cimode so this shall pass
21440
21441      if (lng.toLowerCase() === 'cimode') return true;
21442
21443      var loadNotPending = function loadNotPending(l, n) {
21444        var loadState = _this6.services.backendConnector.state["".concat(l, "|").concat(n)];
21445
21446        return loadState === -1 || loadState === 2;
21447      }; // loaded -> SUCCESS
21448
21449
21450      if (this.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS
21451
21452      if (!this.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS
21453
21454      if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
21455      return false;
21456    }
21457  }, {
21458    key: "loadNamespaces",
21459    value: function loadNamespaces(ns, callback) {
21460      var _this7 = this;
21461
21462      var deferred = defer();
21463
21464      if (!this.options.ns) {
21465        callback && callback();
21466        return Promise.resolve();
21467      }
21468
21469      if (typeof ns === 'string') ns = [ns];
21470      ns.forEach(function (n) {
21471        if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);
21472      });
21473      this.loadResources(function (err) {
21474        deferred.resolve();
21475        if (callback) callback(err);
21476      });
21477      return deferred;
21478    }
21479  }, {
21480    key: "loadLanguages",
21481    value: function loadLanguages(lngs, callback) {
21482      var deferred = defer();
21483      if (typeof lngs === 'string') lngs = [lngs];
21484      var preloaded = this.options.preload || [];
21485      var newLngs = lngs.filter(function (lng) {
21486        return preloaded.indexOf(lng) < 0;
21487      }); // Exit early if all given languages are already preloaded
21488
21489      if (!newLngs.length) {
21490        if (callback) callback();
21491        return Promise.resolve();
21492      }
21493
21494      this.options.preload = preloaded.concat(newLngs);
21495      this.loadResources(function (err) {
21496        deferred.resolve();
21497        if (callback) callback(err);
21498      });
21499      return deferred;
21500    }
21501  }, {
21502    key: "dir",
21503    value: function dir(lng) {
21504      if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;
21505      if (!lng) return 'rtl';
21506      var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', '
21506yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];
21507      return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';
21508    }
21509    /* eslint class-methods-use-this: 0 */
21510
21511  }, {
21512    key: "createInstance",
21513    value: function createInstance() {
21514      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21515      var callback = arguments.length > 1 ? arguments[1] : undefined;
21516      return new I18n(options, callback);
21517    }
21518  }, {
21519    key: "cloneInstance",
21520    value: function cloneInstance() {
21521      var _this8 = this;
21522
21523      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
21524      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
21525
21526      var mergedOptions = _objectSpread({}, this.options, options, {
21527        isClone: true
21528      });
21529
21530      var clone = new I18n(mergedOptions);
21531      var membersToCopy = ['store', 'services', 'language'];
21532      membersToCopy.forEach(function (m) {
21533        clone[m] = _this8[m];
21534      });
21535      clone.translator = new i18nextbabel_target_legacy_Translator(clone.services, clone.options);
21536      clone.translator.on('*', function (event) {
21537        for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
21538          args[_key4 - 1] = arguments[_key4];
21539        }
21540
21541        clone.emit.apply(clone, [event].concat(args));
21542      });
21543      clone.init(mergedOptions, callback);
21544      clone.translator.options = clone.options; // sync options
21545
21546      return clone;
21547    }
21548  }]);
21549
21550  return I18n;
21551}(i18nextbabel_target_legacy_EventEmitter);
21552
21553var i18next = new i18nextbabel_target_legacy_I18n();
21554
21555/* harmony default export */ var i18nextbabel_target_legacy = (i18next);
21556
21557// EXTERNAL MODULE: ./node_modules/i18next-http-backend/esm/utils.js?babel-target=legacy
21558var utilsbabel_target_legacy = __webpack_require__(319);
21559
21560// EXTERNAL MODULE: ./node_modules/i18next-http-backend/esm/request.js?babel-target=legacy
21561var requestbabel_target_legacy = __webpack_require__(754);
21562
21563// CONCATENATED MODULE: ./node_modules/i18next-http-backend/esm?babel-target=legacy
21564function esm_babel_target_legacy_typeof(o) { "@babel/helpers - typeof"; return esm_babel_target_legacy_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, esm_babel_target_legacy_typeof(o); }
21565function esm_babel_target_legacy_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21566function esm_babel_target_legacy_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? esm_babel_target_legacy_ownKeys(Object(t), !0).forEach(function (r) { esm_babel_target_legacy_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : esm_babel_target_legacy_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21567function esm_babel_target_legacy_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21568function esm_babel_target_legacy_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, _toPropertyKey(descriptor.key), descriptor); } }
21569function esm_babel_target_legacy_createClass(Constructor, protoProps, staticProps) { if (protoProps) esm_babel_target_legacy_defineProperties(Constructor.prototype, protoProps); if (staticProps) esm_babel_target_legacy_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21570function esm_babel_target_legacy_defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
21571function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string");
21571 return esm_babel_target_legacy_typeof(key) === "symbol" ? key : String(key); }
21572function _toPrimitive(input, hint) { if (esm_babel_target_legacy_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (esm_babel_target_legacy_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21573
21574
21575var esm_babel_target_legacy_getDefaults = function getDefaults() {
21576  return {
21577    loadPath: '/locales/{{lng}}/{{ns}}.json',
21578    addPath: '/locales/add/{{lng}}/{{ns}}',
21579    parse: function parse(data) {
21580      return JSON.parse(data);
21581    },
21582    stringify: JSON.stringify,
21583    parsePayload: function parsePayload(namespace, key, fallbackValue) {
21584      return esm_babel_target_legacy_defineProperty({}, key, fallbackValue || '');
21585    },
21586    parseLoadPayload: function parseLoadPayload(languages, namespaces) {
21587      return undefined;
21588    },
21589    request: requestbabel_target_legacy["a" /* default */],
21590    reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,
21591    customHeaders: {},
21592    queryStringParams: {},
21593    crossDomain: false,
21594    withCredentials: false,
21595    overrideMimeType: false,
21596    requestOptions: {
21597      mode: 'cors',
21598      credentials: 'same-origin',
21599      cache: 'default'
21600    }
21601  };
21602};
21603var esm_babel_target_legacy_Backend = function () {
21604  function Backend(services) {
21605    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21606    var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
21607    esm_babel_target_legacy_classCallCheck(this, Backend);
21608    this.services = services;
21609    this.options = options;
21610    this.allOptions = allOptions;
21611    this.type = 'backend';
21612    this.init(services, options, allOptions);
21613  }
21614  esm_babel_target_legacy_createClass(Backend, [{
21615    key: "init",
21616    value: function init(services) {
21617      var _this = this;
21618      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
21619      var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
21620      this.services = services;
21621      this.options = esm_babel_target_legacy_objectSpread(esm_babel_target_legacy_objectSpread(esm_babel_target_legacy_objectSpread({}, esm_babel_target_legacy_getDefaults()), this.options || {}), options);
21622      this.allOptions = allOptions;
21623      if (this.services && this.options.reloadInterval) {
21624        setInterval(function () {
21625          return _this.reload();
21626        }, this.options.reloadInterval);
21627      }
21628    }
21629  }, {
21630    key: "readMulti",
21631    value: function readMulti(languages, namespaces, callback) {
21632      this._readAny(languages, languages, namespaces, namespaces, callback);
21633    }
21634  }, {
21635    key: "read",
21636    value: function read(language, namespace, callback) {
21637      this._readAny([language], language, [namespace], namespace, callback);
21638    }
21639  }, {
21640    key: "_readAny",
21641    value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {
21642      var _this2 = this;
21643      var loadPath = this.options.loadPath;
21644      if (typeof this.options.loadPath === 'function') {
21645        loadPath = this.options.loadPath(languages, namespaces);
21646      }
21647      loadPath = Object(utilsbabel_target_legacy["b" /* makePromise */])(loadPath);
21648      loadPath.then(function (resolvedLoadPath) {
21649        if (!resolvedLoadPath) return callback(null, {});
21650        var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {
21651          lng: languages.join('+'),
21652          ns: namespaces.join('+')
21653        });
21654        _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);
21655      });
21656    }
21657  }, {
21658    key: "loadUrl",
21659    value: function loadUrl(url, callback, languages, namespaces) {
21660      var _this3 = this;
21661      var lng = typeof languages === 'string' ? [languages] : languages;
21662      var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;
21663      var payload = this.options.parseLoadPayload(lng, ns);
21664      this.options.request(this.options, url, payload, function (err, res) {
21665        if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);
21666        if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);
21667        if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);
21668        if (err) return callback(err, false);
21669        var ret, parseErr;
21670        try {
21671          if (typeof res.data === 'string') {
21672            ret = _this3.options.parse(res.data, languages, namespaces);
21673          } else {
21674            ret = res.data;
21675          }
21676        } catch (e) {
21677          parseErr = 'failed parsing ' + url + ' to json';
21678        }
21679        if (parseErr) return callback(parseErr, false);
21680        callback(null, ret);
21681      });
21682    }
21683  }, {
21684    key: "create",
21685    value: function create(languages, namespace, key, fallbackValue, callback) {
21686      var _this4 = this;
21687      if (!this.options.addPath) return;
21688      if (typeof languages === 'string') languages = [languages];
21689      var payload = this.options.parsePayload(namespace, key, fallbackValue);
21690      var finished = 0;
21691      var dataArray = [];
21692      var resArray = [];
21693      languages.forEach(function (lng) {
21694        var addPath = _this4.options.addPath;
21695        if (typeof _this4.options.addPath === 'function') {
21696          addPath = _this4.options.addPath(lng, namespace);
21697        }
21698        var url = _this4.services.interpolator.interpolate(addPath, {
21699          lng: lng,
21700          ns: namespace
21701        });
21702        _this4.options.request(_this4.options, url, payload, function (data, res) {
21703          finished += 1;
21704          dataArray.push(data);
21705          resArray.push(res);
21706          if (finished === languages.length) {
21707            if (typeof callback === 'function') callback(dataArray, resArray);
21708          }
21709        });
21710      });
21711    }
21712  }, {
21713    key: "reload",
21714    value: function reload() {
21715      var _this5 = this;
21716      var _this$services = this.services,
21717        backendConnector = _this$services.backendConnector,
21718        languageUtils = _this$services.languageUtils,
21719        logger = _this$services.logger;
21720      var currentLanguage = backendConnector.language;
21721      if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;
21722      var toLoad = [];
21723      var append = function append(lng) {
21724        var lngs = languageUtils.toResolveHierarchy(lng);
21725        lngs.forEach(function (l) {
21726          if (toLoad.indexOf(l) < 0) toLoad.push(l);
21727        });
21728      };
21729      append(currentLanguage);
21730      if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {
21731        return append(l);
21732      });
21733      toLoad.forEach(function (lng) {
21734        _this5.allOptions.ns.forEach(function (ns) {
21735          backendConnector.read(lng, ns, 'read', null, null, function (err, data) {
21736            if (err) logger.warn("loading namespace ".concat(ns, " for language ").concat(lng, " failed"), err);
21737            if (!err && data) logger.log("loaded namespace ".concat(ns, " for language ").concat(lng), data);
21738            backendConnector.loaded("".concat(lng, "|").concat(ns), err, data);
21739          });
21740        });
21741      });
21742    }
21743  }]);
21744  return Backend;
21745}();
21746esm_babel_target_legacy_Backend.type = 'backend';
21747/* harmony default export */ var esm_babel_target_legacy = (esm_babel_target_legacy_Backend);
21748// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
21749var es_babel_target_legacy = __webpack_require__(25);
21750
21751// CONCATENATED MODULE: ./src/lib/i18n.ts?babel-target=legacy
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771function i18nbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
21772
21773function i18nbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { i18nbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { i18nbabel_target_legacy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21774
21775
21776
21777
21778var i18nOpts = {
21779  lng: "en",
21780  fallbackLng: "en",
21781  debug: true,
21782  keySeparator: false,
21783  interpolation: {
21784    escapeValue: false
21785  },
21786  react: {
21787    useSuspense: false
21788  },
21789  backend: {
21790    loadPath: "locales/{{lng}}/{{ns}}.json",
21791    crossDomain: true
21792  }
21793};
21794i18nextbabel_target_legacy.use(esm_babel_target_legacy).use(es_babel_target_legacy["b" /* initReactI18next */]);
21795
21796var fetchTranslation = /*#__PURE__*/function () {
21797  var _ref = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee(lng) {
21798    var rootUrl, response;
21799    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
21800      while (1) {
21801        switch (_context.prev = _context.next) {
21802          case 0:
21803            // console.log("Fetching translation for " + lng);
21804            rootUrl = "https://assets.player.radio/latest";
21805            _context.next = 3;
21806            return fetch("".concat(rootUrl, "/locales/").concat(lng, "/translation.json"));
21807
21808          case 3:
21809            response = _context.sent;
21810            return _context.abrupt("return", response);
21811
21812          case 5:
21813          case "end":
21814            return _context.stop();
21815        }
21816      }
21817    }, _callee);
21818  }));
21819
21820  return function fetchTranslation(_x) {
21821    return _ref.apply(this, arguments);
21822  };
21823}();
21824
21825var initUsingDefault = /*#__PURE__*/function () {
21826  var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2(lng) {
21827    var isDebug,
21828        response,
21829        json,
21830        _args2 = arguments;
21831    return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
21832      while (1) {
21833        switch (_context2.prev = _context2.next) {
21834          case 0:
21835            isDebug = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;
21836
21837            if (!( false || isDebug)) {
21838              _context2.next = 3;
21839              break;
21840            }
21841
21842            return _context2.abrupt("return", false);
21843
21844          case 3:
21845            _context2.next = 5;
21846            return fetchTranslation(lng);
21847
21848          case 5:
21849            response = _context2.sent;
21850
21851            if (!(!response.ok || response.status !== 200)) {
21852              _context2.next = 8;
21853              break;
21854            }
21855
21856            return _context2.abrupt("return", false);
21857
21858          case 8:
21859            _context2.prev = 8;
21860            _context2.next = 11;
21861            return response.json();
21862
21863          case 11:
21864            json = _context2.sent;
21865            _context2.next = 14;
21866            return i18nextbabel_target_legacy.init(i18nbabel_target_legacy_objectSpread(i18nbabel_target_legacy_objectSpread({}, i18nOpts), {}, {
21867              backend: undefined,
21868              lng: lng,
21869              resources: definePropertybabel_target_legacy_default()({}, lng, {
21870                translation: json
21871              })
21872            }));
21873
21874          case 14:
21875            return _context2.abrupt("return", true);
21876
21877          case 17:
21878            _context2.prev = 17;
21879            _context2.t0 = _context2["catch"](8);
21880            return _context2.abrupt("return", false);
21881
21882          case 20:
21883          case "end":
21884            return _context2.stop();
21885        }
21886      }
21887    }, _callee2, null, [[8, 17]]);
21888  }));
21889
21890  return function initUsingDefault(_x2) {
21891    return _ref2.apply(this, arguments);
21892  };
21893}();
21894
21895var initI18n = /*#__PURE__*/function () {
21896  var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee3(localeRootUrl) {
21897    var lng,
21898        isDebug,
21899        success,
21900        _args3 = arguments;
21901    return regenerator_babel_target_legacy_default.a.wrap(function _callee3$(_context3) {
21902      while (1) {
21903        switch (_context3.prev = _context3.next) {
21904          case 0:
21905            lng = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : "en";
21906            isDebug = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : false;
21907            _context3.next = 4;
21908            return initUsingDefault(lng, isDebug);
21909
21910          case 4:
21911            success = _context3.sent;
21912
21913            if (!success) {
21914              _context3.next = 7;
21915              break;
21916            }
21917
21918            return _context3.abrupt("return");
21919
21920          case 7:
21921            _context3.next = 9;
21922            return i18nextbabel_target_legacy.init(i18nbabel_target_legacy_objectSpread(i18nbabel_target_legacy_objectSpread({}, i18nOpts), {}, {
21923              debug:  false || window.location.search.includes("debug"),
21924              backend: i18nbabel_target_legacy_objectSpread(i18nbabel_target_legacy_objectSpread({}, i18nOpts.backend), {}, {
21925                loadPath: "".concat(localeRootUrl, "/locales/{{lng}}/{{ns}}.json")
21926              }),
21927              lng: lng
21928            }));
21929
21930          case 9:
21931          case "end":
21932            return _context3.stop();
21933        }
21934      }
21935    }, _callee3);
21936  }));
21937
21938  return function initI18n(_x3) {
21939    return _ref3.apply(this, arguments);
21940  };
21941}();
21942var changeLanguage = /*#__PURE__*/function () {
21943  var _ref4 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee4(lng, isDebug) {
21944    var response, json;
21945    return regenerator_babel_target_legacy_default.a.wrap(function _callee4$(_context4) {
21946      while (1) {
21947        switch (_context4.prev = _context4.next) {
21948          case 0:
21949            if (!(lng === i18nextbabel_target_legacy.language)) {
21950              _context4.next = 2;
21951              break;
21952            }
21953
21954            return _context4.abrupt("return");
21955
21956          case 2:
21957            if (false) {}
21958
21959            _context4.next = 5;
21960            return fetchTranslation(lng);
21961
21962          case 5:
21963            response = _context4.sent;
21964
21965            if (!(!response.ok || response.status !== 200)) {
21966              _context4.next = 8;
21967              break;
21968            }
21969
21970            return _context4.abrupt("return");
21971
21972          case 8:
21973            _context4.next = 10;
21974            return response.json();
21975
21976          case 10:
21977            json = _context4.sent;
21978            i18nextbabel_target_legacy.addResourceBundle(lng, "translation", json, true);
21979
21980          case 12:
21981            _context4.next = 14;
21982            return i18nextbabel_target_legacy.changeLanguage(lng);
21983
21984          case 14:
21985          case "end":
21986            return _context4.stop();
21987        }
21988      }
21989    }, _callee4);
21990  }));
21991
21992  return function changeLanguage(_x4, _x5) {
21993    return _ref4.apply(this, arguments);
21994  };
21995}();
21996/* harmony default export */ var i18nbabel_target_legacy = __webpack_exports__["b"] = (i18nextbabel_target_legacy);
21997
21998/***/ }),
21999/* 322 */
22000/***/ (function(module, exports, __webpack_require__) {
22001
22002// extracted by mini-css-extract-plugin
22003module.exports = {"visuallyHidden":"SoundOfSilence-module__visuallyHidden--4WiuL","title":"SoundOfSilence-module__title--1PSpd","link":"SoundOfSilence-module__link--3bBHA","lyrics":"SoundOfSilence-module__lyrics--1Wk2P","copyContainer":"SoundOfSilence-module__copyContainer--2nBmV","background":"SoundOfSilence-module__background--23-t5","container":"SoundOfSilence-module__container--1fb2M","icon":"SoundOfSilence-module__icon--30z7U"};
22004
22005/***/ }),
22006/* 323 */,
22007/* 324 */,
22008/* 325 */,
22009/* 326 */,
22010/* 327 */,
22011/* 328 */
22012/***/ (function(module, exports, __webpack_require__) {
22013
22014var $ = __webpack_require__(2);
22015var $values = __webpack_require__(374).values;
22016
22017// `Object.values` method
22018// https://tc39.github.io/ecma262/#sec-object.values
22019$({ target: 'Object', stat: true }, {
22020  values: function values(O) {
22021    return $values(O);
22022  }
22023});
22024
22025
22026/***/ }),
22027/* 329 */,
22028/* 330 */
22029/***/ (function(module, __webpack_exports__, __webpack_require__) {
22030
22031"use strict";
22032
22033// EXPORTS
22034__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ FaveButtonbabel_target_legacy_FaveButton; });
22035
22036// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
22037var extendsbabel_target_legacy = __webpack_require__(50);
22038var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
22039
22040// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
22041var definePropertybabel_target_legacy = __webpack_require__(15);
22042var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
22043
22044// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
22045var slicedToArraybabel_target_legacy = __webpack_require__(8);
22046var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
22047
22048// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
22049var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
22050var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
22051
22052// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
22053var preact_modulebabel_target_legacy = __webpack_require__(1);
22054
22055// EXTERNAL MODULE: ./src/components/FaveButton/FaveButton.module.scss
22056var FaveButton_module = __webpack_require__(81);
22057var FaveButton_module_default = /*#__PURE__*/__webpack_require__.n(FaveButton_module);
22058
22059// EXTERNAL MODULE: ./src/components/IconSprite/index.ts?babel-target=legacy + 1 modules
22060var IconSpritebabel_target_legacy = __webpack_require__(131);
22061
22062// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
22063var useAPIbabel_target_legacy = __webpack_require__(44);
22064
22065// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
22066var hooks_modulebabel_target_legacy = __webpack_require__(4);
22067
22068// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
22069var APIManagerbabel_target_legacy = __webpack_require__(32);
22070
22071// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
22072var classnames_babel_target_legacy = __webpack_require__(27);
22073var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
22074
22075// EXTERNAL MODULE: ./src/lib/Analytics/index.ts?babel-target=legacy + 3 modules
22076var Analyticsbabel_target_legacy = __webpack_require__(184);
22077
22078// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
22079var es_babel_target_legacy = __webpack_require__(25);
22080
22081// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
22082var loggerbabel_target_legacy = __webpack_require__(10);
22083
22084// EXTERNAL MODULE: ./src/components/FaveTip/FaveTip.module.scss
22085var FaveTip_module = __webpack_require__(82);
22086var FaveTip_module_default = /*#__PURE__*/__webpack_require__.n(FaveTip_module);
22087
22088// CONCATENATED MODULE: ./src/components/FaveTip/FaveTip.tsx?babel-target=legacy
22089
22090
22091
22092
22093
22094var FaveTipbabel_target_legacy_FaveTip = function FaveTip(_ref) {
22095  var hideFaveTip = _ref.hideFaveTip;
22096
22097  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
22098      t = _useTranslation.t;
22099
22100  return Object(preact_modulebabel_target_legacy["h"])("div", {
22101    className: FaveTip_module_default.a.faveTipContainer
22102  }, Object(preact_modulebabel_target_legacy["h"])("div", {
22103    className: FaveTip_module_default.a.faveTipContainerInner
22104  }, Object(preact_modulebabel_target_legacy["h"])("div", {
22105    className: FaveTip_module_default.a.heartIcon
22106  }, Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
22107    "aria-hidden": true,
22108    className: classnames_babel_target_legacy_default()(FaveTip_module_default.a.faved),
22109    name: "fave-set"
22110  })), Object(preact_modulebabel_target_legacy["h"])("h3", {
22111    className: FaveTip_module_default.a.faveTipHeader
22112  }, t("FAVE_TIP_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
22113    className: FaveTip_module_default.a.faveTipText
22114  }, t("FAVE_TIP_TEXT")), Object(preact_modulebabel_target_legacy["h"])("button", {
22115    onClick: hideFaveTip,
22116    className: FaveTip_module_default.a.closeText
22117  }, t("FAVE_TIP_BUTTON"))), Object(preact_modulebabel_target_legacy["h"])("svg", {
22118    viewBox: "0 0 18 10",
22119    xmlns: "http://www.w3.org/2000/svg",
22120    className: FaveTip_module_default.a.tip,
22121    "aria-hidden": true
22122  }, Object(preact_modulebabel_target_legacy["h"])("polygon", {
22123    points: "0,0 9,10 18,0 0,0",
22124    fill: "#f3f3f3"
22125  }), Object(preact_modulebabel_target_legacy["h"])("polyline", {
22126    points: "0,0 9,10 18,0",
22127    stroke: "#d7d7d7",
22128    fill: "none"
22129  })));
22130};
22131/* harmony default export */ var FaveTipbabel_target_legacy = (FaveTipbabel_target_legacy_FaveTip);
22132// CONCATENATED MODULE: ./src/components/FaveTip/index.ts?babel-target=legacy
22133
22134// CONCATENATED MODULE: ./src/components/FaveButton/FaveButton.tsx?babel-target=legacy
22135
22136
22137
22138
22139
22140/* eslint-disable react/jsx-no-literals */
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152var FaveButtonbabel_target_legacy_FaveButton = function FaveButton(_ref) {
22153  var id = _ref.id,
22154      _ref$colour = _ref.colour,
22155      colour = _ref$colour === void 0 ? "#cc0033" : _ref$colour,
22156      className = _ref.className,
22157      darkTheme = _ref.darkTheme,
22158      tip = _ref.tip,
22159      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["id", "colour", "className", "darkTheme", "tip"]);
22160
22161  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
22162      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
22163      state = _useAPI2[0],
22164      dispatch = _useAPI2[1];
22165
22166  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
22167      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
22168      toolTipDisplay = _useState2[0],
22169      setToolTipDisplay = _useState2[1];
22170
22171  var _useAnalytics = Object(Analyticsbabel_target_legacy["b" /* useAnalytics */])(),
22172      sendEvent = _useAnalytics.sendEvent;
22173
22174  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
22175      t = _useTranslation.t;
22176
22177  var faved = Object(APIManagerbabel_target_legacy["m" /* isFave */])(id, state.faves);
22178  var hideFaveTip = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
22179    if (!state.hideFavTip) {
22180      localStorage.setItem("hideFavTip", "true");
22181      setToolTipDisplay(false);
22182      dispatch({
22183        type: "HIDE_FAVE_TIP",
22184        payload: ""
22185      });
22186    }
22187  }, [dispatch, state.hideFavTip]);
22188  var setFave = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (e) {
22189    e.preventDefault();
22190
22191    if (faved) {
22192      sendEvent("Navigation", "Remove from Favourites", id);
22193      dispatch({
22194        type: "REMOVE_FAVE",
22195        payload: id
22196      });
22197    } else {
22198      if (!state.faves.length) {
22199        dispatch({
22200          type: "DISPLAY_FAVE_NOTIFICATION",
22201          payload: ""
22202        });
22203      } else {
22204        Object(loggerbabel_target_legacy["c" /* log */])("Already have faves");
22205      }
22206
22207      sendEvent("Navigation", "Add to Favourites", id);
22208      dispatch({
22209        type: "ADD_FAVE",
22210        payload: id
22211      });
22212    }
22213
22214    hideFaveTip();
22215  }, [faved, hideFaveTip, sendEvent, id, dispatch, state.faves.length]);
22216
22217  var handleHover = function handleHover() {
22218    // If tip has not been closed or a fav selected toggle the tip display
22219    Object(loggerbabel_target_legacy["c" /* log */])("state.hideFavTip: ", state.faves.length);
22220
22221    if (!state.hideFavTip) {
22222      setToolTipDisplay(!toolTipDisplay);
22223    }
22224  };
22225
22226  return Object(preact_modulebabel_target_legacy["h"])("div", {
22227    onMouseEnter: handleHover,
22228    onMouseLeave: handleHover,
22229    className: FaveButton_module_default.a.buttoncontainer
22230  }, Object(preact_modulebabel_target_legacy["h"])("button", extendsbabel_target_legacy_default()({
22231    className: classnames_babel_target_legacy_default()(FaveButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, FaveButton_module_default.a.dark, darkTheme), className),
22232    onClick: setFave,
22233    "aria-label": faved ? t("ARIA_REMOVE_FAVOURITE") : t("ARIA_ADD_FAVOURITE")
22234  }, props), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
22235    "aria-hidden": true,
22236    className: faved ? FaveButton_module_default.a.hover : FaveButton_module_default.a.nohover,
22237    name: "fave-unset",
22238    style: {
22239      color: colour || "currentColor"
22240    }
22241  }), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
22242    "aria-hidden": true,
22243    className: classnames_babel_target_legacy_default()(definePropertybabel_target_legacy_default()({}, FaveButton_module_default.a.faved, faved), faved ? FaveButton_module_default.a.nohover : FaveButton_module_default.a.hover),
22244    name: "fave-set",
22245    style: {
22246      color: colour || "currentColor"
22247    }
22248  })), state.faves.length === 0 && tip && toolTipDisplay && Object(preact_modulebabel_target_legacy["h"])(FaveTipbabel_target_legacy_FaveTip, {
22249    hideFaveTip: hideFaveTip
22250  }));
22251};
22252/* harmony default export */ var FaveButtonbabel_target_legacy = (FaveButtonbabel_target_legacy_FaveButton);
22253// CONCATENATED MODULE: ./src/components/FaveButton/index.ts?babel-target=legacy
22254
22255
22256/***/ }),
22257/* 331 */,
22258/* 332 */,
22259/* 333 */
22260/***/ (function(module, __webpack_exports__, __webpack_require__) {
22261
22262"use strict";
22263
22264// EXPORTS
22265__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ Trans; });
22266
22267// UNUSED EXPORTS: nodesToString
22268
22269// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
22270var es_symbolbabel_target_legacy = __webpack_require__(71);
22271
vendor: 5,987 bytes, lines 22272-22375
22272// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
22273var es_array_concatbabel_target_legacy = __webpack_require__(75);
22274
22275// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.every.js?babel-target=legacy
22276var es_array_everybabel_target_legacy = __webpack_require__(425);
22277
22278// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
22279var es_array_filterbabel_target_legacy = __webpack_require__(70);
22280
22281// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
22282var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
22283
22284// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js?babel-target=legacy
22285var es_array_index_ofbabel_target_legacy = __webpack_require__(265);
22286
22287// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js?babel-target=legacy
22288var es_array_iteratorbabel_target_legacy = __webpack_require__(138);
22289
22290// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js?babel-target=legacy
22291var es_array_joinbabel_target_legacy = __webpack_require__(160);
22292
22293// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js?babel-target=legacy
22294var es_array_reducebabel_target_legacy = __webpack_require__(162);
22295
22296// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
22297var es_function_namebabel_target_legacy = __webpack_require__(123);
22298
22299// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js?babel-target=legacy
22300var es_object_assignbabel_target_legacy = __webpack_require__(406);
22301
22302// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
22303var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
22304
22305// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
22306var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
22307
22308// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
22309var es_object_keysbabel_target_legacy = __webpack_require__(89);
22310
22311// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
22312var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
22313
22314// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.constructor.js?babel-target=legacy
22315var es_regexp_constructorbabel_target_legacy = __webpack_require__(427);
22316
22317// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js?babel-target=legacy
22318var es_regexp_execbabel_target_legacy = __webpack_require__(93);
22319
22320// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js?babel-target=legacy
22321var es_regexp_to_stringbabel_target_legacy = __webpack_require__(156);
22322
22323// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
22324var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
22325
22326// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js?babel-target=legacy
22327var web_dom_collections_iteratorbabel_target_legacy = __webpack_require__(257);
22328
22329// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
22330var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
22331var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
22332
22333// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
22334var definePropertybabel_target_legacy = __webpack_require__(15);
22335var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
22336
22337// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/typeof.js?babel-target=legacy
22338var typeofbabel_target_legacy = __webpack_require__(154);
22339var typeofbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(typeofbabel_target_legacy);
22340
22341// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js?babel-target=legacy
22342var compat_modulebabel_target_legacy = __webpack_require__(18);
22343
22344// EXTERNAL MODULE: ./node_modules/html-parse-stringify2?babel-target=legacy
22345var html_parse_stringify2_babel_target_legacy = __webpack_require__(403);
22346var html_parse_stringify2_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(html_parse_stringify2_babel_target_legacy);
22347
22348// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js?babel-target=legacy
22349var es_promisebabel_target_legacy = __webpack_require__(187);
22350
22351// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js?babel-target=legacy
22352var classCallCheckbabel_target_legacy = __webpack_require__(233);
22353var classCallCheckbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classCallCheckbabel_target_legacy);
22354
22355// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js?babel-target=legacy
22356var createClassbabel_target_legacy = __webpack_require__(234);
22357var createClassbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(createClassbabel_target_legacy);
22358
22359// CONCATENATED MODULE: ./src/lib/Trans/context.js?babel-target=legacy
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22374
22375function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
22375 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22376
22377
22378var defaultOptions = {
22379  bindI18n: 'languageChanging languageChanged',
22380  bindI18nStore: '',
22381  // nsMode: 'fallback' // loop through all namespaces given to hook, HOC, render prop for key lookup
22382  transEmptyNodeValue: '',
22383  transSupportBasicHtmlNodes: true,
22384  transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],
22385  // hashTransKey: key => key // calculate a key for Trans component based on defaultValue
22386  useSuspense: true
22387};
22388var i18nInstance;
22389var hasUsedI18nextProvider;
22390var I18nContext = compat_modulebabel_target_legacy["c" /* default */].createContext();
22391function usedI18nextProvider(used) {
22392  hasUsedI18nextProvider = used;
22393}
22394function getHasUsedI18nextProvider() {
22395  return hasUsedI18nextProvider;
22396}
22397function setDefaults() {
22398  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22399  defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);
22400}
22401function getDefaults() {
22402  return defaultOptions;
22403}
22404var contextbabel_target_legacy_ReportNamespaces = /*#__PURE__*/function () {
22405  function ReportNamespaces() {
22406    classCallCheckbabel_target_legacy_default()(this, ReportNamespaces);
22407
22408    this.usedNamespaces = {};
22409  }
22410
22411  createClassbabel_target_legacy_default()(ReportNamespaces, [{
22412    key: "addUsedNamespaces",
22413    value: function addUsedNamespaces(namespaces) {
22414      var _this = this;
22415
22416      namespaces.forEach(function (ns) {
22417        if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;
22418      });
22419    }
22420  }, {
22421    key: "getUsedNamespaces",
22422    value: function getUsedNamespaces() {
22423      return Object.keys(this.usedNamespaces);
22424    }
22425  }]);
22426
22427  return ReportNamespaces;
22428}();
22429function setI18n(instance) {
22430  i18nInstance = instance;
22431}
22432function getI18n() {
22433  return i18nInstance;
22434}
22435var initReactI18next = {
22436  type: '3rdParty',
22437  init: function init(instance) {
22438    setDefaults(instance.options.react);
22439    setI18n(instance);
22440  }
22441};
22442function composeInitialProps(ForComponent) {
22443  return function (ctx) {
22444    return new Promise(function (resolve) {
22445      var i18nInitialProps = getInitialProps();
22446
22447      if (ForComponent.getInitialProps) {
22448        ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {
22449          resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));
22450        });
22451      } else {
22452        resolve(i18nInitialProps);
22453      }
22454    });
22455  }; // Avoid async for now - so we do not need to pull in regenerator
22456  // return async ctx => {
22457  //   const componentsInitialProps = ForComponent.getInitialProps
22458  //     ? await ForComponent.getInitialProps(ctx)
22459  //     : {};
22460  //   const i18nInitialProps = getInitialProps();
22461  //   return {
22462  //     ...componentsInitialProps,
22463  //     ...i18nInitialProps,
22464  //   };
22465  // };
22466}
22467function getInitialProps() {
22468  var i18n = getI18n();
22469  var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];
22470  var ret = {};
22471  var initialI18nStore = {};
22472  i18n.languages.forEach(function (l) {
22473    initialI18nStore[l] = {};
22474    namespaces.forEach(function (ns) {
22475      initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};
22476    });
22477  });
22478  ret.initialI18nStore = initialI18nStore;
22479  ret.initialLanguage = i18n.language;
22480  return ret;
22481}
22482// CONCATENATED MODULE: ./src/lib/Trans/utils.js?babel-target=legacy
22483
22484
22485function warn() {
22486  if (console && console.warn) {
22487    var _console;
22488
22489    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
22490      args[_key] = arguments[_key];
22491    }
22492
22493    if (typeof args[0] === 'string') args[0] = "react-i18next:: ".concat(args[0]);
22494
22495    (_console = console).warn.apply(_console, args);
22496  }
22497}
22498var alreadyWarned = {};
22499function warnOnce() {
22500  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
22501    args[_key2] = arguments[_key2];
22502  }
22503
22504  if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;
22505  if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();
22506  warn.apply(void 0, args);
22507} // not needed right now
22508//
22509// export function deprecated(...args) {
22510//   if (process && process.env && (!process.env.NODE_ENV || process.env.NODE_ENV === 'development')) {
22511//     if (typeof args[0] === 'string') args[0] = `deprecation warning -> ${args[0]}`;
22512//     warnOnce(...args);
22513//   }
22514// }
22515
22516function loadNamespaces(i18n, ns, cb) {
22517  i18n.loadNamespaces(ns, function () {
22518    // delay ready if not yet initialized i18n instance
22519    if (i18n.isInitialized) {
22520      cb();
22521    } else {
22522      var initialized = function initialized() {
22523        // due to emitter removing issue in i18next we need to delay remove
22524        setTimeout(function () {
22525          i18n.off('initialized', initialized);
22526        }, 0);
22527        cb();
22528      };
22529
22530      i18n.on('initialized', initialized);
22531    }
22532  });
22533}
22534function hasLoadedNamespace(ns, i18n) {
22535  if (!i18n.languages || !i18n.languages.length) {
22536    warnOnce('i18n.languages were undefined or empty', i18n.languages);
22537    return true;
22538  }
22539
22540  var lng = i18n.languages[0];
22541  var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;
22542  var lastLng = i18n.languages[i18n.languages.length - 1]; // we're in cimode so this shall pass
22543
22544  if (lng.toLowerCase() === 'cimode') return true;
22545
22546  var loadNotPending = function loadNotPending(l, n) {
22547    var loadState = i18n.services.backendConnector.state["".concat(l, "|").concat(n)];
22548    return loadState === -1 || loadState === 2;
22549  }; // loaded -> SUCCESS
22550
22551
22552  if (i18n.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS
22553
22554  if (!i18n.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS
22555
22556  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
22557  return false;
22558}
22559function getDisplayName(Component) {
22560  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
22561}
22562// CONCATENATED MODULE: ./src/lib/Trans/Trans.js?babel-target=legacy
22563
22564
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587function Transbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
22588
22589function Transbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Transbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Transbabel_target_legacy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22590
22591
22592
22593
22594
22595
22596function hasChildren(node) {
22597  var children = getChildren(node);
22598  return !!(children && children.length);
22599}
22600
22601function getChildren(node) {
22602  if (!node) return [];
22603  var descriptor = Object.getOwnPropertyDescriptor(node, "children");
22604  return descriptor && descriptor.value ? node.children : node.props && node.props.children;
22605}
22606
22607function hasValidReactChildren(children) {
22608  if (Object.prototype.toString.call(children) !== "[object Array]") return false;
22609  return children.every(function (child) {
22610    return compat_modulebabel_target_legacy["c" /* default */].isValidElement(child);
22611  });
22612}
22613
22614function nodesToString(mem, children, index, i18nOptions) {
22615  if (!children) return "";
22616  if (Object.prototype.toString.call(children) !== "[object Array]") children = [children];
22617  var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
22618  children.forEach(function (child, i) {
22619    // const isElement = React.isValidElement(child);
22620    // const elementKey = `${index !== 0 ? index + '-' : ''}${i}:${typeof child.type === 'function' ? child.type.name : child.type || 'var'}`;
22621    var elementKey = "".concat(i);
22622
22623    if (typeof child === "string") {
22624      mem = "".concat(mem).concat(child);
22625    } else if (hasChildren(child)) {
22626      var elementTag = keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 1 && typeof hasChildren(child) === "string" ? child.type : elementKey;
22627
22628      if (child.props && child.props.i18nIsDynamicList) {
22629        // we got a dynamic list like "<ul>{['a', 'b'].map(item => ( <li key={item}>{item}</li> ))}</ul>""
22630        // the result should be "<0></0>" and not "<0><0>a</0><1>b</1></0>"
22631        mem = "".concat(mem, "<").concat(elementTag, "></").concat(elementTag, ">");
22632      } else {
22633        // regular case mapping the inner children
22634        mem = "".concat(mem, "<").concat(elementTag, ">").concat(nodesToString("", getChildren(child), i + 1, i18nOptions), "</").concat(elementTag, ">");
22635      }
22636    } else if (compat_modulebabel_target_legacy["c" /* default */].isValidElement(child)) {
22637      if (keepArray.indexOf(child.type) > -1 && Object.keys(child.props).length === 0) {
22638        mem = "".concat(mem, "<").concat(child.type, "/>");
22639      } else {
22640        mem = "".concat(mem, "<").concat(elementKey, "></").concat(elementKey, ">");
22641      }
22642    } else if (typeofbabel_target_legacy_default()(child) === "object") {
22643      var clone = Transbabel_target_legacy_objectSpread({}, child);
22644
22645      var format = clone.format;
22646      delete clone.format;
22647      var keys = Object.keys(clone);
22648
22649      if (format && keys.length === 1) {
22650        mem = "".concat(mem, "{{").concat(keys[0], ", ").concat(format, "}}");
22651      } else if (keys.length === 1) {
22652        mem = "".concat(mem, "{{").concat(keys[0], "}}");
22653      } else {
22654        // not a valid interpolation object (can only contain one value plus format)
22655        warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.", child);
22656      }
22657    } else {
22658      warn("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.", child);
22659    }
22660  });
22661  return mem;
22662}
22663
22664function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts) {
22665  if (targetString === "") return []; // check if contains tags we need to replace from html string to react nodes
22666
22667  var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
22668  var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join("|")).test(target
22668String); // no need to replace tags in the targetstring
22669
22670  if (!children && !emptyChildrenButNeedsHandling) return [targetString]; // v2 -> interpolates upfront no need for "some <0>{{var}}</0>"" -> will be just "some {{var}}" in translation file
22671
22672  var data = {};
22673
22674  function getData(childs) {
22675    if (Object.prototype.toString.call(childs) !== "[object Array]") childs = [childs];
22676    childs.forEach(function (child) {
22677      if (typeof child === "string") return;
22678      if (hasChildren(child)) getData(getChildren(child));else if (typeofbabel_target_legacy_default()(child) === "object" && !compat_modulebabel_target_legacy["c" /* default */].isValidElement(child)) Object.assign(data, child);
22679    });
22680  }
22681
22682  getData(children);
22683  targetString = i18n.services.interpolator.interpolate(targetString, Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, data), combinedTOpts), i18n.language); // parse ast from string with additional wrapper tag
22684  // -> avoids issues in parser removing prepending text nodes
22685
22686  var ast = html_parse_stringify2_babel_target_legacy_default.a.parse("<0>
22686".concat(targetString, "</0>"));
22687
22688  function mapAST(reactNodes, astNodes) {
22689    if (Object.prototype.toString.call(reactNodes) !== "[object Array]") reactNodes = [reactNodes];
22690    if (Object.prototype.toString.call(astNodes) !== "[object Array]") astNodes = [astNodes];
22691    return astNodes.reduce(function (mem, node, i) {
22692      var translationContent = node.children && node.children[0] && node.children[0].content;
22693
22694      if (node.type === "tag") {
22695        var child = reactNodes[parseInt(node.name, 10)] || {};
22696        var isElement = compat_modulebabel_target_legacy["c" /* default */].isValidElement(child);
22697
22698        if (typeof child === "string") {
22699          mem.push(child);
22700        } else if (hasChildren(child)) {
22701          var childs = getChildren(child);
22702          var mappedChildren = mapAST(childs, node.children);
22703          var inner = hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
22704          if (child.dummy) child.children = inner; // needed on preact!
22705
22706          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, child.props), {}, {
22707            key: i
22708          }), inner));
22709        } else if (emptyChildrenButNeedsHandling && typeofbabel_target_legacy_default()(child) === "object" && child.dummy && !isElement) {
22710          // we have a empty Trans node (the dummy element) with a targetstring that contains html tags needing
22711          // conversion to react nodes
22712          // so we just need to map the inner stuff
22713          var _inner = mapAST(reactNodes
22714          /* wrong but we need something */
22715          , node.children);
22716
22717          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, child.props), {}, {
22718            key: i
22719          }), _inner));
22720        } else if (isNaN(node.name) && i18nOptions.transSupportBasicHtmlNodes) {
22721          if (node.voidElement) {
22722            mem.push(compat_modulebabel_target_legacy["c" /* default */].createElement(node.name, {
22723              key: "".concat(node.name, "-").concat(i)
22724            }));
22725          } else {
22726            var _inner2 = mapAST(reactNodes
22727            /* wrong but we need something */
22728            , node.children);
22729
22730            mem.push(compat_modulebabel_target_legacy["c" /* default */].createElement(node.name, {
22731              key: "".concat(node.name, "-").concat(i)
22732            }, _inner2));
22733          }
22734        } else if (typeofbabel_target_legacy_default()(child) === "object" && !isElement) {
22735          var content = node.children[0] ? translationContent : null; // v1
22736          // as interpolation was done already we just have a regular content node
22737          // in the translation AST while having an object in reactNodes
22738          // -> push the content no need to interpolate again
22739
22740          if (content) mem.push(content);
22741        } else if (node.children.length === 1 && translationContent) {
22742          // If component does not have children, but translation - has
22743          // with this in component could be components={[<span class='make-beautiful'/>]} and in translation - 'some text <0>some highlighted message</0>'
22744          mem.push(compat_modulebabel_target_legacy["c" /* default */].cloneElement(child, Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, child.props), {}, {
22745            key: i
22746          }), translationContent));
22747        } else {
22748          mem.push(child);
22749        }
22750      } else if (node.type === "text") {
22751        mem.push(node.content);
22752      }
22753
22754      return mem;
22755    }, []);
22756  } // call mapAST with having react nodes nested into additional node like
22757  // we did for the string ast from translation
22758  // return the children of that extra node to get expected result
22759
22760
22761  var result = mapAST([{
22762    dummy: true,
22763    children: children
22764  }], ast);
22765  return getChildren(result[0]);
22766}
22767
22768function Trans(_ref) {
22769  var children = _ref.children,
22770      count = _ref.count,
22771      parent = _ref.parent,
22772      i18nKey = _ref.i18nKey,
22773      tOptions = _ref.tOptions,
22774      values = _ref.values,
22775      defaults = _ref.defaults,
22776      components = _ref.components,
22777      ns = _ref.ns,
22778      i18nFromProps = _ref.i18n,
22779      tFromProps = _ref.t,
22780      additionalProps = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["children", "count", "parent", "i18nKey", "tOptions", "values", "defaults", "components", "ns", "i18n", "t"]);
22781
22782  var _ref2 = getHasUsedI18nextProvider() ? Object(compat_modulebabel_target_legacy["d" /* useContext */])(I18nContext) : {},
22783      i18nFromContext = _ref2.i18n,
22784      defaultNSFromContext = _ref2.defaultNS;
22785
22786  var i18n = i18nFromProps || i18nFromContext || getI18n();
22787
22788  if (!i18n) {
22789    warnOnce("You will need pass in an i18next instance by using i18nextReactModule");
22790    return children;
22791  }
22792
22793  var t = tFromProps || i18n.t.bind(i18n) || function (k) {
22794    return k;
22795  };
22796
22797  var reactI18nextOptions = Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, getDefaults()), i18n.options && i18n.options.react);
22798
22799  var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent; // prepare having a namespace
22800
22801  var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
22802  namespaces = typeof namespaces === "string" ? [namespaces] : namespaces || ["translation"];
22803  var defaultValue = defaults || nodesToString("", children, 0, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue;
22804  var hashTransKey = reactI18nextOptions.hashTransKey;
22805  var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);
22806  var interpolationOverride = values ? {} : {
22807    interpolation: {
22808      prefix: "#$?",
22809      suffix: "?$#"
22810    }
22811  };
22812
22813  var combinedTOpts = Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread(Transbabel_target_legacy_objectSpread({}, tOptions), values), interpolationOverride), {}, {
22814    defaultValue: defaultValue,
22815    count: count,
22816    ns: namespaces
22817  });
22818
22819  var translation = key ? t(key, combinedTOpts) : defaultValue;
22820  if (!useAsParent) return renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts);
22821  return compat_modulebabel_target_legacy["c" /* default */].createElement(useAsParent, additionalProps, renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts));
22822}
22823
22824/***/ }),
22825/* 334 */
22826/***/ (function(module, __webpack_exports__, __webpack_require__) {
22827
22828"use strict";
22829
22830// EXPORTS
22831__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ loadImaSdkbabel_target_legacy; });
22832__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ loadScriptbabel_target_legacy; });
22833
22834// CONCATENATED MODULE: ./node_modules/@alugha/ima/lib/esm/loadScript.js?babel-target=legacy
22835// Asynchronous loader for external scripts
22836var loadScript = function (src) {
22837    return new Promise(function (resolve, reject) {
22838        var script = document.createElement('script');
22839        script.async = true;
22840        script.src = src;
22841        script.onload = resolve;
22842        script.onerror = reject;
22843        document.body.appendChild(script);
22844    });
22845};
22846/* harmony default export */ var loadScriptbabel_target_legacy = (loadScript);
22847
22848// CONCATENATED MODULE: ./node_modules/@alugha/ima/lib/esm/loadImaSdk.js?babel-target=legacy
22849/// <reference path="../typings/ima.d.ts" />
22850
22851var imaSdkSrc = '//imasdk.googleapis.com/js/sdkloader/ima3.js';
22852var pendingPromise = null;
22853var promiseFinished = function () {
22854    pendingPromise = null;
22855};
22856var loadImaSdk = function () {
22857    if (window.google && window.google.ima) {
22858        return Promise.resolve(window.google.ima);
22859    }
22860    if (pendingPromise) {
22861        return pendingPromise;
22862    }
22863    pendingPromise = loadScriptbabel_target_legacy(imaSdkSrc).then(function () { return window.google.ima; });
22864    pendingPromise.then(promiseFinished).catch(promiseFinished);
22865    return pendingPromise;
22866};
22867/* harmony default export */ var loadImaSdkbabel_target_legacy = (loadImaSdk);
22868
22869// CONCATENATED MODULE: ./node_modules/@alugha/ima/lib/esm?babel-target=legacy
22870/// <reference path="../typings/ima.d.ts" />
22871
22872
22873
22874
22875/***/ }),
22876/* 335 */,
22877/* 336 */,
22878/* 337 */,
22879/* 338 */,
22880/* 339 */,
22881/* 340 */
22882/***/ (function(module, exports, __webpack_require__) {
22883
22884"use strict";
22885
22886
22887exports.byteLength = byteLength
22888exports.toByteArray = toByteArray
22889exports.fromByteArray = fromByteArray
22890
22891var lookup = []
22892var revLookup = []
22893var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22894
22895var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22896for (var i = 0, len = code.length; i < len; ++i) {
22897  lookup[i] = code[i]
22898  revLookup[code.charCodeAt(i)] = i
22899}
22900
22901// Support decoding URL-safe base64 strings, as Node.js does.
22902// See: https://en.wikipedia.org/wiki/Base64#URL_applications
22903revLookup['-'.charCodeAt(0)] = 62
22904revLookup['_'.charCodeAt(0)] = 63
22905
22906function getLens (b64) {
22907  var len = b64.length
22908
22909  if (len % 4 > 0) {
22910    throw new Error('Invalid string. Length must be a multiple of 4')
22911  }
22912
22913  // Trim off extra bytes after placeholder bytes are found
22914  // See: https://github.com/beatgammit/base64-js/issues/42
vendor: 5,185 bytes, lines 22915-23124
22915  var validLen = b64.indexOf('=')
22916  if (validLen === -1) validLen = len
22917
22918  var placeHoldersLen = validLen === len
22919    ? 0
22920    : 4 - (validLen % 4)
22921
22922  return [validLen, placeHoldersLen]
22923}
22924
22925// base64 is 4/3 + up to two characters of the original data
22926function byteLength (b64) {
22927  var lens = getLens(b64)
22928  var validLen = lens[0]
22929  var placeHoldersLen = lens[1]
22930  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
22931}
22932
22933function _byteLength (b64, validLen, placeHoldersLen) {
22934  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
22935}
22936
22937function toByteArray (b64) {
22938  var tmp
22939  var lens = getLens(b64)
22940  var validLen = lens[0]
22941  var placeHoldersLen = lens[1]
22942
22943  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
22944
22945  var curByte = 0
22946
22947  // if there are placeholders, only get up to the last complete 4 chars
22948  var len = placeHoldersLen > 0
22949    ? validLen - 4
22950    : validLen
22951
22952  var i
22953  for (i = 0; i < len; i += 4) {
22954    tmp =
22955      (revLookup[b64.charCodeAt(i)] << 18) |
22956      (revLookup[b64.charCodeAt(i + 1)] << 12) |
22957      (revLookup[b64.charCodeAt(i + 2)] << 6) |
22958      revLookup[b64.charCodeAt(i + 3)]
22959    arr[curByte++] = (tmp >> 16) & 0xFF
22960    arr[curByte++] = (tmp >> 8) & 0xFF
22961    arr[curByte++] = tmp & 0xFF
22962  }
22963
22964  if (placeHoldersLen === 2) {
22965    tmp =
22966      (revLookup[b64.charCodeAt(i)] << 2) |
22967      (revLookup[b64.charCodeAt(i + 1)] >> 4)
22968    arr[curByte++] = tmp & 0xFF
22969  }
22970
22971  if (placeHoldersLen === 1) {
22972    tmp =
22973      (revLookup[b64.charCodeAt(i)] << 10) |
22974      (revLookup[b64.charCodeAt(i + 1)] << 4) |
22975      (revLookup[b64.charCodeAt(i + 2)] >> 2)
22976    arr[curByte++] = (tmp >> 8) & 0xFF
22977    arr[curByte++] = tmp & 0xFF
22978  }
22979
22980  return arr
22981}
22982
22983function tripletToBase64 (num) {
22984  return lookup[num >> 18 & 0x3F] +
22985    lookup[num >> 12 & 0x3F] +
22986    lookup[num >> 6 & 0x3F] +
22987    lookup[num & 0x3F]
22988}
22989
22990function encodeChunk (uint8, start, end) {
22991  var tmp
22992  var output = []
22993  for (var i = start; i < end; i += 3) {
22994    tmp =
22995      ((uint8[i] << 16) & 0xFF0000) +
22996      ((uint8[i + 1] << 8) & 0xFF00) +
22997      (uint8[i + 2] & 0xFF)
22998    output.push(tripletToBase64(tmp))
22999  }
23000  return output.join('')
23001}
23002
23003function fromByteArray (uint8) {
23004  var tmp
23005  var len = uint8.length
23006  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
23007  var parts = []
23008  var maxChunkLength = 16383 // must be multiple of 3
23009
23010  // go through the array every three bytes, we'll deal with trailing stuff later
23011  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
23012    parts.push(encodeChunk(
23013      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
23014    ))
23015  }
23016
23017  // pad the end with zeros, but make sure to not forget the extra bytes
23018  if (extraBytes === 1) {
23019    tmp = uint8[len - 1]
23020    parts.push(
23021      lookup[tmp >> 2] +
23022      lookup[(tmp << 4) & 0x3F] +
23023      '=='
23024    )
23025  } else if (extraBytes === 2) {
23026    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
23027    parts.push(
23028      lookup[tmp >> 10] +
23029      lookup[(tmp >> 4) & 0x3F] +
23030      lookup[(tmp << 2) & 0x3F] +
23031      '='
23032    )
23033  }
23034
23035  return parts.join('')
23036}
23037
23038
23039/***/ }),
23040/* 341 */
23041/***/ (function(module, exports) {
23042
23043/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
23044exports.read = function (buffer, offset, isLE, mLen, nBytes) {
23045  var e, m
23046  var eLen = (nBytes * 8) - mLen - 1
23047  var eMax = (1 << eLen) - 1
23048  var eBias = eMax >> 1
23049  var nBits = -7
23050  var i = isLE ? (nBytes - 1) : 0
23051  var d = isLE ? -1 : 1
23052  var s = buffer[offset + i]
23053
23054  i += d
23055
23056  e = s & ((1 << (-nBits)) - 1)
23057  s >>= (-nBits)
23058  nBits += eLen
23059  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
23060
23061  m = e & ((1 << (-nBits)) - 1)
23062  e >>= (-nBits)
23063  nBits += mLen
23064  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
23065
23066  if (e === 0) {
23067    e = 1 - eBias
23068  } else if (e === eMax) {
23069    return m ? NaN : ((s ? -1 : 1) * Infinity)
23070  } else {
23071    m = m + Math.pow(2, mLen)
23072    e = e - eBias
23073  }
23074  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
23075}
23076
23077exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
23078  var e, m, c
23079  var eLen = (nBytes * 8) - mLen - 1
23080  var eMax = (1 << eLen) - 1
23081  var eBias = eMax >> 1
23082  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
23083  var i = isLE ? 0 : (nBytes - 1)
23084  var d = isLE ? 1 : -1
23085  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
23086
23087  value = Math.abs(value)
23088
23089  if (isNaN(value) || value === Infinity) {
23090    m = isNaN(value) ? 1 : 0
23091    e = eMax
23092  } else {
23093    e = Math.floor(Math.log(value) / Math.LN2)
23094    if (value * (c = Math.pow(2, -e)) < 1) {
23095      e--
23096      c *= 2
23097    }
23098    if (e + eBias >= 1) {
23099      value += rt / c
23100    } else {
23101      value += rt * Math.pow(2, 1 - eBias)
23102    }
23103    if (value * c >= 2) {
23104      e++
23105      c /= 2
23106    }
23107
23108    if (e + eBias >= eMax) {
23109      m = 0
23110      e = eMax
23111    } else if (e + eBias >= 1) {
23112      m = ((value * c) - 1) * Math.pow(2, mLen)
23113      e = e + eBias
23114    } else {
23115      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
23116      e = 0
23117    }
23118  }
23119
23120  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
23121
23122  e = (e << mLen) | m
23123  eLen += mLen
23124  for (; eLen > 0;
23124 buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
23125
23126  buffer[offset + i - d] |= s * 128
23127}
23128
23129
23130/***/ }),
23131/* 342 */
23132/***/ (function(module, exports) {
23133
23134var toString = {}.toString;
23135
23136module.exports = Array.isArray || function (arr) {
23137  return toString.call(arr) == '[object Array]';
23138};
23139
23140
23141/***/ }),
23142/* 343 */
23143/***/ (function(module, exports, __webpack_require__) {
23144
23145"use strict";
23146
23147var $ = __webpack_require__(2);
23148var $findIndex = __webpack_require__(46).findIndex;
23149var addToUnscopables = __webpack_require__(118);
23150var arrayMethodUsesToLength = __webpack_require__(63);
23151
23152var FIND_INDEX = 'findIndex';
23153var SKIPS_HOLES = true;
23154
23155var USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);
23156
23157// Shouldn't skip holes
23158if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });
23159
23160// `Array.prototype.findIndex` method
23161// https://tc39.github.io/ecma262/#sec-array.prototype.findindex
23162$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {
23163  findIndex: function findIndex(callbackfn /* , that = undefined */) {
23164    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
23165  }
23166});
23167
23168// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
23169addToUnscopables(FIND_INDEX);
23170
23171
23172/***/ }),
23173/* 344 */
23174/***/ (function(module, exports, __webpack_require__) {
23175
23176"use strict";
23177
23178var $ = __webpack_require__(2);
23179var createHTML = __webpack_require__(68);
23180var forcedStringHTMLMethod = __webpack_require__(69);
23181
23182// `String.prototype.sub` method
23183// https://tc39.github.io/ecma262/#sec-string.prototype.sub
23184$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {
23185  sub: function sub() {
23186    return createHTML(this, 'sub', '', '');
23187  }
23188});
23189
23190
23191/***/ }),
23192/* 345 */
23193/***/ (function(module, exports, __webpack_require__) {
23194
23195// extracted by mini-css-extract-plugin
23196module.exports = {"visuallyHidden":"OnDemandWidget-module__visuallyHidden--1AMxF","header":"OnDemandWidget-module__header--1UKmT","tabs":"OnDemandWidget-module__tabs--1v1Xy","wrap":"OnDemandWidget-module__wrap--eHYiX","stacked":"OnDemandWidget-module__stacked--3bHz-","list":"OnDemandWidget-module__list--2fABS","gradient":"OnDemandWidget-module__gradient--14lNF","gradientBottom":"OnDemandWidget-module__gradientBottom--2AZHN"};
23197
23198/***/ }),
23199/* 346 */,
23200/* 347 */,
23201/* 348 */,
23202/* 349 */
23203/***/ (function(module, exports, __webpack_require__) {
23204
23205"use strict";
23206
23207// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
23208__webpack_require__(237);
23209var $ = __webpack_require__(2);
23210var DESCRIPTORS = __webpack_require__(21);
23211var USE_NATIVE_URL = __webpack_require__(392);
23212var global = __webpack_require__(16);
23213var defineProperties = __webpack_require__(282);
23214var redefine = __webpack_require__(54);
23215var anInstance = __webpack_require__(119);
23216var has = __webpack_require__(35);
23217var assign = __webpack_require__(373);
23218var arrayFrom = __webpack_require__(366);
23219var codeAt = __webpack_require__(219).codeAt;
23220var toASCII = __webpack_require__(695);
23221var setToStringTag = __webpack_require__(80);
23222var URLSearchParamsModule = __webpack_require__(393);
23223var InternalStateModule = __webpack_require__(58);
23224
23225var NativeURL = global.URL;
23226var URLSearchParams = URLSearchParamsModule.URLSearchParams;
23227var getInternalSearchParamsState = URLSearchParamsModule.getState;
23228var setInternalState = InternalStateModule.set;
23229var getInternalURLState = InternalStateModule.getterFor('URL');
23230var floor = Math.floor;
23231var pow = Math.pow;
23232
23233var INVALID_AUTHORITY = 'Invalid authority';
23234var INVALID_SCHEME = 'Invalid scheme';
23235var INVALID_HOST = 'Invalid host';
23236var INVALID_PORT = 'Invalid port';
23237
23238var ALPHA = /[A-Za-z]/;
23239var ALPHANUMERIC = /[\d+-.A-Za-z]/;
23240var DIGIT = /\d/;
23241var HEX_START = /^(0x|0X)/;
23242var OCT = /^[0-7]+$/;
23243var DEC = /^\d+$/;
23244var HEX = /^[\dA-Fa-f]+$/;
23245// eslint-disable-next-line no-control-regex
23246var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
23247// eslint-disable-next-line no-control-regex
23248var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
23249// eslint-disable-next-line no-control-regex
23250var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
23251// eslint-disable-next-line no-control-regex
23252var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
23253var EOF;
23254
23255var parseHost = function (url, input) {
23256  var result, codePoints, index;
23257  if (input.charAt(0) == '[') {
23258    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;
23259    result = parseIPv6(input.slice(1, -1));
23260    if (!result) return INVALID_HOST;
23261    url.host = result;
23262  // opaque host
23263  } else if (!isSpecial(url)) {
23264    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;
23265    result = '';
23266    codePoints = arrayFrom(input);
23267    for (index = 0; index < codePoints.length; index++) {
23268      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
23269    }
23270    url.host = result;
23271  } else {
23272    input = toASCII(input);
23273    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;
23274    result = parseIPv4(input);
23275    if (result === null) return INVALID_HOST;
23276    url.host = result;
23277  }
23278};
23279
23280var parseIPv4 = function (input) {
23281  var parts = input.split('.');
23282  var partsLength, numbers, index, part, radix, number, ipv4;
23283  if (parts.length && parts[parts.length - 1] == '') {
23284    parts.pop();
23285  }
23286  partsLength = parts.length;
23287  if (partsLength > 4) return input;
23288  numbers = [];
23289  for (index = 0; index < partsLength; index++) {
23290    part = parts[index];
23291    if (part == '') return input;
23292    radix = 10;
23293    if (part.length > 1 && part.charAt(0) == '0') {
23294      radix = HEX_START.test(part) ? 16 : 8;
23295      part = part.slice(radix == 8 ? 1 : 2);
23296    }
23297    if (part === '') {
23298      number = 0;
23299    } else {
23300      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;
23301      number = parseInt(part, radix);
23302    }
23303    numbers.push(number);
23304  }
23305  for (index = 0; index < partsLength; index++) {
23306    number = numbers[index];
23307    if (index == partsLength - 1) {
23308      if (number >= pow(256, 5 - partsLength)) return null;
23309    } else if (number > 255) return null;
23310  }
23311  ipv4 = numbers.pop();
23312  for (index = 0; index < numbers.length; index++) {
23313    ipv4 += numbers[index] * pow(256, 3 - index);
23314  }
23315  return ipv4;
23316};
23317
23318// eslint-disable-next-line max-statements
23319var parseIPv6 = function (input) {
23320  var address = [0, 0, 0, 0, 0, 0, 0, 0];
23321  var pieceIndex = 0;
23322  var compress = null;
23323  var pointer = 0;
23324  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
23325
23326  var char = function () {
23327    return input.charAt(pointer);
23328  };
23329
23330  if (char() == ':') {
23331    if (input.charAt(1) != ':') return;
23332    pointer += 2;
23333    pieceIndex++;
23334    compress = pieceIndex;
23335  }
23336  while (char()) {
23337    if (pieceIndex == 8) return;
23338    if (char() == ':') {
23339      if (compress !== null) return;
23340      pointer++;
23341      pieceIndex++;
23342      compress = pieceIndex;
23343      continue;
23344    }
23345    value = length = 0;
23346    while (length < 4 && HEX.test(char())) {
23347      value = value * 16 + parseInt(char(), 16);
23348      pointer++;
23349      length++;
23350    }
23351    if (char() == '.') {
23352      if (length == 0) return;
23353      pointer -= length;
23354      if (pieceIndex > 6) return;
23355      numbersSeen = 0;
23356      while (char()) {
23357        ipv4Piece = null;
23358        if (numbersSeen > 0) {
23359          if (char() == '.' && numbersSeen < 4) pointer++;
23360          else return;
23361        }
23362        if (!DIGIT.test(char())) return;
23363        while (DIGIT.test(char())) {
23364          number = parseInt(char(), 10);
23365          if (ipv4Piece === null) ipv4Piece = number;
23366          else if (ipv4Piece == 0) return;
23367          else ipv4Piece = ipv4Piece * 10 + number;
23368          if (ipv4Piece > 255) return;
23369          pointer++;
23370        }
23371        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
23372        numbersSeen++;
23373        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;
23374      }
23375      if (numbersSeen != 4) return;
23376      break;
23377    } else if (char() == ':') {
23378      pointer++;
23379      if (!char()) return;
23380    } else if (char()) return;
23381    address[pieceIndex++] = value;
23382  }
23383  if (compress !== null) {
23384    swaps = pieceIndex - compress;
23385    pieceIndex = 7;
23386    while (pieceIndex != 0 && swaps > 0) {
23387      swap = address[pieceIndex];
23388      address[pieceIndex--] = address[compress + swaps - 1];
23389      address[compress + --swaps] = swap;
23390    }
23391  } else if (pieceIndex != 8) return;
23392  return address;
23393};
23394
23395var findLongestZeroSequence = function (ipv6) {
23396  var maxIndex = null;
23397  var maxLength = 1;
23398  var currStart = null;
23399  var currLength = 0;
23400  var index = 0;
23401  for (; index < 8; index++) {
23402    if (ipv6[index] !== 0) {
23403      if (currLength > maxLength) {
23404        maxIndex = currStart;
23405        maxLength = currLength;
23406      }
23407      currStart = null;
23408      currLength = 0;
23409    } else {
23410      if (currStart === null) currStart = index;
23411      ++currLength;
23412    }
23413  }
23414  if (currLength > maxLength) {
23415    maxIndex = currStart;
23416    maxLength = currLength;
23417  }
23418  return maxIndex;
23419};
23420
23421var serializeHost = function (host) {
23422  var result, index, compress, ignore0;
23423  // ipv4
23424  if (typeof host == 'number') {
23425    result = [];
23426    for (index = 0; index < 4; index++) {
23427      result.unshift(host % 256);
23428      host = floor(host / 256);
23429    } return result.join('.');
23430  // ipv6
23431  } else if (typeof host == 'object') {
23432    result = '';
23433    compress = findLongestZeroSequence(host);
23434    for (index = 0; index < 8; index++) {
23435      if (ignore0 && host[index] === 0) continue;
23436      if (ignore0) ignore0 = false;
23437      if (compress === index) {
23438        result += index ? ':' : '::';
23439        ignore0 = true;
23440      } else {
23441        result += host[index].toString(16);
23442        if (index < 7) result += ':';
23443      }
23444    }
23445    return '[' + result + ']';
23446  } return host;
23447};
23448
23449var C0ControlPercentEncodeSet = {};
23450var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
23451  ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1
23452});
23453var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {
23454  '#': 1, '?': 1, '{': 1, '}': 1
23455});
23456var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
23457  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1
23458});
23459
23460var percentEncode = function (char, set) {
23461  var code = codeAt(char, 0);
23462  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);
23463};
23464
23465var specialSchemes = {
23466  ftp: 21,
23467  file: null,
23468  http: 80,
23469  https: 443,
23470  ws: 80,
23471  wss: 443
23472};
23473
23474var isSpecial = function (url) {
23475  return has(specialSchemes, url.scheme);
23476};
23477
23478var includesCredentials = function (url) {
23479  return url.username != '' || url.password != '';
23480};
23481
23482var cannotHaveUsernamePasswordPort = function (url) {
23483  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';
23484};
23485
23486var isWindowsDriveLetter = function (string, normalized) {
23487  var second;
23488  return string.length == 2 && ALPHA.test(string.charAt(0))
23489    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));
23490};
23491
23492var startsWithWindowsDriveLetter = function (string) {
23493  var third;
23494  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (
23495    string.length == 2 ||
23496    ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#')
23497  );
23498};
23499
23500var shortenURLsPath = function (url) {
23501  var path = url.path;
23502  var pathSize = path.length;
23503  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
23504    path.pop();
23505  }
23506};
23507
23508var isSingleDot = function (segment) {
23509  return segment === '.' || segment.toLowerCase() === '%2e';
23510};
23511
23512var isDoubleDot = function (segment) {
23513  segment = segment.toLowerCase();
23514  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
23515};
23516
23517// States:
23518var SCHEME_START = {};
23519var SCHEME = {};
23520var NO_SCHEME = {};
23521var SPECIAL_RELATIVE_OR_AUTHORITY = {};
23522var PATH_OR_AUTHORITY = {};
23523var RELATIVE = {};
23524var RELATIVE_SLASH = {};
23525var SPECIAL_AUTHORITY_SLASHES = {};
23526var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
23527var AUTHORITY = {};
23528var HOST = {};
23529var HOSTNAME = {};
23530var PORT = {};
23531var FILE = {};
23532var FILE_SLASH = {};
23533var FILE_HOST = {};
23534var PATH_START = {};
23535var PATH = {};
23536var CANNOT_BE_A_BASE_URL_PATH = {};
23537var QUERY = {};
23538var FRAGMENT = {};
23539
23540// eslint-disable-next-line max-statements
23541var parseURL = function (url, input, stateOverride, base) {
23542  var state = stateOverride || SCHEME_START;
23543  var pointer = 0;
23544  var buffer = '';
23545  var seenAt = false;
23546  var seenBracket = false;
23547  var seenPasswordToken = false;
23548  var codePoints, char, bufferCodePoints, failure;
23549
23550  if (!stateOverride) {
23551    url.scheme = '';
23552    url.username = '';
23553    url.password = '';
23554    url.host = null;
23555    url.port = null;
23556    url.path = [];
23557    url.query = null;
23558    url.fragment = null;
23559    url.cannotBeABaseURL = false;
23560    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
23561  }
23562
23563  input = input.replace(TAB_AND_NEW_LINE, '');
23564
23565  codePoints = arrayFrom(input);
23566
23567  while (pointer <= codePoints.length) {
23568    char = codePoints[pointer];
23569    switch (state) {
23570      case SCHEME_START:
23571        if (char && ALPHA.test(char)) {
23572          buffer += char.toLowerCase();
23573          state = SCHEME;
23574        } else if (!stateOverride) {
23575          state = NO_SCHEME;
23576          continue;
23577        } else return INVALID_SCHEME;
23578        break;
23579
23580      case SCHEME:
23581        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {
23582          buffer += char.toLowerCase();
23583        } else if (char == ':') {
23584          if (stateOverride && (
23585            (isSpecial(url) != has(specialSchemes, buffer)) ||
23586            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||
23587            (url.scheme == 'file' && !url.host)
23588          )) return;
23589          url.scheme = buffer;
23590          if (stateOverride) {
23591            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;
23592            return;
23593          }
23594          buffer = '';
23595          if (url.scheme == 'file') {
23596            state = FILE;
23597          } else if (isSpecial(url) && base && base.scheme == url.scheme) {
23598            state = SPECIAL_RELATIVE_OR_AUTHORITY;
23599          } else if (isSpecial(url)) {
23600            state = SPECIAL_AUTHORITY_SLASHES;
23601          } else if (codePoints[pointer + 1] == '/') {
23602            state = PATH_OR_AUTHORITY;
23603            pointer++;
23604          } else {
23605            url.cannotBeABaseURL = true;
23606            url.path.push('');
23607            state = CANNOT_BE_A_BASE_URL_PATH;
23608          }
23609        } else if (!stateOverride) {
23610          buffer = '';
23611          state = NO_SCHEME;
23612          pointer = 0;
23613          continue;
23614        } else return INVALID_SCHEME;
23615        break;
23616
23617      case NO_SCHEME:
23618        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;
23619        if (base.cannotBeABaseURL && char == '#') {
23620          url.scheme = base.scheme;
23621          url.path = base.path.slice();
23622          url.query = base.query;
23623          url.fragment = '';
23624          url.cannotBeABaseURL = true;
23625          state = FRAGMENT;
23626          break;
23627        }
23628        state = base.scheme == 'file' ? FILE : RELATIVE;
23629        continue;
23630
23631      case SPECIAL_RELATIVE_OR_AUTHORITY:
23632        if (char == '/' && codePoints[pointer + 1] == '/') {
23633          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
23634          pointer++;
23635        } else {
23636          state = RELATIVE;
23637          continue;
23638        } break;
23639
23640      case PATH_OR_AUTHORITY:
23641        if (char == '/') {
23642          state = AUTHORITY;
23643          break;
23644        } else {
23645          state = PATH;
23646          continue;
23647        }
23648
23649      case RELATIVE:
23650        url.scheme = base.scheme;
23651        if (char == EOF) {
23652          url.username = base.username;
23653          url.password = base.password;
23654          url.host = base.host;
23655          url.port = base.port;
23656          url.path = base.path.slice();
23657          url.query = base.query;
23658        } else if (char == '/' || (char == '\\' && isSpecial(url))) {
23659          state = RELATIVE_SLASH;
23660        } else if (char == '?') {
23661          url.username = base.username;
23662          url.password = base.password;
23663          url.host = base.host;
23664          url.port = base.port;
23665          url.path = base.path.slice();
23666          url.query = '';
23667          state = QUERY;
23668        } else if (char == '#') {
23669          url.username = base.username;
23670          url.password = base.password;
23671          url.host = base.host;
23672          url.port = base.port;
23673          url.path = base.path.slice();
23674          url.query = base.query;
23675          url.fragment = '';
23676          state = FRAGMENT;
23677        } else {
23678          url.username = base.username;
23679          url.password = base.password;
23680          url.host = base.host;
23681          url.port = base.port;
23682          url.path = base.path.slice();
23683          url.path.pop();
23684          state = PATH;
23685          continue;
23686        } break;
23687
23688      case RELATIVE_SLASH:
23689        if (isSpecial(url) && (char == '/' || char == '\\')) {
23690          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
23691        } else if (char == '/') {
23692          state = AUTHORITY;
23693        } else {
23694          url.username = base.username;
23695          url.password = base.password;
23696          url.host = base.host;
23697          url.port = base.port;
23698          state = PATH;
23699          continue;
23700        } break;
23701
23702      case SPECIAL_AUTHORITY_SLASHES:
23703        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
23704        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;
23705        pointer++;
23706        break;
23707
23708      case SPECIAL_AUTHORITY_IGNORE_SLASHES:
23709        if (char != '/' && char != '\\') {
23710          state = AUTHORITY;
23711          continue;
23712        } break;
23713
23714      case AUTHORITY:
23715        if (char == '@') {
23716          if (seenAt) buffer = '%40' + buffer;
23717          seenAt = true;
23718          bufferCodePoints = arrayFrom(buffer);
23719          for (var i = 0; i < bufferCodePoints.length; i++) {
23720            var codePoint = bufferCodePoints[i];
23721            if (codePoint == ':' && !seenPasswordToken) {
23722              seenPasswordToken = true;
23723              continue;
23724            }
23725            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
23726            if (seenPasswordToken) url.password += encodedCodePoints;
23727            else url.username += encodedCodePoints;
23728          }
23729          buffer = '';
23730        } else if (
23731          char == EOF || char == '/' || char == '?' || char == '#' ||
23732          (char == '\\' && isSpecial(url))
23733        ) {
23734          if (seenAt && buffer == '') return INVALID_AUTHORITY;
23735          pointer -= arrayFrom(buffer).length + 1;
23736          buffer = '';
23737          state = HOST;
23738        } else buffer += char;
23739        break;
23740
23741      case HOST:
23742      case HOSTNAME:
23743        if (stateOverride && url.scheme == 'file') {
23744          state = FILE_HOST;
23745          continue;
23746        } else if (char == ':' && !seenBracket) {
23747          if (buffer == '') return INVALID_HOST;
23748          failure = parseHost(url, buffer);
23749          if (failure) return failure;
23750          buffer = '';
23751          state = PORT;
23752          if (stateOverride == HOSTNAME) return;
23753        } else if (
23754          char == EOF || char == '/' || char == '?' || char == '#' ||
23755          (char == '\\' && isSpecial(url))
23756        ) {
23757          if (isSpecial(url) && buffer == '') return INVALID_HOST;
23758          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;
23759          failure = parseHost(url, buffer);
23760          if (failure) return failure;
23761          buffer = '';
23762          state = PATH_START;
23763          if (stateOverride) return;
23764          continue;
23765        } else {
23766          if (char == '[') seenBracket = true;
23767          else if (char == ']') seenBracket = false;
23768          buffer += char;
23769        } break;
23770
23771      case PORT:
23772        if (DIGIT.test(char)) {
23773          buffer += char;
23774        } else if (
23775          char == EOF || char == '/' || char == '?' || char == '#' ||
23776          (char == '\\' && isSpecial(url)) ||
23777          stateOverride
23778        ) {
23779          if (buffer != '') {
23780            var port = parseInt(buffer, 10);
23781            if (port > 0xFFFF) return INVALID_PORT;
23782            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;
23783            buffer = '';
23784          }
23785          if (stateOverride) return;
23786          state = PATH_START;
23787          continue;
23788        } else return INVALID_PORT;
23789        break;
23790
23791      case FILE:
23792        url.scheme = 'file';
23793        if (char == '/' || char == '\\') state = FILE_SLASH;
23794        else if (base && base.scheme == 'file') {
23795          if (char == EOF) {
23796            url.host = base.host;
23797            url.path = base.path.slice();
23798            url.query = base.query;
23799          } else if (char == '?') {
23800            url.host = base.host;
23801            url.path = base.path.slice();
23802            url.query = '';
23803            state = QUERY;
23804          } else if (char == '#') {
23805            url.host = base.host;
23806            url.path = base.path.slice();
23807            url.query = base.query;
23808            url.fragment = '';
23809            state = FRAGMENT;
23810          } else {
23811            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
23812              url.host = base.host;
23813              url.path = base.path.slice();
23814              shortenURLsPath(url);
23815            }
23816            state = PATH;
23817            continue;
23818          }
23819        } else {
23820          state = PATH;
23821          continue;
23822        } break;
23823
23824      case FILE_SLASH:
23825        if (char == '/' || char == '\\') {
23826          state = FILE_HOST;
23827          break;
23828        }
23829        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
23830          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);
23831          else url.host = base.host;
23832        }
23833        state = PATH;
23834        continue;
23835
23836      case FILE_HOST:
23837        if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') {
23838          if (!stateOverride && isWindowsDriveLetter(buffer)) {
23839            state = PATH;
23840          } else if (buffer == '') {
23841            url.host = '';
23842            if (stateOverride) return;
23843            state = PATH_START;
23844          } else {
23845            failure = parseHost(url, buffer);
23846            if (failure) return failure;
23847            if (url.host == 'localhost') url.host = '';
23848            if (stateOverride) return;
23849            buffer = '';
23850            state = PATH_START;
23851          } continue;
23852        } else buffer += char;
23853        break;
23854
23855      case PATH_START:
23856        if (isSpecial(url)) {
23857          state = PATH;
23858          if (char != '/' && char != '\\') continue;
23859        } else if (!stateOverride && char == '?') {
23860          url.query = '';
23861          state = QUERY;
23862        } else if (!stateOverride && char == '#') {
23863          url.fragment = '';
23864          state = FRAGMENT;
23865        } else if (char != EOF) {
23866          state = PATH;
23867          if (char != '/') continue;
23868        } break;
23869
23870      case PATH:
23871        if (
23872          char == EOF || char == '/' ||
23873          (char == '\\' && isSpecial(url)) ||
23874          (!stateOverride && (char == '?' || char == '#'))
23875        ) {
23876          if (isDoubleDot(buffer)) {
23877            shortenURLsPath(url);
23878            if (char != '/' && !(char == '\\' && isSpecial(url))) {
23879              url.path.push('');
23880            }
23881          } else if (isSingleDot(buffer)) {
23882            if (char != '/' && !(char == '\\' && isSpecial(url))) {
23883              url.path.push('');
23884            }
23885          } else {
23886            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
23887              if (url.host) url.host = '';
23888              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter
23889            }
23890            url.path.push(buffer);
23891          }
23892          buffer = '';
23893          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {
23894            while (url.path.length > 1 && url.path[0] === '') {
23895              url.path.shift();
23896            }
23897          }
23898          if (char == '?') {
23899            url.query = '';
23900            state = QUERY;
23901          } else if (char == '#') {
23902            url.fragment = '';
23903            state = FRAGMENT;
23904          }
23905        } else {
23906          buffer += percentEncode(char, pathPercentEncodeSet);
23907        } break;
23908
23909      case CANNOT_BE_A_BASE_URL_PATH:
23910        if (char == '?') {
23911          url.query = '';
23912          state = QUERY;
23913        } else if (char == '#') {
23914          url.fragment = '';
23915          state = FRAGMENT;
23916        } else if (char != EOF) {
23917          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);
23918        } break;
23919
23920      case QUERY:
23921        if (!stateOverride && char == '#') {
23922          url.fragment = '';
23923          state = FRAGMENT;
23924        } else if (char != EOF) {
23925          if (char == "'" && isSpecial(url)) url.query += '%27';
23926          else if (char == '#') url.query += '%23';
23927          else url.query += percentEncode(char, C0ControlPercentEncodeSet);
23928        } break;
23929
23930      case FRAGMENT:
23931        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);
23932        break;
23933    }
23934
23935    pointer++;
23936  }
23937};
23938
23939// `URL` constructor
23940// https://url.spec.whatwg.org/#url-class
23941var URLConstructor = function URL(url /* , base */) {
23942  var that = anInstance(this, URLConstructor, 'URL');
23943  var base = arguments.length > 1 ? arguments[1] : undefined;
23944  var urlString = String(url);
23945  var state = setInternalState(that, { type: 'URL' });
23946  var baseState, failure;
23947  if (base !== undefined) {
23948    if (base instanceof URLConstructor) baseState = getInternalURLState(base);
23949    else {
23950      failure = parseURL(baseState = {}, String(base));
23951      if (failure) throw TypeError(failure);
23952    }
23953  }
23954  failure = parseURL(state, urlString, null, baseState);
23955  if (failure) throw TypeError(failure);
23956  var searchParams = state.searchParams = new URLSearchParams();
23957  var searchParamsState = getInternalSearchParamsState(searchParams);
23958  searchParamsState.updateSearchParams(state.query);
23959  searchParamsState.updateURL = function () {
23960    state.query = String(searchParams) || null;
23961  };
23962  if (!DESCRIPTORS) {
23963    that.href = serializeURL.call(that);
23964    that.origin = getOrigin.call(that);
23965    that.protocol = getProtocol.call(that);
23966    that.username = getUsername.call(that);
23967    that.password = getPassword.call(that);
23968    that.host = getHost.call(that);
23969    that.hostname = getHostname.call(that);
23970    that.port = getPort.call(that);
23971    that.pathname = getPathname.call(that);
23972    that.search = getSearch.call(that);
23973    that.searchParams = getSearchParams.call(that);
23974    that.hash = getHash.call(that);
23975  }
23976};
23977
23978var URLPrototype = URLConstructor.prototype;
23979
23980var serializeURL = function () {
23981  var url = getInternalURLState(this);
23982  var scheme = url.scheme;
23983  var username = url.username;
23984  var password = url.password;
23985  var host = url.host;
23986  var port = url.port;
23987  var path = url.path;
23988  var query = url.query;
23989  var fragment = url.fragment;
23990  var output = scheme + ':';
23991  if (host !== null) {
23992    output += '//';
23993    if (includesCredentials(url)) {
23994      output += username + (password ? ':' + password : '') + '@';
23995    }
23996    output += serializeHost(host);
23997    if (port !== null) output += ':' + port;
23998  } else if (scheme == 'file') output += '//';
23999  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
24000  if (query !== null) output += '?' + query;
24001  if (fragment !== null) output += '#' + fragment;
24002  return output;
24003};
24004
24005var getOrigin = function () {
24006  var url = getInternalURLState(this);
24007  var scheme = url.scheme;
24008  var port = url.port;
24009  if (scheme == 'blob') try {
24010    return new URL(scheme.path[0]).origin;
24011  } catch (error) {
24012    return 'null';
24013  }
24014  if (scheme == 'file' || !isSpecial(url)) return 'null';
24015  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');
24016};
24017
24018var getProtocol = function () {
24019  return getInternalURLState(this).scheme + ':';
24020};
24021
24022var getUsername = function () {
24023  return getInternalURLState(this).username;
24024};
24025
24026var getPassword = function () {
24027  return getInternalURLState(this).password;
24028};
24029
24030var getHost = function () {
24031  var url = getInternalURLState(this);
24032  var host = url.host;
24033  var port = url.port;
24034  return host === null ? ''
24035    : port === null ? serializeHost(host)
24036    : serializeHost(host) + ':' + port;
24037};
24038
24039var getHostname = function () {
24040  var host = getInternalURLState(this).host;
24041  return host === null ? '' : serializeHost(host);
24042};
24043
24044var getPort = function () {
24045  var port = getInternalURLState(this).port;
24046  return port === null ? '' : String(port);
24047};
24048
24049var getPathname = function () {
24050  var url = getInternalURLState(this);
24051  var path = url.path;
24052  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
24053};
24054
24055var getSearch = function () {
24056  var query = getInternalURLState(this).query;
24057  return query ? '?' + query : '';
24058};
24059
24060var getSearchParams = function () {
24061  return getInternalURLState(this).searchParams;
24062};
24063
24064var getHash = function () {
24065  var fragment = getInternalURLState(this).fragment;
24066  return fragment ? '#' + fragment : '';
24067};
24068
24069var accessorDescriptor = function (getter, setter) {
24070  return { get: getter, set: setter, configurable: true, enumerable: true };
24071};
24072
24073if (DESCRIPTORS) {
24074  defineProperties(URLPrototype, {
24075    // `URL.prototype.href` accessors pair
24076    // https://url.spec.whatwg.org/#dom-url-href
24077    href: accessorDescriptor(serializeURL, function (href) {
24078      var url = getInternalURLState(this);
24079      var urlString = String(href);
24080      var failure = parseURL(url, urlString);
24081      if (failure) throw TypeError(failure);
24082      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
24083    }),
24084    // `URL.prototype.origin` getter
24085    // https://url.spec.whatwg.org/#dom-url-origin
24086    origin: accessorDescriptor(getOrigin),
24087    // `URL.prototype.protocol` accessors pair
24088    // https://url.spec.whatwg.org/#dom-url-protocol
24089    protocol: accessorDescriptor(getProtocol, function (protocol) {
24090      var url = getInternalURLState(this);
24091      parseURL(url, String(protocol) + ':', SCHEME_START);
24092    }),
24093    // `URL.prototype.username` accessors pair
24094    // https://url.spec.whatwg.org/#dom-url-username
24095    username: accessorDescriptor(getUsername, function (username) {
24096      var url = getInternalURLState(this);
24097      var codePoints = arrayFrom(String(username));
24098      if (cannotHaveUsernamePasswordPort(url)) return;
24099      url.username = '';
24100      for (var i = 0; i < codePoints.length; i++) {
24101        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
24102      }
24103    }),
24104    // `URL.prototype.password` accessors pair
24105    // https://url.spec.whatwg.org/#dom-url-password
24106    password: accessorDescriptor(getPassword, function (password) {
24107      var url = getInternalURLState(this);
24108      var codePoints = arrayFrom(String(password));
24109      if (cannotHaveUsernamePasswordPort(url)) return;
24110      url.password = '';
24111      for (var i = 0; i < codePoints.length; i++) {
24112        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
24113      }
24114    }),
24115    // `URL.prototype.host` accessors pair
24116    // https://url.spec.whatwg.org/#dom-url-host
24117    host: accessorDescriptor(getHost, function (host) {
24118      var url = getInternalURLState(this);
24119      if (url.cannotBeABaseURL) return;
24120      parseURL(url, String(host), HOST);
24121    }),
24122    // `URL.prototype.hostname` accessors pair
24123    // https://url.spec.whatwg.org/#dom-url-hostname
24124    hostname: accessorDescriptor(getHostname, function (hostname) {
24125      var url = getInternalURLState(this);
24126      if (url.cannotBeABaseURL) return;
24127      parseURL(url, String(hostname), HOSTNAME);
24128    }),
24129    // `URL.prototype.port` accessors pair
24130    // https://url.spec.whatwg.org/#dom-url-port
24131    port: accessorDescriptor(getPort, function (port) {
24132      var url = getInternalURLState(this);
24133      if (cannotHaveUsernamePasswordPort(url)) return;
24134      port = String(port);
24135      if (port == '') url.port = null;
24136      else parseURL(url, port, PORT);
24137    }),
24138    // `URL.prototype.pathname` accessors pair
24139    // https://url.spec.whatwg.org/#dom-url-pathname
24140    pathname: accessorDescriptor(getPathname, function (pathname) {
24141      var url = getInternalURLState(this);
24142      if (url.cannotBeABaseURL) return;
24143      url.path = [];
24144      parseURL(url, pathname + '', PATH_START);
24145    }),
24146    // `URL.prototype.search` accessors pair
24147    // https://url.spec.whatwg.org/#dom-url-search
24148    search: accessorDescriptor(getSearch, function (search) {
24149      var url = getInternalURLState(this);
24150      search = String(search);
24151      if (search == '') {
24152        url.query = null;
24153      } else {
24154        if ('?' == search.charAt(0)) search = search.slice(1);
24155        url.query = '';
24156        parseURL(url, search, QUERY);
24157      }
24158      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
24159    }),
24160    // `URL.prototype.searchParams` getter
24161    // https://url.spec.whatwg.org/#dom-url-searchparams
24162    searchParams: accessorDescriptor(getSearchParams),
24163    // `URL.prototype.hash` accessors pair
24164    // https://url.spec.whatwg.org/#dom-url-hash
24165    hash: accessorDescriptor(getHash, function (hash) {
24166      var url = getInternalURLState(this);
24167      hash = String(hash);
24168      if (hash == '') {
24169        url.fragment = null;
24170        return;
24171      }
24172      if ('#' == hash.charAt(0)) hash = hash.slice(1);
24173      url.fragment = '';
24174      parseURL(url, hash, FRAGMENT);
24175    })
24176  });
24177}
24178
24179// `URL.prototype.toJSON` method
24180// https://url.spec.whatwg.org/#dom-url-tojson
24181redefine(URLPrototype, 'toJSON', function toJSON() {
24182  return serializeURL.call(this);
24183}, { enumerable: true });
24184
24185// `URL.prototype.toString` method
24186// https://url.spec.whatwg.org/#URL-stringification-behavior
24187redefine(URLPrototype, 'toString', function toString() {
24188  return serializeURL.call(this);
24189}, { enumerable: true });
24190
24191if (NativeURL) {
24192  var nativeCreateObjectURL = NativeURL.createObjectURL;
24193  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
24194  // `URL.createObjectURL` method
24195  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
24196  // eslint-disable-next-line no-unused-vars
24197  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
24198    return nativeCreateObjectURL.apply(NativeURL, arguments);
24199  });
24200  // `URL.revokeObjectURL` method
24201  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
24202  // eslint-disable-next-line no-unused-vars
24203  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
24204    return nativeRevokeObjectURL.apply(NativeURL, arguments);
24205  });
24206}
24207
24208setToStringTag(URLConstructor, 'URL');
24209
24210$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {
24211  URL: URLConstructor
24212});
24213
24214
24215/***/ }),
24216/* 350 */,
24217/* 351 */,
24218/* 352 */,
24219/* 353 */,
24220/* 354 */,
24221/* 355 */,
24222/* 356 */
24223/***/ (function(module, exports, __webpack_require__) {
24224
24225var DESCRIPTORS = __webpack_require__(21);
24226var fails = __webpack_require__(11);
24227var createElement = __webpack_require__(273);
24228
24229// Thank's IE8 for his funny defineProperty
24230module.exports = !DESCRIPTORS && !fails(function () {
24231  return Object.defineProperty(createElement('div'), 'a', {
24232    get: function () { return 7; }
24233  }).a != 7;
24234});
24235
24236
24237/***/ }),
24238/* 357 */
24239/***/ (function(module, exports, __webpack_require__) {
24240
24241var global = __webpack_require__(16);
24242var inspectSource = __webpack_require__(275);
24243
24244var WeakMap = global.WeakMap;
24245
24246module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
24247
24248
24249/***/ }),
24250/* 358 */
24251/***/ (function(module, exports, __webpack_require__) {
24252
24253var has = __webpack_require__(35);
24254var ownKeys = __webpack_require__(278);
24255var getOwnPropertyDescriptorModule = __webpack_require__(51);
24256var definePropertyModule = __webpack_require__(30);
24257
24258module.exports = function (target, source) {
24259  var keys = ownKeys(source);
24260  var defineProperty = definePropertyModule.f;
24261  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
24262  for (var i = 0; i < keys.length; i++) {
24263    var key = keys[i];
24264    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
24265  }
24266};
24267
24268
24269/***/ }),
24270/* 359 */
24271/***/ (function(module, exports, __webpack_require__) {
24272
24273var has = __webpack_require__(35);
24274var toIndexedObject = __webpack_require__(66);
24275var indexOf = __webpack_require__(168).indexOf;
24276var hiddenKeys = __webpack_require__(166);
24277
24278module.exports = function (object, names) {
24279  var O = toIndexedObject(object);
24280  var i = 0;
24281  var result = [];
24282  var key;
24283  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
24284  // Don't enum bug & hidden keys
24285  while (names.length > i) if (has(O, key = names[i++])) {
24286    ~indexOf(result, key) || result.push(key);
24287  }
24288  return result;
24289};
24290
24291
24292/***/ }),
24293/* 360 */
24294/***/ (function(module, exports, __webpack_require__) {
24295
24296var NATIVE_SYMBOL = __webpack_require__(281);
24297
24298module.exports = NATIVE_SYMBOL
24299  // eslint-disable-next-line no-undef
24300  && !Symbol.sham
24301  // eslint-disable-next-line no-undef
24302  && typeof Symbol.iterator == 'symbol';
24303
24304
24305/***/ }),
24306/* 361 */
24307/***/ (function(module, exports, __webpack_require__) {
24308
24309var getBuiltIn = __webpack_require__(67);
24310
24311module.exports = getBuiltIn('document', 'documentElement');
24312
24313
24314/***/ }),
24315/* 362 */
24316/***/ (function(module, exports, __webpack_require__) {
24317
24318var toIndexedObject = __webpack_require__(66);
24319var nativeGetOwnPropertyNames = __webpack_require__(132).f;
24320
24321var toString = {}.toString;
24322
24323var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
24324  ? Object.getOwnPropertyNames(window) : [];
24325
24326var getWindowNames = function (it) {
24327  try {
24328    return nativeGetOwnPropertyNames(it);
24329  } catch (error) {
24330    return windowNames.slice();
24331  }
24332};
24333
24334// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
24335module.exports.f = function getOwnPropertyNames(it) {
24336  return windowNames && toString.call(it) == '[object Window]'
24337    ? getWindowNames(it)
24338    : nativeGetOwnPropertyNames(toIndexedObject(it));
24339};
24340
24341
24342/***/ }),
24343/* 363 */
24344/***/ (function(module, exports, __webpack_require__) {
24345
24346var wellKnownSymbol = __webpack_require__(23);
24347
24348exports.f = wellKnownSymbol;
24349
24350
24351/***/ }),
24352/* 364 */
24353/***/ (function(module, exports, __webpack_require__) {
24354
24355var isObject = __webpack_require__(19);
24356
24357module.exports = function (it) {
24358  if (!isObject(it) && it !== null) {
24359    throw TypeError("Can't set " + String(it) + ' as a prototype');
24360  } return it;
24361};
24362
24363
24364/***/ }),
24365/* 365 */
24366/***/ (function(module, exports, __webpack_require__) {
24367
24368var anObject = __webpack_require__(20);
24369
24370module.exports = function (iterator) {
24371  var returnMethod = iterator['return'];
24372  if (returnMethod !== undefined) {
24373    return anObject(returnMethod.call(iterator)).value;
24374  }
24375};
24376
24377
24378/***/ }),
24379/* 366 */
24380/***/ (function(module, exports, __webpack_require__) {
24381
24382"use strict";
24383
24384var bind = __webpack_require__(115);
24385var toObject = __webpack_require__(33);
24386var callWithSafeIterationClosing = __webpack_require__(553);
24387var isArrayIteratorMethod = __webpack_require__(284);
24388var toLength = __webpack_require__(28);
24389var createProperty = __webpack_require__(134);
24390var getIteratorMethod = __webpack_require__(173);
24391
24392// `Array.from` method implementation
24393// https://tc39.github.io/ecma262/#sec-array.from
24394module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
24395  var O = toObject(arrayLike);
24396  var C = typeof this == 'function' ? this : Array;
24397  var argumentsLength = arguments.length;
24398  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
24399  var mapping = mapfn !== undefined;
24400  var iteratorMethod = getIteratorMethod(O);
24401  var index = 0;
24402  var length, result, step, iterator, next, value;
24403  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
24404  // if the target is not iterable or it's an array with the default iterator - use a simple case
24405  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
24406    iterator = iteratorMethod.call(O);
24407    next = iterator.next;
24408    result = new C();
24409    for (;!(step = next.call(iterator)).done; index++) {
24410      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;
24411      createProperty(result, index, value);
24412    }
24413  } else {
24414    length = toLength(O.length);
24415    result = new C(length);
24416    for (;length > index; index++) {
24417      value = mapping ? mapfn(O[index], index) : O[index];
24418      createProperty(result, index, value);
24419    }
24420  }
24421  result.length = index;
24422  return result;
24423};
24424
24425
24426/***/ }),
24427/* 367 */
24428/***/ (function(module, exports, __webpack_require__) {
24429
24430"use strict";
24431
24432var toObject = __webpack_require__(33);
24433var toAbsoluteIndex = __webpack_require__(114);
24434var toLength = __webpack_require__(28);
24435
24436var min = Math.min;
24437
24438// `Array.prototype.copyWithin` method implementation
24439// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
24440module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
24441  var O = toObject(this);
24442  var len = toLength(O.length);
24443  var to = toAbsoluteIndex(target, len);
24444  var from = toAbsoluteIndex(start, len);
24445  var end = arguments.length > 2 ? arguments[2] : undefined;
24446  var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
24447  var inc = 1;
24448  if (from < to && to < from + count) {
24449    inc = -1;
24450    from += count - 1;
24451    to += count - 1;
24452  }
24453  while (count-- > 0) {
24454    if (from in O) O[to] = O[from];
24455    else delete O[to];
24456    to += inc;
24457    from += inc;
24458  } return O;
24459};
24460
24461
24462/***/ }),
24463/* 368 */
24464/***/ (function(module, exports, __webpack_require__) {
24465
24466"use strict";
24467
24468var isArray = __webpack_require__(133);
24469var toLength = __webpack_require__(28);
24470var bind = __webpack_require__(115);
24471
24472// `FlattenIntoArray` abstract operation
24473// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
24474var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
24475  var targetIndex = start;
24476  var sourceIndex = 0;
24477  var mapFn = mapper ? bind(mapper, thisArg, 3) : false;
24478  var element;
24479
24480  while (sourceIndex < sourceLen) {
24481    if (sourceIndex in source) {
24482      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
24483
24484      if (depth > 0 && isArray(element)) {
24485        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
24486      } else {
24487        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');
24488        target[targetIndex] = element;
24489      }
24490
24491      targetIndex++;
24492    }
24493    sourceIndex++;
24494  }
24495  return targetIndex;
24496};
24497
24498module.exports = flattenIntoArray;
24499
24500
24501/***/ }),
24502/* 369 */
24503/***/ (function(module, exports, __webpack_require__) {
24504
24505"use strict";
24506
24507var $forEach = __webpack_require__(46).forEach;
24508var arrayMethodIsStrict = __webpack_require__(102);
24509var arrayMethodUsesToLength = __webpack_require__(63);
24510
24511var STRICT_METHOD = arrayMethodIsStrict('forEach');
24512var USES_TO_LENGTH = arrayMethodUsesToLength('forEach');
24513
24514// `Array.prototype.forEach` method implementation
24515// https://tc39.github.io/ecma262/#sec-array.prototype.foreach
24516module.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {
24517  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
24518} : [].forEach;
24519
24520
24521/***/ }),
24522/* 370 */
24523/***/ (function(module, exports, __webpack_require__) {
24524
24525"use strict";
24526
24527var toIndexedObject = __webpack_require__(66);
24528var toInteger = __webpack_require__(73);
24529var toLength = __webpack_require__(28);
24530var arrayMethodIsStrict = __webpack_require__(102);
24531var arrayMethodUsesToLength = __webpack_require__(63);
24532
24533var min = Math.min;
24534var nativeLastIndexOf = [].lastIndexOf;
24535var NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;
24536var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');
24537// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
24538var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });
24539var FORCED = NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH;
24540
24541// `Array.prototype.lastIndexOf` method implementation
24542// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
24543module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
24544  // convert -0 to +0
24545  if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;
24546  var O = toIndexedObject(this);
24547  var length = toLength(O.length);
24548  var index = length - 1;
24549  if (arguments.length > 1) index = min(index, toInteger(arguments[1]));
24550  if (index < 0) index = length + index;
24551  for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;
24552  return -1;
24553} : nativeLastIndexOf;
24554
24555
24556/***/ }),
24557/* 371 */
24558/***/ (function(module, exports, __webpack_require__) {
24559
24560"use strict";
24561
24562var getPrototypeOf = __webpack_require__(74);
24563var createNonEnumerableProperty = __webpack_require__(53);
24564var has = __webpack_require__(35);
24565var wellKnownSymbol = __webpack_require__(23);
24566var IS_PURE = __webpack_require__(72);
24567
24568var ITERATOR = wellKnownSymbol('iterator');
24569var BUGGY_SAFARI_ITERATORS = false;
24570
24571var returnThis = function () { return this; };
24572
24573// `%IteratorPrototype%` object
24574// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object
24575var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
24576
24577if ([].keys) {
24578  arrayIterator = [].keys();
24579  // Safari 8 has buggy iterators w/o `next`
24580  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
24581  else {
24582    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
24583    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
24584  }
24585}
24586
24587if (IteratorPrototype == undefined) IteratorPrototype = {};
24588
24589// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
24590if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {
24591  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
24592}
24593
24594module.exports = {
24595  IteratorPrototype: IteratorPrototype,
24596  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
24597};
24598
24599
24600/***/ }),
24601/* 372 */
24602/***/ (function(module, exports, __webpack_require__) {
24603
24604"use strict";
24605
24606var aFunction = __webpack_require__(59);
24607var isObject = __webpack_require__(19);
24608
24609var slice = [].slice;
24610var factories = {};
24611
24612var construct = function (C, argsLength, args) {
24613  if (!(argsLength in factories)) {
24614    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';
24615    // eslint-disable-next-line no-new-func
24616    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');
24617  } return factories[argsLength](C, args);
24618};
24619
24620// `Function.prototype.bind` method implementation
24621// https://tc39.github.io/ecma262/#sec-function.prototype.bind
24622module.exports = Function.bind || function bind(that /* , ...args */) {
24623  var fn = aFunction(this);
24624  var partArgs = slice.call(arguments, 1);
24625  var boundFunction = function bound(/* args... */) {
24626    var args = partArgs.concat(slice.call(arguments));
24627    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);
24628  };
24629  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;
24630  return boundFunction;
24631};
24632
24633
24634/***/ }),
24635/* 373 */
24636/***/ (function(module, exports, __webpack_require__) {
24637
24638"use strict";
24639
24640var DESCRIPTORS = __webpack_require__(21);
24641var fails = __webpack_require__(11);
24642var objectKeys = __webpack_require__(170);
24643var getOwnPropertySymbolsModule = __webpack_require__(280);
24644var propertyIsEnumerableModule = __webpack_require__(213);
24645var toObject = __webpack_require__(33);
24646var IndexedObject = __webpack_require__(164);
24647
24648var nativeAssign = Object.assign;
24649var defineProperty = Object.defineProperty;
24650
24651// `Object.assign` method
24652// https://tc39.github.io/ecma262/#sec-object.assign
24653module.exports = !nativeAssign || fails(function () {
24654  // should have correct order of operations (Edge bug)
24655  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {
24656    enumerable: true,
24657    get: function () {
24658      defineProperty(this, 'b', {
24659        value: 3,
24660        enumerable: false
24661      });
24662    }
24663  }), { b: 2 })).b !== 1) return true;
24664  // should work with symbols and should have deterministic property order (V8 bug)
24665  var A = {};
24666  var B = {};
24667  // eslint-disable-next-line no-undef
24668  var symbol = Symbol();
24669  var alphabet = 'abcdefghijklmnopqrst';
24670  A[symbol] = 7;
24671  alphabet.split('').forEach(function (chr) { B[chr] = chr; });
24672  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
24673}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
24674  var T = toObject(target);
24675  var argumentsLength = arguments.length;
24676  var index = 1;
24677  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
24678  var propertyIsEnumerable = propertyIsEnumerableModule.f;
24679  while (argumentsLength > index) {
24680    var S = IndexedObject(arguments[index++]);
24681    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
24682    var length = keys.length;
24683    var j = 0;
24684    var key;
24685    while (length > j) {
24686      key = keys[j++];
24687      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[ke
24687y] = S[key];
24688    }
24689  } return T;
24690} : nativeAssign;
24691
24692
24693/***/ }),
24694/* 374 */
24695/***/ (function(module, exports, __webpack_require__) {
24696
24697var DESCRIPTORS = __webpack_require__(21);
24698var objectKeys = __webpack_require__(170);
24699var toIndexedObject = __webpack_require__(66);
24700var propertyIsEnumerable = __webpack_require__(213).f;
24701
24702// `Object.{ entries, values }` methods implementation
24703var createMethod = function (TO_ENTRIES) {
24704  return function (it) {
24705    var O = toIndexedObject(it);
24706    var keys = objectKeys(O);
24707    var length = keys.length;
24708    var i = 0;
24709    var result = [];
24710    var key;
24711    while (length > i) {
24712      key = keys[i++];
24713      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
24714        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
24715      }
24716    }
24717    return result;
24718  };
24719};
24720
24721module.exports = {
24722  // `Object.entries` method
24723  // https://tc39.github.io/ecma262/#sec-object.entries
24724  entries: createMethod(true),
24725  // `Object.values` method
24726  // https://tc39.github.io/ecma262/#sec-object.values
24727  values: createMethod(false)
24728};
24729
24730
24731/***/ }),
24732/* 375 */
24733/***/ (function(module, exports) {
24734
24735// `SameValue` abstract operation
24736// https://tc39.github.io/ecma262/#sec-samevalue
24737module.exports = Object.is || function is(x, y) {
24738  // eslint-disable-next-line no-self-compare
24739  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
24740};
24741
24742
24743/***/ }),
24744/* 376 */
24745/***/ (function(module, exports, __webpack_require__) {
24746
24747// https://github.com/zloirock/core-js/issues/280
24748var userAgent = __webpack_require__(216);
24749
24750// eslint-disable-next-line unicorn/no-unsafe-regex
24751module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
24752
24753
24754/***/ }),
24755/* 377 */
24756/***/ (function(module, exports, __webpack_require__) {
24757
24758var global = __webpack_require__(16);
24759var trim = __webpack_require__(149).trim;
24760var whitespaces = __webpack_require__(225);
24761
24762var $parseInt = global.parseInt;
24763var hex = /^[+-]?0[Xx]/;
vendor: 9,133 bytes, lines 24764-25072
24764var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;
24765
24766// `parseInt` method
24767// https://tc39.github.io/ecma262/#sec-parseint-string-radix
24768module.exports = FORCED ? function parseInt(string, radix) {
24769  var S = trim(String(string));
24770  return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
24771} : $parseInt;
24772
24773
24774/***/ }),
24775/* 378 */
24776/***/ (function(module, exports, __webpack_require__) {
24777
24778var global = __webpack_require__(16);
24779var trim = __webpack_require__(149).trim;
24780var whitespaces = __webpack_require__(225);
24781
24782var $parseFloat = global.parseFloat;
24783var FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity;
24784
24785// `parseFloat` method
24786// https://tc39.github.io/ecma262/#sec-parsefloat-string
24787module.exports = FORCED ? function parseFloat(string) {
24788  var trimmedString = trim(String(string));
24789  var result = $parseFloat(trimmedString);
24790  return result === 0 && trimmedString.charAt(0) == '-' ? -0 : result;
24791} : $parseFloat;
24792
24793
24794/***/ }),
24795/* 379 */
24796/***/ (function(module, exports, __webpack_require__) {
24797
24798var isObject = __webpack_require__(19);
24799
24800var floor = Math.floor;
24801
24802// `Number.isInteger` method implementation
24803// https://tc39.github.io/ecma262/#sec-number.isinteger
24804module.exports = function isInteger(it) {
24805  return !isObject(it) && isFinite(it) && floor(it) === it;
24806};
24807
24808
24809/***/ }),
24810/* 380 */
24811/***/ (function(module, exports, __webpack_require__) {
24812
24813var classof = __webpack_require__(101);
24814
24815// `thisNumberValue` abstract operation
24816// https://tc39.github.io/ecma262/#sec-thisnumbervalue
24817module.exports = function (value) {
24818  if (typeof value != 'number' && classof(value) != 'Number') {
24819    throw TypeError('Incorrect invocation');
24820  }
24821  return +value;
24822};
24823
24824
24825/***/ }),
24826/* 381 */
24827/***/ (function(module, exports) {
24828
24829var log = Math.log;
24830
24831// `Math.log1p` method implementation
24832// https://tc39.github.io/ecma262/#sec-math.log1p
24833module.exports = Math.log1p || function log1p(x) {
24834  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : log(1 + x);
24835};
24836
24837
24838/***/ }),
24839/* 382 */
24840/***/ (function(module, exports, __webpack_require__) {
24841
24842var global = __webpack_require__(16);
24843
24844module.exports = global.Promise;
24845
24846
24847/***/ }),
24848/* 383 */
24849/***/ (function(module, exports, __webpack_require__) {
24850
24851var userAgent = __webpack_require__(216);
24852
24853module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);
24854
24855
24856/***/ }),
24857/* 384 */
24858/***/ (function(module, exports, __webpack_require__) {
24859
24860var global = __webpack_require__(16);
24861var getOwnPropertyDescriptor = __webpack_require__(51).f;
24862var macrotask = __webpack_require__(295).set;
24863var IS_IOS = __webpack_require__(383);
24864var IS_NODE = __webpack_require__(146);
24865
24866var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
24867var document = global.document;
24868var process = global.process;
24869var Promise = global.Promise;
24870// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`
24871var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
24872var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
24873
24874var flush, head, last, notify, toggle, node, promise, then;
24875
24876// modern engines have queueMicrotask method
24877if (!queueMicrotask) {
24878  flush = function () {
24879    var parent, fn;
24880    if (IS_NODE && (parent = process.domain)) parent.exit();
24881    while (head) {
24882      fn = head.fn;
24883      head = head.next;
24884      try {
24885        fn();
24886      } catch (error) {
24887        if (head) notify();
24888        else last = undefined;
24889        throw error;
24890      }
24891    } last = undefined;
24892    if (parent) parent.enter();
24893  };
24894
24895  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339
24896  if (!IS_IOS && !IS_NODE && MutationObserver && document) {
24897    toggle = true;
24898    node = document.createTextNode('');
24899    new MutationObserver(flush).observe(node, { characterData: true });
24900    notify = function () {
24901      node.data = toggle = !toggle;
24902    };
24903  // environments with maybe non-completely correct, but existent Promise
24904  } else if (Promise && Promise.resolve) {
24905    // Promise.resolve without an argument throws an error in LG WebOS 2
24906    promise = Promise.resolve(undefined);
24907    then = promise.then;
24908    notify = function () {
24909      then.call(promise, flush);
24910    };
24911  // Node.js without promises
24912  } else if (IS_NODE) {
24913    notify = function () {
24914      process.nextTick(flush);
24915    };
24916  // for other environments - macrotask based on:
24917  // - setImmediate
24918  // - MessageChannel
24919  // - window.postMessag
24920  // - onreadystatechange
24921  // - setTimeout
24922  } else {
24923    notify = function () {
24924      // strange IE + webpack dev server bug - use .call(global)
24925      macrotask.call(global, flush);
24926    };
24927  }
24928}
24929
24930module.exports = queueMicrotask || function (fn) {
24931  var task = { fn: fn, next: undefined };
24932  if (last) last.next = task;
24933  if (!head) {
24934    head = task;
24935    notify();
24936  } last = task;
24937};
24938
24939
24940/***/ }),
24941/* 385 */
24942/***/ (function(module, exports, __webpack_require__) {
24943
24944var anObject = __webpack_require__(20);
24945var isObject = __webpack_require__(19);
24946var newPromiseCapability = __webpack_require__(228);
24947
24948module.exports = function (C, x) {
24949  anObject(C);
24950  if (isObject(x) && x.constructor === C) return x;
24951  var promiseCapability = newPromiseCapability.f(C);
24952  var resolve = promiseCapability.resolve;
24953  resolve(x);
24954  return promiseCapability.promise;
24955};
24956
24957
24958/***/ }),
24959/* 386 */
24960/***/ (function(module, exports, __webpack_require__) {
24961
24962"use strict";
24963
24964var defineProperty = __webpack_require__(30).f;
24965var create = __webpack_require__(92);
24966var redefineAll = __webpack_require__(150);
24967var bind = __webpack_require__(115);
24968var anInstance = __webpack_require__(119);
24969var iterate = __webpack_require__(117);
24970var defineIterator = __webpack_require__(287);
24971var setSpecies = __webpack_require__(147);
24972var DESCRIPTORS = __webpack_require__(21);
24973var fastKey = __webpack_require__(135).fastKey;
24974var InternalStateModule = __webpack_require__(58);
24975
24976var setInternalState = InternalStateModule.set;
24977var internalStateGetterFor = InternalStateModule.getterFor;
24978
24979module.exports = {
24980  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
24981    var C = wrapper(function (that, iterable) {
24982      anInstance(that, C, CONSTRUCTOR_NAME);
24983      setInternalState(that, {
24984        type: CONSTRUCTOR_NAME,
24985        index: create(null),
24986        first: undefined,
24987        last: undefined,
24988        size: 0
24989      });
24990      if (!DESCRIPTORS) that.size = 0;
24991      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
24992    });
24993
24994    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
24995
24996    var define = function (that, key, value) {
24997      var state = getInternalState(that);
24998      var entry = getEntry(that, key);
24999      var previous, index;
25000      // change existing entry
25001      if (entry) {
25002        entry.value = value;
25003      // create new entry
25004      } else {
25005        state.last = entry = {
25006          index: index = fastKey(key, true),
25007          key: key,
25008          value: value,
25009          previous: previous = state.last,
25010          next: undefined,
25011          removed: false
25012        };
25013        if (!state.first) state.first = entry;
25014        if (previous) previous.next = entry;
25015        if (DESCRIPTORS) state.size++;
25016        else that.size++;
25017        // add to index
25018        if (index !== 'F') state.index[index] = entry;
25019      } return that;
25020    };
25021
25022    var getEntry = function (that, key) {
25023      var state = getInternalState(that);
25024      // fast case
25025      var index = fastKey(key);
25026      var entry;
25027      if (index !== 'F') return state.index[index];
25028      // frozen object case
25029      for (entry = state.first; entry; entry = entry.next) {
25030        if (entry.key == key) return entry;
25031      }
25032    };
25033
25034    redefineAll(C.prototype, {
25035      // 23.1.3.1 Map.prototype.clear()
25036      // 23.2.3.2 Set.prototype.clear()
25037      clear: function clear() {
25038        var that = this;
25039        var state = getInternalState(that);
25040        var data = state.index;
25041        var entry = state.first;
25042        while (entry) {
25043          entry.removed = true;
25044          if (entry.previous) entry.previous = entry.previous.next = undefined;
25045          delete data[entry.index];
25046          entry = entry.next;
25047        }
25048        state.first = state.last = undefined;
25049        if (DESCRIPTORS) state.size = 0;
25050        else that.size = 0;
25051      },
25052      // 23.1.3.3 Map.prototype.delete(key)
25053      // 23.2.3.4 Set.prototype.delete(value)
25054      'delete': function (key) {
25055        var that = this;
25056        var state = getInternalState(that);
25057        var entry = getEntry(that, key);
25058        if (entry) {
25059          var next = entry.next;
25060          var prev = entry.previous;
25061          delete state.index[entry.index];
25062          entry.removed = true;
25063          if (prev) prev.next = next;
25064          if (next) next.previous = prev;
25065          if (state.first == entry) state.first = next;
25066          if (state.last == entry) state.last = prev;
25067          if (DESCRIPTORS) state.size--;
25068          else that.size--;
25069        } return !!entry;
25070      },
25071      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
25072      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
vendor: 5,467 bytes, lines 25073-25237
25073      forEach: function forEach(callbackfn /* , that = undefined */) {
25074        var state = getInternalState(this);
25075        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
25076        var entry;
25077        while (entry = entry ? entry.next : state.first) {
25078          boundFunction(entry.value, entry.key, this);
25079          // revert to the last existing entry
25080          while (entry && entry.removed) entry = entry.previous;
25081        }
25082      },
25083      // 23.1.3.7 Map.prototype.has(key)
25084      // 23.2.3.7 Set.prototype.has(value)
25085      has: function has(key) {
25086        return !!getEntry(this, key);
25087      }
25088    });
25089
25090    redefineAll(C.prototype, IS_MAP ? {
25091      // 23.1.3.6 Map.prototype.get(key)
25092      get: function get(key) {
25093        var entry = getEntry(this, key);
25094        return entry && entry.value;
25095      },
25096      // 23.1.3.9 Map.prototype.set(key, value)
25097      set: function set(key, value) {
25098        return define(this, key === 0 ? 0 : key, value);
25099      }
25100    } : {
25101      // 23.2.3.1 Set.prototype.add(value)
25102      add: function add(value) {
25103        return define(this, value = value === 0 ? 0 : value, value);
25104      }
25105    });
25106    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {
25107      get: function () {
25108        return getInternalState(this).size;
25109      }
25110    });
25111    return C;
25112  },
25113  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {
25114    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';
25115    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);
25116    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);
25117    // add .keys, .values, .entries, [@@iterator]
25118    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
25119    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {
25120      setInternalState(this, {
25121        type: ITERATOR_NAME,
25122        target: iterated,
25123        state: getInternalCollectionState(iterated),
25124        kind: kind,
25125        last: undefined
25126      });
25127    }, function () {
25128      var state = getInternalIteratorState(this);
25129      var kind = state.kind;
25130      var entry = state.last;
25131      // revert to the last existing entry
25132      while (entry && entry.removed) entry = entry.previous;
25133      // get next entry
25134      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
25135        // or finish the iteration
25136        state.target = undefined;
25137        return { value: undefined, done: true };
25138      }
25139      // return step by kind
25140      if (kind == 'keys') return { value: entry.key, done: false };
25141      if (kind == 'values') return { value: entry.value, done: false };
25142      return { value: [entry.key, entry.value], done: false };
25143    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
25144
25145    // add [@@species], 23.1.2.2, 23.2.2.2
25146    setSpecies(CONSTRUCTOR_NAME);
25147  }
25148};
25149
25150
25151/***/ }),
25152/* 387 */
25153/***/ (function(module, exports, __webpack_require__) {
25154
25155"use strict";
25156
25157var redefineAll = __webpack_require__(150);
25158var getWeakData = __webpack_require__(135).getWeakData;
25159var anObject = __webpack_require__(20);
25160var isObject = __webpack_require__(19);
25161var anInstance = __webpack_require__(119);
25162var iterate = __webpack_require__(117);
25163var ArrayIterationModule = __webpack_require__(46);
25164var $has = __webpack_require__(35);
25165var InternalStateModule = __webpack_require__(58);
25166
25167var setInternalState = InternalStateModule.set;
25168var internalStateGetterFor = InternalStateModule.getterFor;
25169var find = ArrayIterationModule.find;
25170var findIndex = ArrayIterationModule.findIndex;
25171var id = 0;
25172
25173// fallback for uncaught frozen keys
25174var uncaughtFrozenStore = function (store) {
25175  return store.frozen || (store.frozen = new UncaughtFrozenStore());
25176};
25177
25178var UncaughtFrozenStore = function () {
25179  this.entries = [];
25180};
25181
25182var findUncaughtFrozen = function (store, key) {
25183  return find(store.entries, function (it) {
25184    return it[0] === key;
25185  });
25186};
25187
25188UncaughtFrozenStore.prototype = {
25189  get: function (key) {
25190    var entry = findUncaughtFrozen(this, key);
25191    if (entry) return entry[1];
25192  },
25193  has: function (key) {
25194    return !!findUncaughtFrozen(this, key);
25195  },
25196  set: function (key, value) {
25197    var entry = findUncaughtFrozen(this, key);
25198    if (entry) entry[1] = value;
25199    else this.entries.push([key, value]);
25200  },
25201  'delete': function (key) {
25202    var index = findIndex(this.entries, function (it) {
25203      return it[0] === key;
25204    });
25205    if (~index) this.entries.splice(index, 1);
25206    return !!~index;
25207  }
25208};
25209
25210module.exports = {
25211  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
25212    var C = wrapper(function (that, iterable) {
25213      anInstance(that, C, CONSTRUCTOR_NAME);
25214      setInternalState(that, {
25215        type: CONSTRUCTOR_NAME,
25216        id: id++,
25217        frozen: undefined
25218      });
25219      if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });
25220    });
25221
25222    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
25223
25224    var define = function (that, key, value) {
25225      var state = getInternalState(that);
25226      var data = getWeakData(anObject(key), true);
25227      if (data === true) uncaughtFrozenStore(state).set(key, value);
25228      else data[state.id] = value;
25229      return that;
25230    };
25231
25232    redefineAll(C.prototype, {
25233      // 23.3.3.2 WeakMap.prototype.delete(key)
25234      // 23.4.3.3 WeakSet.prototype.delete(value)
25235      'delete': function (key) {
25236        var state = getInternalState(this);
25237        if (!isObject(key)) return false;
25238        var data = getWeakData(key);
25239        if (data === true) return uncaughtFrozenStore(state)['delete'](key);
25240        return data && $has(data, state.id) && delete data[state.id];
25241      },
25242      // 23.3.3.4 WeakMap.prototype.has(key)
25243      // 23.4.3.4 WeakSet.prototype.has(value)
25244      has: function has(key) {
25245        var state = getInternalState(this);
25246        if (!isObject(key)) return false;
25247        var data = getWeakData(key);
25248        if (data === true) return uncaughtFrozenStore(state).has(key);
25249        return data && $has(data, state.id);
25250      }
25251    });
25252
25253    redefineAll(C.prototype, IS_MAP ? {
25254      // 23.3.3.3 WeakMap.prototype.get(key)
25255      get: function get(key) {
25256        var state = getInternalState(this);
25257        if (isObject(key)) {
25258          var data = getWeakData(key);
25259          if (data === true) return uncaughtFrozenStore(state).get(key);
25260          return data ? data[state.id] : undefined;
25261        }
25262      },
25263      // 23.3.3.5 WeakMap.prototype.set(key, value)
25264      set: function set(key, value) {
25265        return define(this, key, value);
25266      }
25267    } : {
25268      // 23.4.3.1 WeakSet.prototype.add(value)
25269      add: function add(value) {
25270        return define(this, value, true);
25271      }
25272    });
25273
25274    return C;
25275  }
25276};
25277
25278
25279/***/ }),
25280/* 388 */
25281/***/ (function(module, exports, __webpack_require__) {
25282
25283var toInteger = __webpack_require__(73);
25284var toLength = __webpack_require__(28);
25285
25286// `ToIndex` abstract operation
25287// https://tc39.github.io/ecma262/#sec-toindex
25288module.exports = function (it) {
25289  if (it === undefined) return 0;
25290  var number = toInteger(it);
25291  var length = toLength(number);
25292  if (number !== length) throw RangeError('Wrong length or index');
25293  return length;
25294};
25295
25296
25297/***/ }),
25298/* 389 */
25299/***/ (function(module, exports, __webpack_require__) {
25300
25301var toPositiveInteger = __webpack_require__(668);
25302
25303module.exports = function (it, BYTES) {
25304  var offset = toPositiveInteger(it);
25305  if (offset % BYTES) throw RangeError('Wrong offset');
25306  return offset;
25307};
25308
25309
25310/***/ }),
25311/* 390 */
25312/***/ (function(module, exports, __webpack_require__) {
25313
25314var toObject = __webpack_require__(33);
25315var toLength = __webpack_require__(28);
25316var getIteratorMethod = __webpack_require__(173);
25317var isArrayIteratorMethod = __webpack_require__(284);
25318var bind = __webpack_require__(115);
25319var aTypedArrayConstructor = __webpack_require__(29).aTypedArrayConstructor;
25320
25321module.exports = function from(source /* , mapfn, thisArg */) {
25322  var O = toObject(source);
25323  var argumentsLength = arguments.length;
25324  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
25325  var mapping = mapfn !== undefined;
25326  var iteratorMethod = getIteratorMethod(O);
25327  var i, length, result, step, iterator, next;
25328  if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {
25329    iterator = iteratorMethod.call(O);
25330    next = iterator.next;
25331    O = [];
25332    while (!(step = next.call(iterator)).done) {
25333      O.push(step.value);
25334    }
25335  }
25336  if (mapping && argumentsLength > 2) {
25337    mapfn = bind(mapfn, arguments[2], 2);
25338  }
25339  length = toLength(O.length);
25340  result = new (aTypedArrayConstructor(this))(length);
25341  for (i = 0; length > i; i++) {
25342    result[i] = mapping ? mapfn(O[i], i) : O[i];
25343  }
25344  return result;
25345};
25346
25347
25348/***/ }),
25349/* 391 */
25350/***/ (function(module, exports) {
25351
25352// iterable DOM collections
25353// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
25354module.exports = {
25355  CSSRuleList: 0,
25356  CSSStyleDeclaration: 0,
25357  CSSValueList: 0,
25358  ClientRectList: 0,
25359  DOMRectList: 0,
25360  DOMStringList: 0,
25361  DOMTokenList: 1,
25362  DataTransferItemList: 0,
25363  FileList: 0,
25364  HTMLAllCollection: 0,
25365  HTMLCollection: 0,
25366  HTMLFormElement: 0,
25367  HTMLSelectElement: 0,
25368  MediaList: 0,
25369  MimeTypeArray: 0,
25370  NamedNodeMap: 0,
25371  NodeList: 1,
25372  PaintRequestList: 0,
25373  Plugin: 0,
25374  PluginArray: 0,
25375  SVGLengthList: 0,
25376  SVGNumberList: 0,
25377  SVGPathSegList: 0,
25378  SVGPointList: 0,
25379  SVGStringList: 0,
25380  SVGTransformList: 0,
25381  SourceBufferList: 0,
25382  StyleSheetList: 0,
25383  TextTrackCueList: 0,
25384  TextTrackList: 0,
25385  TouchList: 0
25386};
25387
25388
25389/***/ }),
25390/* 392 */
25391/***/ (function(module, exports, __webpack_require__) {
25392
25393var fails = __webpack_require__(11);
25394var wellKnownSymbol = __webpack_require__(23);
25395var IS_PURE = __webpack_require__(72);
25396
25397var ITERATOR = wellKnownSymbol('iterator');
25398
25399module.exports = !fails(function () {
25400  var url = new URL('b?a=1&b=2&c=3', 'http://a');
25401  var searchParams = url.searchParams;
25402  var result = '';
25403  url.pathname = 'c%20d';
vendor: 2,478 bytes, lines 25404-25469
25404  searchParams.forEach(function (value, key) {
25405    searchParams['delete']('b');
25406    result += key + value;
25407  });
25408  return (IS_PURE && !url.toJSON)
25409    || !searchParams.sort
25410    || url.href !== 'http://a/c%20d?a=1&c=3'
25411    || searchParams.get('c') !== '3'
25412    || String(new URLSearchParams('?a=1')) !== 'a=1'
25413    || !searchParams[ITERATOR]
25414    // throws in Edge
25415    || new URL('https://a@b').username !== 'a'
25416    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
25417    // not punycoded in Edge
25418    || new URL('http://тест').host !== 'xn--e1aybc'
25419    // not escaped in Chrome 62-
25420    || new URL('http://a#б').hash !== '#%D0%B1'
25421    // fails in Chrome 66-
25422    || result !== 'a1c3'
25423    // throws in Safari
25424    || new URL('http://x', undefined).host !== 'x';
25425});
25426
25427
25428/***/ }),
25429/* 393 */
25430/***/ (function(module, exports, __webpack_require__) {
25431
25432"use strict";
25433
25434// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
25435__webpack_require__(138);
25436var $ = __webpack_require__(2);
25437var getBuiltIn = __webpack_require__(67);
25438var USE_NATIVE_URL = __webpack_require__(392);
25439var redefine = __webpack_require__(54);
25440var redefineAll = __webpack_require__(150);
25441var setToStringTag = __webpack_require__(80);
25442var createIteratorConstructor = __webpack_require__(288);
25443var InternalStateModule = __webpack_require__(58);
25444var anInstance = __webpack_require__(119);
25445var hasOwn = __webpack_require__(35);
25446var bind = __webpack_require__(115);
25447var classof = __webpack_require__(174);
25448var anObject = __webpack_require__(20);
25449var isObject = __webpack_require__(19);
25450var create = __webpack_require__(92);
25451var createPropertyDescriptor = __webpack_require__(100);
25452var getIterator = __webpack_require__(696);
25453var getIteratorMethod = __webpack_require__(173);
25454var wellKnownSymbol = __webpack_require__(23);
25455
25456var $fetch = getBuiltIn('fetch');
25457var Headers = getBuiltIn('Headers');
25458var ITERATOR = wellKnownSymbol('iterator');
25459var URL_SEARCH_PARAMS = 'URLSearchParams';
25460var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
25461var setInternalState = InternalStateModule.set;
25462var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
25463var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
25464
25465var plus = /\+/g;
25466var sequences = Array(4);
25467
25468var percentSequence = function (bytes) {
25469  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '}
25469)', 'gi'));
25470};
25471
25472var percentDecode = function (sequence) {
25473  try {
25474    return decodeURIComponent(sequence);
25475  } catch (error) {
25476    return sequence;
25477  }
25478};
25479
25480var deserialize = function (it) {
25481  var result = it.replace(plus, ' ');
25482  var bytes = 4;
25483  try {
25484    return decodeURIComponent(result);
25485  } catch (error) {
25486    while (bytes) {
25487      result = result.replace(percentSequence(bytes--), percentDecode);
25488    }
25489    return result;
25490  }
25491};
25492
25493var find = /[!'()~]|%20/g;
25494
25495var replace = {
25496  '!': '%21',
25497  "'": '%27',
25498  '(': '%28',
25499  ')': '%29',
25500  '~': '%7E',
25501  '%20': '+'
25502};
25503
25504var replacer = function (match) {
25505  return replace[match];
25506};
25507
25508var serialize = function (it) {
25509  return encodeURIComponent(it).replace(find, replacer);
25510};
25511
25512var parseSearchParams = function (result, query) {
25513  if (query) {
25514    var attributes = query.split('&');
25515    var index = 0;
25516    var attribute, entry;
25517    while (index < attributes.length) {
25518      attribute = attributes[index++];
25519      if (attribute.length) {
25520        entry = attribute.split('=');
25521        result.push({
25522          key: deserialize(entry.shift()),
25523          value: deserialize(entry.join('='))
25524        });
25525      }
25526    }
25527  }
25528};
25529
25530var updateSearchParams = function (query) {
25531  this.entries.length = 0;
25532  parseSearchParams(this.entries, query);
25533};
25534
25535var validateArgumentsLength = function (passed, required) {
25536  if (passed < required) throw TypeError('Not enough arguments');
25537};
25538
25539var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
25540  setInternalState(this, {
25541    type: URL_SEARCH_PARAMS_ITERATOR,
25542    iterator: getIterator(getInternalParamsState(params).entries),
25543    kind: kind
25544  });
25545}, 'Iterator', function next() {
25546  var state = getInternalIteratorState(this);
25547  var kind = state.kind;
25548  var step = state.iterator.next();
25549  var entry = step.value;
25550  if (!step.done) {
25551    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];
25552  } return step;
25553});
25554
25555// `URLSearchParams` constructor
25556// https://url.spec.whatwg.org/#interface-urlsearchparams
25557var URLSearchParamsConstructor = function URLSearchParams(/* init */) {
25558  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);
25559  var init = arguments.length > 0 ? arguments[0] : undefined;
25560  var that = this;
25561  var entries = [];
25562  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;
25563
25564  setInternalState(that, {
25565    type: URL_SEARCH_PARAMS,
25566    entries: entries,
25567    updateURL: function () { /* empty */ },
25568    updateSearchParams: updateSearchParams
25569  });
25570
25571  if (init !== undefined) {
25572    if (isObject(init)) {
25573      iteratorMethod = getIteratorMethod(init);
25574      if (typeof iteratorMethod === 'function') {
25575        iterator = iteratorMethod.call(init);
25576        next = iterator.next;
25577        while (!(step = next.call(iterator)).done) {
25578          entryIterator = getIterator(anObject(step.value));
25579          entryNext = entryIterator.next;
25580          if (
25581            (first = entryNext.call(entryIterator)).done ||
25582            (second = entryNext.call(entryIterator)).done ||
25583            !entryNext.call(entryIterator).done
25584          ) throw TypeError('Expected sequence with length 2');
25585          entries.push({ key: first.value + '', value: second.value + '' });
25586        }
25587      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });
25588    } else {
25589      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');
25590    }
25591  }
25592};
25593
25594var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
25595
25596redefineAll(URLSearchParamsPrototype, {
25597  // `URLSearchParams.prototype.append` method
25598  // https://url.spec.whatwg.org/#dom-urlsearchparams-append
25599  append: function append(name, value) {
25600    validateArgumentsLength(arguments.length, 2);
25601    var state = getInternalParamsState(this);
25602    state.entries.push({ key: name + '', value: value + '' });
25603    state.updateURL();
25604  },
25605  // `URLSearchParams.prototype.delete` method
25606  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete
25607  'delete': function (name) {
25608    validateArgumentsLength(arguments.length, 1);
25609    var state = getInternalParamsState(this);
25610    var entries = state.entries;
25611    var key = name + '';
25612    var index = 0;
25613    while (index < entries.length) {
25614      if (entries[index].key === key) entries.splice(index, 1);
25615      else index++;
25616    }
25617    state.updateURL();
25618  },
25619  // `URLSearchParams.prototype.get` method
25620  // https://url.spec.whatwg.org/#dom-urlsearchparams-get
25621  get: function get(name) {
25622    validateArgumentsLength(arguments.length, 1);
25623    var entries = getInternalParamsState(this).entries;
25624    var key = name + '';
25625    var index = 0;
25626    for (; index < entries.length; index++) {
25627      if (entries[index].key === key) return entries[index].value;
25628    }
25629    return null;
25630  },
25631  // `URLSearchParams.prototype.getAll` method
25632  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall
25633  getAll: function getAll(name) {
25634    validateArgumentsLength(arguments.length, 1);
25635    var entries = getInternalParamsState(this).entries;
25636    var key = name + '';
25637    var result = [];
25638    var index = 0;
25639    for (; index < entries.length; index++) {
25640      if (entries[index].key === key) result.push(entries[index].value);
25641    }
25642    return result;
25643  },
25644  // `URLSearchParams.prototype.has` method
25645  // https://url.spec.whatwg.org/#dom-urlsearchparams-has
25646  has: function has(name) {
25647    validateArgumentsLength(arguments.length, 1);
25648    var entries = getInternalParamsState(this).entries;
25649    var key = name + '';
25650    var index = 0;
25651    while (index < entries.length) {
25652      if (entries[index++].key === key) return true;
25653    }
25654    return false;
25655  },
25656  // `URLSearchParams.prototype.set` method
25657  // https://url.spec.whatwg.org/#dom-urlsearchparams-set
25658  set: function set(name, value) {
25659    validateArgumentsLength(arguments.length, 1);
25660    var state = getInternalParamsState(this);
25661    var entries = state.entries;
25662    var found = false;
25663    var key = name + '';
25664    var val = value + '';
25665    var index = 0;
25666    var entry;
25667    for (; index < entries.length; index++) {
25668      entry = entries[index];
25669      if (entry.key === key) {
25670        if (found) entries.splice(index--, 1);
25671        else {
25672          found = true;
25673          entry.value = val;
25674        }
25675      }
25676    }
25677    if (!found) entries.push({ key: key, value: val });
25678    state.updateURL();
25679  },
25680  // `URLSearchParams.prototype.sort` method
25681  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort
25682  sort: function sort() {
25683    var state = getInternalParamsState(this);
25684    var entries = state.entries;
25685    // Array#sort is not stable in some engines
25686    var slice = entries.slice();
25687    var entry, entriesIndex, sliceIndex;
25688    entries.length = 0;
25689    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
25690      entry = slice[sliceIndex];
25691      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
25692        if (entries[entriesIndex].key > entry.key) {
25693          entries.splice(entriesIndex, 0, entry);
25694          break;
25695        }
25696      }
25697      if (entriesIndex === sliceIndex) entries.push(entry);
25698    }
25699    state.updateURL();
25700  },
25701  // `URLSearchParams.prototype.forEach` method
25702  forEach: function forEach(callback /* , thisArg */) {
25703    var entries = getInternalParamsState(this).entries;
25704    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);
25705    var index = 0;
25706    var entry;
25707    while (index < entries.length) {
25708      entry = entries[index++];
25709      boundFunction(entry.value, entry.key, this);
25710    }
25711  },
25712  // `URLSearchParams.prototype.keys` method
25713  keys: function keys() {
25714    return new URLSearchParamsIterator(this, 'keys');
25715  },
25716  // `URLSearchParams.prototype.values` method
25717  values: function values() {
25718    return new URLSearchParamsIterator(this, 'values');
25719  },
25720  // `URLSearchParams.prototype.entries` method
25721  entries: function entries() {
25722    return new URLSearchParamsIterator(this, 'entries');
25723  }
25724}, { enumerable: true });
25725
25726// `URLSearchParams.prototype[@@iterator]` method
25727redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);
25728
25729// `URLSearchParams.prototype.toString` method
25730// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior
25731redefine(URLSearchParamsPrototype, 'toString', function toString() {
25732  var entries = getInternalParamsState(this).entries;
25733  var result = [];
25734  var index = 0;
25735  var entry;
25736  while (index < entries.length) {
25737    entry = entries[index++];
25738    result.push(serialize(entry.key) + '=' + serialize(entry.value));
25739  } return result.join('&');
25740}, { enumerable: true });
25741
25742setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
25743
25744$({ global: true, forced: !USE_NATIVE_URL }, {
25745  URLSearchParams: URLSearchParamsConstructor
25746});
25747
25748// Wrap `fetch` for correct work with polyfilled `URLSearchParams`
25749// https://github.com/zloirock/core-js/issues/674
25750if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {
25751  $({ global: true, enumerable: true, forced: true }, {
25752    fetch: function fetch(input /* , init */) {
25753      var args = [input];
25754      var init, body, headers;
25755      if (arguments.length > 1) {
25756        init = arguments[1];
25757        if (isObject(init)) {
25758          body = init.body;
25759          if (classof(body) === URL_SEARCH_PARAMS) {
25760            headers = init.headers ? new Headers(init.headers) : new Headers();
25761            if (!headers.has('content-type')) {
25762              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
25763            }
25764            init = create(init, {
25765              body: createPropertyDescriptor(0, String(body)),
25766              headers: createPropertyDescriptor(0, headers)
25767            });
25768          }
25769        }
25770        args.push(init);
25771      } return $fetch.apply(this, args);
25772    }
25773  });
25774}
25775
25776module.exports = {
25777  URLSearchParams: URLSearchParamsConstructor,
25778  getState: getInternalParamsState
25779};
25780
25781
25782/***/ }),
25783/* 394 */
25784/***/ (function(module, exports, __webpack_require__) {
25785
25786"use strict";
25787/* WEBPACK VAR INJECTION */(function(process) {
25788
25789if (typeof process === 'undefined' ||
25790    !process.version ||
25791    process.version.indexOf('v0.') === 0 ||
25792    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
25793  module.exports = { nextTick: nextTick };
25794} else {
25795  module.exports = process
25796}
25797
25798function nextTick(fn, arg1, arg2, arg3) {
25799  if (typeof fn !== 'function') {
25800    throw new TypeError('"callback" argument must be a function');
25801  }
25802  var len = arguments.length;
25803  var args, i;
25804  switch (len) {
25805  case 0:
25806  case 1:
25807    return process.nextTick(fn);
25808  case 2:
25809    return process.nextTick(function afterTickOne() {
25810      fn.call(null, arg1);
25811    });
25812  case 3:
25813    return process.nextTick(function afterTickTwo() {
25814      fn.call(null, arg1, arg2);
25815    });
25816  case 4:
25817    return process.nextTick(function afterTickThree() {
25818      fn.call(null, arg1, arg2, arg3);
25819    });
25820  default:
25821    args = new Array(len - 1);
25822    i = 0;
25823    while (i < args.length) {
25824      args[i++] = arguments[i];
25825    }
25826    return process.nextTick(function afterTick() {
25827      fn.apply(null, args);
25828    });
25829  }
25830}
25831
25832
25833/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57)))
25834
25835/***/ }),
25836/* 395 */
25837/***/ (function(module, exports, __webpack_require__) {
25838
25839"use strict";
25840
25841
25842
25843var TYPED_OK =  (typeof Uint8Array !== 'undefined') &&
25844                (typeof Uint16Array !== 'undefined') &&
25845                (typeof Int32Array !== 'undefined');
25846
25847function _has(obj, key) {
25848  return Object.prototype.hasOwnProperty.call(obj, key);
25849}
25850
25851exports.assign = function (obj /*from1, from2, from3, ...*/) {
25852  var sources = Array.prototype.slice.call(arguments, 1);
25853  while (sources.length) {
25854    var source = sources.shift();
25855    if (!source) { continue; }
25856
25857    if (typeof source !== 'object') {
25858      throw new TypeError(source + 'must be non-object');
25859    }
25860
25861    for (var p in source) {
25862      if (_has(source, p)) {
25863        obj[p] = source[p];
25864      }
25865    }
25866  }
25867
25868  return obj;
25869};
25870
25871
25872// reduce buffer size, avoiding mem copy
25873exports.shrinkBuf = function (buf, size) {
25874  if (buf.length === size) { return buf; }
25875  if (buf.subarray) { return buf.subarray(0, size); }
25876  buf.length = size;
25877  return buf;
25878};
25879
25880
25881var fnTyped = {
25882  arraySet: function (dest, src, src_offs, len, dest_offs) {
25883    if (src.subarray && dest.subarray) {
25884      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
25885      return;
25886    }
25887    // Fallback to ordinary array
25888    for (var i = 0; i < len; i++) {
25889      dest[dest_offs + i] = src[src_offs + i];
25890    }
25891  },
25892  // Join array of chunks to single array.
25893  flattenChunks: function (chunks) {
25894    var i, l, len, pos, chunk, result;
25895
25896    // calculate data length
25897    len = 0;
25898    for (i = 0, l = chunks.length; i < l; i++) {
25899      len += chunks[i].length;
25900    }
25901
25902    // join chunks
25903    result = new Uint8Array(len);
25904    pos = 0;
25905    for (i = 0, l = chunks.length; i < l; i++) {
25906      chunk = chunks[i];
25907      result.set(chunk, pos);
25908      pos += chunk.length;
25909    }
25910
25911    return result;
25912  }
25913};
25914
25915var fnUntyped = {
25916  arraySet: function (dest, src, src_offs, len, dest_offs) {
25917    for (var i = 0; i < len; i++) {
25918      dest[dest_offs + i] = src[src_offs + i];
25919    }
25920  },
25921  // Join array of chunks to single array.
25922  flattenChunks: function (chunks) {
25923    return [].concat.apply([], chunks);
25924  }
25925};
25926
25927
25928// Enable/Disable typed arrays use, for testing
25929//
25930exports.setTyped = function (on) {
25931  if (on) {
25932    exports.Buf8  = Uint8Array;
25933    exports.Buf16 = Uint16Array;
25934    exports.Buf32 = Int32Array;
25935    exports.assign(exports, fnTyped);
25936  } else {
25937    exports.Buf8  = Array;
25938    exports.Buf16 = Array;
25939    exports.Buf32 = Array;
25940    exports.assign(exports, fnUntyped);
25941  }
25942};
25943
25944exports.setTyped(TYPED_OK);
25945
25946
25947/***/ }),
25948/* 396 */,
25949/* 397 */,
25950/* 398 */,
25951/* 399 */
25952/***/ (function(module, __webpack_exports__, __webpack_require__) {
25953
25954"use strict";
25955
25956// EXPORTS
25957__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ EventBusContext; });
25958__webpack_require__.d(__webpack_exports__, "b", function() { return /* binding */ EventBusProviderbabel_target_legacy_EventBusProvider; });
25959
25960// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
25961var preact_modulebabel_target_legacy = __webpack_require__(1);
25962
25963// CONCATENATED MODULE: ./node_modules/mitt/dist/mitt.es.js?babel-target=legacy
25964//      
25965// An event handler can take an optional event argument
25966// and should not return a value
25967                                          
25968                                                               
25969
25970// An array of all currently registered event handlers for a type
25971                                            
25972                                                            
25973// A map of event types and their corresponding event handlers.
25974                        
25975                                 
25976                                   
25977  
25978
25979/** Mitt: Tiny (~200b) functional event emitter / pubsub.
25980 *  @name mitt
25981 *  @returns {Mitt}
25982 */
25983function mitt(all                 ) {
25984	all = all || Object.create(null);
25985
25986	return {
25987		/**
25988		 * Register an event handler for the given type.
25989		 *
25990		 * @param  {String} type	Type of event to listen for, or `"*"` for all events
25991		 * @param  {Function} handler Function to call in response to given event
25992		 * @memberOf mitt
25993		 */
25994		on: function on(type        , handler              ) {
25995			(all[type] || (all[type] = [])).push(handler);
25996		},
25997
25998		/**
25999		 * Remove an event handler for the given type.
26000		 *
26001		 * @param  {String} type	Type of event to unregister `handler` from, or `"*"`
26002		 * @param  {Function} handler Handler function to remove
26003		 * @memberOf mitt
26004		 */
26005		off: function off(type        , handler              ) {
26006			if (all[type]) {
26007				all[type].splice(all[type].indexOf(handler) >>> 0, 1);
26008			}
26009		},
26010
26011		/**
26012		 * Invoke all handlers for the given type.
26013		 * If present, `"*"` handlers are invoked after type-matched handlers.
26014		 *
26015		 * @param {String} type  The event type to invoke
26016		 * @param {Any} [evt]  Any value (object is recommended and powerful), passed to each handler
26017		 * @memberOf mitt
26018		 */
26019		emit: function emit(type        , evt     ) {
26020			(all[type] || []).slice().map(function (handler) { handler(evt); });
26021			(all['*'] || []).slice().map(function (handler) { handler(type, evt); });
26022		}
26023	};
26024}
26025
26026/* harmony default export */ var mitt_esbabel_target_legacy = (mitt);
26027//# sourceMappingURL=mitt.es.js.map
26028
26029// CONCATENATED MODULE: ./src/lib/EventBus/EventBusProvider.tsx?babel-target=legacy
26030
26031
26032var EventBusContext = Object(preact_modulebabel_target_legacy["createContext"])(undefined);
26033var EventBusProviderbabel_target_legacy_EventBusProvider = function EventBusProvider(_ref) {
26034  var children = _ref.children;
26035  var emitter = new mitt_esbabel_target_legacy();
26036  return Object(preact_modulebabel_target_legacy["h"])(EventBusContext.Provider, {
26037    value: emitter
26038  }, children);
26039};
26040/* harmony default export */ var EventBusProviderbabel_target_legacy = (EventBusProviderbabel_target_legacy_EventBusProvider);
26041
26042/***/ }),
26043/* 400 */,
26044/* 401 */,
26045/* 402 */
26046/***/ (function(module, __webpack_exports__, __webpack_require__) {
26047
26048"use strict";
26049/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return APIContext; });
26050/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
26051
26052var APIContext = Object(preact__WEBPACK_IMPORTED_MODULE_0__["createContext"])([{
26053  cookie: {},
26054  faves: [],
26055  hideFavTip: false,
26056  displayFaveNotification: false,
26057  stationlist: {},
26058  rpId: "",
26059  nowPlayingUrl: "",
26060  searchHistory: [],
26061  mapiUrl: "",
26062  cookieManagerUrl: "",
26063  queryProxyUrl: "",
26064  tcString: "",
26065  cmpConsentFailed: false
26066}, function (action) {}]);
26067
26068/***/ }),
26069/* 403 */
26070/***/ (function(module, exports, __webpack_require__) {
26071
26072module.exports = {
26073    parse: __webpack_require__(878),
26074    stringify: __webpack_require__(881)
26075};
26076
26077
26078/***/ }),
26079/* 404 */,
26080/* 405 */
26081/***/ (function(module, exports, __webpack_require__) {
26082
26083/* WEBPACK VAR INJECTION */(function(global) {var fetchApi
26084if (typeof fetch === 'function') {
26085  if (typeof global !== 'undefined' && global.fetch) {
26086    fetchApi = global.fetch
26087  } else if (typeof window !== 'undefined' && window.fetch) {
26088    fetchApi = window.fetch
26089  } else {
26090    fetchApi = fetch
26091  }
26092}
26093
26094if ( true && (typeof window === 'undefined' || typeof window.document === 'undefined')) {
26095  var f = fetchApi || __webpack_require__(897)
26096  if (f.default) f = f.default
26097  exports.default = f
26098  module.exports = exports.default
26099}
26100
26101/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
26102
26103/***/ }),
26104/* 406 */
26105/***/ (function(module, exports, __webpack_require__) {
26106
26107var $ = __webpack_require__(2);
26108var assign = __webpack_require__(373);
26109
26110// `Object.assign` method
26111// https://tc39.github.io/ecma262/#sec-object.assign
26112$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {
26113  assign: assign
26114});
26115
26116
26117/***/ }),
26118/* 407 */,
26119/* 408 */,
26120/* 409 */,
26121/* 410 */
26122/***/ (function(module, exports, __webpack_require__) {
26123
26124"use strict";
26125
26126var $ = __webpack_require__(2);
26127var toAbsoluteIndex = __webpack_require__(114);
26128var toInteger = __webpack_require__(73);
26129var toLength = __webpack_require__(28);
26130var toObject = __webpack_require__(33);
26131var arraySpeciesCreate = __webpack_require__(171);
26132var createProperty = __webpack_require__(134);
26133var arrayMethodHasSpeciesSupport = __webpack_require__(175);
26134var arrayMethodUsesToLength = __webpack_require__(63);
26135
26136var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');
26137var USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });
26138
26139var max = Math.max;
26140var min = Math.min;
26141var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
26142var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';
26143
26144// `Array.prototype.splice` method
26145// https://tc39.github.io/ecma262/#sec-array.prototype.splice
26146// with adding support of @@species
26147$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
26148  splice: function splice(start, deleteCount /* , ...items */) {
26149    var O = toObject(this);
26150    var len = toLength(O.length);
26151    var actualStart = toAbsoluteIndex(start, len);
26152    var argumentsLength = arguments.length;
26153    var insertCount, actualDeleteCount, A, k, from, to;
26154    if (argumentsLength === 0) {
26155      insertCount = actualDeleteCount = 0;
26156    } else if (argumentsLength === 1) {
26157      insertCount = 0;
26158      actualDeleteCount = len - actualStart;
26159    } else {
26160      insertCount = argumentsLength - 2;
26161      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);
26162    }
26163    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {
26164      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);
26165    }
26166    A = arraySpeciesCreate(O, actualDeleteCount);
26167    for (k = 0; k < actualDeleteCount; k++) {
26168      from = actualStart + k;
26169      if (from in O) createProperty(A, k, O[from]);
26170    }
26171    A.length = actualDeleteCount;
26172    if (insertCount < actualDeleteCount) {
26173      for (k = actualStart; k < len - actualDeleteCount; k++) {
26174        from = k + actualDeleteCount;
26175        to = k + insertCount;
26176        if (from in O) O[to] = O[from];
26177        else delete O[to];
26178      }
26179      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];
26180    } else if (insertCount > actualDeleteCount) {
26181      for (k = len - actualDeleteCount; k > actualStart; k--) {
26182        from = k + actualDeleteCount - 1;
26183        to = k + insertCount - 1;
26184        if (from in O) O[to] = O[from];
26185        else delete O[to];
26186      }
26187    }
26188    for (k = 0; k < insertCount;
vendor: 5,336 bytes, lines 26188-26342
26188 k++) {
26189      O[k + actualStart] = arguments[k + 2];
26190    }
26191    O.length = len - actualDeleteCount + insertCount;
26192    return A;
26193  }
26194});
26195
26196
26197/***/ }),
26198/* 411 */
26199/***/ (function(module, exports, __webpack_require__) {
26200
26201"use strict";
26202
26203var DESCRIPTORS = __webpack_require__(21);
26204var global = __webpack_require__(16);
26205var isForced = __webpack_require__(169);
26206var redefine = __webpack_require__(54);
26207var has = __webpack_require__(35);
26208var classof = __webpack_require__(101);
26209var inheritIfRequired = __webpack_require__(226);
26210var toPrimitive = __webpack_require__(79);
26211var fails = __webpack_require__(11);
26212var create = __webpack_require__(92);
26213var getOwnPropertyNames = __webpack_require__(132).f;
26214var getOwnPropertyDescriptor = __webpack_require__(51).f;
26215var defineProperty = __webpack_require__(30).f;
26216var trim = __webpack_require__(149).trim;
26217
26218var NUMBER = 'Number';
26219var NativeNumber = global[NUMBER];
26220var NumberPrototype = NativeNumber.prototype;
26221
26222// Opera ~12 has broken Object#toString
26223var BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;
26224
26225// `ToNumber` abstract operation
26226// https://tc39.github.io/ecma262/#sec-tonumber
26227var toNumber = function (argument) {
26228  var it = toPrimitive(argument, false);
26229  var first, third, radix, maxCode, digits, length, index, code;
26230  if (typeof it == 'string' && it.length > 2) {
26231    it = trim(it);
26232    first = it.charCodeAt(0);
26233    if (first === 43 || first === 45) {
26234      third = it.charCodeAt(2);
26235      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
26236    } else if (first === 48) {
26237      switch (it.charCodeAt(1)) {
26238        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i
26239        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i
26240        default: return +it;
26241      }
26242      digits = it.slice(2);
26243      length = digits.length;
26244      for (index = 0; index < length; index++) {
26245        code = digits.charCodeAt(index);
26246        // parseInt parses a string to a first unavailable symbol
26247        // but ToNumber should return NaN if a string contains unavailable symbols
26248        if (code < 48 || code > maxCode) return NaN;
26249      } return parseInt(digits, radix);
26250    }
26251  } return +it;
26252};
26253
26254// `Number` constructor
26255// https://tc39.github.io/ecma262/#sec-number-constructor
26256if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {
26257  var NumberWrapper = function Number(value) {
26258    var it = arguments.length < 1 ? 0 : value;
26259    var dummy = this;
26260    return dummy instanceof NumberWrapper
26261      // check on 1..constructor(foo) case
26262      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)
26263        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);
26264  };
26265  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (
26266    // ES3:
26267    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
26268    // ES2015 (in case, if modules with ES2015 Number statics required before):
26269    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
26270    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
26271  ).split(','), j = 0, key; keys.length > j; j++) {
26272    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {
26273      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));
26274    }
26275  }
26276  NumberWrapper.prototype = NumberPrototype;
26277  NumberPrototype.constructor = NumberWrapper;
26278  redefine(global, NUMBER, NumberWrapper);
26279}
26280
26281
26282/***/ }),
26283/* 412 */
26284/***/ (function(module, exports, __webpack_require__) {
26285
26286var arrayLikeToArray = __webpack_require__(463);
26287
26288function _unsupportedIterableToArray(o, minLen) {
26289  if (!o) return;
26290  if (typeof o === "string") return arrayLikeToArray(o, minLen);
26291  var n = Object.prototype.toString.call(o).slice(8, -1);
26292  if (n === "Object" && o.constructor) n = o.constructor.name;
26293  if (n === "Map" || n === "Set") return Array.from(o);
26294  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
26295}
26296
26297module.exports = _unsupportedIterableToArray;
26298
26299/***/ }),
26300/* 413 */,
26301/* 414 */,
26302/* 415 */,
26303/* 416 */
26304/***/ (function(module, __webpack_exports__, __webpack_require__) {
26305
26306"use strict";
26307/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
26308
26309
26310/**
26311 * Removes `-` fron a string and capetalize the letter after
26312 * example: data-props-hello-world =>  dataPropsHelloWorld
26313 * Used for props passed from host DOM element
26314 * @param  {String} str string
26315 * @return {String} Capetalized string
26316 */
26317var camelcasize = function (str) {
26318  return str.replace(/-([a-z])/gi, function (all, letter) {
26319    return letter.toUpperCase();
26320  });
26321};
26322
26323/**
26324 * [getExecutedScript internal widget to provide the currently executed script]
26325 * @param  {document} document [Browser document object]
26326 * @return {HTMLElement}     [script Element]
26327 */
26328var getExecutedScript = function () {
26329  return (
26330    document.currentScript ||
26331    (function () {
26332      var scripts = document.getElementsByTagName("script");
26333      return scripts[scripts.length - 1];
26334    })()
26335  );
26336};
26337
26338/**
26339 * Get the props from a host element's data attributes
26340 * @param  {Element} tag The host element
26341 * @return {Object}  props object to be passed to the component
26342 */
26343var collectPropsFromElement = function (element, defaultProps) {
26344  if ( defaultProps === void 0 ) defaultProps = {};
26345
26346  var attrs = element.attributes;
26347
26348  var props = Object.assign({}, defaultProps);
26349
26350  // collect from element
26351  Object.keys(attrs).forEach(function (key) {
26352    if (attrs.hasOwnProperty(key)) {
26353      var dataAttrName = attrs[key].name;
26354      if (!dataAttrName || typeof dataAttrName !== "string") {
26355        return false;
26356      }
26357      var propName = dataAttrName.split(/(data-props?-)/).pop() || '';
26358      propName = camelcasize(propName);
26359      if (dataAttrName !== propName) {
26360        var propValue = attrs[key].nodeValue;
26361        props[propName] = propValue;
26362      }
26363    }
26364  });
26365
26366  // check for child script text/props or application/json
26367  [].forEach.call(element.getElementsByTagName('script'), function (scrp) {
26368    var propsObj = {};
26369    if(scrp.hasAttribute('type')) {
26370      if (
26371        scrp.getAttribute("type") !== "text/props" &&
26372        scrp.getAttribute("type") !== "application/json"
26373      )
26374        { return; }
26375      try {
26376        propsObj = JSON.parse(scrp.innerHTML);
26377      } catch(e) {
26378        throw new Error(e)
26379      }
26380      Object.assign(props, propsObj);
26381    }
26382  });  
26383
26384  return props;
26385};
26386
26387var getHabitatSelectorFromClient = function (currentScript) {
26388  var scriptTagAttrs = currentScript.attributes;
26389  var selector = null;
26390  // check for another props attached to the tag
26391  Object.keys(scriptTagAttrs).forEach(function (key) {
26392    if (scriptTagAttrs.hasOwnProperty(key)) {
26393      var dataAttrName = scriptTagAttrs[key].name;
26394      if (dataAttrName === 'data-mount-in') {
26395        selector = scriptTagAttrs[key].nodeValue;
26396      }
26397    }
26398  });
26399  return selector
26400};
26401
26402/**
26403 * Return array of 0 or more elements that will host our widget
26404 * @param  {id} attrId the data widget id attribute the host should have
26405 * @param  {document} scope  Docuemnt object or DOM Element as a scope
26406 * @return {Array}        Array of matching habitats
26407 */
26408var widgetDOMHostElements = function (
26409  ref
26410) {
26411  var selector = ref.selector;
26412  var inline = ref.inline;
26413  var clientSpecified = ref.clientSpecified;
26414
26415  var hostNodes = [];
26416  var currentScript = getExecutedScript();
26417
26418  if (inline === true) {
26419    var parentNode = currentScript.parentNode;
26420    hostNodes.push(parentNode);
26421  }
26422  if (clientSpecified === true && !selector) {
26423    // user did not specify where to mount - get it from script tag attributes
26424    selector = getHabitatSelectorFromClient(currentScript);
26425  }
26426  if (selector) {
26427    [].forEach.call(document.querySelectorAll(selector), function (queriedTag) {
26428      hostNodes.push(queriedTag);
26429    });
26430  }
26431  return hostNodes;
26432};
26433
26434/**
26435 * preact render function that will be queued if the DOM is not ready
26436 * and executed immeidatly if DOM is ready
26437 */
26438var preactRender = function (widget, hostElements, root, cleanRoot, defaultProps) {
26439  hostElements.forEach(function (elm) {
26440    var hostNode = elm;
26441    if (hostNode._habitat) {
26442      return; 
26443    }
26444    hostNode._habitat = true;
26445    var props = collectPropsFromElement(elm, defaultProps) || defaultProps;
26446    if(cleanRoot) {
26447      hostNode.innerHTML = "";
26448    }
26449    return Object(preact__WEBPACK_IMPORTED_MODULE_0__["render"])(Object(preact__WEBPACK_IMPORTED_MODULE_0__["h"])(widget, props), hostNode, root);
26450  });
26451};
26452
26453var habitat = function (Widget) {
26454  // Widget represents the Preact component we need to mount
26455  var widget = Widget;
26456  // preact root render helper
26457  var root = null;
26458
26459  var render$$1 = function (
26460    ref
26461  ) {
26462    if ( ref === void 0 ) ref = {};
26463    var selector = ref.selector; if ( selector === void 0 ) selector = null;
26464    var inline = ref.inline; if ( inline === void 0 ) inline = false;
26465    var clean = ref.clean; if ( clean === void 0 ) clean = false;
26466    var clientSpecified = ref.clientSpecified; if ( clientSpecified === void 0 ) clientSpecified = false;
26467    var defaultProps = ref.defaultProps; if ( defaultProps === void 0 ) defaultProps = {};
26468
26469    var elements = widgetDOMHostElements({
26470      selector: selector,
26471      inline: inline,
26472      clientSpecified: clientSpecified
26473    });
26474    var loaded = function () {
26475      if (elements.length > 0) {
26476        var elements$1 = widgetDOMHostElements({
26477          selector: selector,
26478          inline: inline,
26479          clientSpecified: clientSpecified
26480        });
26481
26482        return preactRender(widget, elements$1, root, clean, defaultProps);
26483      }
26484    };
26485    loaded();
26486    document.addEventListener("DOMContentLoaded", loaded);
26487    document.addEventListener("load", loaded);
26488  };
26489
26490  return { render: render$$1 };
26491};
26492
26493/* harmony default export */ __webpack_exports__["a"] = (habitat);
26494//# sourceMappingURL=preact-habitat.es.js.map
26495
26496
26497/***/ }),
26498/* 417 */
26499/***/ (function(module, exports, __webpack_require__) {
26500
26501// extracted by mini-css-extract-plugin
26502module.exports = {"visuallyHidden":"MiniSongBox-module__visuallyHidden--lEIVv","title":"MiniSongBox-module__title--2fVVU","label":"MiniSongBox-module__label--2y0fv","artist":"MiniSongBox-module__artist--2SSgM","wrap":"MiniSongBox-module__wrap--F5_cw","img":"MiniSongBox-module__img--23HHn"};
26503
26504/***/ }),
26505/* 418 */,
26506/* 419 */,
26507/* 420 */,
26508/* 421 */,
26509/* 422 */,
26510/* 423 */,
26511/* 424 */,
26512/* 425 */
26513/***/ (function(module, exports, __webpack_require__) {
26514
26515"use strict";
26516
26517var $ = __webpack_require__(2);
26518var $every = __webpack_require__(46).every;
26519var arrayMethodIsStrict = __webpack_require__(102);
26520var arrayMethodUsesToLength = __webpack_require__(63);
26521
26522var STRICT_METHOD = arrayMethodIsStrict('every');
26523var USES_TO_LENGTH = arrayMethodUsesToLength('every');
26524
26525// `Array.prototype.every` method
26526// https://tc39.github.io/ecma262/#sec-array.prototype.every
26527$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
26528  every: function every(callbackfn /* , thisArg */) {
26529    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
26530  }
26531});
26532
26533
26534/***/ }),
26535/* 426 */
26536/***/ (function(module, exports, __webpack_require__) {
26537
26538"use strict";
26539
26540var $ = __webpack_require__(2);
26541var createHTML = __webpack_require__(68);
26542var forcedStringHTMLMethod = __webpack_require__(69);
26543
26544// `String.prototype.link` method
26545// https://tc39.github.io/ecma262/#sec-string.prototype.link
26546$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {
26547  link: function link(url) {
26548    return createHTML(this, 'a', 'href', url);
26549  }
26550});
26551
26552
26553/***/ }),
26554/* 427 */
26555/***/ (function(module, exports, __webpack_require__) {
26556
26557var DESCRIPTORS = __webpack_require__(21);
26558var global = __webpack_require__(16);
26559var isForced = __webpack_require__(169);
26560var inheritIfRequired = __webpack_require__(226);
26561var defineProperty = __webpack_require__(30).f;
26562var getOwnPropertyNames = __webpack_require__(132).f;
26563var isRegExp = __webpack_require__(179);
26564var getFlags = __webpack_require__(148);
26565var stickyHelpers = __webpack_require__(222);
26566var redefine = __webpack_require__(54);
26567var fails = __webpack_require__(11);
26568var setInternalState = __webpack_require__(58).set;
26569var setSpecies = __webpack_require__(147);
26570var wellKnownSymbol = __webpack_require__(23);
26571
26572var MATCH = wellKnownSymbol('match');
26573var NativeRegExp = global.RegExp;
26574var RegExpPrototype = NativeRegExp.prototype;
26575var re1 = /a/g;
26576var re2 = /a/g;
26577
26578// "new" should create a new object, old webkit bug
26579var CORRECT_NEW = new NativeRegExp(re1) !== re1;
26580
26581var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
26582
26583var FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {
26584  re2[MATCH] = false;
26585  // RegExp constructor can alter flags and IsRegExp works correct with @@match
26586  return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';
26587})));
26588
26589// `RegExp` constructor
26590// https://tc39.github.io/ecma262/#sec-regexp-constructor
26591if (FORCED) {
26592  var RegExpWrapper = function RegExp(pattern, flags) {
26593    var thisIsRegExp = this instanceof RegExpWrapper;
26594    var patternIsRegExp = isRegExp(pattern);
26595    var flagsAreUndefined = flags === undefined;
26596    var sticky;
26597
26598    if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {
26599      return pattern;
26600    }
26601
26602    if (CORRECT_NEW) {
26603      if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;
26604    } else if (pattern instanceof RegExpWrapper) {
26605      if (flagsAreUndefined) flags = getFlags.call(pattern);
26606      pattern = pattern.source;
26607    }
26608
26609    if (UNSUPPORTED_Y) {
26610      sticky = !!flags && flags.indexOf('y') > -1;
26611      if (sticky) flags = flags.replace(/y/g, '');
26612    }
26613
26614    var result = inheritIfRequired(
26615      CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),
26616      thisIsRegExp ? this : RegExpPrototype,
26617      RegExpWrapper
26618    );
26619
26620    if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });
26621
26622    return result;
26623  };
26624  var proxy = function (key) {
26625    key in RegExpWrapper || defineProperty(RegExpWrapper, key, {
26626      configurable: true,
26627      get: function () { return NativeRegExp[key]; },
26628      set: function (it) { NativeRegExp[key] = it; }
26629    });
26630  };
26631  var keys = getOwnPropertyNames(NativeRegExp);
26632  var index = 0;
26633  while (keys.length > index) proxy(keys[index++]);
26634  RegExpPrototype.constructor = RegExpWrapper;
26635  RegExpWrapper.prototype = RegExpPrototype;
26636  redefine(global, 'RegExp', RegExpWrapper);
26637}
26638
26639// https://tc39.github.io/ecma262/#sec-get-regexp-@@species
26640setSpecies('RegExp');
26641
26642
26643/***/ }),
26644/* 428 */,
26645/* 429 */,
26646/* 430 */
26647/***/ (function(module, __webpack_exports__, __webpack_require__) {
26648
26649"use strict";
26650/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useEventBus; });
26651/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
26652/* harmony import */ var _EventBusProvider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(399);
26653
26654
26655var useEventBus = function useEventBus() {
26656  var emitter = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useContext */ "b"])(_EventBusProvider__WEBPACK_IMPORTED_MODULE_1__[/* EventBusContext */ "a"]);
26657  var emit = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useCallback */ "a"])( // eslint-disable-next-line @typescript-eslint/no-explicit-any
26658  function (type, event) {
26659    return emitter && emitter.emit(type, event);
26660  }, [emitter]);
26661  return {
26662    emit: emit,
26663    emitter: emitter
26664  };
26665};
26666
26667/***/ }),
26668/* 431 */
26669/***/ (function(module, __webpack_exports__, __webpack_require__) {
26670
26671"use strict";
26672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SearchHistory; });
26673/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77);
26674/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_0__);
26675/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177);
26676/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_1__);
26677/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
26678/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__);
26679/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1);
26680/* harmony import */ var _lib_APIManager_useAPI__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44);
26681/* harmony import */ var _RPIcon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(42);
26682/* harmony import */ var _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(108);
26683/* harmony import */ var _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6__);
26684
26685
26686
26687
26688
26689
26690
26691var SearchHistory = function SearchHistory(_ref) {
26692  var title = _ref.title,
26693      showSearchResults = _ref.showSearchResults;
26694
26695  var _useAPI = Object(_lib_APIManager_useAPI__WEBPACK_IMPORTED_MODULE_4__[/* useAPI */ "a"])(),
26696      _useAPI2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2___default()(_useAPI, 1),
26697      state = _useAPI2[0];
26698
26699  var searchHistory = state.searchHistory;
26699 // Only display the three most recent searches
26700
26701  var recentSearches = searchHistory && searchHistory.length > 3 ? searchHistory.slice(0, 3) : searchHistory;
26702
26703  var renderSearchHistory = function renderSearchHistory() {
26704    return Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("div", null, title && Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("h3", {
26705      className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.searchHistoryTitle
26706    }, title), Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("div", {
26707      className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.searchHistoryList
26708    }, recentSearches.map(function (term, index) {
26709      return Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("button", {
26710        key: "search-history-".concat(index),
26711        className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.searchHistoryButton,
26712        onClick: function onClick(e) {
26713          return showSearchResults(term, true);
26714        }
26715      }, Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("span", {
26716        className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.wrapper
26717      }, Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("span", {
26718        className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.term
26719      }, term), Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])("span", {
26720        className: _SearchHistory_module_scss__WEBPACK_IMPORTED_MODULE_6___default.a.icon
26721      }, Object(preact__WEBPACK_IMPORTED_MODULE_3__["h"])(_RPIcon__WEBPACK_IMPORTED_MODULE_5__[/* RPIcon */ "a"], {
26722        src: __webpack_require__(468),
26723        "aria-hidden": true
26724      }))));
26725    })));
26726  };
26727
26728  return searchHistory && searchHistory.length > 0 ? renderSearchHistory() : null;
26729};
26730
26731/***/ }),
26732/* 432 */,
26733/* 433 */
26734/***/ (function(module, __webpack_exports__, __webpack_require__) {
26735
26736"use strict";
26737
26738// EXPORTS
26739__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ PlayButtonbabel_target_legacy_PlayButton; });
26740
26741// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
26742var extendsbabel_target_legacy = __webpack_require__(50);
26743var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
26744
26745// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
26746var definePropertybabel_target_legacy = __webpack_require__(15);
26747var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
26748
26749// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
26750var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
26751var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
26752
26753// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
26754var preact_modulebabel_target_legacy = __webpack_require__(1);
26755
26756// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
26757var RPIconbabel_target_legacy = __webpack_require__(42);
26758
26759// EXTERNAL MODULE: ./src/components/PlayButton/PlayButton.module.scss
26760var PlayButton_module = __webpack_require__(243);
26761var PlayButton_module_default = /*#__PURE__*/__webpack_require__.n(PlayButton_module);
26762
26763// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
26764var classnames_babel_target_legacy = __webpack_require__(27);
26765var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
26766
26767// CONCATENATED MODULE: ./src/components/PlayButton/PlayButton.tsx?babel-target=legacy
26768
26769
26770
26771
26772
26773
26774
26775var svgs = {
26776  play: __webpack_require__(884),
26777  pause: __webpack_require__(885),
26778  stop: __webpack_require__(886),
26779  embeddedPlay: __webpack_require__(887),
26780  embeddedPause: __webpack_require__(731),
26781  embeddedStop: __webpack_require__(731) // TODO: Need Stop Icon
26782
26783};
26784var PlayButtonbabel_target_legacy_PlayButton = function PlayButton(_ref) {
26785  var _ref$colour = _ref.colour,
26786      colour = _ref$colour === void 0 ? "currentColor" : _ref$colour,
26787      _ref$type = _ref.type,
26788      type = _ref$type === void 0 ? "play" : _ref$type,
26789      onPressPlay = _ref.onPressPlay,
26790      pulsate = _ref.pulsate,
26791      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["colour", "type", "onPressPlay", "pulsate"]);
26792
26793  return Object(preact_modulebabel_target_legacy["h"])("button", extendsbabel_target_legacy_default()({
26794    className: classnames_babel_target_legacy_default()(PlayButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, PlayButton_module_default.a.pulsate, pulsate))
26795  }, props, {
26796    "aria-label": type,
26797    onClick: function onClick() {
26798      return onPressPlay && onPressPlay(type === "play");
26799    }
26800  }), Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
26801    "aria-hidden": "true",
26802    src: svgs[type],
26803    colour: colour
26804  }));
26805};
26806/* harmony default export */ var PlayButtonbabel_target_legacy = (PlayButtonbabel_target_legacy_PlayButton);
26807// CONCATENATED MODULE: ./src/components/PlayButton/index.ts?babel-target=legacy
26808
26809
26810/***/ }),
26811/* 434 */,
26812/* 435 */
26813/***/ (function(module, __webpack_exports__, __webpack_require__) {
26814
26815"use strict";
26816
26817// EXPORTS
26818__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ TabBarbabel_target_legacy_TabBar; });
26819
26820// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
26821var es_array_mapbabel_target_legacy = __webpack_require__(77);
26822
26823// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
26824var preact_modulebabel_target_legacy = __webpack_require__(1);
26825
26826// EXTERNAL MODULE: ./src/components/TabBar/TabBar.module.scss
26827var TabBar_module = __webpack_require__(141);
26828var TabBar_module_default = /*#__PURE__*/__webpack_require__.n(TabBar_module);
26829
26830// CONCATENATED MODULE: ./src/components/TabBar/TabBar.tsx?babel-target=legacy
26831
26832
26833
26834var TabBarbabel_target_legacy_TabBar = function TabBar(_ref) {
26835  var items = _ref.items,
26836      affix = _ref.affix,
26837      selectedItem = _ref.selectedItem,
26838      _ref$renderLabel = _ref.renderLabel,
26839      renderLabel = _ref$renderLabel === void 0 ? function (a) {
26840    return a;
26841  } : _ref$renderLabel,
26842      onChangeTab = _ref.onChangeTab;
26843  return Object(preact_modulebabel_target_legacy["h"])("div", {
26844    role: "tablist",
26845    className: TabBar_module_default.a.wrap
26846  }, items.map(function (item, index) {
26847    return Object(preact_modulebabel_target_legacy["h"])("button", {
26848      key: item,
26849      role: "tab",
26850      onClick: function onClick() {
26851        return onChangeTab(index);
26852      },
26853      "aria-selected": index === selectedItem,
26854      className: index === selectedItem ? TabBar_module_default.a.selected : TabBar_module_default.a.tab
26855    }, Object(preact_modulebabel_target_legacy["h"])("span", {
26856      className: "buttonContent"
26857    }, renderLabel(item), affix && affix[index] && Object(preact_modulebabel_target_legacy["h"])("span", {
26858      className: TabBar_module_default.a.affix
26859    }, renderLabel(affix[index] || ""))));
26860  }));
26861};
26862/* harmony default export */ var TabBarbabel_target_legacy = (TabBarbabel_target_legacy_TabBar);
26863// CONCATENATED MODULE: ./src/components/TabBar/index.ts?babel-target=legacy
26864
26865
26866/***/ }),
26867/* 436 */,
26868/* 437 */,
26869/* 438 */,
26870/* 439 */,
26871/* 440 */,
26872/* 441 */,
26873/* 442 */,
26874/* 443 */,
26875/* 444 */,
26876/* 445 */,
26877/* 446 */,
26878/* 447 */,
26879/* 448 */,
26880/* 449 */,
26881/* 450 */,
26882/* 451 */,
26883/* 452 */,
26884/* 453 */,
26885/* 454 */,
26886/* 455 */
26887/***/ (function(module, exports, __webpack_require__) {
26888
26889/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
26890            (typeof self !== "undefined" && self) ||
26891            window;
26892var apply = Function.prototype.apply;
26893
26894// DOM APIs, for completeness
26895
26896exports.setTimeout = function() {
26897  return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
26898};
26899exports.setInterval = function() {
26900  return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
26901};
26902exports.clearTimeout =
26903exports.clearInterval = function(timeout) {
26904  if (timeout) {
26905    timeout.close();
26906  }
26907};
26908
26909function Timeout(id, clearFn) {
26910  this._id = id;
26911  this._clearFn = clearFn;
26912}
26913Timeout.prototype.unref = Timeout.prototype.ref = function() {};
26914Timeout.prototype.close = function() {
26915  this._clearFn.call(scope, this._id);
26916};
26917
26918// Does not start the time, just sets up the members needed.
26919exports.enroll = function(item, msecs) {
26920  clearTimeout(item._idleTimeoutId);
26921  item._idleTimeout = msecs;
26922};
26923
26924exports.unenroll = function(item) {
26925  clearTimeout(item._idleTimeoutId);
26926  item._idleTimeout = -1;
26927};
26928
26929exports._unrefActive = exports.active = function(item) {
26930  clearTimeout(item._idleTimeoutId);
26931
26932  var msecs = item._idleTimeout;
26933  if (msecs >= 0) {
26934    item._idleTimeoutId = setTimeout(function onTimeout() {
26935      if (item._onTimeout)
26936        item._onTimeout();
26937    }, msecs);
26938  }
26939};
26940
26941// setimmediate attaches itself to the global object
26942__webpack_require__(456);
26943// On some exotic environments, it's not clear which object `setimmediate` was
26944// able to install onto.  Search each possibility in the same order as the
26945// `setimmediate` library.
26946exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
26947                       (typeof global !== "undefined" && global.setImmediate) ||
26948                       (this && this.setImmediate);
26949exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
26950                         (typeof global !== "undefined" && global.clearImmediate) ||
26951                         (this && this.clearImmediate);
26952
26953/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
26954
26955/***/ }),
26956/* 456 */
26957/***/ (function(module, exports, __webpack_require__) {
26958
26959/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
26960    "use strict";
26961
26962    if (global.setImmediate) {
26963        return;
26964    }
26965
26966    var nextHandle = 1; // Spec says greater than zero
26967    var tasksByHandle = {};
26968    var currentlyRunningATask = false;
vendor: 5,701 bytes, lines 26969-27129
26969    var doc = global.document;
26970    var registerImmediate;
26971
26972    function setImmediate(callback) {
26973      // Callback can either be a function or a string
26974      if (typeof callback !== "function") {
26975        callback = new Function("" + callback);
26976      }
26977      // Copy function arguments
26978      var args = new Array(arguments.length - 1);
26979      for (var i = 0; i < args.length; i++) {
26980          args[i] = arguments[i + 1];
26981      }
26982      // Store and register the task
26983      var task = { callback: callback, args: args };
26984      tasksByHandle[nextHandle] = task;
26985      registerImmediate(nextHandle);
26986      return nextHandle++;
26987    }
26988
26989    function clearImmediate(handle) {
26990        delete tasksByHandle[handle];
26991    }
26992
26993    function run(task) {
26994        var callback = task.callback;
26995        var args = task.args;
26996        switch (args.length) {
26997        case 0:
26998            callback();
26999            break;
27000        case 1:
27001            callback(args[0]);
27002            break;
27003        case 2:
27004            callback(args[0], args[1]);
27005            break;
27006        case 3:
27007            callback(args[0], args[1], args[2]);
27008            break;
27009        default:
27010            callback.apply(undefined, args);
27011            break;
27012        }
27013    }
27014
27015    function runIfPresent(handle) {
27016        // From the spec: "Wait until any invocations of this algorithm started before this one have completed."
27017        // So if we're currently running a task, we'll need to delay this invocation.
27018        if (currentlyRunningATask) {
27019            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
27020            // "too much recursion" error.
27021            setTimeout(runIfPresent, 0, handle);
27022        } else {
27023            var task = tasksByHandle[handle];
27024            if (task) {
27025                currentlyRunningATask = true;
27026                try {
27027                    run(task);
27028                } finally {
27029                    clearImmediate(handle);
27030                    currentlyRunningATask = false;
27031                }
27032            }
27033        }
27034    }
27035
27036    function installNextTickImplementation() {
27037        registerImmediate = function(handle) {
27038            process.nextTick(function () { runIfPresent(handle); });
27039        };
27040    }
27041
27042    function canUsePostMessage() {
27043        // The test against `importScripts` prevents this implementation from being installed inside a web worker,
27044        // where `global.postMessage` means something completely different and can't be used for this purpose.
27045        if (global.postMessage && !global.importScripts) {
27046            var postMessageIsAsynchronous = true;
27047            var oldOnMessage = global.onmessage;
27048            global.onmessage = function() {
27049                postMessageIsAsynchronous = false;
27050            };
27051            global.postMessage("", "*");
27052            global.onmessage = oldOnMessage;
27053            return postMessageIsAsynchronous;
27054        }
27055    }
27056
27057    function installPostMessageImplementation() {
27058        // Installs an event handler on `global` for the `message` event: see
27059        // * https://developer.mozilla.org/en/DOM/window.postMessage
27060        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
27061
27062        var messagePrefix = "setImmediate$" + Math.random() + "$";
27063        var onGlobalMessage = function(event) {
27064            if (event.source === global &&
27065                typeof event.data === "string" &&
27066                event.data.indexOf(messagePrefix) === 0) {
27067                runIfPresent(+event.data.slice(messagePrefix.length));
27068            }
27069        };
27070
27071        if (global.addEventListener) {
27072            global.addEventListener("message", onGlobalMessage, false);
27073        } else {
27074            global.attachEvent("onmessage", onGlobalMessage);
27075        }
27076
27077        registerImmediate = function(handle) {
27078            global.postMessage(messagePrefix + handle, "*");
27079        };
27080    }
27081
27082    function installMessageChannelImplementation() {
27083        var channel = new MessageChannel();
27084        channel.port1.onmessage = function(event) {
27085            var handle = event.data;
27086            runIfPresent(handle);
27087        };
27088
27089        registerImmediate = function(handle) {
27090            channel.port2.postMessage(handle);
27091        };
27092    }
27093
27094    function installReadyStateChangeImplementation() {
27095        var html = doc.documentElement;
27096        registerImmediate = function(handle) {
27097            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
27098            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
27099            var script = doc.createElement("script");
27100            script.onreadystatechange = function () {
27101                runIfPresent(handle);
27102                script.onreadystatechange = null;
27103                html.removeChild(script);
27104                script = null;
27105            };
27106            html.appendChild(script);
27107        };
27108    }
27109
27110    function installSetTimeoutImplementation() {
27111        registerImmediate = function(handle) {
27112            setTimeout(runIfPresent, 0, handle);
27113        };
27114    }
27115
27116    // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
27117    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
27118    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
27119
27120    // Don't get fooled by e.g. browserify environments.
27121    if ({}.toString.call(global.process) === "[object process]") {
27122        // For Node.js before 0.9
27123        installNextTickImplementation();
27124
27125    } else if (canUsePostMessage()) {
27126        // For non-IE10 modern browsers
27127        installPostMessageImplementation();
27128
27129    }
27129 else if (global.MessageChannel) {
27130        // For web workers, where supported
27131        installMessageChannelImplementation();
27132
27133    } else if (doc && "onreadystatechange" in doc.createElement("script")) {
27134        // For IE 6–8
27135        installReadyStateChangeImplementation();
27136
27137    } else {
27138        // For older browsers
27139        installSetTimeoutImplementation();
27140    }
27141
27142    attachTo.setImmediate = setImmediate;
27143    attachTo.clearImmediate = clearImmediate;
27144}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
27145
27146/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34), __webpack_require__(57)))
27147
27148/***/ }),
27149/* 457 */,
27150/* 458 */
27151/***/ (function(module, exports, __webpack_require__) {
27152
27153var defineWellKnownSymbol = __webpack_require__(62);
27154
27155// `Symbol.iterator` well-known symbol
27156// https://tc39.github.io/ecma262/#sec-symbol.iterator
27157defineWellKnownSymbol('iterator');
27158
27159
27160/***/ }),
27161/* 459 */
27162/***/ (function(module, exports, __webpack_require__) {
27163
27164var $ = __webpack_require__(2);
27165var from = __webpack_require__(366);
27166var checkCorrectnessOfIteration = __webpack_require__(215);
27167
27168var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
27169  Array.from(iterable);
27170});
27171
27172// `Array.from` method
27173// https://tc39.github.io/ecma262/#sec-array.from
27174$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {
27175  from: from
27176});
27177
27178
27179/***/ }),
27180/* 460 */
27181/***/ (function(module, exports, __webpack_require__) {
27182
27183var $ = __webpack_require__(2);
27184var toAbsoluteIndex = __webpack_require__(114);
27185
27186var fromCharCode = String.fromCharCode;
27187var nativeFromCodePoint = String.fromCodePoint;
27188
27189// length should be 1, old FF problem
27190var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;
27191
27192// `String.fromCodePoint` method
27193// https://tc39.github.io/ecma262/#sec-string.fromcodepoint
27194$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {
27195  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
27196    var elements = [];
27197    var length = arguments.length;
27198    var i = 0;
27199    var code;
27200    while (length > i) {
27201      code = +arguments[i++];
27202      if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');
27203      elements.push(code < 0x10000
27204        ? fromCharCode(code)
27205        : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)
27206      );
27207    } return elements.join('');
27208  }
27209});
27210
27211
27212/***/ }),
27213/* 461 */
27214/***/ (function(module, exports, __webpack_require__) {
27215
27216"use strict";
27217
27218var $ = __webpack_require__(2);
27219var getOwnPropertyDescriptor = __webpack_require__(51).f;
27220var toLength = __webpack_require__(28);
27221var notARegExp = __webpack_require__(289);
27222var requireObjectCoercible = __webpack_require__(52);
27223var correctIsRegExpLogic = __webpack_require__(290);
27224var IS_PURE = __webpack_require__(72);
27225
27226var nativeStartsWith = ''.startsWith;
27227var min = Math.min;
27228
27229var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');
27230// https://github.com/zloirock/core-js/pull/702
27231var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
27232  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');
27233  return descriptor && !descriptor.writable;
27234}();
27235
27236// `String.prototype.startsWith` method
27237// https://tc39.github.io/ecma262/#sec-string.prototype.startswith
27238$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {
27239  startsWith: function startsWith(searchString /* , position = 0 */) {
27240    var that = String(requireObjectCoercible(this));
27241    notARegExp(searchString);
27242    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
27243    var search = String(searchString);
27244    return nativeStartsWith
27245      ? nativeStartsWith.call(that, search, index)
27246      : that.slice(index, index + search.length) === search;
27247  }
27248});
27249
27250
27251/***/ }),
27252/* 462 */
27253/***/ (function(module, exports, __webpack_require__) {
27254
27255var $ = __webpack_require__(2);
27256var getBuiltIn = __webpack_require__(67);
27257var aFunction = __webpack_require__(59);
27258var anObject = __webpack_require__(20);
27259var isObject = __webpack_require__(19);
27260var create = __webpack_require__(92);
27261var bind = __webpack_require__(372);
27262var fails = __webpack_require__(11);
27263
27264var nativeConstruct = getBuiltIn('Reflect', 'construct');
27265
27266// `Reflect.construct` method
27267// https://tc39.github.io/ecma262/#sec-reflect.construct
27268// MS Edge supports only 2 arguments and argumentsList argument is optional
27269// FF Nightly sets third argument as `new.target`, but does not create `this` from it
27270var NEW_TARGET_BUG = fails(function () {
27271  function F() { /* empty */ }
27272  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);
27273});
27274var ARGS_BUG = !fails(function () {
27275  nativeConstruct(function () { /* empty */ });
27276});
27277var FORCED = NEW_TARGET_BUG || ARGS_BUG;
27278
27279$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {
27280  construct: function construct(Target, args /* , newTarget */) {
27281    aFunction(Target);
27282    anObject(args);
27283    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
27284    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);
27285    if (Target == newTarget) {
27286      // w/o altered newTarget, optimization for 0-4 arguments
27287      switch (args.length) {
27288        case 0: return new Target();
27289        case 1: return new Target(args[0]);
27290        case 2: return new Target(args[0], args[1]);
27291        case 3: return new Target(args[0], args[1], args[2]);
27292        case 4: return new Target(args[0], args[1], args[2], args[3]);
27293      }
27294      // w/o altered newTarget, lot of arguments case
27295      var $args = [null];
27296      $args.push.apply($args, args);
27297      return new (bind.apply(Target, $args))();
27298    }
27299    // with altered newTarget, not support built-in constructors
27300    var proto = newTarget.prototype;
27301    var instance = create(isObject(proto) ? proto : Object.prototype);
27302    var result = Function.apply.call(Target, instance, args);
27303    return isObject(result) ? result : instance;
27304  }
27305});
27306
27307
27308/***/ }),
27309/* 463 */
27310/***/ (function(module, exports) {
27311
27312function _arrayLikeToArray(arr, len) {
27313  if (len == null || len > arr.length) len = arr.length;
27314
27315  for (var i = 0, arr2 = new Array(len); i < len; i++) {
27316    arr2[i] = arr[i];
27317  }
27318
27319  return arr2;
27320}
27321
27322module.exports = _arrayLikeToArray;
27323
27324/***/ }),
27325/* 464 */
27326/***/ (function(module, exports, __webpack_require__) {
27327
27328"use strict";
27329
27330
27331var _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; };
27332
27333var _require = __webpack_require__(465),
27334    encodeToBase64 = _require.encodeToBase64,
27335    padRight = _require.padRight;
27336
27337/**
27338 * Encode a list of vendor IDs into bits
27339 *
27340 * @param {integer} maxVendorId Highest vendor ID in the vendor list
27341 * @param {integer[]} allowedVendorIds Vendors that the user has given consent to
27342 */
27343
27344
27345function encodeVendorIdsToBits(maxVendorId) {
27346  var allowedVendorIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
27347
27348  var vendorString = '';
27349
27350  for (var id = 1; id <= maxVendorId; id += 1) {
27351    vendorString += allowedVendorIds.indexOf(id) !== -1 ? '1' : '0';
27352  }
27353
27354  return padRight(vendorString, Math.max(0, maxVendorId - vendorString.length));
27355}
27356
27357/**
27358 * Encode a list of purpose IDs into bits
27359 *
27360 * @param {*} purposes List of purposes from the vendor list
27361 * @param {*} allowedPurposeIds List of purpose IDs that the user has given consent to
27362 */
27363function encodePurposeIdsToBits(purposes) {
27364  var allowedPurposeIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();
27365
27366  var maxPurposeId = 0;
27367  for (var i = 0; i < purposes.length; i += 1) {
27368    maxPurposeId = Math.max(maxPurposeId, purposes[i].id);
27369  }
27370  for (var _i = 0; _i < allowedPurposeIds.length; _i += 1) {
27371    maxPurposeId = Math.max(maxPurposeId, allowedPurposeIds[_i]);
27372  }
27373
27374  var purposeString = '';
27375  for (var id = 1; id <= maxPurposeId; id += 1) {
27376    purposeString += allowedPurposeIds.indexOf(id) !== -1 ? '1' : '0';
27377  }
27378
27379  return purposeString;
27380}
27381
27382/**
27383 * Convert a list of vendor IDs to ranges
27384 *
27385 * @param {object[]} vendors List of vendors from the vendor list (important: this list must to be sorted by ID)
27386 * @param {integer[]} allowedVendorIds List of vendor IDs that the user has given consent to
27387 */
27388function convertVendorsToRanges(vendors, allowedVendorIds) {
27389  var range = [];
27390  var ranges = [];
27391
27392  var idsInList = vendors.map(function (vendor) {
27393    return vendor.id;
27394  });
27395
27396  for (var index = 0; index < vendors.length; index += 1) {
27397    var id = vendors[index].id;
27398
27399    if (allowedVendorIds.indexOf(id) !== -1) {
27400      range.push(id);
27401    }
27402
27403    // Do we need to close the current range?
27404    if ((allowedVendorIds.indexOf(id) === -1 // The vendor we are evaluating is not allowed
27405    || index === vendors.length - 1 // There is no more vendor to evaluate
27406    || idsInList.indexOf(id + 1) === -1 // There is no vendor after this one (ie there is a gap in the vendor IDs) ; we need to stop here to avoid including vendors that do not have consent
27407    ) && range.length) {
27408      var startVendorId = range.shift();
27409      var endVendorId = range.pop();
27410
27411      range = [];
27412
27413      ranges.push({
27414        isRange: typeof endVendorId === 'number',
27415        startVendorId: startVendorId,
27416        endVendorId: endVendorId
27417      });
27418    }
27419  }
27420
27421  return ranges;
27422}
27423
27424/**
27425 * Get maxVendorId from the list of vendors and return that id
27426 *
27427 * @param {object} vendors
27428 */
27429function getMaxVendorId(vendors) {
27430  // Find the max vendor ID from the vendor list
27431  var maxVendorId = 0;
27432
27433  vendors.forEach(function (vendor) {
27434    if (vendor.id > maxVendorId) {
27435      maxVendorId = vendor.id;
27436    }
27437  });
27438  return maxVendorId;
27439}
27440/**
27441 * Encode consent data into a web-safe base64-encoded string
27442 *
27443 * @param {object} consentData Data to include in the string (see `utils/definitions.js` for the list of fields)
27444 */
27445function encodeConsentString(consentData) {
27446  var maxVendorId = consentData.maxVendorId;
27447  var _consentData$vendorLi = consentData.vendorList,
27448      vendorList = _consentData$vendorLi === undefined ? {} : _consentData$vendorLi,
27449      allowedPurposeIds = consentData.allowedPurposeIds,
27450      allowedVendorIds = consentData.allowedVendorIds;
27451  var _vendorList$vendors = vendorList.vendors,
27452      vendors = _vendorList$vendors === undefined ? [] : _vendorList$vendors,
27453      _vendorList$purposes = vendorList.purposes,
27454      purposes = _vendorList$purposes === undefined ? [] : _vendorList$purposes;
27455
27456  // if no maxVendorId is in the ConsentData, get it
27457
27458  if (!maxVendorId) {
27459    maxVendorId = getMaxVendorId(vendors);
27460  }
27461
27462  // Encode the data with and without ranges and return the smallest encoded payload
27463  var noRangesData = encodeToBase64(_extends({}, consentData, {
27464    maxVendorId: maxVendorId,
27465    purposeIdBitString: encodePurposeIdsToBits(purposes, allowedPurposeIds),
27466    isRange: false,
27467    vendorIdBitString: encodeVendorIdsToBits(maxVendorId, allowedVendorIds)
27468  }));
27469
27470  var vendorRangeList = convertVendorsToRanges(vendors, allowedVendorIds);
27471
27472  var rangesData = encodeToBase64(_extends({}, consentData, {
27473    maxVendorId: maxVendorId,
27474    purposeIdBitString: encodePurposeIdsToBits(purposes, allowedPurposeIds),
27475    isRange: true,
27476    defaultConsent: false,
27477    numEntries: vendorRangeList.length,
27478    vendorRangeList: vendorRangeList
27479  }));
27480
27481  return noRangesData.length < rangesData.length ? noRangesData : rangesData;
27482}
27483
27484module.exports = {
27485  convertVendorsToRanges: convertVendorsToRanges,
27486  encodeConsentString: encodeConsentString,
27487  getMaxVendorId: getMaxVendorId,
27488  encodeVendorIdsToBits: encodeVendorIdsToBits,
27489  encodePurposeIdsToBits: encodePurposeIdsToBits
27490};
27491
27492/***/ }),
27493/* 465 */
27494/***/ (function(module, exports, __webpack_require__) {
27495
27496"use strict";
27497
27498
27499/* eslint no-use-before-define: off */
27500
27501var base64 = __webpack_require__(775);
27502
27503var _require = __webpack_require__(466),
27504    versionNumBits = _require.versionNumBits,
27505    vendorVersionMap = _require.vendorVersionMap;
27506
27507function repeat(count) {
27508  var string = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
27509
27510  var padString = '';
27511
27512  for (var i = 0; i < count; i += 1) {
27513    padString += string;
27514  }
27515
27516  return padString;
27517}
27518
27519function padLeft(string, padding) {
27520  return repeat(Math.max(0, padding)) + string;
27521}
27522
27523function padRight(string, padding) {
27524  return string + repeat(Math.max(0, padding));
27525}
27526
27527function encodeIntToBits(number, numBits) {
27528  var bitString = '';
27529
27530  if (typeof number === 'number' && !isNaN(number)) {
27531    bitString = parseInt(number, 10).toString(2);
27532  }
27533
27534  // Pad the string if not filling all bits
27535  if (numBits >= bitString.length) {
27536    bitString = padLeft(bitString, numBits - bitString.length);
27537  }
27538
27539  // Truncate the string if longer than the number of bits
27540  if (bitString.length > numBits) {
27541    bitString = bitString.substring(0, numBits);
27542  }
27543
27544  return bitString;
27545}
27546
27547function encodeBoolToBits(value) {
27548  return encodeIntToBits(value === true ? 1 : 0, 1);
27549}
27550
27551function encodeDateToBits(date, numBits) {
27552  if (date instanceof Date) {
27553    return encodeIntToBits(date.getTime() / 100, numBits);
27554  }
27555  return encodeIntToBits(date, numBits);
27556}
27557
27558function encodeLetterToBits(letter, numBits) {
27559  return encodeIntToBits(letter.toUpperCase().charCodeAt(0) - 65, numBits);
27560}
27561
27562function encodeLanguageToBits(language) {
27563  var numBits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12;
27564
27565  return encodeLetterToBits(language.slice(0, 1), numBits / 2) + encodeLetterToBits(language.slice(1), numBits / 2);
27566}
27567
27568function decodeBitsToInt(bitString, start, length) {
27569  return parseInt(bitString.substr(start, length), 2);
27570}
27571
27572function decodeBitsToDate(bitString, start, length) {
27573  return new Date(decodeBitsToInt(bitString, start, length) * 100);
27574}
27575
27576function decodeBitsToBool(bitString, start) {
27577  return parseInt(bitString.substr(start, 1), 2) === 1;
27578}
27579
27580function decodeBitsToLetter(bitString) {
27581  var letterCode = decodeBitsToInt(bitString);
27582  return String.fromCharCode(letterCode + 65).toLowerCase();
27583}
27584
27585function decodeBitsToLanguage(bitString, start, length) {
27586  var languageBitString = bitString.substr(start, length);
27587
27588  return decodeBitsToLetter(languageBitString.slice(0, length / 2)) + decodeBitsToLetter(languageBitString.slice(length / 2));
27589}
27590
27591function encodeField(_ref) {
27592  var input = _ref.input,
27593      field = _ref.field;
27594  var name = field.name,
27595      type = field.type,
27596      numBits = field.numBits,
27597      encoder = field.encoder,
27598      validator = field.validator;
27599
27600
27601  if (typeof validator === 'function') {
27602    if (!validator(input)) {
27603      return '';
27604    }
27605  }
27606  if (typeof encoder === 'function') {
27607    return encoder(input);
27608  }
27609
27610  var bitCount = typeof numBits === 'function' ? numBits(input) : numBits;
27611
27612  var inputValue = input[name];
27613  var fieldValue = inputValue === null || inputValue === undefined ? '' : inputValue;
27614
27615  switch (type) {
27616    case 'int':
27617      return encodeIntToBits(fieldValue, bitCount);
27618    case 'bool':
27619      return encodeBoolToBits(fieldValue);
27620    case 'date':
27621      return encodeDateToBits(fieldValue, bitCount);
27622    case 'bits':
27623      return padRight(fieldValue, bitCount - fieldValue.length).substring(0, bitCount);
27624    case 'list':
27625      return fieldValue.reduce(function (acc, listValue) {
27626        return acc + encodeFields({
27627          input: listValue,
27628          fields: field.fields
27629        });
27630      }, '');
27631    case 'language':
27632      return encodeLanguageToBits(fieldValue, bitCount);
27633    default:
27634      throw new Error('ConsentString - Unknown field type ' + type + ' for encoding');
27635  }
27636}
27637
27638function encodeFields(_ref2) {
27639  var input = _ref2.input,
27640      fields = _ref2.fields;
27641
27642  return fields.reduce(function (acc, field) {
27643    acc += encodeField({ input: input, field: field });
27644
27645    return acc;
27646  }, '');
27647}
27648
27649function decodeField(_ref3) {
27650  var input = _ref3.input,
27651      output = _ref3.output,
27652      startPosition = _ref3.startPosition,
27653      field = _ref3.field;
27654  var type = field.type,
27655      numBits = field.numBits,
27656      decoder = field.decoder,
27657      validator = field.validator,
27658      listCount = field.listCount;
27659
27660
27661  if (typeof validator === 'function') {
27662    if (!validator(output)) {
27663      // Not decoding this field so make sure we start parsing the next field at
27664      // the same point
27665      return { newPosition: startPosition };
27666    }
27667  }
27668
27669  if (typeof decoder === 'function') {
27670    return decoder(input, output, startPosition);
27671  }
27672
27673  var bitCount = typeof numBits === 'function' ? numBits(output) : numBits;
27674
27675  switch (type) {
27676    case 'int':
27677      return { fieldValue: decodeBitsToInt(input, startPosition, bitCount) };
27678    case 'bool':
27679      return { fieldValue: decodeBitsToBool(input, startPosition) };
27680    case 'date':
27681      return { fieldValue: decodeBitsToDate(input, startPosition, bitCount) };
27682    case 'bits':
27683      return { fieldValue: input.substr(startPosition, bitCount) };
27684    case 'list':
27685      return decodeList(input, output, startPosition, field, listCount);
27686    case 'language':
27687      return { fieldValue: decodeBitsToLanguage(input, startPosition, bitCount) };
27688    default:
27689      throw new Error('ConsentString - Unknown field type ' + type + ' for decoding');
27690  }
27691}
27692
27693function decodeList(input, output, startPosition, field, listCount) {
27694  var listEntryCount = 0;
27695
27696  if (typeof listCount === 'function') {
27697    listEntryCount = listCount(output);
27698  } else if (typeof listCount === 'number') {
27699    listEntryCount = listCount;
27700  }
27701
27702  var newPosition = startPosition;
27703  var fieldValue = [];
27704
27705  for (var i = 0; i < listEntryCount; i += 1) {
27706    var decodedFields = decodeFields({
27707      input: input,
27708      fields: field.fields,
27709      startPosition: newPosition
27710    });
27711
27712    newPosition = decodedFields.newPosition;
27713    fieldValue.push(decodedFields.decodedObject);
27714  }
27715
27716  return { fieldValue: fieldValue, newPosition: newPosition };
27717}
27718
27719function decodeFields(_ref4) {
27720  var input = _ref4.input,
27721      fields = _ref4.fields,
27722      _ref4$startPosition = _ref4.startPosition,
27723      startPosition = _ref4$startPosition === undefined ? 0 : _ref4$startPosition;
27724
27725  var position = startPosition;
27726
27727  var decodedObject = fields.reduce(function (acc, field) {
27728    var name = field.name,
27729        numBits = field.numBits;
27730
27731    var _decodeField = decodeField({
27732      input: input,
27733      output: acc,
27734      startPosition: position,
27735      field: field
27736    }),
27737        fieldValue = _decodeField.fieldValue,
27738        newPosition = _decodeField.newPosition;
27739
27740    if (fieldValue !== undefined) {
27741      acc[name] = fieldValue;
27742    }
27743
27744    if (newPosition !== undefined) {
27745      position = newPosition;
27746    } else if (typeof numBits === 'number') {
27747      position += numBits;
27748    }
27749
27750    return acc;
27751  }, {});
27752
27753  return {
27754    decodedObject: decodedObject,
27755    newPosition: position
27756  };
27757}
27758
27759/**
27760 * Encode the data properties to a bit string. Encoding will encode
27761 * either `selectedVendorIds` or the `vendorRangeList` depending on
27762 * the value of the `isRange` flag.
27763 */
27764function encodeDataToBits(data, definitionMap) {
27765  var version = data.version;
27766
27767
27768  if (typeof version !== 'number') {
27769    throw new Error('ConsentString - No version field to encode');
27770  }
27770 else if (!definitionMap[version]) {
27771    throw new Error('ConsentString - No definition for version ' + version);
27772  } else {
27773    var fields = definitionMap[version].fields;
27774    return encodeFields({ input: data, fields: fields });
27775  }
27776}
27777
27778/**
27779 * Take all fields required to encode the consent string and produce the URL safe Base64 encoded value
27780 */
27781function encodeToBase64(data) {
27782  var definitionMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vendorVersionMap;
27783
27784  var binaryValue = encodeDataToBits(data, definitionMap);
27785
27786  if (binaryValue) {
27787    // Pad length to multiple of 8
27788    var paddedBinaryValue = padRight(binaryValue, 7 - (binaryValue.length + 7) % 8);
27789
27790    // Encode to bytes
27791    var bytes = '';
27792    for (var i = 0; i < paddedBinaryValue.length; i += 8) {
27793      bytes += String.fromCharCode(parseInt(paddedBinaryValue.substr(i, 8), 2));
27794    }
27795
27796    // Make base64 string URL friendly
27797    return base64.encode(bytes).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
27798  }
27799
27800  return null;
27801}
27802
27803function decodeConsentStringBitValue(bitString) {
27804  var definitionMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : vendorVersionMap;
27805
27806  var version = decodeBitsToInt(bitString, 0, versionNumBits);
27807
27808  if (typeof version !== 'number') {
27809    throw new Error('ConsentString - Unknown version number in the string to decode');
27810  } else if (!vendorVersionMap[version]) {
27811    throw new Error('ConsentString - Unsupported version ' + version + ' in the string to decode');
27812  }
27813
27814  var fields = definitionMap[version].fields;
27815
27816  var _decodeFields = decodeFields({ input: bitString, fields: fields }),
27817      decodedObject = _decodeFields.decodedObject;
27818
27819  return decodedObject;
27820}
27821
27822/**
27823 * Decode the (URL safe Base64) value of a consent string into an object.
27824 */
27825function decodeFromBase64(consentString, definitionMap) {
27826  // Add padding
27827  var unsafe = consentString;
27828  while (unsafe.length % 4 !== 0) {
27829    unsafe += '=';
27830  }
27831
27832  // Replace safe characters
27833  unsafe = unsafe.replace(/-/g, '+').replace(/_/g, '/');
27834
27835  var bytes = base64.decode(unsafe);
27836
27837  var inputBits = '';
27838  for (var i = 0; i < bytes.length; i += 1) {
27839    var bitString = bytes.charCodeAt(i).toString(2);
27840    inputBits += padLeft(bitString, 8 - bitString.length);
27841  }
27842
27843  return decodeConsentStringBitValue(inputBits, definitionMap);
27844}
27845
27846function decodeBitsToIds(bitString) {
27847  return bitString.split('').reduce(function (acc, bit, index) {
27848    if (bit === '1') {
27849      if (acc.indexOf(index + 1) === -1) {
27850        acc.push(index + 1);
27851      }
27852    }
27853    return acc;
27854  }, []);
27855}
27856
27857module.exports = {
27858  padRight: padRight,
27859  padLeft: padLeft,
27860  encodeField: encodeField,
27861  encodeDataToBits: encodeDataToBits,
27862  encodeIntToBits: encodeIntToBits,
27863  encodeBoolToBits: encodeBoolToBits,
27864  encodeDateToBits: encodeDateToBits,
27865  encodeLanguageToBits: encodeLanguageToBits,
27866  encodeLetterToBits: encodeLetterToBits,
27867  encodeToBase64: encodeToBase64,
27868  decodeBitsToIds: decodeBitsToIds,
27869  decodeBitsToInt: decodeBitsToInt,
27870  decodeBitsToDate: decodeBitsToDate,
27871  decodeBitsToBool: decodeBitsToBool,
27872  decodeBitsToLanguage: decodeBitsToLanguage,
27873  decodeBitsToLetter: decodeBitsToLetter,
27874  decodeFromBase64: decodeFromBase64
27875};
27876
27877/***/ }),
27878/* 466 */
27879/***/ (function(module, exports, __webpack_require__) {
27880
27881"use strict";
27882
27883
27884/**
27885 * Number of bits for encoding the version integer
27886 * Expected to be the same across versions
27887 */
27888var versionNumBits = 6;
27889
27890/**
27891 * Definition of the consent string encoded format
27892 *
27893 * From https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/Draft_for_Public_Comment_Transparency%20%26%20Consent%20Framework%20-%20cookie%20and%20vendor%20list%20format%20specification%20v1.0a.pdf
27894 */
27895var vendorVersionMap = {
27896  /**
27897   * Version 1
27898   */
27899  1: {
27900    version: 1,
27901    metadataFields: ['version', 'created', 'lastUpdated', 'cmpId', 'cmpVersion', 'consentScreen', 'vendorListVersion'],
27902    fields: [{ name: 'version', type: 'int', numBits: 6 }, { name: 'created', type: 'date', numBits: 36 }, { name: 'lastUpdated', type: 'date', numBits: 36 }, { name: 'cmpId', type: 'int', numBits: 12 }, { name: 'cmpVersion', type: 'int', numBits: 12 }, { name: 'consentScreen', type: 'int', numBits: 6 }, { name: 'consentLanguage', type: 'language', numBits: 12 }, { name: 'vendorListVersion', type: 'int', numBits: 12 }, { name: 'purposeIdBitString', type: 'bits', numBits: 24 }, { name: 'maxVendorId', type: 'int', numBits: 16 }, { name: 'isRange', type: 'bool', numBits: 1 }, {
27903      name: 'vendorIdBitString',
27904      type: 'bits',
27905      numBits: function numBits(decodedObject) {
27906        return decodedObject.maxVendorId;
27907      },
27908      validator: function validator(decodedObject) {
27909        return !decodedObject.isRange;
27910      }
27911    }, {
27912      name: 'defaultConsent',
27913      type: 'bool',
27914      numBits: 1,
27915      validator: function validator(decodedObject) {
27916        return decodedObject.isRange;
27917      }
27918    }, {
27919      name: 'numEntries',
27920      numBits: 12,
27921      type: 'int',
27922      validator: function validator(decodedObject) {
27923        return decodedObject.isRange;
27924      }
27925    }, {
27926      name: 'vendorRangeList',
27927      type: 'list',
27928      listCount: function listCount(decodedObject) {
27929        return decodedObject.numEntries;
27930      },
27931      validator: function validator(decodedObject) {
27932        return decodedObject.isRange;
27933      },
27934      fields: [{
27935        name: 'isRange',
27936        type: 'bool',
27937        numBits: 1
27938      }, {
27939        name: 'startVendorId',
27940        type: 'int',
27941        numBits: 16
27942      }, {
27943        name: 'endVendorId',
27944        type: 'int',
27945        numBits: 16,
27946        validator: function validator(decodedObject) {
27947          return decodedObject.isRange;
27948        }
27949      }]
27950    }]
27951  }
27952};
27953
27954module.exports = {
27955  versionNumBits: versionNumBits,
27956  vendorVersionMap: vendorVersionMap
27957};
27958
27959/***/ }),
27960/* 467 */
27961/***/ (function(module, exports, __webpack_require__) {
27962
27963"use strict";
27964
27965
27966var _require = __webpack_require__(465),
27967    decodeBitsToIds = _require.decodeBitsToIds,
27968    decodeFromBase64 = _require.decodeFromBase64;
27969
27970/**
27971 * Decode consent data from a web-safe base64-encoded string
27972 *
27973 * @param {string} consentString
27974 */
27975
27976
27977function decodeConsentString(consentString) {
27978  var _decodeFromBase = decodeFromBase64(consentString),
27979      version = _decodeFromBase.version,
27980      cmpId = _decodeFromBase.cmpId,
27981      vendorListVersion = _decodeFromBase.vendorListVersion,
27982      purposeIdBitString = _decodeFromBase.purposeIdBitString,
27983      maxVendorId = _decodeFromBase.maxVendorId,
27984      created = _decodeFromBase.created,
27985      lastUpdated = _decodeFromBase.lastUpdated,
27986      isRange = _decodeFromBase.isRange,
27987      defaultConsent = _decodeFromBase.defaultConsent,
27988      vendorIdBitString = _decodeFromBase.vendorIdBitString,
27989      vendorRangeList = _decodeFromBase.vendorRangeList,
27990      cmpVersion = _decodeFromBase.cmpVersion,
27991      consentScreen = _decodeFromBase.consentScreen,
27992      consentLanguage = _decodeFromBase.consentLanguage;
27993
27994  var consentStringData = {
27995    version: version,
27996    cmpId: cmpId,
27997    vendorListVersion: vendorListVersion,
27998    allowedPurposeIds: decodeBitsToIds(purposeIdBitString),
27999    maxVendorId: maxVendorId,
28000    created: created,
28001    lastUpdated: lastUpdated,
28002    cmpVersion: cmpVersion,
28003    consentScreen: consentScreen,
28004    consentLanguage: consentLanguage
28005  };
28006
28007  if (isRange) {
28008    /* eslint no-shadow: off */
28009    var idMap = vendorRangeList.reduce(function (acc, _ref) {
28010      var isRange = _ref.isRange,
28011          startVendorId = _ref.startVendorId,
28012          endVendorId = _ref.endVendorId;
28013
28014      var lastVendorId = isRange ? endVendorId : startVendorId;
28015
28016      for (var i = startVendorId; i <= lastVendorId; i += 1) {
28017        acc[i] = true;
28018      }
28019
28020      return acc;
28021    }, {});
28022
28023    consentStringData.allowedVendorIds = [];
28024
28025    for (var i = 1; i <= maxVendorId; i += 1) {
28026      if (defaultConsent && !idMap[i] || !defaultConsent && idMap[i]) {
28027        if (consentStringData.allowedVendorIds.indexOf(i) === -1) {
28028          consentStringData.allowedVendorIds.push(i);
28029        }
28030      }
28031    }
28032  } else {
28033    consentStringData.allowedVendorIds = decodeBitsToIds(vendorIdBitString);
28034  }
28035
28036  return consentStringData;
28037}
28038
28039module.exports = {
28040  decodeConsentString: decodeConsentString
28041};
28042
28043/***/ }),
28044/* 468 */
28045/***/ (function(module, exports) {
28046
28047module.exports = "<svg width=\"32\" height=\"32\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><path d=\"M11.318 17.683A4.473 4.473 0 0 1 10 14.5c0-1.202.468-2.332 1.319-3.181A4.466 4.466 0 0 1 14.499 10c1.203 0 2.333.469 3.183 1.319a4.506 4.506 0 0 1 0 6.364A4.473 4.473 0 0 1 14.5 19a4.472 4.472 0 0 1-3.182-1.317zM24 22.233l-4.107-4.107A6.5 6.5 0 0 0 14.5 8a6.5 6.5 0 1 0 3.626 11.894l4.106 4.107L24 22.234z\" fill=\"#020203\" fill-rule=\"evenodd\"></path></svg>"
28048
28049/***/ }),
28050/* 469 */
28051/***/ (function(module, exports, __webpack_require__
vendor: 13,394 bytes, lines 28051-28504
28051) {
28052
28053"use strict";
28054// Copyright Joyent, Inc. and other Node contributors.
28055//
28056// Permission is hereby granted, free of charge, to any person obtaining a
28057// copy of this software and associated documentation files (the
28058// "Software"), to deal in the Software without restriction, including
28059// without limitation the rights to use, copy, modify, merge, publish,
28060// distribute, sublicense, and/or sell copies of the Software, and to permit
28061// persons to whom the Software is furnished to do so, subject to the
28062// following conditions:
28063//
28064// The above copyright notice and this permission notice shall be included
28065// in all copies or substantial portions of the Software.
28066//
28067// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28068// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28069// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28070// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28071// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28072// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28073// USE OR OTHER DEALINGS IN THE SOFTWARE.
28074
28075
28076
28077var R = typeof Reflect === 'object' ? Reflect : null
28078var ReflectApply = R && typeof R.apply === 'function'
28079  ? R.apply
28080  : function ReflectApply(target, receiver, args) {
28081    return Function.prototype.apply.call(target, receiver, args);
28082  }
28083
28084var ReflectOwnKeys
28085if (R && typeof R.ownKeys === 'function') {
28086  ReflectOwnKeys = R.ownKeys
28087} else if (Object.getOwnPropertySymbols) {
28088  ReflectOwnKeys = function ReflectOwnKeys(target) {
28089    return Object.getOwnPropertyNames(target)
28090      .concat(Object.getOwnPropertySymbols(target));
28091  };
28092} else {
28093  ReflectOwnKeys = function ReflectOwnKeys(target) {
28094    return Object.getOwnPropertyNames(target);
28095  };
28096}
28097
28098function ProcessEmitWarning(warning) {
28099  if (console && console.warn) console.warn(warning);
28100}
28101
28102var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
28103  return value !== value;
28104}
28105
28106function EventEmitter() {
28107  EventEmitter.init.call(this);
28108}
28109module.exports = EventEmitter;
28110module.exports.once = once;
28111
28112// Backwards-compat with node 0.10.x
28113EventEmitter.EventEmitter = EventEmitter;
28114
28115EventEmitter.prototype._events = undefined;
28116EventEmitter.prototype._eventsCount = 0;
28117EventEmitter.prototype._maxListeners = undefined;
28118
28119// By default EventEmitters will print a warning if more than 10 listeners are
28120// added to it. This is a useful default which helps finding memory leaks.
28121var defaultMaxListeners = 10;
28122
28123function checkListener(listener) {
28124  if (typeof listener !== 'function') {
28125    throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
28126  }
28127}
28128
28129Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
28130  enumerable: true,
28131  get: function() {
28132    return defaultMaxListeners;
28133  },
28134  set: function(arg) {
28135    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
28136      throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
28137    }
28138    defaultMaxListeners = arg;
28139  }
28140});
28141
28142EventEmitter.init = function() {
28143
28144  if (this._events === undefined ||
28145      this._events === Object.getPrototypeOf(this)._events) {
28146    this._events = Object.create(null);
28147    this._eventsCount = 0;
28148  }
28149
28150  this._maxListeners = this._maxListeners || undefined;
28151};
28152
28153// Obviously not all Emitters should be limited to 10. This function allows
28154// that to be increased. Set to zero for unlimited.
28155EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
28156  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
28157    throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
28158  }
28159  this._maxListeners = n;
28160  return this;
28161};
28162
28163function _getMaxListeners(that) {
28164  if (that._maxListeners === undefined)
28165    return EventEmitter.defaultMaxListeners;
28166  return that._maxListeners;
28167}
28168
28169EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
28170  return _getMaxListeners(this);
28171};
28172
28173EventEmitter.prototype.emit = function emit(type) {
28174  var args = [];
28175  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);
28176  var doError = (type === 'error');
28177
28178  var events = this._events;
28179  if (events !== undefined)
28180    doError = (doError && events.error === undefined);
28181  else if (!doError)
28182    return false;
28183
28184  // If there is no 'error' event listener then throw.
28185  if (doError) {
28186    var er;
28187    if (args.length > 0)
28188      er = args[0];
28189    if (er instanceof Error) {
28190      // Note: The comments on the `throw` lines are intentional, they show
28191      // up in Node's output if this results in an unhandled exception.
28192      throw er; // Unhandled 'error' event
28193    }
28194    // At least give some kind of context to the user
28195    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
28196    err.context = er;
28197    throw err; // Unhandled 'error' event
28198  }
28199
28200  var handler = events[type];
28201
28202  if (handler === undefined)
28203    return false;
28204
28205  if (typeof handler === 'function') {
28206    ReflectApply(handler, this, args);
28207  } else {
28208    var len = handler.length;
28209    var listeners = arrayClone(handler, len);
28210    for (var i = 0; i < len; ++i)
28211      ReflectApply(listeners[i], this, args);
28212  }
28213
28214  return true;
28215};
28216
28217function _addListener(target, type, listener, prepend) {
28218  var m;
28219  var events;
28220  var existing;
28221
28222  checkListener(listener);
28223
28224  events = target._events;
28225  if (events === undefined) {
28226    events = target._events = Object.create(null);
28227    target._eventsCount = 0;
28228  } else {
28229    // To avoid recursion in the case that type === "newListener"! Before
28230    // adding it to the listeners, first emit "newListener".
28231    if (events.newListener !== undefined) {
28232      target.emit('newListener', type,
28233                  listener.listener ? listener.listener : listener);
28234
28235      // Re-assign `events` because a newListener handler could have caused the
28236      // this._events to be assigned to a new object
28237      events = target._events;
28238    }
28239    existing = events[type];
28240  }
28241
28242  if (existing === undefined) {
28243    // Optimize the case of one listener. Don't need the extra array object.
28244    existing = events[type] = listener;
28245    ++target._eventsCount;
28246  } else {
28247    if (typeof existing === 'function') {
28248      // Adding the second element, need to change to array.
28249      existing = events[type] =
28250        prepend ? [listener, existing] : [existing, listener];
28251      // If we've already got an array, just append.
28252    } else if (prepend) {
28253      existing.unshift(listener);
28254    } else {
28255      existing.push(listener);
28256    }
28257
28258    // Check for listener leak
28259    m = _getMaxListeners(target);
28260    if (m > 0 && existing.length > m && !existing.warned) {
28261      existing.warned = true;
28262      // No error code for this since it is a Warning
28263      // eslint-disable-next-line no-restricted-syntax
28264      var w = new Error('Possible EventEmitter memory leak detected. ' +
28265                          existing.length + ' ' + String(type) + ' listeners ' +
28266                          'added. Use emitter.setMaxListeners() to ' +
28267                          'increase limit');
28268      w.name = 'MaxListenersExceededWarning';
28269      w.emitter = target;
28270      w.type = type;
28271      w.count = existing.length;
28272      ProcessEmitWarning(w);
28273    }
28274  }
28275
28276  return target;
28277}
28278
28279EventEmitter.prototype.addListener = function addListener(type, listener) {
28280  return _addListener(this, type, listener, false);
28281};
28282
28283EventEmitter.prototype.on = EventEmitter.prototype.addListener;
28284
28285EventEmitter.prototype.prependListener =
28286    function prependListener(type, listener) {
28287      return _addListener(this, type, listener, true);
28288    };
28289
28290function onceWrapper() {
28291  if (!this.fired) {
28292    this.target.removeListener(this.type, this.wrapFn);
28293    this.fired = true;
28294    if (arguments.length === 0)
28295      return this.listener.call(this.target);
28296    return this.listener.apply(this.target, arguments);
28297  }
28298}
28299
28300function _onceWrap(target, type, listener) {
28301  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
28302  var wrapped = onceWrapper.bind(state);
28303  wrapped.listener = listener;
28304  state.wrapFn = wrapped;
28305  return wrapped;
28306}
28307
28308EventEmitter.prototype.once = function once(type, listener) {
28309  checkListener(listener);
28310  this.on(type, _onceWrap(this, type, listener));
28311  return this;
28312};
28313
28314EventEmitter.prototype.prependOnceListener =
28315    function prependOnceListener(type, listener) {
28316      checkListener(listener);
28317      this.prependListener(type, _onceWrap(this, type, listener));
28318      return this;
28319    };
28320
28321// Emits a 'removeListener' event if and only if the listener was removed.
28322EventEmitter.prototype.removeListener =
28323    function removeListener(type, listener) {
28324      var list, events, position, i, originalListener;
28325
28326      checkListener(listener);
28327
28328      events = this._events;
28329      if (events === undefined)
28330        return this;
28331
28332      list = events[type];
28333      if (list === undefined)
28334        return this;
28335
28336      if (list === listener || list.listener === listener) {
28337        if (--this._eventsCount === 0)
28338          this._events = Object.create(null);
28339        else {
28340          delete events[type];
28341          if (events.removeListener)
28342            this.emit('removeListener', type, list.listener || listener);
28343        }
28344      } else if (typeof list !== 'function') {
28345        position = -1;
28346
28347        for (i = list.length - 1; i >= 0; i--) {
28348          if (list[i] === listener || list[i].listener === listener) {
28349            originalListener = list[i].listener;
28350            position = i;
28351            break;
28352          }
28353        }
28354
28355        if (position < 0)
28356          return this;
28357
28358        if (position === 0)
28359          list.shift();
28360        else {
28361          spliceOne(list, position);
28362        }
28363
28364        if (list.length === 1)
28365          events[type] = list[0];
28366
28367        if (events.removeListener !== undefined)
28368          this.emit('removeListener', type, originalListener || listener);
28369      }
28370
28371      return this;
28372    };
28373
28374EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
28375
28376EventEmitter.prototype.removeAllListeners =
28377    function removeAllListeners(type) {
28378      var listeners, events, i;
28379
28380      events = this._events;
28381      if (events === undefined)
28382        return this;
28383
28384      // not listening for removeListener, no need to emit
28385      if (events.removeListener === undefined) {
28386        if (arguments.length === 0) {
28387          this._events = Object.create(null);
28388          this._eventsCount = 0;
28389        } else if (events[type] !== undefined) {
28390          if (--this._eventsCount === 0)
28391            this._events = Object.create(null);
28392          else
28393            delete events[type];
28394        }
28395        return this;
28396      }
28397
28398      // emit removeListener for all listeners on all events
28399      if (arguments.length === 0) {
28400        var keys = Object.keys(events);
28401        var key;
28402        for (i = 0; i < keys.length; ++i) {
28403          key = keys[i];
28404          if (key === 'removeListener') continue;
28405          this.removeAllListeners(key);
28406        }
28407        this.removeAllListeners('removeListener');
28408        this._events = Object.create(null);
28409        this._eventsCount = 0;
28410        return this;
28411      }
28412
28413      listeners = events[type];
28414
28415      if (typeof listeners === 'function') {
28416        this.removeListener(type, listeners);
28417      } else if (listeners !== undefined) {
28418        // LIFO order
28419        for (i = listeners.length - 1; i >= 0; i--) {
28420          this.removeListener(type, listeners[i]);
28421        }
28422      }
28423
28424      return this;
28425    };
28426
28427function _listeners(target, type, unwrap) {
28428  var events = target._events;
28429
28430  if (events === undefined)
28431    return [];
28432
28433  var evlistener = events[type];
28434  if (evlistener === undefined)
28435    return [];
28436
28437  if (typeof evlistener === 'function')
28438    return unwrap ? [evlistener.listener || evlistener] : [evlistener];
28439
28440  return unwrap ?
28441    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
28442}
28443
28444EventEmitter.prototype.listeners = function listeners(type) {
28445  return _listeners(this, type, true);
28446};
28447
28448EventEmitter.prototype.rawListeners = function rawListeners(type) {
28449  return _listeners(this, type, false);
28450};
28451
28452EventEmitter.listenerCount = function(emitter, type) {
28453  if (typeof emitter.listenerCount === 'function') {
28454    return emitter.listenerCount(type);
28455  } else {
28456    return listenerCount.call(emitter, type);
28457  }
28458};
28459
28460EventEmitter.prototype.listenerCount = listenerCount;
28461function listenerCount(type) {
28462  var events = this._events;
28463
28464  if (events !== undefined) {
28465    var evlistener = events[type];
28466
28467    if (typeof evlistener === 'function') {
28468      return 1;
28469    } else if (evlistener !== undefined) {
28470      return evlistener.length;
28471    }
28472  }
28473
28474  return 0;
28475}
28476
28477EventEmitter.prototype.eventNames = function eventNames() {
28478  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
28479};
28480
28481function arrayClone(arr, n) {
28482  var copy = new Array(n);
28483  for (var i = 0; i < n; ++i)
28484    copy[i] = arr[i];
28485  return copy;
28486}
28487
28488function spliceOne(list, index) {
28489  for (; index + 1 < list.length; index++)
28490    list[index] = list[index + 1];
28491  list.pop();
28492}
28493
28494function unwrapListeners(arr) {
28495  var ret = new Array(arr.length);
28496  for (var i = 0; i < ret.length; ++i) {
28497    ret[i] = arr[i].listener || arr[i];
28498  }
28499  return ret;
28500}
28501
28502function once(emitter, name) {
28503  return new Promise(function (resolve, reject) {
28504    function e
28504ventListener() {
28505      if (errorListener !== undefined) {
28506        emitter.removeListener('error', errorListener);
28507      }
28508      resolve([].slice.call(arguments));
28509    };
28510    var errorListener;
28511
28512    // Adding an error listener is not optional because
28513    // if an error is thrown on an event emitter we cannot
28514    // guarantee that the actual event we are waiting will
28515    // be fired. The result could be a silent way to create
28516    // memory or file descriptor leaks, which is something
28517    // we should avoid.
28518    if (name !== 'error') {
28519      errorListener = function errorListener(err) {
28520        emitter.removeListener(name, eventListener);
28521        reject(err);
28522      };
28523
28524      emitter.once('error', errorListener);
28525    }
28526
28527    emitter.once(name, eventListener);
28528  });
28529}
28530
28531
28532/***/ }),
28533/* 470 */
28534/***/ (function(module, exports, __webpack_require__) {
28535
28536/* eslint-disable node/no-deprecated-api */
28537var buffer = __webpack_require__(313)
28538var Buffer = buffer.Buffer
28539
28540// alternative to using Object.keys for old browsers
28541function copyProps (src, dst) {
28542  for (var key in src) {
28543    dst[key] = src[key]
28544  }
28545}
28546if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
28547  module.exports = buffer
28548} else {
28549  // Copy properties from require('buffer')
vendor: 20,541 bytes, lines 28550-29247
28550  copyProps(buffer, exports)
28551  exports.Buffer = SafeBuffer
28552}
28553
28554function SafeBuffer (arg, encodingOrOffset, length) {
28555  return Buffer(arg, encodingOrOffset, length)
28556}
28557
28558// Copy static methods from Buffer
28559copyProps(Buffer, SafeBuffer)
28560
28561SafeBuffer.from = function (arg, encodingOrOffset, length) {
28562  if (typeof arg === 'number') {
28563    throw new TypeError('Argument must not be a number')
28564  }
28565  return Buffer(arg, encodingOrOffset, length)
28566}
28567
28568SafeBuffer.alloc = function (size, fill, encoding) {
28569  if (typeof size !== 'number') {
28570    throw new TypeError('Argument must be a number')
28571  }
28572  var buf = Buffer(size)
28573  if (fill !== undefined) {
28574    if (typeof encoding === 'string') {
28575      buf.fill(fill, encoding)
28576    } else {
28577      buf.fill(fill)
28578    }
28579  } else {
28580    buf.fill(0)
28581  }
28582  return buf
28583}
28584
28585SafeBuffer.allocUnsafe = function (size) {
28586  if (typeof size !== 'number') {
28587    throw new TypeError('Argument must be a number')
28588  }
28589  return Buffer(size)
28590}
28591
28592SafeBuffer.allocUnsafeSlow = function (size) {
28593  if (typeof size !== 'number') {
28594    throw new TypeError('Argument must be a number')
28595  }
28596  return buffer.SlowBuffer(size)
28597}
28598
28599
28600/***/ }),
28601/* 471 */
28602/***/ (function(module, exports, __webpack_require__) {
28603
28604"use strict";
28605/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
28606//
28607// Permission is hereby granted, free of charge, to any person obtaining a
28608// copy of this software and associated documentation files (the
28609// "Software"), to deal in the Software without restriction, including
28610// without limitation the rights to use, copy, modify, merge, publish,
28611// distribute, sublicense, and/or sell copies of the Software, and to permit
28612// persons to whom the Software is furnished to do so, subject to the
28613// following conditions:
28614//
28615// The above copyright notice and this permission notice shall be included
28616// in all copies or substantial portions of the Software.
28617//
28618// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28619// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28620// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
28621// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
28622// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28623// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
28624// USE OR OTHER DEALINGS IN THE SOFTWARE.
28625
28626// A bit simpler than readable streams.
28627// Implement an async ._write(chunk, encoding, cb), and it'll handle all
28628// the drain event emission and buffering.
28629
28630
28631
28632/*<replacement>*/
28633
28634var pna = __webpack_require__(394);
28635/*</replacement>*/
28636
28637module.exports = Writable;
28638
28639/* <replacement> */
28640function WriteReq(chunk, encoding, cb) {
28641  this.chunk = chunk;
28642  this.encoding = encoding;
28643  this.callback = cb;
28644  this.next = null;
28645}
28646
28647// It seems a linked list but it is not
28648// there will be only 2 of these for each stream
28649function CorkedRequest(state) {
28650  var _this = this;
28651
28652  this.next = null;
28653  this.entry = null;
28654  this.finish = function () {
28655    onCorkedFinish(_this, state);
28656  };
28657}
28658/* </replacement> */
28659
28660/*<replacement>*/
28661var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
28662/*</replacement>*/
28663
28664/*<replacement>*/
28665var Duplex;
28666/*</replacement>*/
28667
28668Writable.WritableState = WritableState;
28669
28670/*<replacement>*/
28671var util = Object.create(__webpack_require__(314));
28672util.inherits = __webpack_require__(200);
28673/*</replacement>*/
28674
28675/*<replacement>*/
28676var internalUtil = {
28677  deprecate: __webpack_require__(908)
28678};
28679/*</replacement>*/
28680
28681/*<replacement>*/
28682var Stream = __webpack_require__(734);
28683/*</replacement>*/
28684
28685/*<replacement>*/
28686
28687var Buffer = __webpack_require__(470).Buffer;
28688var OurUint8Array = global.Uint8Array || function () {};
28689function _uint8ArrayToBuffer(chunk) {
28690  return Buffer.from(chunk);
28691}
28692function _isUint8Array(obj) {
28693  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
28694}
28695
28696/*</replacement>*/
28697
28698var destroyImpl = __webpack_require__(735);
28699
28700util.inherits(Writable, Stream);
28701
28702function nop() {}
28703
28704function WritableState(options, stream) {
28705  Duplex = Duplex || __webpack_require__(240);
28706
28707  options = options || {};
28708
28709  // Duplex streams are both readable and writable, but share
28710  // the same options object.
28711  // However, some cases require setting options to different
28712  // values for the readable and the writable sides of the duplex stream.
28713  // These options can be provided separately as readableXXX and writableXXX.
28714  var isDuplex = stream instanceof Duplex;
28715
28716  // object stream flag to indicate whether or not this stream
28717  // contains buffers or objects.
28718  this.objectMode = !!options.objectMode;
28719
28720  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
28721
28722  // the point at which write() starts returning false
28723  // Note: 0 is a valid value, means that we always return false if
28724  // the entire buffer is not flushed immediately on write()
28725  var hwm = options.highWaterMark;
28726  var writableHwm = options.writableHighWaterMark;
28727  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
28728
28729  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
28730
28731  // cast to ints.
28732  this.highWaterMark = Math.floor(this.highWaterMark);
28733
28734  // if _final has been called
28735  this.finalCalled = false;
28736
28737  // drain event flag.
28738  this.needDrain = false;
28739  // at the start of calling end()
28740  this.ending = false;
28741  // when end() has been called, and returned
28742  this.ended = false;
28743  // when 'finish' is emitted
28744  this.finished = false;
28745
28746  // has it been destroyed
28747  this.destroyed = false;
28748
28749  // should we decode strings into buffers before passing to _write?
28750  // this is here so that some node-core streams can optimize string
28751  // handling at a lower level.
28752  var noDecode = options.decodeStrings === false;
28753  this.decodeStrings = !noDecode;
28754
28755  // Crypto is kind of old and crusty.  Historically, its default string
28756  // encoding is 'binary' so we have to make this configurable.
28757  // Everything else in the universe uses 'utf8', though.
28758  this.defaultEncoding = options.defaultEncoding || 'utf8';
28759
28760  // not an actual buffer we keep track of, but a measurement
28761  // of how much we're waiting to get pushed to some underlying
28762  // socket or file.
28763  this.length = 0;
28764
28765  // a flag to see when we're in the middle of a write.
28766  this.writing = false;
28767
28768  // when true all writes will be buffered until .uncork() call
28769  this.corked = 0;
28770
28771  // a flag to be able to tell if the onwrite cb is called immediately,
28772  // or on a later tick.  We set this to true at first, because any
28773  // actions that shouldn't happen until "later" should generally also
28774  // not happen before the first write call.
28775  this.sync = true;
28776
28777  // a flag to know if we're processing previously buffered items, which
28778  // may call the _write() callback in the same tick, so that we don't
28779  // end up in an overlapped onwrite situation.
28780  this.bufferProcessing = false;
28781
28782  // the callback that's passed to _write(chunk,cb)
28783  this.onwrite = function (er) {
28784    onwrite(stream, er);
28785  };
28786
28787  // the callback that the user supplies to write(chunk,encoding,cb)
28788  this.writecb = null;
28789
28790  // the amount that is being written when _write is called.
28791  this.writelen = 0;
28792
28793  this.bufferedRequest = null;
28794  this.lastBufferedRequest = null;
28795
28796  // number of pending user-supplied write callbacks
28797  // this must be 0 before 'finish' can be emitted
28798  this.pendingcb = 0;
28799
28800  // emit prefinish if the only thing we're waiting for is _write cbs
28801  // This is relevant for synchronous Transform streams
28802  this.prefinished = false;
28803
28804  // True if the error was already emitted and should not be thrown again
28805  this.errorEmitted = false;
28806
28807  // count buffered requests
28808  this.bufferedRequestCount = 0;
28809
28810  // allocate the first CorkedRequest, there is always
28811  // one allocated and free to use, and we maintain at most two
28812  this.corkedRequestsFree = new CorkedRequest(this);
28813}
28814
28815WritableState.prototype.getBuffer = function getBuffer() {
28816  var current = this.bufferedRequest;
28817  var out = [];
28818  while (current) {
28819    out.push(current);
28820    current = current.next;
28821  }
28822  return out;
28823};
28824
28825(function () {
28826  try {
28827    Object.defineProperty(WritableState.prototype, 'buffer', {
28828      get: internalUtil.deprecate(function () {
28829        return this.getBuffer();
28830      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
28831    });
28832  } catch (_) {}
28833})();
28834
28835// Test _writableState for inheritance to account for Duplex streams,
28836// whose prototype chain only points to Readable.
28837var realHasInstance;
28838if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
28839  realHasInstance = Function.prototype[Symbol.hasInstance];
28840  Object.defineProperty(Writable, Symbol.hasInstance, {
28841    value: function (object) {
28842      if (realHasInstance.call(this, object)) return true;
28843      if (this !== Writable) return false;
28844
28845      return object && object._writableState instanceof WritableState;
28846    }
28847  });
28848} else {
28849  realHasInstance = function (object) {
28850    return object instanceof this;
28851  };
28852}
28853
28854function Writable(options) {
28855  Duplex = Duplex || __webpack_require__(240);
28856
28857  // Writable ctor is applied to Duplexes, too.
28858  // `realHasInstance` is necessary because using plain `instanceof`
28859  // would return false, as no `_writableState` property is attached.
28860
28861  // Trying to use the custom `instanceof` for Writable here will also break the
28862  // Node.js LazyTransform implementation, which has a non-trivial getter for
28863  // `_writableState` that would lead to infinite recursion.
28864  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
28865    return new Writable(options);
28866  }
28867
28868  this._writableState = new WritableState(options, this);
28869
28870  // legacy.
28871  this.writable = true;
28872
28873  if (options) {
28874    if (typeof options.write === 'function') this._write = options.write;
28875
28876    if (typeof options.writev === 'function') this._writev = options.writev;
28877
28878    if (typeof options.destroy === 'function') this._destroy = options.destroy;
28879
28880    if (typeof options.final === 'function') this._final = options.final;
28881  }
28882
28883  Stream.call(this);
28884}
28885
28886// Otherwise people can pipe Writable streams, which is just wrong.
28887Writable.prototype.pipe = function () {
28888  this.emit('error', new Error('Cannot pipe, not readable'));
28889};
28890
28891function writeAfterEnd(stream, cb) {
28892  var er = new Error('write after end');
28893  // TODO: defer error events consistently everywhere, not just the cb
28894  stream.emit('error', er);
28895  pna.nextTick(cb, er);
28896}
28897
28898// Checks that a user-supplied chunk is valid, especially for the particular
28899// mode the stream is in. Currently this means that `null` is never accepted
28900// and undefined/non-string values are only allowed in object mode.
28901function validChunk(stream, state, chunk, cb) {
28902  var valid = true;
28903  var er = false;
28904
28905  if (chunk === null) {
28906    er = new TypeError('May not write null values to stream');
28907  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
28908    er = new TypeError('Invalid non-string/buffer chunk');
28909  }
28910  if (er) {
28911    stream.emit('error', er);
28912    pna.nextTick(cb, er);
28913    valid = false;
28914  }
28915  return valid;
28916}
28917
28918Writable.prototype.write = function (chunk, encoding, cb) {
28919  var state = this._writableState;
28920  var ret = false;
28921  var isBuf = !state.objectMode && _isUint8Array(chunk);
28922
28923  if (isBuf && !Buffer.isBuffer(chunk)) {
28924    chunk = _uint8ArrayToBuffer(chunk);
28925  }
28926
28927  if (typeof encoding === 'function') {
28928    cb = encoding;
28929    encoding = null;
28930  }
28931
28932  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
28933
28934  if (typeof cb !== 'function') cb = nop;
28935
28936  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
28937    state.pendingcb++;
28938    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
28939  }
28940
28941  return ret;
28942};
28943
28944Writable.prototype.cork = function () {
28945  var state = this._writableState;
28946
28947  state.corked++;
28948};
28949
28950Writable.prototype.uncork = function () {
28951  var state = this._writableState;
28952
28953  if (state.corked) {
28954    state.corked--;
28955
28956    if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
28957  }
28958};
28959
28960Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
28961  // node::ParseEncoding() requires lower case.
28962  if (typeof encoding === 'string') encoding = encoding.toLowerCase();
28963  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
28964  this._writableState.defaultEncoding = encoding;
28965  return this;
28966};
28967
28968function decodeChunk(state, chunk, encoding) {
28969  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
28970    chunk = Buffer.from(chunk, encoding);
28971  }
28972  return chunk;
28973}
28974
28975Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
28976  // making it explicit this property is not enumerable
28977  // because otherwise some prototype manipulation in
28978  // userland will fail
28979  enumerable: false,
28980  get: function () {
28981    return this._writableState.highWaterMark;
28982  }
28983});
28984
28985// if we're already writing something, then just put this
28986// in the queue, and wait our turn.  Otherwise, call _write
28987// If we return false, then we need a drain event, so set that flag.
28988function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
28989  if (!isBuf) {
28990    var newChunk = decodeChunk(state, chunk, encoding);
28991    if (chunk !== newChunk) {
28992      isBuf = true;
28993      encoding = 'buffer';
28994      chunk = newChunk;
28995    }
28996  }
28997  var len = state.objectMode ? 1 : chunk.length;
28998
28999  state.length += len;
29000
29001  var ret = state.length < state.highWaterMark;
29002  // we must ensure that previous needDrain will not be reset to false.
29003  if (!ret) state.needDrain = true;
29004
29005  if (state.writing || state.corked) {
29006    var last = state.lastBufferedRequest;
29007    state.lastBufferedRequest = {
29008      chunk: chunk,
29009      encoding: encoding,
29010      isBuf: isBuf,
29011      callback: cb,
29012      next: null
29013    };
29014    if (last) {
29015      last.next = state.lastBufferedRequest;
29016    } else {
29017      state.bufferedRequest = state.lastBufferedRequest;
29018    }
29019    state.bufferedRequestCount += 1;
29020  } else {
29021    doWrite(stream, state, false, len, chunk, encoding, cb);
29022  }
29023
29024  return ret;
29025}
29026
29027function doWrite(stream, state, writev, len, chunk, encoding, cb) {
29028  state.writelen = len;
29029  state.writecb = cb;
29030  state.writing = true;
29031  state.sync = true;
29032  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
29033  state.sync = false;
29034}
29035
29036function onwriteError(stream, state, sync, er, cb) {
29037  --state.pendingcb;
29038
29039  if (sync) {
29040    // defer the callback if we are being called synchronously
29041    // to avoid piling up things on the stack
29042    pna.nextTick(cb, er);
29043    // this can emit finish, and it will always happen
29044    // after error
29045    pna.nextTick(finishMaybe, stream, state);
29046    stream._writableState.errorEmitted = true;
29047    stream.emit('error', er);
29048  } else {
29049    // the caller expect this to happen before if
29050    // it is async
29051    cb(er);
29052    stream._writableState.errorEmitted = true;
29053    stream.emit('error', er);
29054    // this can emit finish, but finish must
29055    // always follow error
29056    finishMaybe(stream, state);
29057  }
29058}
29059
29060function onwriteStateUpdate(state) {
29061  state.writing = false;
29062  state.writecb = null;
29063  state.length -= state.writelen;
29064  state.writelen = 0;
29065}
29066
29067function onwrite(stream, er) {
29068  var state = stream._writableState;
29069  var sync = state.sync;
29070  var cb = state.writecb;
29071
29072  onwriteStateUpdate(state);
29073
29074  if (er) onwriteError(stream, state, sync, er, cb);else {
29075    // Check if we're actually ready to finish, but don't emit yet
29076    var finished = needFinish(state);
29077
29078    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
29079      clearBuffer(stream, state);
29080    }
29081
29082    if (sync) {
29083      /*<replacement>*/
29084      asyncWrite(afterWrite, stream, state, finished, cb);
29085      /*</replacement>*/
29086    } else {
29087      afterWrite(stream, state, finished, cb);
29088    }
29089  }
29090}
29091
29092function afterWrite(stream, state, finished, cb) {
29093  if (!finished) onwriteDrain(stream, state);
29094  state.pendingcb--;
29095  cb();
29096  finishMaybe(stream, state);
29097}
29098
29099// Must force callback to be called on nextTick, so that we don't
29100// emit 'drain' before the write() consumer gets the 'false' return
29101// value, and has a chance to attach a 'drain' listener.
29102function onwriteDrain(stream, state) {
29103  if (state.length === 0 && state.needDrain) {
29104    state.needDrain = false;
29105    stream.emit('drain');
29106  }
29107}
29108
29109// if there's something in the buffer waiting, then process it
29110function clearBuffer(stream, state) {
29111  state.bufferProcessing = true;
29112  var entry = state.bufferedRequest;
29113
29114  if (stream._writev && entry && entry.next) {
29115    // Fast case, write everything using _writev()
29116    var l = state.bufferedRequestCount;
29117    var buffer = new Array(l);
29118    var holder = state.corkedRequestsFree;
29119    holder.entry = entry;
29120
29121    var count = 0;
29122    var allBuffers = true;
29123    while (entry) {
29124      buffer[count] = entry;
29125      if (!entry.isBuf) allBuffers = false;
29126      entry = entry.next;
29127      count += 1;
29128    }
29129    buffer.allBuffers = allBuffers;
29130
29131    doWrite(stream, state, true, state.length, buffer, '', holder.finish);
29132
29133    // doWrite is almost always async, defer these to save a bit of time
29134    // as the hot path ends with doWrite
29135    state.pendingcb++;
29136    state.lastBufferedRequest = null;
29137    if (holder.next) {
29138      state.corkedRequestsFree = holder.next;
29139      holder.next = null;
29140    } else {
29141      state.corkedRequestsFree = new CorkedRequest(state);
29142    }
29143    state.bufferedRequestCount = 0;
29144  } else {
29145    // Slow case, write chunks one-by-one
29146    while (entry) {
29147      var chunk = entry.chunk;
29148      var encoding = entry.encoding;
29149      var cb = entry.callback;
29150      var len = state.objectMode ? 1 : chunk.length;
29151
29152      doWrite(stream, state, false, len, chunk, encoding, cb);
29153      entry = entry.next;
29154      state.bufferedRequestCount--;
29155      // if we didn't call the onwrite immediately, then
29156      // it means that we need to wait until it does.
29157      // also, that means that the chunk and cb are currently
29158      // being processed, so move the buffer counter past them.
29159      if (state.writing) {
29160        break;
29161      }
29162    }
29163
29164    if (entry === null) state.lastBufferedRequest = null;
29165  }
29166
29167  state.bufferedRequest = entry;
29168  state.bufferProcessing = false;
29169}
29170
29171Writable.prototype._write = function (chunk, encoding, cb) {
29172  cb(new Error('_write() is not implemented'));
29173};
29174
29175Writable.prototype._writev = null;
29176
29177Writable.prototype.end = function (chunk, encoding, cb) {
29178  var state = this._writableState;
29179
29180  if (typeof chunk === 'function') {
29181    cb = chunk;
29182    chunk = null;
29183    encoding = null;
29184  } else if (typeof encoding === 'function') {
29185    cb = encoding;
29186    encoding = null;
29187  }
29188
29189  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
29190
29191  // .end() fully uncorks
29192  if (state.corked) {
29193    state.corked = 1;
29194    this.uncork();
29195  }
29196
29197  // ignore unnecessary end() calls.
29198  if (!state.ending && !state.finished) endWritable(this, state, cb);
29199};
29200
29201function needFinish(state) {
29202  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
29203}
29204function callFinal(stream, state) {
29205  stream._final(function (err) {
29206    state.pendingcb--;
29207    if (err) {
29208      stream.emit('error', err);
29209    }
29210    state.prefinished = true;
29211    stream.emit('prefinish');
29212    finishMaybe(stream, state);
29213  });
29214}
29215function prefinish(stream, state) {
29216  if (!state.prefinished && !state.finalCalled) {
29217    if (typeof stream._final === 'function') {
29218      state.pendingcb++;
29219      state.finalCalled = true;
29220      pna.nextTick(callFinal, stream, state);
29221    } else {
29222      state.prefinished = true;
29223      stream.emit('prefinish');
29224    }
29225  }
29226}
29227
29228function finishMaybe(stream, state) {
29229  var need = needFinish(state);
29230  if (need) {
29231    prefinish(stream, state);
29232    if (state.pendingcb === 0) {
29233      state.finished = true;
29234      stream.emit('finish');
29235    }
29236  }
29237  return need;
29238}
29239
29240function endWritable(stream, state, cb) {
29241  state.ending = true;
29242  finishMaybe(stream, state);
29243  if (cb) {
29244    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
29245  }
29246  state.ended = true;
29247  stream.writable = false;
vendor: 5,289 bytes, lines 29248-29434
29248}
29249
29250function onCorkedFinish(corkReq, state, err) {
29251  var entry = corkReq.entry;
29252  corkReq.entry = null;
29253  while (entry) {
29254    var cb = entry.callback;
29255    state.pendingcb--;
29256    cb(err);
29257    entry = entry.next;
29258  }
29259  if (state.corkedRequestsFree) {
29260    state.corkedRequestsFree.next = corkReq;
29261  } else {
29262    state.corkedRequestsFree = corkReq;
29263  }
29264}
29265
29266Object.defineProperty(Writable.prototype, 'destroyed', {
29267  get: function () {
29268    if (this._writableState === undefined) {
29269      return false;
29270    }
29271    return this._writableState.destroyed;
29272  },
29273  set: function (value) {
29274    // we ignore the value if the stream
29275    // has not been initialized yet
29276    if (!this._writableState) {
29277      return;
29278    }
29279
29280    // backward compatibility, the user is explicitly
29281    // managing destroyed
29282    this._writableState.destroyed = value;
29283  }
29284});
29285
29286Writable.prototype.destroy = destroyImpl.destroy;
29287Writable.prototype._undestroy = destroyImpl.undestroy;
29288Writable.prototype._destroy = function (err, cb) {
29289  this.end();
29290  cb(err);
29291};
29292/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57), __webpack_require__(455).setImmediate, __webpack_require__(34)))
29293
29294/***/ }),
29295/* 472 */
29296/***/ (function(module, exports, __webpack_require__) {
29297
29298/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */
29299;(function(root) {
29300
29301	/** Detect free variables */
29302	var freeExports =  true && exports &&
29303		!exports.nodeType && exports;
29304	var freeModule =  true && module &&
29305		!module.nodeType && module;
29306	var freeGlobal = typeof global == 'object' && global;
29307	if (
29308		freeGlobal.global === freeGlobal ||
29309		freeGlobal.window === freeGlobal ||
29310		freeGlobal.self === freeGlobal
29311	) {
29312		root = freeGlobal;
29313	}
29314
29315	/**
29316	 * The `punycode` object.
29317	 * @name punycode
29318	 * @type Object
29319	 */
29320	var punycode,
29321
29322	/** Highest positive signed 32-bit float value */
29323	maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
29324
29325	/** Bootstring parameters */
29326	base = 36,
29327	tMin = 1,
29328	tMax = 26,
29329	skew = 38,
29330	damp = 700,
29331	initialBias = 72,
29332	initialN = 128, // 0x80
29333	delimiter = '-', // '\x2D'
29334
29335	/** Regular expressions */
29336	regexPunycode = /^xn--/,
29337	regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
29338	regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
29339
29340	/** Error messages */
29341	errors = {
29342		'overflow': 'Overflow: input needs wider integers to process',
29343		'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
29344		'invalid-input': 'Invalid input'
29345	},
29346
29347	/** Convenience shortcuts */
29348	baseMinusTMin = base - tMin,
29349	floor = Math.floor,
29350	stringFromCharCode = String.fromCharCode,
29351
29352	/** Temporary variable */
29353	key;
29354
29355	/*--------------------------------------------------------------------------*/
29356
29357	/**
29358	 * A generic error utility function.
29359	 * @private
29360	 * @param {String} type The error type.
29361	 * @returns {Error} Throws a `RangeError` with the applicable error message.
29362	 */
29363	function error(type) {
29364		throw new RangeError(errors[type]);
29365	}
29366
29367	/**
29368	 * A generic `Array#map` utility function.
29369	 * @private
29370	 * @param {Array} array The array to iterate over.
29371	 * @param {Function} callback The function that gets called for every array
29372	 * item.
29373	 * @returns {Array} A new array of values returned by the callback function.
29374	 */
29375	function map(array, fn) {
29376		var length = array.length;
29377		var result = [];
29378		while (length--) {
29379			result[length] = fn(array[length]);
29380		}
29381		return result;
29382	}
29383
29384	/**
29385	 * A simple `Array#map`-like wrapper to work with domain name strings or email
29386	 * addresses.
29387	 * @private
29388	 * @param {String} domain The domain name or email address.
29389	 * @param {Function} callback The function that gets called for every
29390	 * character.
29391	 * @returns {Array} A new string of characters returned by the callback
29392	 * function.
29393	 */
29394	function mapDomain(string, fn) {
29395		var parts = string.split('@');
29396		var result = '';
29397		if (parts.length > 1) {
29398			// In email addresses, only the domain name should be punycoded. Leave
29399			// the local part (i.e. everything up to `@`) intact.
29400			result = parts[0] + '@';
29401			string = parts[1];
29402		}
29403		// Avoid `split(regex)` for IE8 compatibility. See #17.
29404		string = string.replace(regexSeparators, '\x2E');
29405		var labels = string.split('.');
29406		var encoded = map(labels, fn).join('.');
29407		return result + encoded;
29408	}
29409
29410	/**
29411	 * Creates an array containing the numeric code points of each Unicode
29412	 * character in the string. While JavaScript uses UCS-2 internally,
29413	 * this function will convert a pair of surrogate halves (each of which
29414	 * UCS-2 exposes as separate characters) into a single code point,
29415	 * matching UTF-16.
29416	 * @see `punycode.ucs2.encode`
29417	 * @see <https://mathiasbynens.be/notes/javascript-encoding>
29418	 * @memberOf punycode.ucs2
29419	 * @name decode
29420	 * @param {String} string The Unicode input string (UCS-2).
29421	 * @returns {Array} The new array of code points.
29422	 */
29423	function ucs2decode(string) {
29424		var output = [],
29425		    counter = 0,
29426		    length = string.length,
29427		    value,
29428		    extra;
29429		while (counter < length) {
29430			value = string.charCodeAt(counter++);
29431			if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
29432				// high surrogate, and there is a next character
29433				extra = string.charCodeAt(counter++);
29434				if ((extra & 0xFC00) == 0xDC00) { // low surrogate
vendor: 2,267 bytes, lines 29435-29511
29435					output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
29436				} else {
29437					// unmatched surrogate; only append this code unit, in case the next
29438					// code unit is the high surrogate of a surrogate pair
29439					output.push(value);
29440					counter--;
29441				}
29442			} else {
29443				output.push(value);
29444			}
29445		}
29446		return output;
29447	}
29448
29449	/**
29450	 * Creates a string based on an array of numeric code points.
29451	 * @see `punycode.ucs2.decode`
29452	 * @memberOf punycode.ucs2
29453	 * @name encode
29454	 * @param {Array} codePoints The array of numeric code points.
29455	 * @returns {String} The new Unicode string (UCS-2).
29456	 */
29457	function ucs2encode(array) {
29458		return map(array, function(value) {
29459			var output = '';
29460			if (value > 0xFFFF) {
29461				value -= 0x10000;
29462				output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
29463				value = 0xDC00 | value & 0x3FF;
29464			}
29465			output += stringFromCharCode(value);
29466			return output;
29467		}).join('');
29468	}
29469
29470	/**
29471	 * Converts a basic code point into a digit/integer.
29472	 * @see `digitToBasic()`
29473	 * @private
29474	 * @param {Number} codePoint The basic numeric code point value.
29475	 * @returns {Number} The numeric value of a basic code point (for use in
29476	 * representing integers) in the range `0` to `base - 1`, or `base` if
29477	 * the code point does not represent a value.
29478	 */
29479	function basicToDigit(codePoint) {
29480		if (codePoint - 48 < 10) {
29481			return codePoint - 22;
29482		}
29483		if (codePoint - 65 < 26) {
29484			return codePoint - 65;
29485		}
29486		if (codePoint - 97 < 26) {
29487			return codePoint - 97;
29488		}
29489		return base;
29490	}
29491
29492	/**
29493	 * Converts a digit/integer into a basic code point.
29494	 * @see `basicToDigit()`
29495	 * @private
29496	 * @param {Number} digit The numeric value of a basic code point.
29497	 * @returns {Number} The basic code point whose value (when used for
29498	 * representing integers) is `digit`, which needs to be in the range
29499	 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
29500	 * used; else, the lowercase form is used. The behavior is undefined
29501	 * if `flag` is non-zero and `digit` has no uppercase form.
29502	 */
29503	function digitToBasic(digit, flag) {
29504		//  0..25 map to ASCII a..z or A..Z
29505		// 26..35 map to ASCII 0..9
29506		return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
29507	}
29508
29509	/**
29510	 * Bias adaptation function as per section 3.4 of RFC 3492.
29511	 * https
vendor: 7,293 bytes, lines 29511-29786
29511://tools.ietf.org/html/rfc3492#section-3.4
29512	 * @private
29513	 */
29514	function adapt(delta, numPoints, firstTime) {
29515		var k = 0;
29516		delta = firstTime ? floor(delta / damp) : delta >> 1;
29517		delta += floor(delta / numPoints);
29518		for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
29519			delta = floor(delta / baseMinusTMin);
29520		}
29521		return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
29522	}
29523
29524	/**
29525	 * Converts a Punycode string of ASCII-only symbols to a string of Unicode
29526	 * symbols.
29527	 * @memberOf punycode
29528	 * @param {String} input The Punycode string of ASCII-only symbols.
29529	 * @returns {String} The resulting string of Unicode symbols.
29530	 */
29531	function decode(input) {
29532		// Don't use UCS-2
29533		var output = [],
29534		    inputLength = input.length,
29535		    out,
29536		    i = 0,
29537		    n = initialN,
29538		    bias = initialBias,
29539		    basic,
29540		    j,
29541		    index,
29542		    oldi,
29543		    w,
29544		    k,
29545		    digit,
29546		    t,
29547		    /** Cached calculation results */
29548		    baseMinusT;
29549
29550		// Handle the basic code points: let `basic` be the number of input code
29551		// points before the last delimiter, or `0` if there is none, then copy
29552		// the first basic code points to the output.
29553
29554		basic = input.lastIndexOf(delimiter);
29555		if (basic < 0) {
29556			basic = 0;
29557		}
29558
29559		for (j = 0; j < basic; ++j) {
29560			// if it's not a basic code point
29561			if (input.charCodeAt(j) >= 0x80) {
29562				error('not-basic');
29563			}
29564			output.push(input.charCodeAt(j));
29565		}
29566
29567		// Main decoding loop: start just after the last delimiter if any basic code
29568		// points were copied; start at the beginning otherwise.
29569
29570		for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
29571
29572			// `index` is the index of the next character to be consumed.
29573			// Decode a generalized variable-length integer into `delta`,
29574			// which gets added to `i`. The overflow checking is easier
29575			// if we increase `i` as we go, then subtract off its starting
29576			// value at the end to obtain `delta`.
29577			for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
29578
29579				if (index >= inputLength) {
29580					error('invalid-input');
29581				}
29582
29583				digit = basicToDigit(input.charCodeAt(index++));
29584
29585				if (digit >= base || digit > floor((maxInt - i) / w)) {
29586					error('overflow');
29587				}
29588
29589				i += digit * w;
29590				t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
29591
29592				if (digit < t) {
29593					break;
29594				}
29595
29596				baseMinusT = base - t;
29597				if (w > floor(maxInt / baseMinusT)) {
29598					error('overflow');
29599				}
29600
29601				w *= baseMinusT;
29602
29603			}
29604
29605			out = output.length + 1;
29606			bias = adapt(i - oldi, out, oldi == 0);
29607
29608			// `i` was supposed to wrap around from `out` to `0`,
29609			// incrementing `n` each time, so we'll fix that now:
29610			if (floor(i / out) > maxInt - n) {
29611				error('overflow');
29612			}
29613
29614			n += floor(i / out);
29615			i %= out;
29616
29617			// Insert `n` at position `i` of the output
29618			output.splice(i++, 0, n);
29619
29620		}
29621
29622		return ucs2encode(output);
29623	}
29624
29625	/**
29626	 * Converts a string of Unicode symbols (e.g. a domain name label) to a
29627	 * Punycode string of ASCII-only symbols.
29628	 * @memberOf punycode
29629	 * @param {String} input The string of Unicode symbols.
29630	 * @returns {String} The resulting Punycode string of ASCII-only symbols.
29631	 */
29632	function encode(input) {
29633		var n,
29634		    delta,
29635		    handledCPCount,
29636		    basicLength,
29637		    bias,
29638		    j,
29639		    m,
29640		    q,
29641		    k,
29642		    t,
29643		    currentValue,
29644		    output = [],
29645		    /** `inputLength` will hold the number of code points in `input`. */
29646		    inputLength,
29647		    /** Cached calculation results */
29648		    handledCPCountPlusOne,
29649		    baseMinusT,
29650		    qMinusT;
29651
29652		// Convert the input in UCS-2 to Unicode
29653		input = ucs2decode(input);
29654
29655		// Cache the length
29656		inputLength = input.length;
29657
29658		// Initialize the state
29659		n = initialN;
29660		delta = 0;
29661		bias = initialBias;
29662
29663		// Handle the basic code points
29664		for (j = 0; j < inputLength; ++j) {
29665			currentValue = input[j];
29666			if (currentValue < 0x80) {
29667				output.push(stringFromCharCode(currentValue));
29668			}
29669		}
29670
29671		handledCPCount = basicLength = output.length;
29672
29673		// `handledCPCount` is the number of code points that have been handled;
29674		// `basicLength` is the number of basic code points.
29675
29676		// Finish the basic string - if it is not empty - with a delimiter
29677		if (basicLength) {
29678			output.push(delimiter);
29679		}
29680
29681		// Main encoding loop:
29682		while (handledCPCount < inputLength) {
29683
29684			// All non-basic code points < n have been handled already. Find the next
29685			// larger one:
29686			for (m = maxInt, j = 0; j < inputLength; ++j) {
29687				currentValue = input[j];
29688				if (currentValue >= n && currentValue < m) {
29689					m = currentValue;
29690				}
29691			}
29692
29693			// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,
29694			// but guard against overflow
29695			handledCPCountPlusOne = handledCPCount + 1;
29696			if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
29697				error('overflow');
29698			}
29699
29700			delta += (m - n) * handledCPCountPlusOne;
29701			n = m;
29702
29703			for (j = 0; j < inputLength; ++j) {
29704				currentValue = input[j];
29705
29706				if (currentValue < n && ++delta > maxInt) {
29707					error('overflow');
29708				}
29709
29710				if (currentValue == n) {
29711					// Represent delta as a generalized variable-length integer
29712					for (q = delta, k = base; /* no condition */; k += base) {
29713						t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
29714						if (q < t) {
29715							break;
29716						}
29717						qMinusT = q - t;
29718						baseMinusT = base - t;
29719						output.push(
29720							stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
29721						);
29722						q = floor(qMinusT / baseMinusT);
29723					}
29724
29725					output.push(stringFromCharCode(digitToBasic(q, 0)));
29726					bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
29727					delta = 0;
29728					++handledCPCount;
29729				}
29730			}
29731
29732			++delta;
29733			++n;
29734
29735		}
29736		return output.join('');
29737	}
29738
29739	/**
29740	 * Converts a Punycode string representing a domain name or an email address
29741	 * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
29742	 * it doesn't matter if you call it on a string that has already been
29743	 * converted to Unicode.
29744	 * @memberOf punycode
29745	 * @param {String} input The Punycoded domain name or email address to
29746	 * convert to Unicode.
29747	 * @returns {String} The Unicode representation of the given Punycode
29748	 * string.
29749	 */
29750	function toUnicode(input) {
29751		return mapDomain(input, function(string) {
29752			return regexPunycode.test(string)
29753				? decode(string.slice(4).toLowerCase())
29754				: string;
29755		});
29756	}
29757
29758	/**
29759	 * Converts a Unicode string representing a domain name or an email address to
29760	 * Punycode. Only the non-ASCII parts of the domain name will be converted,
29761	 * i.e. it doesn't matter if you call it with a domain that's already in
29762	 * ASCII.
29763	 * @memberOf punycode
29764	 * @param {String} input The domain name or email address to convert, as a
29765	 * Unicode string.
29766	 * @returns {String} The Punycode representation of the given domain name or
29767	 * email address.
29768	 */
29769	function toASCII(input) {
29770		return mapDomain(input, function(string) {
29771			return regexNonASCII.test(string)
29772				? 'xn--' + encode(string)
29773				: string;
29774		});
29775	}
29776
29777	/*--------------------------------------------------------------------------*/
29778
29779	/** Define the public API */
29780	punycode = {
29781		/**
29782		 * A string representing the current Punycode.js version number.
29783		 * @memberOf punycode
29784		 * @type String
29785		 */
29786		'version': '1.
297864.1',
29787		/**
29788		 * An object of methods to convert from JavaScript's internal character
29789		 * representation (UCS-2) to Unicode code points, and back.
29790		 * @see <https://mathiasbynens.be/notes/javascript-encoding>
29791		 * @memberOf punycode
29792		 * @type Object
29793		 */
29794		'ucs2': {
29795			'decode': ucs2decode,
29796			'encode': ucs2encode
29797		},
29798		'decode': decode,
29799		'encode': encode,
29800		'toASCII': toASCII,
29801		'toUnicode': toUnicode
29802	};
29803
29804	/** Expose `punycode` */
29805	// Some AMD build optimizers, like r.js, check for specific condition patterns
29806	// like the following:
29807	if (
29808		true
29809	) {
29810		!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
29811			return punycode;
29812		}).call(exports, __webpack_require__, exports, module),
29813				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
29814	} else {}
29815
29816}(this));
29817
29818/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(186)(module), __webpack_require__(34)))
29819
29820/***/ }),
29821/* 473 */,
29822/* 474 */,
29823/* 475 */,
29824/* 476 */,
29825/* 477 */
29826/***/ (function(module, exports, __webpack_require__) {
29827
29828var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
29829  if (true) {
29830    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
29831				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
29832				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
29833				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
29834  } else { var mod; }
29835})(this, function (exports, module) {
29836  'use strict';
29837
29838  var defaultOptions = {
29839    timeout: 5000,
29840    jsonpCallback: 'callback',
29841    jsonpCallbackFunction: null
29842  };
29843
29844  function generateCallbackFunction() {
29845    return 'jsonp_' + Date.now() + '_' + Math.ceil(Math.random() * 100000);
29846  }
29847
29848  function clearFunction(functionName) {
29849    // IE8 throws an exception when you try to delete a property on window
29850    // http://stackoverflow.com/a/1824228/751089
29851    try {
29852      delete window[functionName];
29853    } catch (e) {
29854      window[functionName] = undefined;
29855    }
29856  }
29857
29858  function removeScript(scriptId) {
29859    var script = document.getElementById(scriptId);
29860    if (script) {
29861      document.getElementsByTagName('head')[0].removeChild(script);
29862    }
29863  }
29864
29865  function fetchJsonp(_url) {
29866    var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
29867
29868    // to avoid param reassign
29869    var url = _url;
29870    var timeout = options.timeout || defaultOptions.timeout;
29871    var jsonpCallback = options.jsonpCallback || defaultOptions.jsonpCallback;
29872
29873    var timeoutId = undefined;
29874
29875    return new Promise(function (resolve, reject) {
29876      var callbackFunction = options.jsonpCallbackFunction || generateCallbackFunction();
29877      var scriptId = jsonpCallback + '_' + callbackFunction;
29878
29879      window[callbackFunction] = function (response) {
29880        resolve({
29881          ok: true,
29882          // keep consistent with fetch API
29883          json: function json() {
29884            return Promise.resolve(response);
29885          }
29886        });
29887
29888        if (timeoutId) clearTimeout(timeoutId);
29889
29890        removeScript(scriptId);
29891
29892        clearFunction(callbackFunction);
29893      };
29894
29895      // Check if the user set their own params, and if not add a ? to start a list of params
29896      url += url.indexOf('?') === -1 ? '?' : '&';
29897
29898      var jsonpScript = document.createElement('script');
29899      jsonpScript.setAttribute('src', '' + url + jsonpCallback + '=' + callbackFunction);
29900      if (options.charset) {
29901        jsonpScript.setAttribute('charset', options.charset);
29902      }
29903      if (options.nonce) {
29904        jsonpScript.setAttribute('nonce', options.nonce);
29905      }
29906      if (options.referrerPolicy) {
29907        jsonpScript.setAttribute('referrerPolicy', options.referrerPolicy);
29908      }
29909      jsonpScript.id = scriptId;
29910      document.getElementsByTagName('head')[0].appendChild(jsonpScript);
29911
29912      timeoutId = setTimeout(function () {
29913        reject(new Error('JSONP request to ' + _url + ' timed out'));
29914
29915        clearFunction(callbackFunction);
29916        removeScript(scriptId);
29917        window[callbackFunction] = function () {
29918          clearFunction(callbackFunction);
29919        };
29920      }, timeout);
29921
29922      // Caught if got 404/500
29923      jsonpScript.onerror = function () {
29924        reject(new Error('JSONP request to ' + _url + ' failed'));
29925
29926        clearFunction(callbackFunction);
29927        removeScript(scriptId);
29928        if (timeoutId) clearTimeout(timeoutId);
29929      };
29930    });
29931  }
29932
29933  // export as global function
29934  /*
29935  let local;
29936  if (typeof global !== 'undefined') {
29937    local = global;
29938  } else if (typeof self !== 'undefined') {
29939    local = self;
29940  } else {
29941    try {
29942      local = Function('return this')();
29943    } catch (e) {
29944      throw new Error('polyfill failed because global object is unavailable in this environment');
29945    }
29946  }
29947  local.fetchJsonp = fetchJsonp;
29948  */
29949
29950  module.exports = fetchJsonp;
29951});
29952
29953/***/ }),
29954/* 478 */
29955/***/ (function(module, __webpack_exports__, __webpack_require__) {
29956
29957"use strict";
29958/* unused harmony export makeURL */
29959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return init; });
29960/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75);
29961/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__);
29962/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
29963/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);
29964/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60);
29965/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2__);
29966/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
29967/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__);
29968/* harmony import */ var _fetchTimeout__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(127);
29969/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);
29970
29971
29972
29973
29974
29975
29976var makeURL = function makeURL(id) {
29977  var mapiUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "./";
29978  return "".concat(mapiUrl, "public/service/").concat(id);
29979};
29980var init = /*#__PURE__*/function () {
29981  var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee(id, fallback, mapiUrl, returnWithoutStreams) {
29982    var request, response;
29983    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee$(_context) {
29984      while (1) {
29985        switch (_context.prev = _context.next) {
29986          case 0:
29987            _context.prev = 0;
29988            _context.next = 3;
29989            return Object(_fetchTimeout__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(makeURL(id, mapiUrl), {}, 3000);
29990
29991          case 3:
29992            request = _context.sent;
29993            _context.next = 6;
29994            return request.json();
29995
29996          case 6:
29997            response = _context.sent;
29998            return _context.abrupt("return", response);
29999
30000          case 10:
30001            _context.prev = 10;
30002            _context.t0 = _context["catch"](0);
30003            Object(_logger__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "e"])("Init error", _context.t0);
30004
30005          case 13:
30006            return _context.abrupt("return", {
30007              id: id,
30008              streams: fallback
30009            });
30010
30011          case 14:
30012          case "end":
30013            return _context.stop();
30014        }
30015      }
30016    }, _callee, null, [[0, 10]]);
30017  }));
30018
30019  return function init(_x, _x2, _x3, _x4) {
30020    return _ref.apply(this, arguments);
30021  };
30022}();
30023
30024/***/ }),
30025/* 479 */
30026/***/ (function(module, exports, __webpack_require__) {
30027
30028"use strict";
30029
30030
30031var _require = __webpack_require__(774),
30032    ConsentString = _require.ConsentString;
30033
30034var _require2 = __webpack_require__(467),
30035    decodeConsentString = _require2.decodeConsentString;
30036
30037var _require3 = __webpack_require__(464),
30038    encodeConsentString = _require3.encodeConsentString;
30039
30040module.exports = {
30041  ConsentString: ConsentString,
30042  decodeConsentString: decodeConsentString,
30043  encodeConsentString: encodeConsentString
30044};
30045
30046/***/ }),
30047/* 480 */
30048/***/ (function(module, exports, __webpack_require__) {
30049
30050"use strict";
30051/* WEBPACK VAR INJECTION */(function(Buffer) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
30052
30053(function (root, factory) {
30054    if (true) {
30055        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
30056				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
30057				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
30058				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
30059    } else {}
30060}(typeof self === "undefined" ? this : self, function () {
30061    var decodeBinary = function (string) {
30062        var result = "";
30063
30064        for (var index = 0, length = string.length; index < length; index += 1) {
30065            var bits = string.charCodeAt(index).toString(2);
30066            var pad = "00000000".slice(0, 8 - bits.length);
30067            result += pad + bits;
30068        }
30069
30070        return result;
30071    };
30072
30073    var decodeBase64 = function (string) {
30074        if (typeof atob === "function") {
30075            var stringFixed = string.
30076                replace(/_/g, "/").
30077                replace(/-/g, "+");
30078
30079            try {
30080                return atob(stringFixed);
30081            } catch (error) {
30082                throw new Error("Unable to decode transparency and consent string");
30083            }
30084        }
30085
30086        if (typeof Buffer === "function") {
30087            return Buffer.from(string, "base64").toString("binary");
30088        }
30089
30090        throw new Error("Unable to detect base64 decoder");
30091    };
30092
30093    var decodeInt = function (bits) {
30094        return parseInt(bits, 2) || 0;
30095    };
30096
30097    var decodeDate = function (bits) {
30098        return decodeInt(bits) * 100;
30099    };
30100
30101    var decodeString = function (bits) {
30102        var charOffset = "A".charCodeAt();
30103        var items = bits.match(/.{6}/g) || [];
30104        var result = "";
30105
30106        for (var index = 0, length = items.length; index < length; index += 1) {
30107            var charCode = decodeInt(items[index]) + charOffset;
30108            result += String.fromCharCode(charCode);
30109        }
30110
30111        return result;
30112    };
30113
30114    var decodeBoolean = function (bit) {
30115        return Boolean(Number(bit));
30116    };
30117
30118    var decodeFlags = function (bits) {
30119        var items = bits.split("");
30120        var result = {};
30121
30122        for (var index = 0, length = items.length; index < length; index += 1) {
30123            if (decodeBoolean(items[index])) {
30124                result[index + 1] = true;
30125            }
30126        }
30127
30128        return result;
30129    };
30130
30131    var getSegments = function (string) {
30132        if (typeof string !== "string") {
30133            throw new Error("Invalid transparency and consent string specified");
30134        }
30135
30136        var stringBlocks = string.split(".");
30137        var result = [];
30138
30139        for (var index = 0, length = stringBlocks.length; index < length; index += 1) {
30140            result.push(decodeBinary(decodeBase64(stringBlocks[index])));
30141        }
30142
30143        var version = decodeInt(result[0].slice(0, 6));
30144        if (version !== 2) {
30145            throw new Error("Unsupported transparency and consent string version “" + version + "”");
30146        }
30147
30148        return result;
30149    };
30150
30151    var getQueue = function (segments) {
30152        var queuePurposes = [{
30153            key: "purposeConsents",
30154            size: 24,
30155            decoder: decodeFlags
30156        }, {
30157            key: "purposeLegitimateInterests",
30158            size: 24,
30159            decoder: decodeFlags
30160        }];
30161
30162        var queueVendors = [{
30163            key: "maxVendorId",
30164            size: 16
30165        }, {
30166            key: "isRangeEncoding",
30167            size: 1,
30168            decoder: decodeBoolean
30169        }];
30170
30171        var queueCore = [{
30172            key: "version",
30173            size: 6
30174        }, {
30175            key: "created",
30176            size: 36,
30177            decoder: decodeDate
30178        }, {
30179            key: "lastUpdated",
30180            size: 36,
30181            decoder: decodeDate
30182        }, {
30183            key: "cmpId",
30184            size: 12
30185        }, {
30186            key: "cmpVersion",
30187            size: 12
30188        }, {
30189            key: "consentScreen",
30190            size: 6
30191        }, {
30192            key: "consentLanguage",
30193            size: 12,
30194            decoder: decodeString
30195        }, {
30196            key: "vendorListVersion",
30197            size: 12
30198        }, {
30199            key: "policyVersion",
30200            size: 6
30201        }, {
30202            key: "isServiceSpecified",
30203            size: 1,
30204            decoder: decodeBoolean
30205        }, {
30206            key: "useNonStandardStacks",
30207            size: 1,
30208            decoder: decodeBoolean
30209        }, {
30210            key: "specialFeatureOptins",
30211            size: 12,
30212            decoder: decodeFlags
30213        }].concat(queuePurposes).concat({
30214            key: "purposeOneTreatment",
30215            size: 1,
30216            decoder: decodeBoolean
30217        }, {
30218            key: "publisherCountryCode",
30219            size: 12,
30220            decoder: decodeString
30221        }, {
30222            key: "vendorConsents",
30223            queue: [{
30224                key: "maxVendorId",
30225                size: 16
30226            }, {
30227                key: "isRangeEncoding",
30228                size: 1,
30229                decoder: decodeBoolean
30230            }]
30231        }, {
30232            key: "vendorLegitimateInterests",
30233            queue: queueVendors
30234        }, {
30235            key: "publisherRestrictions",
30236            queue: [{
30237                key: "numPubRestrictions",
30238                size: 12
30239            }]
30240        });
30241
30242        var queueSegment = [{
30243            size: 3
30244        }];
30245
30246        var queueDisclosedVendors = [].
30247            concat(queueSegment).
30248            concat(queueVendors);
30249
30250        var queueAllowedVendors = [].
30251            concat(queueSegment).
30252            concat(queueVendors);
30253
30254        var queuePublisherTC = [].
30255            concat(queueSegment).
30256            concat(queuePurposes).
30257            concat({
30258                key: "numCustomPurposes",
30259                size: 6
30260            });
30261
30262        var result = [{
30263            key: "core",
30264            queue: queueCore
30265        }];
30266
30267        for (var index = 1; index < segments.length; index += 1) {
30268            var segment = segments[index];
30269
30270            var type = decodeInt(segment.slice(0, 3));
30271
30272            if (type === 1) {
30273                result.push({
30274                    key: "disclosedVendors",
30275                    queue: queueDisclosedVendors
30276                });
30277            } else
30278
30279            if (type === 2) {
30280                result.push({
30281                    key: "allowedVendors",
30282                    queue: queueAllowedVendors
30283                });
30284            } else
30285
30286            if (type === 3) {
30287                result.push({
30288                    key: "publisherTC",
30289                    queue: queuePublisherTC
30290                });
30291            }
30292        }
30293
30294        return result;
30295    };
30296
30297    return function (string) {
30298        var reduceQueue = function (queue, schema, value, result) {
30299            var reduceNumPubEntries = function () {
30300                if (result.pubRestrictionEntry && result.rangeEntry
30300) {
30301                    for (var key in result.rangeEntry) {
30302                        if (Object.prototype.hasOwnProperty.call(result.rangeEntry, key)) {
30303                            result.pubRestrictionEntry[key] = (result.pubRestrictionEntry[key] || []).
30304                                concat(result.rangeEntry[key]);
30305                        }
30306                    }
30307                }
30308
30309                if (result.numPubRestrictions) {
30310                    result.numPubRestrictions -= 1;
30311
30312                    queue.push({
30313                        key: "purposeId",
30314                        size: 6
30315                    }, {
30316                        key: "restrictionType",
30317                        size: 2
30318                    }, {
30319                        key: "numEntries",
30320                        size: 12
30321                    });
30322                }
30323            };
30324
30325            var reduceNumEntries = function () {
30326                if (result.numEntries) {
30327                    result.numEntries -= 1;
30328
30329                    queue.push({
30330                        key: "isRange",
30331                        size: 1,
30332                        decoder: decodeBoolean
30333                    }, {
30334                        key: "startVendorId",
30335                        size: 16
30336                    });
30337                } else {
30338                    reduceNumPubEntries();
30339                }
30340            };
30341
30342            var getRangeResult = function () {
30343                if (result.purposeId) {
30344                    return [{
30345                        purpose: result.purposeId,
30346                        isAllowed: result.restrictionType !== 0,
30347                        isConsentRequired: result.restrictionType === 1,
30348                        isLegitimateInterestRequired: result.restrictionType === 2
30349                    }];
30350                }
30351
30352                return true;
30353            };
30354
30355            if (schema.key === "isRangeEncoding") {
30356                queue.push(value ? {
30357                    key: "numEntries",
30358                    size: 12
30359                } : {
30360                    key: "bitField",
30361                    size: result.maxVendorId,
30362                    decoder: decodeFlags
30363                });
30364            } else
30365
30366            if (schema.key === "numEntries") {
30367                result.rangeEntry = {};
30368                reduceNumEntries();
30369            } else
30370
30371            if (schema.key === "isRange") {
30372                if (value) {
30373                    queue.push({
30374                        key: "endVendorId",
30375                        size: 16
30376                    });
30377                }
30378            } else
30379
30380            if (schema.key === "startVendorId") {
30381                if (!result.isRange) {
30382                    result.rangeEntry[value] = getRangeResult();
30383                    reduceNumEntries();
30384                }
30385            } else
30386
30387            if (schema.key === "endVendorId") {
30388                for (var vendorId = result.startVendorId; vendorId <= result.endVendorId; vendorId += 1) {
30389                    result.rangeEntry[vendorId] = getRangeResult();
30390                }
30391                reduceNumEntries();
30392            } else
30393
30394            if (schema.key === "numCustomPurposes") {
30395                queue.push({
30396                    key: "customPurposeConsents",
30397                    size: result.numCustomPurposes,
30398                    decoder: decodeFlags
30399                }, {
30400                    key: "customPurposeLegitimateInterests",
30401                    size: result.numCustomPurposes,
30402                    decoder: decodeFlags
30403                });
30404            } else
30405
30406            if (schema.key === "numPubRestrictions") {
30407                result.pubRestrictionEntry = {};
30408                reduceNumPubEntries();
30409            }
30410        };
30411
30412        var reduceResult = function (result) {
30413            return result.pubRestrictionEntry || result.rangeEntry || result.bitField || result;
30414        };
30415
30416        var offset = 0;
30417
30418        var getSchemaResult = function (schema, bits) {
30419            var value = bits.slice(offset, offset + schema.size);
30420            offset += schema.size;
30421            return (schema.decoder || decodeInt)(value);
30422        };
30423
30424        var getSectionResult = function (sectionSchema, bits) {
30425            if (!sectionSchema.queue) {
30426                return getSchemaResult(sectionSchema, bits);
30427            }
30428
30429            var result = {};
30430
30431            for (var index = 0; index < sectionSchema.queue.length; index += 1) {
30432                var schema = sectionSchema.queue[index];
30433
30434                var value = getSchemaResult(schema, bits);
30435                if (schema.key) {
30436                    result[schema.key] = value;
30437                }
30438
30439                reduceQueue(sectionSchema.queue, schema, value, result);
30440            }
30441
30442            return reduceResult(result);
30443        };
30444
30445        var getBlockResult = function (blockSchema, bits) {
30446            var result = {};
30447
30448            for (var index = 0; index < blockSchema.queue.length; index += 1) {
30449                var schema = blockSchema.queue[index];
30450
30451                var value = getSectionResult(schema, bits);
30452                if (schema.key) {
30453                    result[schema.key] = value;
30454                }
30455
30456                reduceQueue(blockSchema.queue, schema, value, result);
30457            }
30458
30459            return reduceResult(result);
30460        };
30461
30462        var getResult = function () {
30463            var segments = getSegments(string);
30464            var queue = getQueue(segments);
30465
30466            var result = {};
30467
30468            for (var index = 0; index < queue.length; index += 1) {
30469                var schema = queue[index];
30470                var bits = segments[index];
30471
30472                var value = getBlockResult(schema, bits);
30473                if (schema.key) {
30474                    result[schema.key] = value;
30475                }
30476
30477                offset = 0;
30478            }
30479
30480            return result;
30481        };
30482
30483        return getResult();
30484    };
30485}));
30486
30487/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(113).Buffer))
30488
30489/***/ }),
30490/* 481 */,
30491/* 482 */
30492/***/ (function(module, __webpack_exports__, __webpack_require__) {
30493
30494"use strict";
30495
30496// EXPORTS
30497__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ IconSheetbabel_target_legacy_IconSheet; });
30498
30499// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
30500var preact_modulebabel_target_legacy = __webpack_require__(1);
30501
30502// CONCATENATED MODULE: ./src/components/IconSheet/IconSheet.tsx?babel-target=legacy
30503
30504var IconSheetbabel_target_legacy_IconSheet = function IconSheet() {
30505  return Object(preact_modulebabel_target_legacy["h"])("svg", {
30506    width: "32",
30507    height: "32",
30508    style: {
30509      display: "none"
30510    },
30511    xmlns: "http://www.w3.org/2000/svg"
30512  }, Object(preact_modulebabel_target_legacy["h"])("symbol", {
30513    id: "icon-fave-set",
30514    viewBox: "0 0 32 32"
30515  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30516    fill: "currentColor",
30517    fillRule: "evenodd",
30518    d: "M24.383 8.635a5.481 5.481 0 0 0-7.81 0 5.508 5.508 0 0 0-.573.68 5.677 5.677 0 0 0-.573-.68 5.482 5.482 0 0 0-7.81 0 5.624 5.624 0 0 0 0 7.893L16 25l8.383-8.472a5.624 5.624 0 0 0 0-7.893"
30519  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30520    id: "icon-fave-unset",
30521    viewBox: "0 0 32 32"
30522  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30523    fill: "currentColor",
30524    fillRule: "evenodd",
30525    d: "M22.281 15.215l-6.283 6.034-6.282-6.034a3.212 3.212 0 0 1-.995-2.307c0-.867.353-1.69.995-2.307a3.444 3.444 0 0 1 2.402-.955c.908 0 1.69.282 2.478.805.222.146 1.402 1.057 1.402 1.057s1.176-.911 1.403-1.057c.793-.523 1.57-.805 2.478-.805.908 0 1.762.34 2.402.955.636.61.995 1.44.995 2.307 0 .868-.35 1.687-.995 2.307m2.004-6.538A5.925 5.925 0 0 0 20.142 7a5.883 5.883 0 0 0-4.149 1.697A5.878 5.878 0 0 0 11.846 7c-1.5 0-2.988.558-4.128 1.677-2.292 2.24-2.347 5.864.176 8.345 2.816 2.773 7.313 7.207 8.105 7.978.787-.775 5.288-5.21 8.104-7.978 2.524-2.48 2.473-6.096.182-8.345"
30526  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30527    id: "icon-small-play-circle",
30528    viewBox: "0 0 32 32"
30529  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30530    fill: "currentColor",
30531    fillRule: "evenodd",
30532    d: "M16 0c8.837 0 16 7.163 16 16s-7.163 16-16 16S0 24.837 0 16 7.163 0 16 0zm8.08 16.066l-2.4-1.637v3.274l2.4-1.637zm-4.2 2.863v-5.726l-1.8-1.229v8.182l1.8-1.227zm-3.6 2.455V10.748l-1.8-1.228v13.09l1.8-1.226zm-3.6 2.16V8.588l-1.8-1.228v17.41l1.8-1.226z"
30533  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30534    id: "icon-small-play",
30535    viewBox: "0 0 32 32"
30536  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30537    fill: "currentColor",
30538    fillRule: "evenodd",
30539    d: "M24.08 16.066l-2.4 1.637V14.43l2.4 1.637zm-4.2 2.863l-1.8 1.227v-8.182l1.8 1.229v5.726zm-3.6 2.455l-1.8 1.226V9.52l1.8 1.228v10.636zm-3.6 2.16l-1.8 1.226V7.36l1.8 1.228v14.956z"
30540  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30541    id: "icon-songaction-add",
30542    viewBox: "0 0 24 24"
30543  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30544    fill: "currentColor",
30545    fillRule: "evenodd",
30546    d: "M10.71 4v6.71H4v2.58h6.71V20h2.58v-6.71H20v-2.58h-6.71V4z"
30547  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30548    id: "icon-songaction-download",
30549    viewBox: "0 0 24 24"
30550  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30551    fill: "currentColor",
30552    fillRule: "evenodd",
30553    d: "M10.5 4v10.72l-4.609-4.61L4.001 12 11 19H5v-3H4v4h7.983l.01-.009.008.007V20L20 12l-1.89-1.89-4.61 4.61V4zM18.546 15.636v2.91h-3.879l-.97.97h5.819v-3.88z"
30554  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30555    id: "icon-songaction-info",
30556    viewBox: "0 0 24 24"
30557  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30558    fill: "currentColor",
30559    fillRule: "evenodd",
30560    d: "M16.571 16.714c-.944 0-1.714-.769-1.714-1.714s.77-1.714 1.714-1.714c.946 0 1.715.769 1.715 1.714s-.77 1.714-1.715 1.714zM7.43 19.571c-.945 0-1.715-.769-1.715-1.714s.77-1.714 1.715-1.714c.945 0 1.714.769 1.714 1.714s-.77 1.714-1.714 1.714zM9.714 6.79v8.518a3.41 3.41 0 0 0-2.285-.878 3.43 3.43 0 1 0 3.428 3.428v-6.502l8-3.01v4.105a3.41 3.41 0 0 0-2.286-.879A3.43 3.43 0 1 0 20 15V3L9.714 6.79z"
30561  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30562    id: "icon-songaction-rate",
30563    viewBox: "0 0 24 24"
30564  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30565    fill: "currentColor",
30566    fillRule: "evenodd",
30567    d: "M11.704 4l-1 2.61-3.079 4.89H6v7.2h1.77L9.5 20H17l1.09-1.105v-1.56l-.2-.205.5-.5v-1.565l-.195-.2.5-.5V12.8l-.195-.2.5-.5v-1.57l-1.03-1.045h-3.8l-.1-.185.63-2.3-.255-3h-2.74zM8.23 17.33l.144-4.454 3.5-5.585.741-1.921h.59l.125 1.5-.696 2.615.74 1.38h3.931l.35.36v.56l-.35.36H16.15l1.2 1.226v.574l-.35.36h-1.15l1.2 1.226v.574l-.35.36h-1.145l1.205 1.22v.585l-.35.36H9.94l-1.71-1.3z"
30568  })), Object(preact_modulebabel_target_legacy["h"])("symbol", {
30569    id: "icon-songaction-buy",
30570    viewBox: "0 0 24 24"
30571  }, Object(preact_modulebabel_target_legacy["h"])("path", {
30572    fill: "currentColor",
30573    fillRule: "evenodd",
30574    d: "M15.5 17.934l-.5.535-.5-.535v-4.82l.5-.536.5.536v4.82zm-2 0l-.5.535-.5-.535v-4.82l.5-.536.5.536v4.82zm-2 0l-.5.535-.5-.535v-4.82l.5-.536.5.536v4.82zm-2 0l-.5.535-.5-.535v-4.82l.5-.536.5.536v4.82zm2.32-12.585c.415 0 .75.36.75.803 0 .443-.335.803-.75.803-.414 0-.75-.36-.75-.803 0-.444.336-.803.75-.803zm0 2.945c.37 0 .713-.153 1.01-.341l2.784 2.943H8.027l2.783-2.943c.297.188.64.341 1.01.341zm7.5 2.602h-2.293l-3.49-3.7c.175-.319.283-.667.283-1.063 0-1.183-.895-2.133-2-2.133-1.104 0-2 .964-2 2.147 0 .396.107.728.283 1.046l-3.49 3.703H4.32l-.32.611v1.071l.32.46h.5l1 6.962h12l1-6.962h.5l.68-.46v-1.07l-.68-.612z"
30575  })));
30576};
30577/* harmony default export */ var IconSheetbabel_target_legacy = (IconSheetbabel_target_legacy_IconSheet);
30578// CONCATENATED MODULE: ./src/components/IconSheet/index.ts?babel-target=legacy
30579
30580
30581/***/ }),
30582/* 483 */,
30583/* 484 */,
30584/* 485 */
30585/***/ (function(module, exports, __webpack_require__) {
30586
30587"use strict";
30588var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
30589
30590(function (root, factory) {
30591    if (true) {
30592        // AMD. Register as an anonymous module.
30593        !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
30594				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
30595				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
30596				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
30597    } else {}
30598}(this, function () {
30599
30600    var STATE_OUTPUT       = 0,
30601        STATE_HTML         = 1,
30602        STATE_PRE_COMMENT  = 2,
30603        STATE_COMMENT      = 3,
30604        WHITESPACE         = /\s/,
30605        ALLOWED_TAGS_REGEX = /<(\w*)>/g;
30606
30607    function striptags(html, allowableTags, tagReplacement) {
30608        var html = html || '',
30609            state = STATE_OUTPUT,
30610            depth = 0,
30611            output = '',
30612            tagBuffer = '',
30613            inQuote = false,
30614            i, length, c;
30615
30616        if (typeof allowableTags === 'string') {
30617            // Parse the string into an array of tags
30618            allowableTags = parseAllowableTags(allowableTags);
30619        } else if (!Array.isArray(allowableTags)) {
30620            // If it is not an array, explicitly set to null
30621            allowableTags = null;
30622        }
30623
30624        for (i = 0, length = html.length; i < length; i++) {
30625            c = html[i];
30626
30627            switch (c) {
30628                case '<': {
30629                    // ignore '<' if inside a quote
30630                    if (inQuote) {
30631                        break;
30632                    }
30633
30634                    // '<' followed by a space is not a valid tag, continue
30635                    if (html[i + 1] == ' ') {
30636                        consumeCharacter(c);
30637                        break;
30638                    }
30639
30640                    // change to STATE_HTML
30641                    if (state == STATE_OUTPUT) {
30642                        state = STATE_HTML;
30643
30644                        consumeCharacter(c);
30645                        break;
30646                    }
30647
30648                    // ignore additional '<' characters when inside a tag
30649                    if (state == STATE_HTML) {
30650                        depth++;
30651                        break;
30652                    }
30653
30654                    consumeCharacter(c);
30655                    break;
30656                }
30657
30658                case '>': {
30659                    // something like this is happening: '<<>>'
30660                    if (depth) {
30661                        depth--;
30662                        break;
30663                    }
30664
30665                    // ignore '>' if inside a quote
30666                    if (inQuote) {
30667                        break;
30668                    }
30669
30670                    // an HTML tag was closed
30671                    if (state == STATE_HTML) {
30672                        inQuote = state = 0;
30673
30674                        if (allowableTags) {
30675                            tagBuffer += '>';
30676                            flushTagBuffer();
30677                        }
30678
30679                        break;
30680                    }
30681
30682                    // '<!' met its ending '>'
30683                    if (state == STATE_PRE_COMMENT) {
30684                        inQuote = state = 0;
30685                        tagBuffer = '';
30686                        break;
30687                    }
30688
30689                    // if last two characters were '--', then end comment
30690                    if (state == STATE_COMMENT &&
30691                        html[i - 1] == '-' &&
30692                        html[i - 2] == '-') {
30693
30694                        inQuote = state = 0;
30695                        tagBuffer = '';
30696                        break;
30697                    }
30698
30699                    consumeCharacter(c);
30700                    break;
30701                }
30702
30703                // catch both single and double quotes
30704                case '"':
30705                case '\'': {
30706                    if (state == STATE_HTML) {
30707                        if (inQuote == c) {
30708                            // end quote found
30709                            inQuote = false;
30710                        } else if (!inQuote) {
30711                            // start quote only if not already in one
30712                            inQuote = c;
30713                        }
30714                    }
30715
30716                    consumeCharacter(c);
30717                    break;
30718                }
30719
30720                case '!': {
30721                    if (state == STATE_HTML &&
30722                        html[i - 1] == '<') {
30723
30724                        // looks like we might be starting a comment
30725                        state = STATE_PRE_COMMENT;
30726                        break;
30727                    }
30728
30729                    consumeCharacter(c);
30730                    break;
30731                }
30732
30733                case '-': {
30734                    // if the previous two characters were '!-', this is a comment
30735                    if (state == STATE_PRE_COMMENT &&
30736                        html[i - 1] == '-' &&
30737                        html[i - 2] == '!') {
30738
30739                        state = STATE_COMMENT;
30740                        break;
30741                    }
30742
30743                    consumeCharacter(c);
30744                    break;
30745                }
30746
30747                case 'E':
30748                case 'e': {
30749                    // check for DOCTYPE, because it looks like a comment and isn't
30750                    if (state == STATE_PRE_COMMENT &&
30751                        html.substr(i - 6, 7).toLowerCase() == 'doctype') {
30752
30753                        state = STATE_HTML;
30754                        break;
30755                    }
30756
30757                    consumeCharacter(c);
30758                    break;
30759                }
30760
30761                default: {
30762                    consumeCharacter(c);
30763                }
30764            }
30765        }
30766
30767        function consumeCharacter(c) {
30768            if (state == STATE_OUTPUT) {
30769                output += c;
30770            } else if (allowableTags && state == STATE_HTML) {
30771                tagBuffer += c;
30772            }
30773        }
30774
30775        function flushTagBuffer() {
30776            var normalized = '',
30777                nonWhitespaceSeen = false,
30778                i, length, c;
30779
30780            normalizeTagBuffer:
30781            for (i = 0, length = tagBuffer.length; i < length; i++) {
30782                c = tagBuffer[i].toLowerCase();
30783
30784                switch (c) {
30785                    case '<': {
30786                        break;
30787                    }
30788
30789                    case '>': {
30790                        break normalizeTagBuffer;
30791                    }
30792
30793                    case '/': {
30794                        nonWhitespaceSeen = true;
30795                        break;
30796                    }
30797
30798                    default: {
30799                        if (!c.match(WHITESPACE)) {
30800                            nonWhitespaceSeen = true;
30801                            normalized += c;
30802                        } else if (nonWhitespaceSeen) {
30803                            break normalizeTagBuffer;
30804                        }
30805                    }
30806                }
30807            }
30808
30809            if (allowableTags.indexOf(normalized) !== -1) {
30810                output += tagBuffer;
30811            } else if (tagReplacement) {
30812                output += tagReplacement;
30813            }
30814
30815            tagBuffer = '';
30816        }
30817
30818        return output;
30819    }
30820
30821    /**
30822     * Return an array containing tags that are allowed to pass through the
30823     * algorithm.
30824     *
30825     * @param string allowableTags A string of tags to allow (e.g. "<b><strong>").
30826     * @return array|null An array of allowed tags or null if none.
30827     */
30828    function parseAllowableTags(allowableTags) {
30829        var tagsArray = [],
30830            match;
30831
30832        while ((match = ALLOWED_TAGS_REGEX.exec(allowableTags)) !== null) {
30833            tagsArray.push(match[1]);
30834        }
30835
30836        return tagsArray.length !== 0 ? tagsArray : null;
30837    }
30838
30839    return striptags;
30840}));
30841
30842
30843/***/ }),
30844/* 486 */
30845/***/ (function(module, exports, __webpack_require__) {
30846
30847"use strict";
30848
30849
30850exports.URL = __webpack_require__(923).interface;
30851exports.serializeURL = __webpack_require__(180).serializeURL;
30852exports.serializeURLOrigin = __webpack_require__(180).serializeURLOrigin;
30853exports.basicURLParse = __webpack_require__(180).basicURLParse;
30854exports.setTheUsername = __webpack_require__(180).setTheUsername;
30855exports.setThePassword = __webpack_require__(180).setThePassword;
30856exports.serializeHost = __webpack_require__(180).serializeHost;
30857exports.serializeInteger = __webpack_require__(180).serializeInteger;
30858exports.parseURL = __webpack_require__(180).parseURL;
30859
30860
30861/***/ }),
30862/* 487 */,
30863/* 488 */
30864/***/ (function(module, __webpack_exports__, __webpack_require__) {
30865
30866"use strict";
30867
30868// EXPORTS
30869__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ ToggleSwitchbabel_target_legacy_ToggleSwitch; });
30870
30871// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
30872var es_function_namebabel_target_legacy = __webpack_require__(123);
30873
30874// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
30875var definePropertybabel_target_legacy = __webpack_require__(15);
30876var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
30877
30878// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
30879var preact_modulebabel_target_legacy = __webpack_require__(1);
30880
30881// EXTERNAL MODULE: ./src/components/ToggleSwitch/ToggleSwitch.module.scss
30882var ToggleSwitch_module = __webpack_require__(242);
30883var ToggleSwitch_module_default = /*#__PURE__*/__webpack_require__.n(ToggleSwitch_module);
30884
30885// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
30886var classnames_babel_target_legacy = __webpack_require__(27);
30887var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
30888
30889// CONCATENATED MODULE: ./src/components/ToggleSwitch/ToggleSwitch.tsx?babel-target=legacy
30890
30891
30892
30893
30894
30895var ToggleSwitchbabel_target_legacy_ToggleSwitch = function ToggleSwitch(_ref) {
30896  var enabled = _ref.enabled,
30897      _onChange = _ref.onChange,
30898      _ref$name = _ref.name,
30899      name = _ref$name === void 0 ? "Toggle" : _ref$name;
30900  return Object(preact_modulebabel_target_legacy["h"])("label", {
30901    className: classnames_babel_target_legacy_default()(ToggleSwitch_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, ToggleSwitch_module_default.a.checked, enabled))
30902  }, Object(preact_modulebabel_target_legacy["h"])("input", {
30903    type: "checkbox",
30904    checked: enabled,
30905    onChange: function onChange() {
30906      return _onChange(!enabled);
30907    }
30908  }), name);
30909};
30910/* harmony default export */ var ToggleSwitchbabel_target_legacy = (ToggleSwitchbabel_target_legacy_ToggleSwitch);
30911// CONCATENATED MODULE: ./src/components/ToggleSwitch/index.ts?babel-target=legacy
30912
30913
30914/***/ }),
30915/* 489 */
30916/***/ (function(module, exports, __webpack_require__) {
30917
30918// extracted by mini-css-extract-plugin
30919module.exports = {"videoAdOverlay":"Player-module__videoAdOverlay--8yrfp","videowrap":"Player-module__videowrap--1eKQD","video":"Player-module__video--huMPq","flex":"Player-module__flex--3JnQo","hidden":"Player-module__hidden--EL7ds"};
30920
30921/***/ }),
30922/* 490 */,
30923/* 491 */,
30924/* 492 */
30925/***/ (function(module, exports, __webpack_require__) {
30926
30927"use strict";
30928
30929var $ = __webpack_require__(2);
30930var fails = __webpack_require__(11);
30931var ArrayBufferModule = __webpack_require__(230);
30932var anObject = __webpack_require__(20);
30933var toAbsoluteIndex = __webpack_require__(114);
30934var toLength = __webpack_require__(28);
30935var speciesConstructor = __webpack_require__(103);
30936
30937var ArrayBuffer = ArrayBufferModule.ArrayBuffer;
30938var DataView = ArrayBufferModule.DataView;
30939var nativeArrayBufferSlice = ArrayBuffer.prototype.slice;
30940
30941var INCORRECT_SLICE = fails(function () {
30942  return !new ArrayBuffer(2).slice(1, undefined).byteLength;
30943});
30944
30945// `ArrayBuffer.prototype.slice` method
30946// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice
30947$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {
30948  slice: function slice(start, end) {
30949    if (nativeArrayBufferSlice !== undefined && end === undefined) {
30950      return nativeArrayBufferSlice.call(anObject(this), start); // FF fix
30951    }
30952    var length = anObject(this).byteLength;
30953    var first = toAbsoluteIndex(start, length);
30954    var fin = toAbsoluteIndex(end === undefined ? length : end, length);
30955    var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));
30956    var viewSource = new DataView(this);
30957    var viewTarget = new DataView(result);
30958    var index = 0;
30959    while (first < fin) {
30960      viewTarget.setUint8(index++, viewSource.getUint8(first++));
30961    } return result;
30962  }
30963});
30964
30965
30966/***/ }),
30967/* 493 */
30968/***/ (function(module, exports, __webpack_require__) {
30969
30970var createTypedArrayConstructor = __webpack_require__(104);
30971
30972// `Uint8Array` constructor
30973// https://tc39.github.io/ecma262/#sec-typedarray-objects
30974createTypedArrayConstructor('Uint8', function (init) {
30975  return function Uint8Array(data, byteOffset, length) {
30976    return init(this, data, byteOffset, length);
30977  };
30978});
30979
30980
30981/***/ }),
30982/* 494 */
30983/***/ (function(module, exports, __webpack_require__) {
30984
30985"use strict";
30986
30987var ArrayBufferViewCore = __webpack_require__(29);
30988var $copyWithin = __webpack_require__(367);
30989
30990var aTypedArray = ArrayBufferViewCore.aTypedArray;
30991var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
30992
30993// `%TypedArray%.prototype.copyWithin` method
30994// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.copywithin
30995exportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {
30996  return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
30997});
30998
30999
31000/***/ }),
31001/* 495 */
31002/***/ (function(module, exports, __webpack_require__) {
31003
31004"use strict";
31005
31006var ArrayBufferViewCore = __webpack_require__(29);
31007var $every = __webpack_require__(46).every;
31008
31009var aTypedArray = ArrayBufferViewCore.aTypedArray;
31010var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31011
31012// `%TypedArray%.prototype.every` method
31013// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every
31014exportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {
31015  return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
31016});
31017
31018
31019/***/ }),
31020/* 496 */
31021/***/ (function(module, exports, __webpack_require__) {
31022
31023"use strict";
31024
31025var ArrayBufferViewCore = __webpack_require__(29);
31026var $fill = __webpack_require__(286);
31027
31028var aTypedArray = ArrayBufferViewCore.aTypedArray;
31029var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31030
31031// `%TypedArray%.prototype.fill` method
31032// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.fill
31033// eslint-disable-next-line no-unused-vars
31034exportTypedArrayMethod('fill', function fill(value /* , start, end */) {
31035  return $fill.apply(aTypedArray(this), arguments);
31036});
31037
31038
31039/***/ }),
31040/* 497 */
31041/***/ (function(module, exports, __webpack_require__) {
31042
31043"use strict";
31044
31045var ArrayBufferViewCore = __webpack_require__(29);
31046var $filter = __webpack_require__(46).filter;
31047var speciesConstructor = __webpack_require__(103);
31048
31049var aTypedArray = ArrayBufferViewCore.aTypedArray;
31050var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
31051var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31052
31053// `%TypedArray%.prototype.filter` method
31054// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.filter
31055exportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {
31056  var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
31057  var C = speciesConstructor(this, this.constructor);
31058  var index = 0;
31059  var length = list.length;
31060  var result = new (aTypedArrayConstructor(C))(length);
31061  while (length > index) result[index] = list[index++];
31062  return result;
31063});
31064
31065
31066/***/ }),
31067/* 498 */
31068/***/ (function(module, exports, __webpack_require__) {
31069
31070"use strict";
31071
31072var ArrayBufferViewCore = __webpack_require__(29);
31073var $find = __webpack_require__(46).find;
31074
31075var aTypedArray = ArrayBufferViewCore.aTypedArray;
31076var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31077
31078// `%TypedArray%.prototype.find` method
31079// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.find
31080exportTypedArrayMethod('find', function find(predicate /* , thisArg */) {
31081  return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
31082});
31083
31084
31085/***/ }),
31086/* 499 */
31087/***/ (function(module, exports, __webpack_require__) {
31088
31089"use strict";
31090
31091var ArrayBufferViewCore = __webpack_require__(29);
31092var $findIndex = __webpack_require__(46).findIndex;
31093
31094var aTypedArray = ArrayBufferViewCore.aTypedArray;
31095var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31096
31097// `%TypedArray%.prototype.findIndex` method
31098// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.findindex
31099exportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {
31100  return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
31101});
31102
31103
31104/***/ }),
31105/* 500 */
31106/***/ (function(module, exports, __webpack_require__) {
31107
31108"use strict";
31109
31110var ArrayBufferViewCore = __webpack_require__(29);
31111var $forEach = __webpack_require__(46).forEach;
31112
31113var aTypedArray = ArrayBufferViewCore.aTypedArray;
31114var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31115
31116// `%TypedArray%.prototype.forEach` method
31117// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.foreach
31118exportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {
31119  $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
31120});
31121
31122
31123/***/ }),
31124/* 501 */
31125/***/ (function(module, exports, __webpack_require__) {
31126
31127"use strict";
31128
31129var ArrayBufferViewCore = __webpack_require__(29);
31130var $includes = __webpack_require__(168).includes;
31131
31132var aTypedArray = ArrayBufferViewCore.aTypedArray;
31133var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31134
31135// `%TypedArray%.prototype.includes` method
31136// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.includes
31137exportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {
31138  return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
31139});
31140
31141
31142/***/ }),
31143/* 502 */
31144/***/ (function(module, exports, __webpack_require__) {
31145
31146"use strict";
31147
31148var ArrayBufferViewCore = __webpack_require__(29);
31149var $indexOf = __webpack_require__(168).indexOf;
31150
31151var aTypedArray = ArrayBufferViewCore.aTypedArray;
31152var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31153
31154// `%TypedArray%.prototype.indexOf` method
31155// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.indexof
31156exportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {
31157  return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
31158});
31159
31160
31161/***/ }),
31162/* 503 */
31163/***/ (function(module, exports, __webpack_require__) {
31164
31165"use strict";
31166
31167var global = __webpack_require__(16);
31168var ArrayBufferViewCore = __webpack_require__(29);
31169var ArrayIterators = __webpack_require__(138);
31170var wellKnownSymbol = __webpack_require__(23);
31171
31172var ITERATOR = wellKnownSymbol('iterator');
31173var Uint8Array = global.Uint8Array;
31174var arrayValues = ArrayIterators.values;
31175var arrayKeys = ArrayIterators.keys;
31176var arrayEntries = ArrayIterators.entries;
31177var aTypedArray = ArrayBufferViewCore.aTypedArray;
31178var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31179var nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];
31180
31181var CORRECT_ITER_NAME = !!nativeTypedArrayIterator
31182  && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);
31183
31184var typedArrayValues = function values() {
31185  return arrayValues.call(aTypedArray(this));
31186};
31187
31188// `%TypedArray%.prototype.entries` method
31189// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.entries
31190exportTypedArrayMethod('entries', function entries() {
31191  return arrayEntries.call(aTypedArray(this));
31192});
31193// `%TypedArray%.prototype.keys` method
31194// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.keys
31195exportTypedArrayMethod('keys', function keys() {
31196  return arrayKeys.call(aTypedArray(this));
31197});
31198// `%TypedArray%.prototype.values` method
31199// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.values
31200exportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);
31201// `%TypedArray%.prototype[@@iterator]` method
31202// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype-@@iterator
31203exportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);
31204
31205
31206/***/ }),
31207/* 504 */
31208/***/ (function(module, exports, __webpack_require__) {
31209
31210"use strict";
31211
31212var ArrayBufferViewCore = __webpack_require__(29);
31213
31214var aTypedArray = ArrayBufferViewCore.aTypedArray;
31215var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31216var $join = [].join;
31217
31218// `%TypedArray%.prototype.join` method
31219// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.join
31220// eslint-disable-next-line no-unused-vars
31221exportTypedArrayMethod('join', function join(separator) {
31222  return $join.apply(aTypedArray(this), arguments);
31223});
31224
31225
31226/***/ }),
31227/* 505 */
31228/***/ (function(module, exports, __webpack_require__) {
31229
31230"use strict";
31231
31232var ArrayBufferViewCore = __webpack_require__(29);
31233var $lastIndexOf = __webpack_require__(370);
31234
31235var aTypedArray = ArrayBufferViewCore.aTypedArray;
31236var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31237
31238// `%TypedArray%.prototype.lastIndexOf` method
31239// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.lastindexof
31240// eslint-disable-next-line no-unused-vars
31241exportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {
31242  return $lastIndexOf.apply(aTypedArray(this), arguments);
31243});
31244
31245
31246/***/ }),
31247/* 506 */
31248/***/ (function(module, exports, __webpack_require__) {
31249
31250"use strict";
31251
31252var ArrayBufferViewCore = __webpack_require__(29);
31253var $map = __webpack_require__(46).map;
31254var speciesConstructor = __webpack_require__(103);
31255
31256var aTypedArray = ArrayBufferViewCore.aTypedArray;
31257var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
31258var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31259
31260// `%TypedArray%.prototype.map` method
31261// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.map
31262exportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {
31263  return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {
31264    return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);
31265  });
31266});
31267
31268
31269/***/ }),
31270/* 507 */
31271/***/ (function(module, exports, __webpack_require__) {
31272
31273"use strict";
31274
31275var ArrayBufferViewCore = __webpack_require__(29);
31276var $reduce = __webpack_require__(217).left;
31277
31278var aTypedArray = ArrayBufferViewCore.aTypedArray;
31279var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31280
31281// `%TypedArray%.prototype.reduce` method
31282// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduce
31283exportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {
31284  return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
31285});
31286
31287
31288/***/ }),
31289/* 508 */
31290/***/ (function(module, exports, __webpack_require__) {
31291
31292"use strict";
31293
31294var ArrayBufferViewCore = __webpack_require__(29);
31295var $reduceRight = __webpack_require__(217).right;
31296
31297var aTypedArray = ArrayBufferViewCore.aTypedArray;
31298var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31299
31300// `%TypedArray%.prototype.reduceRicht` method
31301// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reduceright
31302exportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {
31303  return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
31304});
31305
31306
31307/***/ }),
31308/* 509 */
31309/***/ (function(module, exports, __webpack_require__) {
31310
31311"use strict";
31312
31313var ArrayBufferViewCore = __webpack_require__(29);
31314
31315var aTypedArray = ArrayBufferViewCore.aTypedArray;
31316var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31317var floor = Math.floor;
31318
31319// `%TypedArray%.prototype.reverse` method
31320// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.reverse
31321exportTypedArrayMethod('reverse', function reverse() {
31322  var that = this;
31323  var length = aTypedArray(that).length;
31324  var middle = floor(length / 2);
31325  var index = 0;
31326  var value;
31327  while (index < middle) {
31328    value = that[index];
31329    that[index++] = that[--length];
31330    that[length] = value;
31331  } return that;
31332});
31333
31334
31335/***/ }),
31336/* 510 */
31337/***/ (function(module, exports, __webpack_require__) {
31338
31339"use strict";
31340
31341var ArrayBufferViewCore = __webpack_require__(29);
31342var toLength = __webpack_require__(28);
31343var toOffset = __webpack_require__(389);
31344var toObject = __webpack_require__(33);
31345var fails = __webpack_require__(11);
31346
31347var aTypedArray = ArrayBufferViewCore.aTypedArray;
31348var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31349
31350var FORCED = fails(function () {
31351  // eslint-disable-next-line no-undef
31352  new Int8Array(1).set({});
31353});
31354
31355// `%TypedArray%.prototype.set` method
31356// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.set
31357exportTypedArrayMethod('set', function set(arrayLike /* , offset */) {
31358  aTypedArray(this);
31359  var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);
31360  var length = this.length;
31361  var src = toObject(arrayLike);
31362  var len = toLength(src.length);
31363  var index = 0;
31364  if (len + offset > length) throw RangeError('Wrong length');
31365  while (index < len) this[offset + index] = src[index++];
31366}, FORCED);
31367
31368
31369/***/ }),
31370/* 511 */
31371/***/ (function(module, exports, __webpack_require__) {
31372
31373"use strict";
31374
31375var ArrayBufferViewCore = __webpack_require__(29);
31376var speciesConstructor = __webpack_require__(103);
31377var fails = __webpack_require__(11);
31378
31379var aTypedArray = ArrayBufferViewCore.aTypedArray;
31380var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
31381var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31382var $slice = [].slice;
31383
31384var FORCED = fails(function () {
31385  // eslint-disable-next-line no-undef
31386  new Int8Array(1).slice();
31387});
31388
31389// `%TypedArray%.prototype.slice` method
31390// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.slice
31391exportTypedArrayMethod('slice', function slice(start, end) {
31392  var list = $slice.call(aTypedArray(this), start, end);
31393  var C = speciesConstructor(this, this.constructor);
31394  var index = 0;
31395  var length = list.length;
31396  var result = new (aTypedArrayConstructor(C))(length);
31397  while (length > index) result[index] = list[index++];
31398  return result;
31399}, FORCED);
31400
31401
31402/***/ }),
31403/* 512 */
31404/***/ (function(module, exports, __webpack_require__) {
31405
31406"use strict";
31407
31408var ArrayBufferViewCore = __webpack_require__(29);
31409var $some = __webpack_require__(46).some;
31410
31411var aTypedArray = ArrayBufferViewCore.aTypedArray;
31412var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31413
31414// `%TypedArray%.prototype.some` method
31415// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some
31416exportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {
31417  return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
31418});
31419
31420
31421/***/ }),
31422/* 513 */
31423/***/ (function(module, exports, __webpack_require__) {
31424
31425"use strict";
31426
31427var ArrayBufferViewCore = __webpack_require__(29);
31428
31429var aTypedArray = ArrayBufferViewCore.aTypedArray;
31430var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31431var $sort = [].sort;
31432
31433// `%TypedArray%.prototype.sort` method
31434// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.sort
31435exportTypedArrayMethod('sort', function sort(comparefn) {
31436  return $sort.call(aTypedArray(this), comparefn);
31437});
31438
31439
31440/***/ }),
31441/* 514 */
31442/***/ (function(module, exports, __webpack_require__) {
31443
31444"use strict";
31445
31446var ArrayBufferViewCore = __webpack_require__(29);
31447var toLength = __webpack_require__(28);
31448var toAbsoluteIndex = __webpack_require__(114);
31449var speciesConstructor = __webpack_require__(103);
31450
31451var aTypedArray = ArrayBufferViewCore.aTypedArray;
31452var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31453
31454// `%TypedArray%.prototype.subarray` method
31455// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.subarray
31456exportTypedArrayMethod('subarray', function subarray(begin, end) {
31457  var O = aTypedArray(this);
31458  var length = O.length;
31459  var beginIndex = toAbsoluteIndex(begin, length);
31460  return new (speciesConstructor(O, O.constructor))(
31461    O.buffer,
31462    O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,
31463    toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)
31464  );
31465});
31466
31467
31468/***/ }),
31469/* 515 */
31470/***/ (function(module, exports, __webpack_require__) {
31471
31472"use strict";
31473
31474var global = __webpack_require__(16);
31475var ArrayBufferViewCore = __webpack_require__(29);
31476var fails = __webpack_require__(11);
31477
31478var Int8Array = global.Int8Array;
31479var aTypedArray = ArrayBufferViewCore.aTypedArray;
31480var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
31481var $toLocaleString = [].toLocaleString;
31482var $slice = [].slice;
31483
31484// iOS Safari 6.x fails here
31485var TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {
31486  $toLocaleString.call(new Int8Array(1));
31487});
31488
31489var FORCED = fails(function () {
31490  return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();
31491}) || !fails(function () {
31492  Int8Array.prototype.toLocaleString.call([1, 2]);
31493});
31494
31495// `%TypedArray%.prototype.toLocaleString` method
31496// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tolocalestring
31497exportTypedArrayMethod('toLocaleString', function toLocaleString() {
31498  return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);
31499}, FORCED);
31500
31501
31502/***/ }),
31503/* 516 */
31504/***/ (function(module, exports, __webpack_require__) {
31505
31506"use strict";
31507
31508var exportTypedArrayMethod = __webpack_require__(29).exportTypedArrayMethod;
31509var fails = __webpack_require__(11);
31510var global = __webpack_require__(16);
31511
31512var Uint8Array = global.Uint8Array;
31513var Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};
31514var arrayToString = [].toString;
31515var arrayJoin = [].join;
31516
31517if (fails(function () { arrayToString.call({}); })) {
31518  arrayToString = function toString() {
31519    return arrayJoin.call(this);
31520  };
31521}
31522
31523var IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;
31524
31525// `%TypedArray%.prototype.toString` method
31526// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.tostring
31527exportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);
31528
31529
31530/***/ }),
31531/* 517 */,
31532/* 518 */,
31533/* 519 */,
31534/* 520 */,
31535/* 521 */,
31536/* 522 */
31537/***/ (function(module, exports, __webpack_require__) {
31538
31539__webpack_require__(539);
31540__webpack_require__(691);
31541var path = __webpack_require__(167);
31542
31543module.exports = path;
31544
31545
31546/***/ }),
31547/* 523 */
31548/***/ (function(module, exports, __webpack_require__) {
31549
31550"use strict";
31551
31552var $ = __webpack_require__(2);
31553var createHTML = __webpack_require__(68);
31554var forcedStringHTMLMethod = __webpack_require__(69);
31555
31556// `String.prototype.small` method
31557// https://tc39.github.io/ecma262/#sec-string.prototype.small
31558$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {
31559  small: function small() {
31560    return createHTML(this, 'small', '', '');
31561  }
31562});
31563
31564
31565/***/ }),
31566/* 524 */,
31567/* 525 */
31568/***/ (function(module, __webpack_exports__, __webpack_require__) {
31569
31570"use strict";
31571/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return tcWaitTimeout; });
31572/* unused harmony export reducer */
31573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return APIProvider; });
31574/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71);
31575/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__);
31576/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70);
31577/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__);
31578/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(87);
31579/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__);
31580/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98);
31581/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_3__);
31582/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99);
31583/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__);
31584/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89);
31585/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_5__);
31586/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(88);
31587/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_6__);
31588/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(6);
31589/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7__);
31590/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60);
31591/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_8__);
31592/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
31593/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9__);
31594/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(8);
31595/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_10__);
31596/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(15);
31597/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_11__);
31598/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1);
31599/* harmony import */ var _APIContext__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(402);
31600/* harmony import */ var _APIManager__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(32);
31601/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(4);
31602/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(205);
31603/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(10);
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
31618
31619function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_11___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
31619 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
31620
31621
31622
31623
31624
31625
31626
31627/**
31628 * Note: Also used by Player.tsx
31629 */
31630
31631var tcWaitTimeout = 3000;
31632var reducer = function reducer(state, action) {
31633  return Object(immer__WEBPACK_IMPORTED_MODULE_16__[/* default */ "a"])(state, function (draft) {
31634    switch (action.type) {
31635      case "ADD_FAVE":
31636        draft.faves = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* addFave */ "a"])(action.payload, draft.faves, state.cookieManagerUrl, state.hideFavTip);
31637        return draft;
31638
31639      case "REMOVE_FAVE":
31640        draft.faves = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* removeFave */ "t"])(action.payload, draft.faves, state.cookieManagerUrl);
31641        return draft;
31642
31643      case "HIDE_FAVE_TIP":
31644        draft.hideFavTip = true;
31645        return draft;
31646
31647      case "DISPLAY_FAVE_NOTIFICATION":
31648        draft.displayFaveNotification = true;
31649        return draft;
31650
31651      case "SET_SEARCH_TERM":
31652        draft.searchHistory = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* addSearchTerm */ "b"])(action.payload, draft.searchHistory, state.cookieManagerUrl);
31653        return draft;
31654
31655      case "SET_PREFIX":
31656        draft.cookie = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* setStationListPrefix */ "y"])(action.payload, draft.cookie, state.cookieManagerUrl);
31657        return draft;
31658
31659      case "SET_VOLUME":
31660        draft.cookie = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* setVolumeCookie */ "z"])(action.payload, draft.cookie, state.cookieManagerUrl);
31661        return draft;
31662
31663      case "SET_STATIONLIST":
31664        draft.stationlist = action.payload;
31665        return draft;
31666
31667      case "SET_RECOMMENDATIONS":
31668        draft.recommendations = action.payload;
31669        return draft;
31670
31671      case "HIDE_ANNOUNCEMENT":
31672        draft.cookie.announcement = undefined;
31673        Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* hideAnnouncement */ "k"])(state.cookieManagerUrl);
31674        return draft;
31675
31676      case "INIT":
31677        /* Workaround to ensure tcString is never overriden after it was set.
31678        Details:
31679        getCookie() is executed twice on console startup on some player configurations
31680         (depending on whether CMP and/or Ad providers used).
31681        This leads to:
31682        1. getCookie() executes, sets tcString to true.
31683        2. tcString set to consent string received from TCF API. (e.g. "CPf9mIAPf9mIAAKAsAENCiCsAP_...").
31684        3. getCookie() executes again, sets tcString to true. Value from TCF API is now lost.
31685        Trace via breakpoints for case "INIT" and case "SET_TC_STRING".
31686        */
31687        if (typeof draft.tcString === "string") {
31688          return _objectSpread(_objectSpread({}, action.state), {}, {
31689            tcString: draft.tcString
31690          });
31691        } else {
31692          return action.state;
31693        }
31694
31695      case "SET_COOKIE_POLICY":
31696        draft.cookie = Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* setCookiePolicy */ "x"])(action.payload, draft.cookie, state.cookieManagerUrl, state.bbcCookies);
31697        return draft;
31698
31699      case "SET_TC_STRING":
31700        draft.tcString = action.tcString;
31701        return draft;
31702
31703      case "SET_CMP_FAIL":
31704        draft.cmpConsentFailed = true;
31705        draft.tcString = false;
31706        return draft;
31707
31708      default:
31709        console.log("Unhandled action in APIProvider reducer:", action);
31710        return draft;
31711    }
31712  });
31713};
31714var APIProvider = function APIProvider(_ref) {
31715  var rpId = _ref.rpId,
31716      children = _ref.children,
31717      tracking = _ref.tracking,
31718      _ref$mapiUrl = _ref.mapiUrl,
31719      mapiUrl = _ref$mapiUrl === void 0 ? "" : _ref$mapiUrl,
31720      _ref$cookieManagerUrl = _ref.cookieManagerUrl,
31721      cookieManagerUrl = _ref$cookieManagerUrl === void 0 ? "" : _ref$cookieManagerUrl,
31722      _ref$cmp = _ref.cmp,
31723      cmp = _ref$cmp === void 0 ? null : _ref$cmp,
31724      _ref$nowPlayingUrl = _ref.nowPlayingUrl,
31725      nowPlayingUrl = _ref$nowPlayingUrl === void 0 ? "" : _ref$nowPlayingUrl,
31726      _ref$queryProxyUrl = _ref.queryProxyUrl,
31727      queryProxyUrl = _ref$queryProxyUrl === void 0 ? "" : _ref$queryProxyUrl,
31728      _ref$bbcCookies = _ref.bbcCookies,
31729      bbcCookies = _ref$bbcCookies === void 0 ? false : _ref$bbcCookies,
31730      _ref$disableCookieBan = _ref.disableCookieBanner,
31731      disableCookieBanner = _ref$disableCookieBan === void 0 ? false : _ref$disableCookieBan;
31732
31733  var _useReducer = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_15__[/* useReducer */ "h"])(reducer, {
31734    cookie: {},
31735    faves: [],
31736    hideFavTip: false,
31737    displayFaveNotification: false,
31738    searchHistory: [],
31739    mapiUrl: mapiUrl,
31740    cookieManagerUrl: cookieManagerUrl,
31741    queryProxyUrl: queryProxyUrl,
31742    stationlist: {},
31743    nowPlayingUrl: nowPlayingUrl,
31744    rpId: rpId,
31745    bbcCookies: bbcCookies,
31746    disableCookieBanner: disableCookieBanner,
31747    tcString: !!cmp,
31748    cmpConsentFailed: false
31749  }),
31750      _useReducer2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_10___default()(_useReducer, 2),
31751      state = _useReducer2[0],
31752      dispatch = _useReducer2[1];
31753
31754  var tcString = state.tcString;
31755  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_15__[/* useEffect */ "d"])(function () {
31756    var getCookie = /*#__PURE__*/function () {
31757      var _ref2 = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_9___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default.a.mark(function _callee() {
31758        var state;
31759        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_7___default.a.wrap(function _callee$(_context) {
31760          while (1) {
31761            switch (_context.prev = _context.next) {
31762              case 0:
31763                _context.next = 2;
31764                return Object(_APIManager__WEBPACK_IMPORTED_MODULE_14__[/* initCookies */ "l"])(rpId, mapiUrl, nowPlayingUrl, cookieManagerUrl, queryProxyUrl, bbcCookies, cmp, tracking);
31765
31766              case 2:
31767                state = _context.sent;
31768
31769                if (state) {
31770                  Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])({
31771                    state: state
31772                  });
31773                  dispatch({
31774                    type: "INIT",
31775                    state: state
31776                  });
31777                }
31778
31779              case 4:
31780              case "end":
31781                return _context.stop();
31782            }
31783          }
31784        }, _callee);
31785      }));
31786
31787      return function getCookie() {
31788        return _ref2.apply(this, arguments);
31789      };
31790    }();
31791
31792    getCookie();
31793  }, [rpId, mapiUrl, nowPlayingUrl, cookieManagerUrl, queryProxyUrl, bbcCookies, cmp, tracking]);
31794
31795  var onTcStringChange = function onTcStringChange(tcData, success) {
31796    if (success && tcData.eventStatus === "useractioncomplete" || tcData.eventStatus === "tcloaded") {
31797      dispatch({
31798        type: "SET_TC_STRING",
31799        tcString: tcData.tcString || true
31800      });
31801    }
31802  };
31803
31804  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_15__[/* useEffect */ "d"])(function () {
31805    if (cmp && window.__tcfapi) {
31806      __tcfapi("addEventListener", 2, onTcStringChange);
31807    }
31808
31809    return function () {
31810      if (window.__tcfapi) {
31811        __tcfapi("removeEventListener", 2, onTcStringChange);
31812      }
31813    };
31814  }, [cmp]);
31815  var consentTimer = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_15__[/* useRef */ "i"])();
31816  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_15__[/* useEffect */ "d"])(function () {
31817    var tcStringFallback = function tcStringFallback() {
31818      Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Expected consent string not arrived. Checking manually.");
31819
31820      if (window.__tcfapi) {
31821        __tcfapi("getTCData", 2, function (tcData, success) {
31822          if (success) {
31823            Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Consent string received, updating stream url");
31824            dispatch({
31825              type: "SET_TC_STRING",
31826              tcString: tcData.tcString || true
31827            });
31828          } else {
31829            Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Unable to communicate with CMP, assume no consent provided");
31830            dispatch({
31831              type: "SET_CMP_FAIL"
31832            });
31833          }
31834        }, [1, 2, 3]);
31835      } else {
31836        Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("TCF API Failed to initialise, assume no consent provided");
31837        dispatch({
31838          type: "SET_CMP_FAIL"
31839        });
31840      }
31841    };
31842
31843    if (tcString === true) {
31844      Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Expecting consent string, attempt to collect manually if listeners fail");
31845      consentTimer.current = setTimeout(tcStringFallback, tcWaitTimeout);
31846    } else if (typeof tcString === "string") {
31847      Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Consent string received, clear fallback handler");
31848      clearTimeout(consentTimer.current);
31849    }
31850
31851    return function () {
31852      Object(_logger__WEBPACK_IMPORTED_MODULE_17__[/* log */ "c"])("Clear consent timer");
31853      clearTimeout(consentTimer.current);
31854    };
31855  }, [tcString]);
31856  return Object(preact__WEBPACK_IMPORTED_MODULE_12__["h"])(_APIContext__WEBPACK_IMPORTED_MODULE_13__[/* APIContext */ "a"].Provider, {
31857    value: [state, dispatch]
31858  }, children);
31859};
31860/* unused harmony default export */ var _unused_webpack_default_export = (APIProvider);
31861
31862/***/ }),
31863/* 526 */,
31864/* 527 */,
31865/* 528 */
31866/***/ (function(module, __webpack_exports__, __webpack_require__) {
31867
31868"use strict";
31869
31870// EXPORTS
31871__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ VolumeControlbabel_target_legacy_VolumeControl; });
31872
31873// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
31874var es_array_mapbabel_target_legacy = __webpack_require__(77);
31875
31876// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
31877var toConsumableArraybabel_target_legacy = __webpack_require__(37);
31878var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
31879
31880// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
31881var definePropertybabel_target_legacy = __webpack_require__(15);
31882var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
31883
31884// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
31885var slicedToArraybabel_target_legacy = __webpack_require__(8);
31886var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
31887
31888// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
31889var classnames_babel_target_legacy = __webpack_require__(27);
31890var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
31891
31892// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
31893var preact_modulebabel_target_legacy = __webpack_require__(1);
31894
31895// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
31896var hooks_modulebabel_target_legacy = __webpack_require__(4);
31897
31898// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
31899var RPIconbabel_target_legacy = __webpack_require__(42);
31900
31901// EXTERNAL MODULE: ./src/components/VolumeControl/VolumeControl.module.scss
31902var VolumeControl_module = __webpack_require__(56);
31903var VolumeControl_module_default = /*#__PURE__*/__webpack_require__.n(VolumeControl_module);
31904
31905// CONCATENATED MODULE: ./src/components/VolumeControl/VolumeControl.tsx?babel-target=legacy
31906
31907
31908
31909
31910
31911
31912
31913
31914
31915var bars = [__webpack_require__(888), __webpack_require__(889), __webpack_require__(890), __webpack_require__(891), __webpack_require__(892)];
31916var VolumeControlbabel_target_legacy_VolumeControl = function VolumeControl(_ref) {
31917  var colour = _ref.colour,
31918      volume = _ref.volume,
31919      setVolume = _ref.setVolume,
31920      darkTheme = _ref.darkTheme,
31921      _ref$showMobile = _ref.showMobile,
31922      showMobile = _ref$showMobile === void 0 ? false : _ref$showMobile;
31923
31924  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(volume),
31925      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
31926      visibleVolume = _useState2[0],
31927      setVisibleVolume = _useState2[1];
31928
31929  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
31930      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
31931      mouseIsOver = _useState4[0],
31932      setMouseIsOver = _useState4[1];
31933
31934  var handleKeyDown = function handleKeyDown(e) {
31935    // Arrow up
31936    if (e.keyCode === 38) {
31937      var incrementVolume = volume + 0.2;
31938      setVolume(incrementVolume > 1 ? 1 : incrementVolume);
31939    } // Arrow down
31940
31941
31942    if (e.keyCode === 40) {
31943      var decreaseVolume = volume - 0.2;
31944      setVolume(decreaseVolume < 0 ? 0 : decreaseVolume);
31945    }
31946  };
31947
31948  var volumeHover = function volumeHover(num) {
31949    setVisibleVolume(num);
31950  };
31951
31952  var volumeClick = function volumeClick(num) {
31953    if (setVolume) {
31954      setVolume(num / 5);
31955    }
31956  };
31957
31958  var mouseOver = function mouseOver() {
31959    setMouseIsOver(true);
31960  };
31961
31962  var mouseOut = function mouseOut() {
31963    setMouseIsOver(false);
31964  };
31965
31966  var displayVolume = mouseIsOver ? visibleVolume : Math.round(volume * 5);
31967  var defaultColour = colour || "currentColor";
31968  var hoverColour = darkTheme ? "#606060" : "#BBBBBA";
31969  return Object(preact_modulebabel_target_legacy["h"])("div", {
31970    tabIndex: 0,
31971    onKeyDown: handleKeyDown,
31972    className: showMobile ? VolumeControl_module_default.a.outermobile : VolumeControl_module_default.a.outer,
31973    "aria-label": "Use arrow keys to change volume"
31974  }, Object(preact_modulebabel_target_legacy["h"])("div", {
31975    className: classnames_babel_target_legacy_default()(VolumeControl_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, VolumeControl_module_default.a.dark, darkTheme)),
31976    onMouseEnter: mouseOver,
31977    onMouseLeave: mouseOut
31978  }, Object(preact_modulebabel_target_legacy["h"])("picture", {
31979    className: VolumeControl_module_default.a.pic
31980  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
31981    colour: defaultColour,
31982    src: __webpack_require__(893)
31983  })), displayVolume === 0 ? Object(preact_modulebabel_target_legacy["h"])("picture", {
31984    className: classnames_babel_target_legacy_default()(VolumeControl_module_default.a.pic, VolumeControl_module_default.a.shift)
31985  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
31986    src: __webpack_require__(894),
31987    colour: defaultColour
31988  })) : bars.map(function (bar, idx) {
31989    return Object(preact_modulebabel_target_legacy["h"])("picture", {
31990      key: idx,
31991      className: classnames_babel_target_legacy_default()(VolumeControl_module_default.a.pic, VolumeControl_module_default.a.shift)
31992    }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
31993      src: bar,
31994      colour: idx < displayVolume ? defaultColour : hoverColour
31995    }));
31996  }), Object(preact_modulebabel_target_legacy["h"])("div", {
31997    className: VolumeControl_module_default.a.overlay
31998  }, Object(preact_modulebabel_target_legacy["h"])("div", {
31999    className: VolumeControl_module_default.a.wide,
32000    onMouseEnter: function onMouseEnter() {
32001      return volumeHover(0);
32002    },
32003    onClick: function onClick() {
32004      return volumeClick(volume === 0 ? 4 : 0);
32005    }
32006  }), toConsumableArraybabel_target_legacy_default()(new Array(5)).map(function (o, idx) {
32007    return Object(preact_modulebabel_target_legacy["h"])("div", {
32008      key: idx,
32009      className: VolumeControl_module_default.a.narrow,
32010      onMouseEnter: function onMouseEnter() {
32011        return volumeHover(idx + 1);
32012      },
32013      onClick: function onClick() {
32014        return volumeClick(idx + 1);
32015      }
32016    });
32017  }))));
32018};
32019/* harmony default export */ var VolumeControlbabel_target_legacy = (VolumeControlbabel_target_legacy_VolumeControl);
32020// CONCATENATED MODULE: ./src/components/VolumeControl/index.ts?babel-target=legacy
32021
32022
32023/***/ }),
32024/* 529 */
32025/***/ (function(module, __webpack_exports__, __webpack_require__) {
32026
32027"use strict";
32028
32029// EXPORTS
32030__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ StationLogobabel_target_legacy_StationLogo; });
32031
32032// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
32033var preact_modulebabel_target_legacy = __webpack_require__(1);
32034
32035// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
32036var utilsbabel_target_legacy = __webpack_require__(48);
32037
32038// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
32039var es_babel_target_legacy = __webpack_require__(25);
32040
32041// EXTERNAL MODULE: ./src/components/StationLogo/StationLogo.module.scss
32042var StationLogo_module = __webpack_require__(244);
32043var StationLogo_module_default = /*#__PURE__*/__webpack_require__.n(StationLogo_module);
32044
32045// CONCATENATED MODULE: ./src/components/StationLogo/StationLogo.tsx?babel-target=legacy
32046
32047
32048
32049
32050var StationLogobabel_target_legacy_StationLogo = function StationLogo(_ref) {
32051  var stationName = _ref.stationName,
32052      stationUrl = _ref.stationUrl,
32053      _ref$variant = _ref.variant,
32054      variant = _ref$variant === void 0 ? "large" : _ref$variant,
32055      _ref$logo = _ref.logo,
32056      logo = _ref$logo === void 0 ? __webpack_require__(895) : _ref$logo;
32057
32058  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
32059      t = _useTranslation.t;
32060
32061  var nameAsId = Object(utilsbabel_target_legacy["j" /* kebabify */])(stationName);
32062  var imageNode = Object(preact_modulebabel_target_legacy["h"])("picture", {
32063    className: variant === "large" ? StationLogo_module_default.a.logo : StationLogo_module_default.a.logoSmall
32064  }, Object(preact_modulebabel_target_legacy["h"])("img", {
32065    src: logo,
32066    alt: stationUrl ? "" : stationName,
32067    id: nameAsId,
32068    tabIndex: -1,
32069    "aria-labelledby": "station-name-label"
32070  }));
32071
32072  if (stationUrl) {
32073    return Object(preact_modulebabel_target_legacy["h"])("a", {
32074      id: "station-name-label",
32075      href: stationUrl,
32076      target: "_blank",
32077      rel: "noopener noreferrer",
32078      "aria-label": t("ARIA_VISIT_STATION", {
32079        serviceName: stationName
32080      })
32081    }, imageNode);
32082  }
32083
32084  return imageNode;
32085};
32086// CONCATENATED MODULE: ./src/components/StationLogo/index.ts?babel-target=legacy
32087
32088
32089/***/ }),
32090/* 530 */,
32091/* 531 */,
32092/* 532 */,
32093/* 533 */,
32094/* 534 */,
32095/* 535 */,
32096/* 536 */,
32097/* 537 */,
32098/* 538 */,
32099/* 539 */
32100/***/ (function(module, exports, __webpack_require__) {
32101
32102__webpack_require__(71);
32103__webpack_require__(540);
32104__webpack_require__(199);
32105__webpack_require__(541);
32106__webpack_require__(542);
32107__webpack_require__(458);
32108__webpack_require__(543);
32109__webpack_require__(544);
32110__webpack_require__(545);
32111__webpack_require__(546);
32112__webpack_require__(547);
32113__webpack_require__(548);
32114__webpack_require__(549);
32115__webpack_require__(550);
32116__webpack_require__(551);
32117__webpack_require__(552);
32118__webpack_require__(459);
32119__webpack_require__(554);
32120__webpack_require__(555);
32121__webpack_require__(75);
32122__webpack_require__(556);
32123__webpack_require__(425);
32124__webpack_require__(557);
32125__webpack_require__(70);
32126__webpack_require__(182);
32127__webpack_require__(343);
32128__webpack_require__(558);
32129__webpack_require__(559);
32130__webpack_require__(87);
32131__webpack_require__(124);
32132__webpack_require__(265);
32133__webpack_require__(160);
32134__webpack_require__(560);
32135__webpack_require__(77);
32136__webpack_require__(162);
32137__webpack_require__(561);
32138__webpack_require__(562);
32139__webpack_require__(177);
32140__webpack_require__(563);
32141__webpack_require__(564);
32142__webpack_require__(410);
32143__webpack_require__(565);
32144__webpack_require__(566);
32145__webpack_require__(567);
32146__webpack_require__(138);
32147__webpack_require__(568);
32148__webpack_require__(123);
32149__webpack_require__(569);
32150__webpack_require__(570);
32151__webpack_require__(406);
32152__webpack_require__(571);
32153__webpack_require__(572);
32154__webpack_require__(573);
32155__webpack_require__(574);
32156__webpack_require__(575);
32157__webpack_require__(576);
32158__webpack_require__(98);
32159__webpack_require__(99);
32160__webpack_require__(577);
32161__webpack_require__(578);
32162__webpack_require__(579);
32163__webpack_require__(580);
32164__webpack_require__(581);
32165__webpack_require__(582);
32166__webpack_require__(89);
32167__webpack_require__(583);
32168__webpack_require__(584);
32169__webpack_require__(585);
32170__webpack_require__(328);
32171__webpack_require__(105);
32172__webpack_require__(587);
32173__webpack_require__(588);
32174__webpack_require__(589);
32175__webpack_require__(590);
32176__webpack_require__(460);
32177__webpack_require__(591);
32178__webpack_require__(592);
32179__webpack_require__(266);
32180__webpack_require__(140);
32181__webpack_require__(302);
32182__webpack_require__(593);
32183__webpack_require__(594);
32184__webpack_require__(595);
32185__webpack_require__(596);
32186__webpack_require__(269);
32187__webpack_require__(254);
32188__webpack_require__(252);
32189__webpack_require__(461);
32190__webpack_require__(303);
32191__webpack_require__(597);
32192__webpack_require__(598);
32193__webpack_require__(237);
32194__webpack_require__(599);
32195__webpack_require__(600);
32196__webpack_require__(601);
32197__webpack_require__(602);
32198__webpack_require__(603);
32199__webpack_require__(604);
32200__webpack_require__(605);
32201__webpack_require__(606);
32202__webpack_require__(426);
32203__webpack_require__(523);
32204__webpack_require__(607);
32205__webpack_require__(344);
32206__webpack_require__(608);
32207__webpack_require__(609);
32208__webpack_require__(427);
32209__webpack_require__(93);
32210__webpack_require__(610);
32211__webpack_require__(611);
32212__webpack_require__(612);
32213__webpack_require__(156);
32214__webpack_require__(613);
32215__webpack_require__(614);
32216__webpack_require__(411);
32217__webpack_require__(615);
32218__webpack_require__(616);
32219__webpack_require__(618);
32220__webpack_require__(619);
32221__webpack_require__(620);
32222__webpack_require__(621);
32223__webpack_require__(622);
32224__webpack_require__(623);
32225__webpack_require__(624);
32226__webpack_require__(625);
32227__webpack_require__(626);
32228__webpack_require__(627);
32229__webpack_require__(628);
32230__webpack_require__(629);
32231__webpack_require__(630);
32232__webpack_require__(631);
32233__webpack_require__(632);
32234__webpack_require__(633);
32235__webpack_require__(634);
32236__webpack_require__(636);
32237__webpack_require__(637);
32238__webpack_require__(638);
32239__webpack_require__(639);
32240__webpack_require__(640);
32241__webpack_require__(641);
32242__webpack_require__(642);
32243__webpack_require__(643);
32244__webpack_require__(644);
32245__webpack_require__(645);
32246__webpack_require__(646);
32247__webpack_require__(647);
32248__webpack_require__(648);
32249__webpack_require__(650);
32250__webpack_require__(651);
32251__webpack_require__(653);
32252__webpack_require__(654);
32253__webpack_require__(187);
32254__webpack_require__(656);
32255__webpack_require__(657);
32256__webpack_require__(658);
32257__webpack_require__(659);
32258__webpack_require__(660);
32259__webpack_require__(661);
32260__webpack_require__(662);
32261__webpack_require__(663);
32262__webpack_require__(665);
32263__webpack_require__(492);
32264__webpack_require__(666);
32265__webpack_require__(667);
32266__webpack_require__(493);
32267__webpack_require__(669);
32268__webpack_require__(670);
32269__webpack_require__(671);
32270__webpack_require__(672);
32271__webpack_require__(673);
32272__webpack_require__(674);
32273__webpack_require__(675);
32274__webpack_require__(676);
32275__webpack_require__(677);
32276__webpack_require__(494);
32277__webpack_require__(495);
32278__webpack_require__(496);
32279__webpack_require__(497);
32280__webpack_require__(498);
32281__webpack_require__(499);
32282__webpack_require__(500);
32283__webpack_require__(501);
32284__webpack_require__(502);
32285__webpack_require__(503);
32286__webpack_require__(504);
32287__webpack_require__(505);
32288__webpack_require__(506);
32289__webpack_require__(507);
32290__webpack_require__(508);
32291__webpack_require__(509);
32292__webpack_require__(510);
32293__webpack_require__(511);
32294__webpack_require__(512);
32295__webpack_require__(513);
32296__webpack_require__(514);
32297__webpack_require__(515);
32298__webpack_require__(516);
32299__webpack_require__(678);
32300__webpack_require__(462);
32301__webpack_require__(679);
32302__webpack_require__(680);
32303__webpack_require__(681);
32304__webpack_require__(682);
32305__webpack_require__(683);
32306__webpack_require__(684);
32307__webpack_require__(685);
32308__webpack_require__(686);
32309__webpack_require__(687);
32310__webpack_require__(688);
32311__webpack_require__(689);
32312__webpack_require__(690);
32313var path = __webpack_require__(167);
32314
32315module.exports = path;
32316
32317
32318/***/ }),
32319/* 540 */
32320/***/ (function(module, exports, __webpack_require__) {
32321
32322var defineWellKnownSymbol = __webpack_require__(62);
32323
32324// `Symbol.asyncIterator` well-known symbol
32325// https://tc39.github.io/ecma262/#sec-symbol.asynciterator
32326defineWellKnownSymbol('asyncIterator');
32327
32328
32329/***/ }),
32330/* 541 */
32331/***/ (function(module, exports, __webpack_require__) {
32332
32333var defineWellKnownSymbol = __webpack_require__(62);
32334
32335// `Symbol.hasInstance` well-known symbol
32336// https://tc39.github.io/ecma262/#sec-symbol.hasinstance
32337defineWellKnownSymbol('hasInstance');
32338
32339
32340/***/ }),
32341/* 542 */
32342/***/ (function(module, exports, __webpack_require__) {
32343
32344var defineWellKnownSymbol = __webpack_require__(62);
32345
32346// `Symbol.isConcatSpreadable` well-known symbol
32347// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable
32348defineWellKnownSymbol('isConcatSpreadable');
32349
32350
32351/***/ }),
32352/* 543 */
32353/***/ (function(module, exports, __webpack_require__) {
32354
32355var defineWellKnownSymbol = __webpack_require__(62);
32356
32357// `Symbol.match` well-known symbol
32358// https://tc39.github.io/ecma262/#sec-symbol.match
32359defineWellKnownSymbol('match');
32360
32361
32362/***/ }),
32363/* 544 */
32364/***/ (function(module, exports, __webpack_require__) {
32365
32366var defineWellKnownSymbol = __webpack_require__(62);
32367
32368// `Symbol.matchAll` well-known symbol
32369defineWellKnownSymbol('matchAll');
32370
32371
32372/***/ }),
32373/* 545 */
32374/***/ (function(module, exports, __webpack_require__) {
32375
32376var defineWellKnownSymbol = __webpack_require__(62);
32377
32378// `Symbol.replace` well-known symbol
32379// https://tc39.github.io/ecma262/#sec-symbol.replace
32380defineWellKnownSymbol('replace');
32381
32382
32383/***/ }),
32384/* 546 */
32385/***/ (function(module, exports, __webpack_require__) {
32386
32387var defineWellKnownSymbol = __webpack_require__(62);
32388
32389// `Symbol.search` well-known symbol
32390// https://tc39.github.io/ecma262/#sec-symbol.search
32391defineWellKnownSymbol('search');
32392
32393
32394/***/ }),
32395/* 547 */
32396/***/ (function(module, exports, __webpack_require__) {
32397
32398var defineWellKnownSymbol = __webpack_require__(62);
32399
32400// `Symbol.species` well-known symbol
32401// https://tc39.github.io/ecma262/#sec-symbol.species
32402defineWellKnownSymbol('species');
32403
32404
32405/***/ }),
32406/* 548 */
32407/***/ (function(module, exports, __webpack_require__) {
32408
32409var defineWellKnownSymbol = __webpack_require__(62);
32410
32411// `Symbol.split` well-known symbol
32412// https://tc39.github.io/ecma262/#sec-symbol.split
32413defineWellKnownSymbol('split');
32414
32415
32416/***/ }),
32417/* 549 */
32418/***/ (function(module, exports, __webpack_require__) {
32419
32420var defineWellKnownSymbol = __webpack_require__(62);
32421
32422// `Symbol.toPrimitive` well-known symbol
32423// https://tc39.github.io/ecma262/#sec-symbol.toprimitive
32424defineWellKnownSymbol('toPrimitive');
32425
32426
32427/***/ }),
32428/* 550 */
32429/***/ (function(module, exports, __webpack_require__) {
32430
32431var defineWellKnownSymbol = __webpack_require__(62);
32432
32433// `Symbol.toStringTag` well-known symbol
32434// https://tc39.github.io/ecma262/#sec-symbol.tostringtag
32435defineWellKnownSymbol('toStringTag');
32436
32437
32438/***/ }),
32439/* 551 */
32440/***/ (function(module, exports, __webpack_require__) {
32441
32442var defineWellKnownSymbol = __webpack_require__(62);
32443
32444// `Symbol.unscopables` well-known symbol
32445// https://tc39.github.io/ecma262/#sec-symbol.unscopables
32446defineWellKnownSymbol('unscopables');
32447
32448
32449/***/ }),
32450/* 552 */
32451/***/ (function(module, exports, __webpack_require__) {
32452
32453"use strict";
32454
32455var $ = __webpack_require__(2);
32456var getPrototypeOf = __webpack_require__(74);
32457var setPrototypeOf = __webpack_require__(116);
32458var create = __webpack_require__(92);
32459var createNonEnumerableProperty = __webpack_require__(53);
32460var createPropertyDescriptor = __webpack_require__(100);
32461var iterate = __webpack_require__(117);
32462
32463var $AggregateError = function AggregateError(errors, message) {
32464  var that = this;
32465  if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);
32466  if (setPrototypeOf) {
32467    that = setPrototypeOf(new Error(undefined), getPrototypeOf(that));
32468  }
32469  if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));
32470  var errorsArray = [];
32471  iterate(errors, errorsArray.push, { that: errorsArray });
32472  createNonEnumerableProperty(that, 'errors', errorsArray);
32473  return that;
32474};
32475
32476$AggregateError.prototype = create(Error.prototype, {
32477  constructor: createPropertyDescriptor(5, $AggregateError),
32478  message: createPropertyDescriptor(5, ''),
32479  name: createPropertyDescriptor(5, 'AggregateError')
32480});
32481
32482$({ global: true }, {
32483  AggregateError: $AggregateError
32484});
32485
32486
32487/***/ }),
32488/* 553 */
32489/***/ (function(module, exports, __webpack_require__) {
32490
32491var anObject = __webpack_require__(20);
32492var iteratorClose = __webpack_require__(365);
32493
32494// call something on iterator step with safe closing on error
32495module.exports = function (iterator, fn, value, ENTRIES) {
32496  try {
32497    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
32498  // 7.4.6 IteratorClose(iterator, completion)
32499  } catch (error) {
32500    iteratorClose(iterator);
32501    throw error;
32502  }
32503};
32504
32505
32506/***/ }),
32507/* 554 */
32508/***/ (function(module, exports, __webpack_require__) {
32509
32510var $ = __webpack_require__(2);
32511var isArray = __webpack_require__(133);
32512
32513// `Array.isArray` method
32514// https://tc39.github.io/ecma262/#sec-array.isarray
32515$({ target: 'Array', stat: true }, {
32516  isArray: isArray
32517});
32518
32519
32520/***/ }),
32521/* 555 */
32522/***/ (function(module, exports, __webpack_require__) {
32523
32524"use strict";
32525
32526var $ = __webpack_require__(2);
32527var fails = __webpack_require__(11);
32528var createProperty = __webpack_require__(134);
32529
32530var ISNT_GENERIC = fails(function () {
32531  function F() { /* empty */ }
32532  return !(Array.of.call(F) instanceof F);
32533});
32534
32535// `Array.of` method
32536// https://tc39.github.io/ecma262/#sec-array.of
32537// WebKit Array.of isn't generic
32538$({ target: 'Array', stat: true, forced: ISNT_GENERIC }, {
32539  of: function of(/* ...args */) {
32540    var index = 0;
32541    var argumentsLength = arguments.length;
32542    var result = new (typeof this == 'function' ? this : Array)(argumentsLength);
32543    while (argumentsLength > index) createProperty(result, index, arguments[index++]);
32544    result.length = argumentsLength;
32545    return result;
32546  }
32547});
32548
32549
32550/***/ }),
32551/* 556 */
32552/***/ (function(module, exports, __webpack_require__) {
32553
32554var $ = __webpack_require__(2);
32555var copyWithin = __webpack_require__(367);
32556var addToUnscopables = __webpack_require__(118);
32557
32558// `Array.prototype.copyWithin` method
32559// https://tc39.github.io/ecma262/#sec-array.prototype.copywithin
32560$({ target: 'Array', proto: true }, {
32561  copyWithin: copyWithin
32562});
32563
32564// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
32565addToUnscopables('copyWithin');
32566
32567
32568/***/ }),
32569/* 557 */
32570/***/ (function(module, exports, __webpack_require__) {
32571
32572var $ = __webpack_require__(2);
32573var fill = __webpack_require__(286);
32574var addToUnscopables = __webpack_require__(118);
32575
32576// `Array.prototype.fill` method
32577// https://tc39.github.io/ecma262/#sec-array.prototype.fill
32578$({ target: 'Array', proto: true }, {
32579  fill: fill
32580});
32581
32582// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
32583addToUnscopables('fill');
32584
32585
32586/***/ }),
32587/* 558 */
32588/***/ (function(module, exports, __webpack_require__) {
32589
32590"use strict";
32591
32592var $ = __webpack_require__(2);
32593var flattenIntoArray = __webpack_require__(368);
32594var toObject = __webpack_require__(33);
32595var toLength = __webpack_require__(28);
32596var toInteger = __webpack_require__(73);
32597var arraySpeciesCreate = __webpack_require__(171);
32598
32599// `Array.prototype.flat` method
32600// https://github.com/tc39/proposal-flatMap
32601$({ target: 'Array', proto: true }, {
32602  flat: function flat(/* depthArg = 1 */) {
32603    var depthArg = arguments.length ? arguments[0] : undefined;
32604    var O = toObject(this);
32605    var sourceLen = toLength(O.length);
32606    var A = arraySpeciesCreate(O, 0);
32607    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
32608    return A;
32609  }
32610});
32611
32612
32613/***/ }),
32614/* 559 */
32615/***/ (function(module, exports, __webpack_require__) {
32616
32617"use strict";
32618
32619var $ = __webpack_require__(2);
32620var flattenIntoArray = __webpack_require__(368);
32621var toObject = __webpack_require__(33);
32622var toLength = __webpack_require__(28);
32623var aFunction = __webpack_require__(59);
32624var arraySpeciesCreate = __webpack_require__(171);
32625
32626// `Array.prototype.flatMap` method
32627// https://github.com/tc39/proposal-flatMap
32628$({ target: 'Array', proto: true }, {
32629  flatMap: function flatMap(callbackfn /* , thisArg */) {
32630    var O = toObject(this);
32631    var sourceLen = toLength(O.length);
32632    var A;
32633    aFunction(callbackfn);
32634    A = arraySpeciesCreate(O, 0);
32635    A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
32636    return A;
32637  }
32638});
32639
32640
32641/***/ }),
32642/* 560 */
32643/***/ (function(module, exports, __webpack_require__) {
32644
32645var $ = __webpack_require__(2);
32646var lastIndexOf = __webpack_require__(370);
32647
32648// `Array.prototype.lastIndexOf` method
32649// https://tc39.github.io/ecma262/#sec-array.prototype.lastindexof
32650$({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, {
32651  lastIndexOf: lastIndexOf
32652});
32653
32654
32655/***/ }),
32656/* 561 */
32657/***/ (function(module, exports, __webpack_require__) {
32658
32659"use strict";
32660
32661var $ = __webpack_require__(2);
32662var $reduceRight = __webpack_require__(217).right;
32663var arrayMethodIsStrict = __webpack_require__(102);
32664var arrayMethodUsesToLength = __webpack_require__(63);
32665var CHROME_VERSION = __webpack_require__(176);
32666var IS_NODE = __webpack_require__(146);
32667
32668var STRICT_METHOD = arrayMethodIsStrict('reduceRight');
32669// For preventing possible almost infinite loop in non-standard implementations, test the forward version of the method
32670var USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });
32671// Chrome 80-82 has a critical bug
32672// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982
32673var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;
32674
32675// `Array.prototype.reduceRight` method
32676// https://tc39.github.io/ecma262/#sec-array.prototype.reduceright
32677$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {
vendor: 14,221 bytes, lines 32678-33191
32678  reduceRight: function reduceRight(callbackfn /* , initialValue */) {
32679    return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);
32680  }
32681});
32682
32683
32684/***/ }),
32685/* 562 */
32686/***/ (function(module, exports, __webpack_require__) {
32687
32688"use strict";
32689
32690var $ = __webpack_require__(2);
32691var isArray = __webpack_require__(133);
32692
32693var nativeReverse = [].reverse;
32694var test = [1, 2];
32695
32696// `Array.prototype.reverse` method
32697// https://tc39.github.io/ecma262/#sec-array.prototype.reverse
32698// fix for Safari 12.0 bug
32699// https://bugs.webkit.org/show_bug.cgi?id=188794
32700$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {
32701  reverse: function reverse() {
32702    // eslint-disable-next-line no-self-assign
32703    if (isArray(this)) this.length = this.length;
32704    return nativeReverse.call(this);
32705  }
32706});
32707
32708
32709/***/ }),
32710/* 563 */
32711/***/ (function(module, exports, __webpack_require__) {
32712
32713"use strict";
32714
32715var $ = __webpack_require__(2);
32716var $some = __webpack_require__(46).some;
32717var arrayMethodIsStrict = __webpack_require__(102);
32718var arrayMethodUsesToLength = __webpack_require__(63);
32719
32720var STRICT_METHOD = arrayMethodIsStrict('some');
32721var USES_TO_LENGTH = arrayMethodUsesToLength('some');
32722
32723// `Array.prototype.some` method
32724// https://tc39.github.io/ecma262/#sec-array.prototype.some
32725$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {
32726  some: function some(callbackfn /* , thisArg */) {
32727    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
32728  }
32729});
32730
32731
32732/***/ }),
32733/* 564 */
32734/***/ (function(module, exports, __webpack_require__) {
32735
32736"use strict";
32737
32738var $ = __webpack_require__(2);
32739var aFunction = __webpack_require__(59);
32740var toObject = __webpack_require__(33);
32741var fails = __webpack_require__(11);
32742var arrayMethodIsStrict = __webpack_require__(102);
32743
32744var test = [];
32745var nativeSort = test.sort;
32746
32747// IE8-
32748var FAILS_ON_UNDEFINED = fails(function () {
32749  test.sort(undefined);
32750});
32751// V8 bug
32752var FAILS_ON_NULL = fails(function () {
32753  test.sort(null);
32754});
32755// Old WebKit
32756var STRICT_METHOD = arrayMethodIsStrict('sort');
32757
32758var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;
32759
32760// `Array.prototype.sort` method
32761// https://tc39.github.io/ecma262/#sec-array.prototype.sort
32762$({ target: 'Array', proto: true, forced: FORCED }, {
32763  sort: function sort(comparefn) {
32764    return comparefn === undefined
32765      ? nativeSort.call(toObject(this))
32766      : nativeSort.call(toObject(this), aFunction(comparefn));
32767  }
32768});
32769
32770
32771/***/ }),
32772/* 565 */
32773/***/ (function(module, exports, __webpack_require__) {
32774
32775var setSpecies = __webpack_require__(147);
32776
32777// `Array[@@species]` getter
32778// https://tc39.github.io/ecma262/#sec-get-array-@@species
32779setSpecies('Array');
32780
32781
32782/***/ }),
32783/* 566 */
32784/***/ (function(module, exports, __webpack_require__) {
32785
32786// this method was added to unscopables after implementation
32787// in popular engines, so it's moved to a separate module
32788var addToUnscopables = __webpack_require__(118);
32789
32790addToUnscopables('flat');
32791
32792
32793/***/ }),
32794/* 567 */
32795/***/ (function(module, exports, __webpack_require__) {
32796
32797// this method was added to unscopables after implementation
32798// in popular engines, so it's moved to a separate module
32799var addToUnscopables = __webpack_require__(118);
32800
32801addToUnscopables('flatMap');
32802
32803
32804/***/ }),
32805/* 568 */
32806/***/ (function(module, exports, __webpack_require__) {
32807
32808var $ = __webpack_require__(2);
32809var bind = __webpack_require__(372);
32810
32811// `Function.prototype.bind` method
32812// https://tc39.github.io/ecma262/#sec-function.prototype.bind
32813$({ target: 'Function', proto: true }, {
32814  bind: bind
32815});
32816
32817
32818/***/ }),
32819/* 569 */
32820/***/ (function(module, exports, __webpack_require__) {
32821
32822"use strict";
32823
32824var isObject = __webpack_require__(19);
32825var definePropertyModule = __webpack_require__(30);
32826var getPrototypeOf = __webpack_require__(74);
32827var wellKnownSymbol = __webpack_require__(23);
32828
32829var HAS_INSTANCE = wellKnownSymbol('hasInstance');
32830var FunctionPrototype = Function.prototype;
32831
32832// `Function.prototype[@@hasInstance]` method
32833// https://tc39.github.io/ecma262/#sec-function.prototype-@@hasinstance
32834if (!(HAS_INSTANCE in FunctionPrototype)) {
32835  definePropertyModule.f(FunctionPrototype, HAS_INSTANCE, { value: function (O) {
32836    if (typeof this != 'function' || !isObject(O)) return false;
32837    if (!isObject(this.prototype)) return O instanceof this;
32838    // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
32839    while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
32840    return false;
32841  } });
32842}
32843
32844
32845/***/ }),
32846/* 570 */
32847/***/ (function(module, exports, __webpack_require__) {
32848
32849var $ = __webpack_require__(2);
32850var global = __webpack_require__(16);
32851
32852// `globalThis` object
32853// https://github.com/tc39/proposal-global
32854$({ global: true }, {
32855  globalThis: global
32856});
32857
32858
32859/***/ }),
32860/* 571 */
32861/***/ (function(module, exports, __webpack_require__) {
32862
32863var $ = __webpack_require__(2);
32864var DESCRIPTORS = __webpack_require__(21);
32865var create = __webpack_require__(92);
32866
32867// `Object.create` method
32868// https://tc39.github.io/ecma262/#sec-object.create
32869$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {
32870  create: create
32871});
32872
32873
32874/***/ }),
32875/* 572 */
32876/***/ (function(module, exports, __webpack_require__) {
32877
32878var $ = __webpack_require__(2);
32879var DESCRIPTORS = __webpack_require__(21);
32880var objectDefinePropertyModile = __webpack_require__(30);
32881
32882// `Object.defineProperty` method
32883// https://tc39.github.io/ecma262/#sec-object.defineproperty
32884$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
32885  defineProperty: objectDefinePropertyModile.f
32886});
32887
32888
32889/***/ }),
32890/* 573 */
32891/***/ (function(module, exports, __webpack_require__) {
32892
32893var $ = __webpack_require__(2);
32894var DESCRIPTORS = __webpack_require__(21);
32895var defineProperties = __webpack_require__(282);
32896
32897// `Object.defineProperties` method
32898// https://tc39.github.io/ecma262/#sec-object.defineproperties
32899$({ target: 'Object', stat: true, forced: !DESCRIPTORS, sham: !DESCRIPTORS }, {
32900  defineProperties: defineProperties
32901});
32902
32903
32904/***/ }),
32905/* 574 */
32906/***/ (function(module, exports, __webpack_require__) {
32907
32908var $ = __webpack_require__(2);
32909var $entries = __webpack_require__(374).entries;
32910
32911// `Object.entries` method
32912// https://tc39.github.io/ecma262/#sec-object.entries
32913$({ target: 'Object', stat: true }, {
32914  entries: function entries(O) {
32915    return $entries(O);
32916  }
32917});
32918
32919
32920/***/ }),
32921/* 575 */
32922/***/ (function(module, exports, __webpack_require__) {
32923
32924var $ = __webpack_require__(2);
32925var FREEZING = __webpack_require__(178);
32926var fails = __webpack_require__(11);
32927var isObject = __webpack_require__(19);
32928var onFreeze = __webpack_require__(135).onFreeze;
32929
32930var nativeFreeze = Object.freeze;
32931var FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });
32932
32933// `Object.freeze` method
32934// https://tc39.github.io/ecma262/#sec-object.freeze
32935$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
32936  freeze: function freeze(it) {
32937    return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;
32938  }
32939});
32940
32941
32942/***/ }),
32943/* 576 */
32944/***/ (function(module, exports, __webpack_require__) {
32945
32946var $ = __webpack_require__(2);
32947var iterate = __webpack_require__(117);
32948var createProperty = __webpack_require__(134);
32949
32950// `Object.fromEntries` method
32951// https://github.com/tc39/proposal-object-from-entries
32952$({ target: 'Object', stat: true }, {
32953  fromEntries: function fromEntries(iterable) {
32954    var obj = {};
32955    iterate(iterable, function (k, v) {
32956      createProperty(obj, k, v);
32957    }, { AS_ENTRIES: true });
32958    return obj;
32959  }
32960});
32961
32962
32963/***/ }),
32964/* 577 */
32965/***/ (function(module, exports, __webpack_require__) {
32966
32967var $ = __webpack_require__(2);
32968var fails = __webpack_require__(11);
32969var nativeGetOwnPropertyNames = __webpack_require__(362).f;
32970
32971var FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });
32972
32973// `Object.getOwnPropertyNames` method
32974// https://tc39.github.io/ecma262/#sec-object.getownpropertynames
32975$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
32976  getOwnPropertyNames: nativeGetOwnPropertyNames
32977});
32978
32979
32980/***/ }),
32981/* 578 */
32982/***/ (function(module, exports, __webpack_require__) {
32983
32984var $ = __webpack_require__(2);
32985var fails = __webpack_require__(11);
32986var toObject = __webpack_require__(33);
32987var nativeGetPrototypeOf = __webpack_require__(74);
32988var CORRECT_PROTOTYPE_GETTER = __webpack_require__(283);
32989
32990var FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });
32991
32992// `Object.getPrototypeOf` method
32993// https://tc39.github.io/ecma262/#sec-object.getprototypeof
32994$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {
32995  getPrototypeOf: function getPrototypeOf(it) {
32996    return nativeGetPrototypeOf(toObject(it));
32997  }
32998});
32999
33000
33001
33002/***/ }),
33003/* 579 */
33004/***/ (function(module, exports, __webpack_require__) {
33005
33006var $ = __webpack_require__(2);
33007var is = __webpack_require__(375);
33008
33009// `Object.is` method
33010// https://tc39.github.io/ecma262/#sec-object.is
33011$({ target: 'Object', stat: true }, {
33012  is: is
33013});
33014
33015
33016/***/ }),
33017/* 580 */
33018/***/ (function(module, exports, __webpack_require__) {
33019
33020var $ = __webpack_require__(2);
33021var fails = __webpack_require__(11);
33022var isObject = __webpack_require__(19);
33023
33024var nativeIsExtensible = Object.isExtensible;
33025var FAILS_ON_PRIMITIVES = fails(function () { nativeIsExtensible(1); });
33026
33027// `Object.isExtensible` method
33028// https://tc39.github.io/ecma262/#sec-object.isextensible
33029$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
33030  isExtensible: function isExtensible(it) {
33031    return isObject(it) ? nativeIsExtensible ? nativeIsExtensible(it) : true : false;
33032  }
33033});
33034
33035
33036/***/ }),
33037/* 581 */
33038/***/ (function(module, exports, __webpack_require__) {
33039
33040var $ = __webpack_require__(2);
33041var fails = __webpack_require__(11);
33042var isObject = __webpack_require__(19);
33043
33044var nativeIsFrozen = Object.isFrozen;
33045var FAILS_ON_PRIMITIVES = fails(function () { nativeIsFrozen(1); });
33046
33047// `Object.isFrozen` method
33048// https://tc39.github.io/ecma262/#sec-object.isfrozen
33049$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
33050  isFrozen: function isFrozen(it) {
33051    return isObject(it) ? nativeIsFrozen ? nativeIsFrozen(it) : false : true;
33052  }
33053});
33054
33055
33056/***/ }),
33057/* 582 */
33058/***/ (function(module, exports, __webpack_require__) {
33059
33060var $ = __webpack_require__(2);
33061var fails = __webpack_require__(11);
33062var isObject = __webpack_require__(19);
33063
33064var nativeIsSealed = Object.isSealed;
33065var FAILS_ON_PRIMITIVES = fails(function () { nativeIsSealed(1); });
33066
33067// `Object.isSealed` method
33068// https://tc39.github.io/ecma262/#sec-object.issealed
33069$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
33070  isSealed: function isSealed(it) {
33071    return isObject(it) ? nativeIsSealed ? nativeIsSealed(it) : false : true;
33072  }
33073});
33074
33075
33076/***/ }),
33077/* 583 */
33078/***/ (function(module, exports, __webpack_require__) {
33079
33080var $ = __webpack_require__(2);
33081var isObject = __webpack_require__(19);
33082var onFreeze = __webpack_require__(135).onFreeze;
33083var FREEZING = __webpack_require__(178);
33084var fails = __webpack_require__(11);
33085
33086var nativePreventExtensions = Object.preventExtensions;
33087var FAILS_ON_PRIMITIVES = fails(function () { nativePreventExtensions(1); });
33088
33089// `Object.preventExtensions` method
33090// https://tc39.github.io/ecma262/#sec-object.preventextensions
33091$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
33092  preventExtensions: function preventExtensions(it) {
33093    return nativePreventExtensions && isObject(it) ? nativePreventExtensions(onFreeze(it)) : it;
33094  }
33095});
33096
33097
33098/***/ }),
33099/* 584 */
33100/***/ (function(module, exports, __webpack_require__) {
33101
33102var $ = __webpack_require__(2);
33103var isObject = __webpack_require__(19);
33104var onFreeze = __webpack_require__(135).onFreeze;
33105var FREEZING = __webpack_require__(178);
33106var fails = __webpack_require__(11);
33107
33108var nativeSeal = Object.seal;
33109var FAILS_ON_PRIMITIVES = fails(function () { nativeSeal(1); });
33110
33111// `Object.seal` method
33112// https://tc39.github.io/ecma262/#sec-object.seal
33113$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {
33114  seal: function seal(it) {
33115    return nativeSeal && isObject(it) ? nativeSeal(onFreeze(it)) : it;
33116  }
33117});
33118
33119
33120/***/ }),
33121/* 585 */
33122/***/ (function(module, exports, __webpack_require__) {
33123
33124var $ = __webpack_require__(2);
33125var setPrototypeOf = __webpack_require__(116);
33126
33127// `Object.setPrototypeOf` method
33128// https://tc39.github.io/ecma262/#sec-object.setprototypeof
33129$({ target: 'Object', stat: true }, {
33130  setPrototypeOf: setPrototypeOf
33131});
33132
33133
33134/***/ }),
33135/* 586 */
33136/***/ (function(module, exports, __webpack_require__) {
33137
33138"use strict";
33139
33140var TO_STRING_TAG_SUPPORT = __webpack_require__(285);
33141var classof = __webpack_require__(174);
33142
33143// `Object.prototype.toString` method implementation
33144// https://tc39.github.io/ecma262/#sec-object.prototype.tostring
33145module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
33146  return '[object ' + classof(this) + ']';
33147};
33148
33149
33150/***/ }),
33151/* 587 */
33152/***/ (function(module, exports, __webpack_require__) {
33153
33154"use strict";
33155
33156var $ = __webpack_require__(2);
33157var DESCRIPTORS = __webpack_require__(21);
33158var FORCED = __webpack_require__(218);
33159var toObject = __webpack_require__(33);
33160var aFunction = __webpack_require__(59);
33161var definePropertyModule = __webpack_require__(30);
33162
33163// `Object.prototype.__defineGetter__` method
33164// https://tc39.github.io/ecma262/#sec-object.prototype.__defineGetter__
33165if (DESCRIPTORS) {
33166  $({ target: 'Object', proto: true, forced: FORCED }, {
33167    __defineGetter__: function __defineGetter__(P, getter) {
33168      definePropertyModule.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
33169    }
33170  });
33171}
33172
33173
33174/***/ }),
33175/* 588 */
33176/***/ (function(module, exports, __webpack_require__) {
33177
33178"use strict";
33179
33180var $ = __webpack_require__(2);
33181var DESCRIPTORS = __webpack_require__(21);
33182var FORCED = __webpack_require__(218);
33183var toObject = __webpack_require__(33);
33184var aFunction = __webpack_require__(59);
33185var definePropertyModule = __webpack_require__(30);
33186
33187// `Object.prototype.__defineSetter__` method
33188// https://tc39.github.io/ecma262/#sec-object.prototype.__defineSetter__
33189if (DESCRIPTORS) {
33190  $({ target: 'Object', proto: true, forced: FORCED }, {
33191    __defineSetter__: function __defineSetter__(P, setter) {
33192      definePropertyModule.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
33193    }
33194  });
33195}
33196
33197
33198/***/ }),
33199/* 589 */
33200/***/ (function(module, exports, __webpack_require__) {
33201
33202"use strict";
33203
33204var $ = __webpack_require__(2);
33205var DESCRIPTORS = __webpack_require__(21);
33206var FORCED = __webpack_require__(218);
33207var toObject = __webpack_require__(33);
33208var toPrimitive = __webpack_require__(79);
33209var getPrototypeOf = __webpack_require__(74);
33210var getOwnPropertyDescriptor = __webpack_require__(51).f;
33211
33212// `Object.prototype.__lookupGetter__` method
33213// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter__
33214if (DESCRIPTORS) {
33215  $({ target: 'Object', proto: true, forced: FORCED }, {
33216    __lookupGetter__: function __lookupGetter__(P) {
33217      var O = toObject(this);
33218      var key = toPrimitive(P, true);
33219      var desc;
33220      do {
33221        if (desc = getOwnPropertyDescriptor(O, key)) return desc.get;
33222      } while (O = getPrototypeOf(O));
33223    }
33224  });
33225}
33226
33227
33228/***/ }),
33229/* 590 */
33230/***/ (function(module, exports, __webpack_require__) {
33231
33232"use strict";
33233
33234var $ = __webpack_require__(2);
33235var DESCRIPTORS = __webpack_require__(21);
33236var FORCED = __webpack_require__(218);
33237var toObject = __webpack_require__(33);
33238var toPrimitive = __webpack_require__(79);
33239var getPrototypeOf = __webpack_require__(74);
33240var getOwnPropertyDescriptor = __webpack_require__(51).f;
33241
33242// `Object.prototype.__lookupSetter__` method
33243// https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter__
33244if (DESCRIPTORS) {
33245  $({ target: 'Object', proto: true, forced: FORCED }, {
33246    __lookupSetter__: function __lookupSetter__(P) {
33247      var O = toObject(this);
33248      var key = toPrimitive(P, true);
33249      var desc;
33250      do {
33251        if (desc = getOwnPropertyDescriptor(O, key)) return desc.set;
33252      } while (O = getPrototypeOf(O));
33253    }
33254  });
33255}
33256
33257
33258/***/ }),
33259/* 591 */
33260/***/ (function(module, exports, __webpack_require__) {
33261
33262var $ = __webpack_require__(2);
33263var toIndexedObject = __webpack_require__(66);
33264var toLength = __webpack_require__(28);
33265
33266// `String.raw` method
33267// https://tc39.github.io/ecma262/#sec-string.raw
33268$({ target: 'String', stat: true }, {
33269  raw: function raw(template) {
33270    var rawTemplate = toIndexedObject(template.raw);
33271    var literalSegments = toLength(rawTemplate.length);
33272    var argumentsLength = arguments.length;
33273    var elements = [];
33274    var i = 0;
33275    while (literalSegments > i) {
33276      elements.push(String(rawTemplate[i++]));
33277      if (i < argumentsLength) elements.push(String(arguments[i]));
33278    } return elements.join('');
33279  }
33280});
33281
33282
33283/***/ }),
33284/* 592 */
33285/***/ (function(module, exports, __webpack_require__) {
33286
33287"use strict";
33288
33289var $ = __webpack_require__(2);
33290var codeAt = __webpack_require__(219).codeAt;
33291
33292// `String.prototype.codePointAt` method
33293// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
33294$({ target: 'String', proto: true }, {
33295  codePointAt: function codePointAt(pos) {
33296    return codeAt(this, pos);
33297  }
33298});
33299
33300
33301/***/ }),
33302/* 593 */
33303/***/ (function(module, exports, __webpack_require__) {
33304
33305"use strict";
33306
33307var $ = __webpack_require__(2);
33308var createIteratorConstructor = __webpack_require__(288);
33309var requireObjectCoercible = __webpack_require__(52);
33310var toLength = __webpack_require__(28);
33311var aFunction = __webpack_require__(59);
33312var anObject = __webpack_require__(20);
33313var classof = __webpack_require__(101);
33314var isRegExp = __webpack_require__(179);
33315var getRegExpFlags = __webpack_require__(148);
33316var createNonEnumerableProperty = __webpack_require__(53);
33317var fails = __webpack_require__(11);
33318var wellKnownSymbol = __webpack_require__(23);
33319var speciesConstructor = __webpack_require__(103);
33320var advanceStringIndex = __webpack_require__(223);
33321var InternalStateModule = __webpack_require__(58);
33322var IS_PURE = __webpack_require__(72);
33323
33324var MATCH_ALL = wellKnownSymbol('matchAll');
33325var REGEXP_STRING = 'RegExp String';
33326var REGEXP_STRING_ITERATOR = REGEXP_STRING + ' Iterator';
33327var setInternalState = InternalStateModule.set;
33328var getInternalState = InternalStateModule.getterFor(REGEXP_STRING_ITERATOR);
33329var RegExpPrototype = RegExp.prototype;
33330var regExpBuiltinExec = RegExpPrototype.exec;
33331var nativeMatchAll = ''.matchAll;
33332
33333var WORKS_WITH_NON_GLOBAL_REGEX = !!nativeMatchAll && !fails(function () {
33334  'a'.matchAll(/./);
33335});
33336
33337var regExpExec = function (R, S) {
33338  var exec = R.exec;
33339  var result;
33340  if (typeof exec == 'function') {
33341    result = exec.call(R, S);
33342    if (typeof result != 'object') throw TypeError('Incorrect exec result');
33343    return result;
33344  } return regExpBuiltinExec.call(R, S);
33345};
33346
33347// eslint-disable-next-line max-len
33348var $RegExpStringIterator = createIteratorConstructor(function RegExpStringIterator(regexp, string, global, fullUnicode) {
33349  setInternalState(this, {
33350    type: REGEXP_STRING_ITERATOR,
33351    regexp: regexp,
33352    string: string,
33353    global: global,
33354    unicode: fullUnicode,
33355    done: false
33356  });
33357}, REGEXP_STRING, function next() {
33358  var state = getInternalState(this);
33359  if (state.done) return { value: undefined, done: true };
33360  var R = state.regexp;
33361  var S = state.string;
33362  var match = regExpExec(R, S);
33363  if (match === null) return { value: undefined, done: state.done = true };
33364  if (state.global) {
33365    if (String(match[0]) == '') R.lastIndex = advanceStringIndex(S, toLe
33365ngth(R.lastIndex), state.unicode);
33366    return { value: match, done: false };
33367  }
33368  state.done = true;
33369  return { value: match, done: false };
33370});
33371
33372var $matchAll = function (string) {
33373  var R = anObject(this);
33374  var S = String(string);
33375  var C, flagsValue, flags, matcher, global, fullUnicode;
33376  C = speciesConstructor(R, RegExp);
33377  flagsValue = R.flags;
33378  if (flagsValue === undefined && R instanceof RegExp && !('flags' in RegExpPrototype)) {
33379    flagsValue = getRegExpFlags.call(R);
33380  }
33381  flags = flagsValue === undefined ? '' : String(flagsValue);
33382  matcher = new C(C === RegExp ? R.source : R, flags);
33383  global = !!~flags.indexOf('g');
33384  fullUnicode = !!~flags.indexOf('u');
33385  matcher.lastIndex = toLength(R.lastIndex);
33386  return new $RegExpStringIterator(matcher, S, global, fullUnicode);
33387};
33388
33389// `String.prototype.matchAll` method
33390// https://github.com/tc39/proposal-string-matchall
33391$({ target: 'String', proto: true, forced: WORKS_WITH_NON_GLOBAL_REGEX }, {
33392  matchAll: function matchAll(regexp) {
33393    var O = requireObjectCoercible(this);
33394    var flags, S, matcher, rx;
33395    if (regexp != null) {
33396      if (isRegExp(regexp)) {
33397        flags = String(requireObjectCoercible('flags' in RegExpPrototype
33398          ? regexp.flags
33399          : getRegExpFlags.call(regexp)
33400        ));
33401        if (!~flags.indexOf('g')) throw TypeError('`.matchAll` does not allow non-global regexes');
33402      }
33403      if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
33404      matcher = regexp[MATCH_ALL];
33405      if (matcher === undefined && IS_PURE && classof(regexp) == 'RegExp') matcher = $matchAll;
33406      if (matcher != null) return aFunction(matcher).call(regexp, O);
33407    } else if (WORKS_WITH_NON_GLOBAL_REGEX) return nativeMatchAll.apply(O, arguments);
33408    S = String(O);
33409    rx = new RegExp(regexp, 'g');
33410    return IS_PURE ? $matchAll.call(rx, S) : rx[MATCH_ALL](S);
33411  }
33412});
33413
33414IS_PURE || MATCH_ALL in RegExpPrototype || createNonEnumerableProperty(RegExpPrototype, MATCH_ALL, $matchAll);
33415
33416
33417/***/ }),
33418/* 594 */
33419/***/ (function(module, exports, __webpack_require__) {
33420
33421"use strict";
33422
33423var $ = __webpack_require__(2);
33424var $padEnd = __webpack_require__(291).end;
33425var WEBKIT_BUG = __webpack_require__(376);
33426
33427// `String.prototype.padEnd` method
33428// https://tc39.github.io/ecma262/#sec-string.prototype.padend
33429$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
33430  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
33431    return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
33432  }
33433});
33434
33435
33436/***/ }),
33437/* 595 */
33438/***/ (function(module, exports, __webpack_require__) {
33439
33440"use strict";
33441
33442var $ = __webpack_require__(2);
33443var $padStart = __webpack_require__(291).start;
33444var WEBKIT_BUG = __webpack_require__(376);
33445
33446// `String.prototype.padStart` method
33447// https://tc39.github.io/ecma262/#sec-string.prototype.padstart
33448$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {
33449  padStart: function padStart(maxLength /* , fillString = ' ' */) {
33450    return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
33451  }
33452});
33453
33454
33455/***/ }),
33456/* 596 */
33457/***/ (function(module, exports, __webpack_require__) {
33458
33459var $ = __webpack_require__(2);
33460var repeat = __webpack_require__(292);
33461
33462// `String.prototype.repeat` method
33463// https://tc39.github.io/ecma262/#sec-string.prototype.repeat
33464$({ target: 'String', proto: true }, {
33465  repeat: repeat
33466});
33467
33468
33469/***/ }),
33470/* 597 */
33471/***/ (function(module, exports, __webpack_require__) {
33472
33473"use strict";
33474
33475var $ = __webpack_require__(2);
33476var $trimStart = __webpack_require__(149).start;
33477var forcedStringTrimMethod = __webpack_require__(293);
33478
33479var FORCED = forcedStringTrimMethod('trimStart');
33480
33481var trimStart = FORCED ? function trimStart() {
33482  return $trimStart(this);
33483} : ''.trimStart;
33484
33485// `String.prototype.{ trimStart, trimLeft }` methods
33486// https://github.com/tc39/ecmascript-string-left-right-trim
33487$({ target: 'String', proto: true, forced: FORCED }, {
33488  trimStart: trimStart,
33489  trimLeft: trimStart
33490});
33491
33492
33493/***/ }),
33494/* 598 */
33495/***/ (function(module, exports, __webpack_require__) {
33496
33497"use strict";
33498
33499var $ = __webpack_require__(2);
33500var $trimEnd = __webpack_require__(149).end;
33501var forcedStringTrimMethod = __webpack_require__(293);
33502
33503var FORCED = forcedStringTrimMethod('trimEnd');
33504
33505var trimEnd = FORCED ? function trimEnd() {
33506  return $trimEnd(this);
33507} : ''.trimEnd;
33508
33509// `String.prototype.{ trimEnd, trimRight }` methods
33510// https://github.com/tc39/ecmascript-string-left-right-trim
33511$({ target: 'String', proto: true, forced: FORCED }, {
33512  trimEnd: trimEnd,
33513  trimRight: trimEnd
33514});
33515
33516
33517/***/ }),
33518/* 599 */
33519/***/ (function(module, exports, __webpack_require__) {
33520
33521"use strict";
33522
33523var $ = __webpack_require__(2);
33524var createHTML = __webpack_require__(68);
33525var forcedStringHTMLMethod = __webpack_require__(69);
33526
33527// `String.prototype.anchor` method
33528// https://tc39.github.io/ecma262/#sec-string.prototype.anchor
33529$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {
33530  anchor: function anchor(name) {
33531    return createHTML(this, 'a', 'name', name);
33532  }
33533});
33534
33535
33536/***/ }),
33537/* 600 */
33538/***/ (function(module, exports, __webpack_require__) {
33539
33540"use strict";
33541
33542var $ = __webpack_require__(2);
33543var createHTML = __webpack_require__(68);
33544var forcedStringHTMLMethod = __webpack_require__(69);
33545
33546// `String.prototype.big` method
33547// https://tc39.github.io/ecma262/#sec-string.prototype.big
33548$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('big') }, {
33549  big: function big() {
33550    return createHTML(this, 'big', '', '');
33551  }
33552});
33553
33554
33555/***/ }),
33556/* 601 */
33557/***/ (function(module, exports, __webpack_require__) {
33558
33559"use strict";
33560
33561var $ = __webpack_require__(2);
33562var createHTML = __webpack_require__(68);
33563var forcedStringHTMLMethod = __webpack_require__(69);
33564
33565// `String.prototype.blink` method
33566// https://tc39.github.io/ecma262/#sec-string.prototype.blink
33567$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('blink') }, {
33568  blink: function blink() {
33569    return createHTML(this, 'blink', '', '');
33570  }
33571});
33572
33573
33574/***/ }),
33575/* 602 */
33576/***/ (function(module, exports, __webpack_require__) {
33577
33578"use strict";
33579
33580var $ = __webpack_require__(2);
33581var createHTML = __webpack_require__(68);
33582var forcedStringHTMLMethod = __webpack_require__(69);
33583
33584// `String.prototype.bold` method
33585// https://tc39.github.io/ecma262/#sec-string.prototype.bold
33586$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('bold') }, {
33587  bold: function bold() {
33588    return createHTML(this, 'b', '', '');
33589  }
33590});
33591
33592
33593/***/ }),
33594/* 603 */
33595/***/ (function(module, exports, __webpack_require__) {
33596
33597"use strict";
33598
33599var $ = __webpack_require__(2);
33600var createHTML = __webpack_require__(68);
33601var forcedStringHTMLMethod = __webpack_require__(69);
33602
33603// `String.prototype.fixed` method
33604// https://tc39.github.io/ecma262/#sec-string.prototype.fixed
33605$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {
33606  fixed: function fixed() {
33607    return createHTML(this, 'tt', '', '');
33608  }
33609});
33610
33611
33612/***/ }),
33613/* 604 */
33614/***/ (function(module, exports, __webpack_require__) {
33615
33616"use strict";
33617
33618var $ = __webpack_require__(2);
33619var createHTML = __webpack_require__(68);
33620var forcedStringHTMLMethod = __webpack_require__(69);
33621
33622// `String.prototype.fontcolor` method
33623// https://tc39.github.io/ecma262/#sec-string.prototype.fontcolor
33624$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontcolor') }, {
33625  fontcolor: function fontcolor(color) {
33626    return createHTML(this, 'font', 'color', color);
33627  }
33628});
33629
33630
33631/***/ }),
33632/* 605 */
33633/***/ (function(module, exports, __webpack_require__) {
33634
33635"use strict";
33636
33637var $ = __webpack_require__(2);
33638var createHTML = __webpack_require__(68);
33639var forcedStringHTMLMethod = __webpack_require__(69);
33640
33641// `String.prototype.fontsize` method
33642// https://tc39.github.io/ecma262/#sec-string.prototype.fontsize
33643$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {
33644  fontsize: function fontsize(size) {
33645    return createHTML(this, 'font', 'size', size);
33646  }
33647});
33648
33649
33650/***/ }),
33651/* 606 */
33652/***/ (function(module, exports, __webpack_require__) {
33653
33654"use strict";
33655
33656var $ = __webpack_require__(2);
33657var createHTML = __webpack_require__(68);
33658var forcedStringHTMLMethod = __webpack_require__(69);
33659
33660// `String.prototype.italics` method
33661// https://tc39.github.io/ecma262/#sec-string.prototype.italics
33662$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('italics') }, {
33663  italics: function italics() {
33664    return createHTML(this, 'i', '', '');
33665  }
33666});
33667
33668
33669/***/ }),
33670/* 607 */
33671/***/ (function(module, exports, __webpack_require__) {
33672
33673"use strict";
33674
33675var $ = __webpack_require__(2);
33676var createHTML = __webpack_require__(68);
33677var forcedStringHTMLMethod = __webpack_require__(69);
33678
33679// `String.prototype.strike` method
33680// https://tc39.github.io/ecma262/#sec-string.prototype.strike
33681$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('strike') }, {
33682  strike: function strike() {
33683    return createHTML(this, 'strike', '', '');
33684  }
33685});
33686
33687
33688/***/ }),
33689/* 608 */
33690/***/ (function(module, exports, __webpack_require__) {
33691
33692"use strict";
33693
33694var $ = __webpack_require__(2);
33695var createHTML = __webpack_require__(68);
33696var forcedStringHTMLMethod = __webpack_require__(69);
33697
33698// `String.prototype.sup` method
33699// https://tc39.github.io/ecma262/#sec-string.prototype.sup
33700$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sup') }, {
33701  sup: function sup() {
33702    return createHTML(this, 'sup', '', '');
33703  }
33704});
33705
33706
33707/***/ }),
33708/* 609 */
33709/***/ (function(module, exports, __webpack_require__) {
33710
33711"use strict";
33712
33713var $ = __webpack_require__(2);
33714var requireObjectCoercible = __webpack_require__(52);
33715var isRegExp = __webpack_require__(179);
33716var getRegExpFlags = __webpack_require__(148);
33717var wellKnownSymbol = __webpack_require__(23);
33718var IS_PURE = __webpack_require__(72);
33719
33720var REPLACE = wellKnownSymbol('replace');
33721var RegExpPrototype = RegExp.prototype;
33722
33723// `String.prototype.replaceAll` method
33724// https://github.com/tc39/proposal-string-replace-all
33725$({ target: 'String', proto: true }, {
33726  replaceAll: function replaceAll(searchValue, replaceValue) {
33727    var O = requireObjectCoercible(this);
33728    var IS_REG_EXP, flags, replacer, string, searchString, template, result, position, index;
33729    if (searchValue != null) {
33730      IS_REG_EXP = isRegExp(searchValue);
33731      if (IS_REG_EXP) {
33732        flags = String(requireObjectCoercible('flags' in RegExpPrototype
33733          ? searchValue.flags
33734          : getRegExpFlags.call(searchValue)
33735        ));
33736        if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');
33737      }
33738      replacer = searchValue[REPLACE];
33739      if (replacer !== undefined) {
33740        return replacer.call(searchValue, O, replaceValue);
33741      } else if (IS_PURE && IS_REG_EXP) {
33742        return String(O).replace(searchValue, replaceValue);
33743      }
33744    }
33745    string = String(O);
33746    searchString = String(searchValue);
33747    if (searchString === '') return replaceAll.call(string, /(?:)/g, replaceValue);
33748    template = string.split(searchString);
33749    if (typeof replaceValue !== 'function') {
33750      return template.join(String(replaceValue));
33751    }
33752    result = template[0];
33753    position = result.length;
33754    for (index = 1; index < template.length; index++) {
33755      result += String(replaceValue(searchString, position, string));
33756      position += searchString.length + template[index].length;
33757      result += template[index];
33758    }
33759    return result;
33760  }
33761});
33762
33763
33764/***/ }),
33765/* 610 */
33766/***/ (function(module, exports, __webpack_require__) {
33767
33768var DESCRIPTORS = __webpack_require__(21);
33769var objectDefinePropertyModule = __webpack_require__(30);
33770var regExpFlags = __webpack_require__(148);
33771var UNSUPPORTED_Y = __webpack_require__(222).UNSUPPORTED_Y;
33772
33773// `RegExp.prototype.flags` getter
33774// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
33775if (DESCRIPTORS && (/./g.flags != 'g' || UNSUPPORTED_Y)) {
33776  objectDefinePropertyModule.f(RegExp.prototype, 'flags', {
33777    configurable: true,
33778    get: regExpFlags
33779  });
33780}
33781
33782
33783/***/ }),
33784/* 611 */
33785/***/ (function(module, exports, __webpack_require__) {
33786
33787var DESCRIPTORS = __webpack_require__(21);
33788var UNSUPPORTED_Y = __webpack_require__(222).UNSUPPORTED_Y;
33789var defineProperty = __webpack_require__(30).f;
33790var getInternalState = __webpack_require__(58).get;
33791var RegExpPrototype = RegExp.prototype;
33792
33793// `RegExp.prototype.sticky` getter
33794if (DESCRIPTORS && UNSUPPORTED_Y) {
33795  defineProperty(RegExp.prototype, 'sticky', {
33796    configurable: true,
33797    get: function () {
33798      if (this === RegExpPrototype) return undefined;
33799      // We can't use InternalStateModule.getterFor because
33800      // we don't add metadata for regexps created by a literal.
33801      if (this instanceof RegExp) {
33802        return !!getInternalState(this).sticky;
33803      }
33804      throw TypeError('Incompatible receiver, RegExp required');
33805    }
33806  });
33807}
33808
33809
33810/***/ }),
33811/* 612 */
33812/***/ (function(module, exports, __webpack_require__) {
33813
33814"use strict";
33815
33816// TODO: Remove from `core-js@4` since it's moved to entry points
33817__webpack_require__(93);
33818var $ = __webpack_require__(2);
33819var isObject = __webpack_require__(19);
33820
33821var DELEGATES_TO_EXEC = function () {
33822  var execCalled = false;
33823  var re = /[ac]/;
33824  re.exec = function () {
33825    execCalled = true;
33826    return /./.exec.apply(this, arguments);
33827  };
33828  return re.test('abc') === true && execCalled;
33829}();
33830
33831var nativeTest = /./.test;
33832
33833$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {
33834  test: function (str) {
33835    if (typeof this.exec !== 'function') {
33836      return nativeTest.call(this, str);
33837    }
33838    var result = this.exec(str);
33839    if (result !== null && !isObject(result)) {
33840      throw new Error('RegExp exec method returned something other than an Object or null');
33841    }
33842    return !!result;
33843  }
33844});
33845
33846
33847/***/ }),
33848/* 613 */
33849/***/ (function(module, exports, __webpack_require__) {
33850
33851var $ = __webpack_require__(2);
33852var parseIntImplementation = __webpack_require__(377);
33853
33854// `parseInt` method
33855// https://tc39.github.io/ecma262/#sec-parseint-string-radix
33856$({ global: true, forced: parseInt != parseIntImplementation }, {
33857  parseInt: parseIntImplementation
33858});
33859
33860
33861/***/ }),
33862/* 614 */
33863/***/ (function(module, exports, __webpack_require__) {
33864
33865var $ = __webpack_require__(2);
33866var parseFloatImplementation = __webpack_require__(378);
33867
33868// `parseFloat` method
33869// https://tc39.github.io/ecma262/#sec-parsefloat-string
33870$({ global: true, forced: parseFloat != parseFloatImplementation }, {
33871  parseFloat: parseFloatImplementation
33872});
33873
33874
33875/***/ }),
33876/* 615 */
33877/***/ (function(module, exports, __webpack_require__) {
33878
33879var $ = __webpack_require__(2);
33880
33881// `Number.EPSILON` constant
33882// https://tc39.github.io/ecma262/#sec-number.epsilon
33883$({ target: 'Number', stat: true }, {
33884  EPSILON: Math.pow(2, -52)
33885});
33886
33887
33888/***/ }),
33889/* 616 */
33890/***/ (function(module, exports, __webpack_require__) {
33891
33892var $ = __webpack_require__(2);
33893var numberIsFinite = __webpack_require__(617);
33894
33895// `Number.isFinite` method
33896// https://tc39.github.io/ecma262/#sec-number.isfinite
33897$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });
33898
33899
33900/***/ }),
33901/* 617 */
33902/***/ (function(module, exports, __webpack_require__) {
33903
33904var global = __webpack_require__(16);
33905
33906var globalIsFinite = global.isFinite;
33907
33908// `Number.isFinite` method
33909// https://tc39.github.io/ecma262/#sec-number.isfinite
33910module.exports = Number.isFinite || function isFinite(it) {
33911  return typeof it == 'number' && globalIsFinite(it);
33912};
33913
33914
33915/***/ }),
33916/* 618 */
33917/***/ (function(module, exports, __webpack_require__) {
33918
33919var $ = __webpack_require__(2);
33920var isInteger = __webpack_require__(379);
33921
33922// `Number.isInteger` method
33923// https://tc39.github.io/ecma262/#sec-number.isinteger
33924$({ target: 'Number', stat: true }, {
33925  isInteger: isInteger
33926});
33927
33928
33929/***/ }),
33930/* 619 */
33931/***/ (function(module, exports, __webpack_require__) {
33932
33933var $ = __webpack_require__(2);
33934
33935// `Number.isNaN` method
33936// https://tc39.github.io/ecma262/#sec-number.isnan
33937$({ target: 'Number', stat: true }, {
33938  isNaN: function isNaN(number) {
33939    // eslint-disable-next-line no-self-compare
33940    return number != number;
33941  }
33942});
33943
33944
33945/***/ }),
33946/* 620 */
33947/***/ (function(module, exports, __webpack_require__) {
33948
33949var $ = __webpack_require__(2);
33950var isInteger = __webpack_require__(379);
33951
33952var abs = Math.abs;
33953
33954// `Number.isSafeInteger` method
33955// https://tc39.github.io/ecma262/#sec-number.issafeinteger
33956$({ target: 'Number', stat: true }, {
33957  isSafeInteger: function isSafeInteger(number) {
33958    return isInteger(number) && abs(number) <= 0x1FFFFFFFFFFFFF;
33959  }
33960});
33961
33962
33963/***/ }),
33964/* 621 */
33965/***/ (function(module, exports, __webpack_require__) {
33966
33967var $ = __webpack_require__(2);
33968
33969// `Number.MAX_SAFE_INTEGER` constant
33970// https://tc39.github.io/ecma262/#sec-number.max_safe_integer
33971$({ target: 'Number', stat: true }, {
33972  MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF
33973});
33974
33975
33976/***/ }),
33977/* 622 */
33978/***/ (function(module, exports, __webpack_require__) {
33979
33980var $ = __webpack_require__(2);
33981
33982// `Number.MIN_SAFE_INTEGER` constant
33983// https://tc39.github.io/ecma262/#sec-number.min_safe_integer
33984$({ target: 'Number', stat: true }, {
33985  MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF
33986});
33987
33988
33989/***/ }),
33990/* 623 */
33991/***/ (function(module, exports, __webpack_require__) {
33992
33993var $ = __webpack_require__(2);
33994var parseFloat = __webpack_require__(378);
33995
33996// `Number.parseFloat` method
33997// https://tc39.github.io/ecma262/#sec-number.parseFloat
33998$({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, {
33999  parseFloat: parseFloat
34000});
34001
34002
34003/***/ }),
34004/* 624 */
34005/***/ (function(module, exports, __webpack_require__) {
34006
34007var $ = __webpack_require__(2);
34008var parseInt = __webpack_require__(377);
34009
34010// `Number.parseInt` method
34011// https://tc39.github.io/ecma262/#sec-number.parseint
34012$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {
34013  parseInt: parseInt
34014});
34015
34016
34017/***/ }),
34018/* 625 */
34019/***/ (function(module, exports, __webpack_require__) {
34020
34021"use strict";
34022
34023var $ = __webpack_require__(2);
34024var toInteger = __webpack_require__(73);
34025var thisNumberValue = __webpack_require__(380);
34026var repeat = __webpack_require__(292);
34027var fails = __webpack_require__(11);
34028
34029var nativeToFixed = 1.0.toFixed;
34030var floor = Math.floor;
34031
34032var pow = function (x, n, acc) {
34033  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
34034};
34035
34036var log = function (x) {
34037  var n = 0;
34038  var x2 = x;
34039  while (x2 >= 4096) {
34040    n += 12;
34041    x2 /= 4096;
34042  }
34043  while (x2 >= 2) {
34044    n += 1;
34045    x2 /= 2;
34046  } return n;
34047};
34048
34049var FORCED = nativeToFixed && (
34050  0.00008.toFixed(3) !== '0.000' ||
34051  0.9.toFixed(0) !== '1' ||
34052  1.255.toFixed(2) !== '1.25' ||
34053  1000000000000000128.0.toFixed(0) !== '1000000000000000128'
34054) || !fails(function () {
34055  // V8 ~ Android 4.3-
34056  nativeToFixed.call({});
34057});
34058
34059// `Number.prototype.toFixed` method
34060// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed
34061$({ target: 'Number', proto: true, forced: FORCED }, {
34062  // eslint-disable-next-line max-statements
34063  toFixed: function toFixed(fractionDigits) {
34064    var number = thisNumberValue(this);
34065    var fractDigits = toInteger(fractionDigits);
34066    var data = [0, 0, 0, 0, 0, 0];
34067    var sign = '';
34068    var result = '0';
34069    var e, z, j, k;
34070
34071    var multiply = function (n, c) {
34072      var index = -1;
34073      var c2 = c;
34074      while (++index < 6) {
34075        c2 += n * data[index];
34076        data[index] = c2 % 1e7;
34077        c2 = floor(c2 / 1e7);
34078      }
34079    };
34080
34081    var divide = function (n) {
34082      var index = 6;
34083      var c = 0;
34084      while (--index >= 0) {
34085        c += data[index];
34086        data[index] = floor(c / n);
34087        c = (c % n) * 1e7;
34088      }
34089    };
34090
34091    var dataToString = function () {
34092      var index = 6;
34093      var s = '';
34094      while (--index >= 0) {
34095        if (s !== '' || index === 0 || data[index] !== 0) {
34096          var t = String(data[index]);
34097          s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;
34098        }
34099      } return s;
34100    };
34101
34102    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');
34103    // eslint-disable-next-line no-self-compare
34104    if (number != number) return 'NaN';
34105    if (number <= -1e21 || number >= 1e21) return String(number);
34106    if (number < 0) {
34107      sign = '-';
34108      number = -number;
34109    }
34110    if (number > 1e-21) {
34111      e = log(number * pow(2, 69, 1)) - 69;
34112      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);
34113      z *= 0x10000000000000;
34114      e = 52 - e;
34115      if (e > 0) {
34116        multiply(0, z);
34117        j = fractDigits;
34118        while (j >= 7) {
34119          multiply(1e7, 0);
34120          j -= 7;
34121        }
34122        multiply(pow(10, j, 1), 0);
34123        j = e - 1;
34124        while (j >= 23) {
34125          divide(1 << 23);
34126          j -= 23;
34127        }
34128        divide(1 << j);
34129        multiply(1, 1);
34130        divide(2);
34131        result = dataToString();
34132      } else {
34133        multiply(0, z);
34134        multiply(1 << -e, 0);
34135        result = dataToString() + repeat.call('0', fractDigits);
34136      }
34137    }
34138    if (fractDigits > 0) {
34139      k = result.length;
34140      result = sign + (k <= fractDigits
34141        ? '0.' + repeat.call('0', fractDigits - k) + result
34142        : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));
34143    } else {
34144      result = sign + result;
34145    } return result;
34146  }
34147});
34148
34149
34150/***/ }),
34151/* 626 */
34152/***/ (function(module, exports, __webpack_require__) {
34153
34154"use strict";
34155
34156var $ = __webpack_require__(2);
34157var fails = __webpack_require__(11);
34158var thisNumberValue = __webpack_require__(380);
34159
34160var nativeToPrecision = 1.0.toPrecision;
34161
34162var FORCED = fails(function () {
34163  // IE7-
34164  return nativeToPrecision.call(1, undefined) !== '1';
34165}) || !fails(function () {
34166  // V8 ~ Android 4.3-
34167  nativeToPrecision.call({});
34168});
34169
34170// `Number.prototype.toPrecision` method
34171// https://tc39.github.io/ecma262/#sec-number.prototype.toprecision
34172$({ target: 'Number', proto: true, forced: FORCED }, {
34173  toPrecision: function toPrecision(precision) {
34174    return precision === undefined
34175      ? nativeToPrecision.call(thisNumberValue(this))
34176      : nativeToPrecision.call(thisNumberValue(this), precision);
34177  }
34178});
34179
34180
34181/***/ }),
34182/* 627 */
34183/***/ (function(module, exports, __webpack_require__) {
34184
34185var $ = __webpack_require__(2);
34186var log1p = __webpack_require__(381);
34187
34188var nativeAcosh = Math.acosh;
34189var log = Math.log;
34190var sqrt = Math.sqrt;
34191var LN2 = Math.LN2;
34192
34193var FORCED = !nativeAcosh
34194  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
34195  || Math.floor(nativeAcosh(Number.MAX_VALUE)) != 710
34196  // Tor Browser bug: Math.acosh(Infinity) -> NaN
34197  || nativeAcosh(Infinity) != Infinity;
34198
34199// `Math.acosh` method
34200// https://tc39.github.io/ecma262/#sec-math.acosh
34201$({ target: 'Math', stat: true, forced: FORCED }, {
34202  acosh: function acosh(x) {
34203    return (x = +x) < 1 ? NaN : x > 94906265.62425156
34204      ? log(x) + LN2
34205      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
34206  }
34207});
34208
34209
34210/***/ }),
34211/* 628 */
34212/***/ (function(module, exports, __webpack_require__) {
34213
34214var $ = __webpack_require__(2);
34215
34216var nativeAsinh = Math.asinh;
34217var log = Math.log;
34218var sqrt = Math.sqrt;
34219
34220function asinh(x) {
34221  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : log(x + sqrt(x * x + 1));
34222}
34223
34224// `Math.asinh` method
34225// https://tc39.github.io/ecma262/#sec-math.asinh
34226// Tor Browser bug: Math.asinh(0) -> -0
34227$({ target: 'Math', stat: true, forced: !(nativeAsinh && 1 / nativeAsinh(0) > 0) }, {
34228  asinh: asinh
34229});
34230
34231
34232/***/ }),
34233/* 629 */
34234/***/ (function(module, exports, __webpack_require__) {
34235
34236var $ = __webpack_require__(2);
34237
34238var nativeAtanh = Math.atanh;
34239var log = Math.log;
34240
34241// `Math.atanh` method
34242// https://tc39.github.io/ecma262/#sec-math.atanh
34243// Tor Browser bug: Math.atanh(-0) -> 0
34244$({ target: 'Math', stat: true, forced: !(nativeAtanh && 1 / nativeAtanh(-0) < 0) }, {
34245  atanh: function atanh(x) {
34246    return (x = +x) == 0 ? x : log((1 + x) / (1 - x)) / 2;
34247  }
34248});
34249
34250
34251/***/ }),
34252/* 630 */
34253/***/ (function(module, exports, __webpack_require__) {
34254
34255var $ = __webpack_require__(2);
34256var sign = __webpack_require__(294);
34257
34258var abs = Math.abs;
34259var pow = Math.pow;
34260
34261// `Math.cbrt` method
34262// https://tc39.github.io/ecma262/#sec-math.cbrt
34263$({ target: 'Math', stat: true }, {
34264  cbrt: function cbrt(x) {
34265    return sign(x = +x) * pow(abs(x), 1 / 3);
34266  }
34267});
34268
34269
34270/***/ }),
34271/* 631 */
34272/***/ (function(module, exports, __webpack_require__) {
34273
34274var $ = __webpack_require__(2);
34275
34276var floor = Math.floor;
34277var log = Math.log;
34278var LOG2E = Math.LOG2E;
34279
34280// `Math.clz32` method
34281// https://tc39.github.io/ecma262/#sec-math.clz32
34282$({ target: 'Math', stat: true }, {
34283  clz32: function clz32(x) {
34284    return (x >>>= 0) ? 31 - floor(log(x + 0.5) * LOG2E) : 32;
34285  }
34286});
34287
34288
34289/***/ }),
34290/* 632 */
34291/***/ (function(module, exports, __webpack_require__) {
34292
34293var $ = __webpack_require__(2);
34294var expm1 = __webpack_require__(227);
34295
34296var nativeCosh = Math.cosh;
34297var abs = Math.abs;
34298var E = Math.E;
34299
34300// `Math.cosh` method
34301// https://tc39.github.io/ecma262/#sec-math.cosh
34302$({ target: 'Math', stat: true, forced: !nativeCosh || nativeCosh(710) === Infinity }, {
34303  cosh: function cosh(x) {
34304    var t = expm1(abs(x) - 1) + 1;
34305    return (t + 1 / (t * E * E)) * (E / 2);
34306  }
34307});
34308
34309
34310/***/ }),
34311/* 633 */
34312/***/ (function(module, exports, __webpack_require__) {
34313
34314var $ = __webpack_require__(2);
34315var expm1 = __webpack_require__(227);
34316
34317// `Math.expm1` method
34318// https://tc39.github.io/ecma262/#sec-math.expm1
34319$({ target: 'Math', stat: true, forced: expm1 != Math.expm1 }, { expm1: expm1 });
34320
34321
34322/***/ }),
34323/* 634 */
34324/***/ (function(module, exports, __webpack_require__) {
34325
34326var $ = __webpack_require__(2);
34327var fround = __webpack_require__(635);
34328
34329// `Math.fround` method
34330// https://tc39.github.io/ecma262/#sec-math.fround
34331$({ target: 'Math', stat: true }, { fround: fround });
34332
34333
34334/***/ }),
34335/* 635 */
34336/***/ (function(module, exports, __webpack_require__) {
34337
34338var sign = __webpack_require__(294);
34339
34340var abs = Math.abs;
34341var pow = Math.pow;
34342var EPSILON = pow(2, -52);
34343var EPSILON32 = pow(2, -23);
34344var MAX32 = pow(2, 127) * (2 - EPSILON32);
34345var MIN32 = pow(2, -126);
34346
34347var roundTiesToEven = function (n) {
34348  return n + 1 / EPSILON - 1 / EPSILON;
34349};
34350
34351// `Math.fround` method implementation
34352// https://tc39.github.io/ecma262/#sec-math.fround
34353module.exports = Math.fround || function fround(x) {
34354  var $abs = abs(x);
34355  var $sign = sign(x);
34356  var a, result;
34357  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
34358  a = (1 + EPSILON32 / EPSILON) * $abs;
34359  result = a - (a - $abs);
34360  // eslint-disable-next-line no-self-compare
34361  if (result > MAX32 || result != result) return $sign * Infinity;
34362  return $sign * result;
34363};
34364
34365
34366/***/ }),
34367/* 636 */
34368/***/ (function(module, exports, __webpack_require__) {
34369
34370var $ = __webpack_require__(2);
34371
34372var $hypot = Math.hypot;
34373var abs = Math.abs;
34374var sqrt = Math.sqrt;
34375
34376// Chrome 77 bug
34377// https://bugs.chromium.org/p/v8/issues/detail?id=9546
34378var BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;
34379
34380// `Math.hypot` method
34381// https://tc39.github.io/ecma262/#sec-math.hypot
34382$({ target: 'Math', stat: true, forced: BUGGY }, {
34383  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
34384    var sum = 0;
34385    var i = 0;
34386    var aLen = arguments.length;
34387    var larg = 0;
34388    var arg, div;
34389    while (i < aLen) {
34390      arg = abs(arguments[i++]);
34391      if (larg < arg) {
34392        div = larg / arg;
34393        sum = sum * div * div + 1;
34394        larg = arg;
34395      } else if (arg > 0) {
34396        div = arg / larg;
34397        sum += div * div;
34398      } else sum += arg;
34399    }
34400    return larg === Infinity ? Infinity : larg * sqrt(sum);
34401  }
34402});
34403
34404
34405/***/ }),
34406/* 637 */
34407/***/ (function(module, exports, __webpack_require__) {
34408
34409var $ = __webpack_require__(2);
34410var fails = __webpack_require__(11);
34411
34412var nativeImul = Math.imul;
34413
34414var FORCED = fails(function () {
34415  return nativeImul(0xFFFFFFFF, 5) != -5 || nativeImul.length != 2;
34416});
34417
34418// `Math.imul` method
34419// https://tc39.github.io/ecma262/#sec-math.imul
34420// some WebKit versions fails with big numbers, some has wrong arity
34421$({ target: 'Math', stat: true, forced: FORCED }, {
34422  imul: function imul(x, y) {
34423    var UINT16 = 0xFFFF;
34424    var xn = +x;
34425    var yn = +y;
34426    var xl = UINT16 & xn;
34427    var yl = UINT16 & yn;
34428    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
34429  }
34430});
34431
34432
34433/***/ }),
34434/* 638 */
34435/***/ (function(module, exports, __webpack_require__) {
34436
34437var $ = __webpack_require__(2);
34438
34439var log = Math.log;
34440var LOG10E = Math.LOG10E;
34441
34442// `Math.log10` method
34443// https://tc39.github.io/ecma262/#sec-math.log10
34444$({ target: 'Math', stat: true }, {
34445  log10: function log10(x) {
34446    return log(x) * LOG10E;
34447  }
34448});
34449
34450
34451/***/ }),
34452/* 639 */
34453/***/ (function(module, exports, __webpack_require__) {
34454
34455var $ = __webpack_require__(2);
34456var log1p = __webpack_require__(381);
34457
34458// `Math.log1p` method
34459// https://tc39.github.io/ecma262/#sec-math.log1p
34460$({ target: 'Math', stat: true }, { log1p: log1p });
34461
34462
34463/***/ }),
34464/* 640 */
34465/***/ (function(module, exports, __webpack_require__) {
34466
34467var $ = __webpack_require__(2);
34468
34469var log = Math.log;
34470var LN2 = Math.LN2;
34471
34472// `Math.log2` method
34473// https://tc39.github.io/ecma262/#sec-math.log2
34474$({ target: 'Math', stat: true }, {
34475  log2: function log2(x) {
34476    return log(x) / LN2;
34477  }
34478});
34479
34480
34481/***/ }),
34482/* 641 */
34483/***/ (function(module, exports, __webpack_require__) {
34484
34485var $ = __webpack_require__(2);
34486var sign = __webpack_require__(294);
34487
34488// `Math.sign` method
34489// https://tc39.github.io/ecma262/#sec-math.sign
34490$({ target: 'Math', stat: true }, {
34491  sign: sign
34492});
34493
34494
34495/***/ }),
34496/* 642 */
34497/***/ (function(module, exports, __webpack_require__) {
34498
34499var $ = __webpack_require__(2);
34500var fails = __webpack_require__(11);
34501var expm1 = __webpack_require__(227);
34502
34503var abs = Math.abs;
34504var exp = Math.exp;
34505var E = Math.E;
34506
34507var FORCED = fails(function () {
34508  return Math.sinh(-2e-17) != -2e-17;
34509});
34510
34511// `Math.sinh` method
34512// https://tc39.github.io/ecma262/#sec-math.sinh
34513// V8 near Chromium 38 has a problem with very small numbers
34514$({ target: 'Math', stat: true, forced: FORCED }, {
34515  sinh: function sinh(x) {
34516    return abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (E / 2);
34517  }
34518});
34519
34520
34521/***/ }),
34522/* 643 */
34523/***/ (function(module, exports, __webpack_require__) {
34524
34525var $ = __webpack_require__(2);
34526var expm1 = __webpack_require__(227);
34527
34528var exp = Math.exp;
34529
34530// `Math.tanh` method
34531// https://tc39.github.io/ecma262/#sec-math.tanh
34532$({ target: 'Math', stat: true }, {
34533  tanh: function tanh(x) {
34534    var a = expm1(x = +x);
34535    var b = expm1(-x);
34536    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
34537  }
34538});
34539
34540
34541/***/ }),
34542/* 644 */
34543/***/ (function(module, exports, __webpack_require__) {
34544
34545var setToStringTag = __webpack_require__(80);
34546
34547// Math[@@toStringTag] property
34548// https://tc39.github.io/ecma262/#sec-math-@@tostringtag
34549setToStringTag(Math, 'Math', true);
34550
34551
34552/***/ }),
34553/* 645 */
34554/***/ (function(module, exports, __webpack_require__) {
34555
34556var $ = __webpack_require__(2);
34557
34558var ceil = Math.ceil;
34559var floor = Math.floor;
34560
34561// `Math.trunc` method
34562// https://tc39.github.io/ecma262/#sec-math.trunc
34563$({ target: 'Math', stat: true }, {
34564  trunc: function trunc(it) {
34565    return (it > 0 ? floor : ceil)(it);
34566  }
34567});
34568
34569
34570/***/ }),
34571/* 646 */
34572/***/ (function(module, exports, __webpack_require__) {
34573
34574var $ = __webpack_require__(2);
34575
34576// `Date.now` method
34577// https://tc39.github.io/ecma262/#sec-date.now
34578$({ target: 'Date', stat: true }, {
34579  now: function now() {
34580    return new Date().getTime();
34581  }
34582});
34583
34584
34585/***/ }),
34586/* 647 */
34587/***/ (function(module, exports, __webpack_require__) {
34588
34589"use strict";
34590
34591var $ = __webpack_require__(2);
34592var fails = __webpack_require__(11);
34593var toObject = __webpack_require__(33);
34594var toPrimitive = __webpack_require__(79);
34595
34596var FORCED = fails(function () {
34597  return new Date(NaN).toJSON() !== null
34598    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
34599});
34600
34601// `Date.prototype.toJSON` method
34602// https://tc39.github.io/ecma262/#sec-date.prototype.tojson
34603$({ target: 'Date', proto: true, forced: FORCED }, {
34604  // eslint-disable-next-line no-unused-vars
34605  toJSON: function toJSON(key) {
34606    var O = toObject(this);
34607    var pv = toPrimitive(O);
34608    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
34609  }
34610});
34611
34612
34613/***/ }),
34614/* 648 */
34615/***/ (function(module, exports, __webpack_require__) {
34616
34617var $ = __webpack_require__(2);
34618var toISOString = __webpack_require__(649);
34619
34620// `Date.prototype.toISOString` method
34621// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
34622// PhantomJS / old WebKit has a broken implementations
34623$({ target: 'Date', proto: true, forced: Date.prototype.toISOString !== toISOString }, {
34624  toISOString: toISOString
34625});
34626
34627
34628/***/ }),
34629/* 649 */
34630/***/ (function(module, exports, __webpack_require__) {
34631
34632"use strict";
34633
34634var fails = __webpack_require__(11);
34635var padStart = __webpack_require__(291).start;
34636
34637var abs = Math.abs;
34638var DatePrototype = Date.prototype;
34639var getTime = DatePrototype.getTime;
34640var nativeDateToISOString = DatePrototype.toISOString;
34641
34642// `Date.prototype.toISOString` method implementation
34643// https://tc39.github.io/ecma262/#sec-date.prototype.toisostring
34644// PhantomJS / old WebKit fails here:
34645module.exports = (fails(function () {
34646  return nativeDateToISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
34647}) || !fails(function () {
34648  nativeDateToISOString.call(new Date(NaN));
34649})) ? function toISOString() {
34650  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
34651  var date = this;
34652  var year = date.getUTCFullYear();
34653  var milliseconds = date.getUTCMilliseconds();
34654  var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
34655  return sign + padStart(abs(year), sign ? 6 : 4, 0) +
34656    '-' + padStart(date.getUTCMonth() + 1, 2, 0) +
34657    '-' + padStart(date.getUTCDate(), 2, 0) +
34658    'T' + padStart(date.getUTCHours(), 2, 0) +
34659    ':' + padStart(date.getUTCMinutes(), 2, 0) +
34660    ':' + padStart(date.getUTCSeconds(), 2, 0) +
34661    '.' + padStart(milliseconds, 3, 0) +
34662    'Z';
34663} : nativeDateToISOString;
34664
34665
34666/***/ }),
34667/* 650 */
34668/***/ (function(module, exports, __webpack_require__) {
34669
34670var redefine = __webpack_require__(54);
34671
34672var DatePrototype = Date.prototype;
34673var INVALID_DATE = 'Invalid Date';
34674var TO_STRING = 'toString';
34675var nativeDateToString = DatePrototype[TO_STRING];
34676var getTime = DatePrototype.getTime;
34677
34678// `Date.prototype.toString` method
34679// https://tc39.github.io/ecma262/#sec-date.prototype.tostring
34680if (new Date(NaN) + '' != INVALID_DATE) {
34681  redefine(DatePrototype, TO_STRING, function toString() {
34682    var value = getTime.call(this);
34683    // eslint-disable-next-line no-self-compare
34684    return value === value ? nativeDateToString.call(this) : INVALID_DATE;
34685  });
34686}
34687
34688
34689/***/ }),
34690/* 651 */
34691/***/ (function(module, exports, __webpack_require__) {
34692
34693var createNonEnumerableProperty = __webpack_require__(53);
34694var dateToPrimitive = __webpack_require__(652);
34695var wellKnownSymbol = __webpack_require__(23);
34696
34697var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
34698var DatePrototype = Date.prototype;
34699
34700// `Date.prototype[@@toPrimitive]` method
34701// https://tc39.github.io/ecma262/#sec-date.prototype-@@toprimitive
34702if (!(TO_PRIMITIVE in DatePrototype)) {
34703  createNonEnumerableProperty(DatePrototype, TO_PRIMITIVE, dateToPrimitive);
34704}
34705
34706
34707/***/ }),
34708/* 652 */
34709/***/ (function(module, exports, __webpack_require__) {
34710
34711"use strict";
34712
34713var anObject = __webpack_require__(20);
34714var toPrimitive = __webpack_require__(79);
34715
34716module.exports = function (hint) {
34717  if (hint !== 'string' && hint !== 'number' && hint !== 'default') {
34718    throw TypeError('Incorrect hint');
34719  } return toPrimitive(anObject(this), hint !== 'number');
34720};
34721
34722
34723/***/ }),
34724/* 653 */
34725/***/ (function(module, exports, __webpack_require__) {
34726
34727var $ = __webpack_require__(2);
34728var getBuiltIn = __webpack_require__(67);
34729var fails = __webpack_require__(11);
34730
34731var $stringify = getBuiltIn('JSON', 'stringify');
34732var re = /[\uD800-\uDFFF]/g;
34733var low = /^[\uD800-\uDBFF]$/;
34734var hi = /^[\uDC00-\uDFFF]$/;
34735
34736var fix = function (match, offset, string) {
34737  var prev = string.charAt(offset - 1);
34738  var next = string.charAt(offset + 1);
34739  if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {
34740    return '\\u' + match.charCodeAt(0).toString(16);
34741  } return match;
34742};
34743
34744var FORCED = fails(function () {
34745  return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
34746    || $stringify('\uDEAD') !== '"\\udead"';
34747});
34748
34749if ($stringify) {
34750  // https://github.com/tc39/proposal-well-formed-stringify
34751  $({ target: 'JSON', stat: true, forced: FORCED }, {
34752    // eslint-disable-next-line no-unused-vars
34753    stringify: function stringify(it, replacer, space) {
34754      var result = $stringify.apply(null, arguments);
34755      return typeof result == 'string' ? result.replace(re, fix) : result;
34756    }
34757  });
34758}
34759
34760
34761/***/ }),
34762/* 654 */
34763/***/ (function(module, exports, __webpack_require__) {
34764
34765var global = __webpack_require__(16);
34766var setToStringTag = __webpack_require__(80);
34767
34768// JSON[@@toStringTag] property
34769// https://tc39.github.io/ecma262/#sec-json-@@tostringtag
34770setToStringTag(global.JSON, 'JSON', true);
34771
34772
34773/***/ }),
34774/* 655 */
34775/***/ (function(module, exports, __webpack_require__) {
34776
34777var global = __webpack_require__(16);
34778
34779module.exports = function (a, b) {
34780  var console = global.console;
34781  if (console && console.error) {
34782    arguments.length === 1 ? console.error(a) : console.error(a, b);
34783  }
34784};
34785
34786
34787/***/ }),
34788/* 656 */
34789/***/ (function(module, exports, __webpack_require__) {
34790
34791"use strict";
34792
34793var $ = __webpack_require__(2);
34794var aFunction = __webpack_require__(59);
34795var newPromiseCapabilityModule = __webpack_require__(228);
34796var perform = __webpack_require__(296);
34797var iterate = __webpack_require__(117);
34798
34799// `Promise.allSettled` method
34800// https://github.com/tc39/proposal-promise-allSettled
34801$({ target: 'Promise', stat: true }, {
34802  allSettled: function allSettled(iterable) {
34803    var C = this;
34804    var capability = newPromiseCapabilityModule.f(C);
34805    var resolve = capability.resolve;
34806    var reject = capability.reject;
34807    var result = perform(function () {
34808      var promiseResolve = aFunction(C.resolve);
34809      var values = [];
34810      var counter = 0;
34811      var remaining = 1;
34812      iterate(iterable, function (promise) {
34813        var index = counter++;
34814        var alreadyCalled = false;
vendor: 5,634 bytes, lines 34815-34993
34815        values.push(undefined);
34816        remaining++;
34817        promiseResolve.call(C, promise).then(function (value) {
34818          if (alreadyCalled) return;
34819          alreadyCalled = true;
34820          values[index] = { status: 'fulfilled', value: value };
34821          --remaining || resolve(values);
34822        }, function (error) {
34823          if (alreadyCalled) return;
34824          alreadyCalled = true;
34825          values[index] = { status: 'rejected', reason: error };
34826          --remaining || resolve(values);
34827        });
34828      });
34829      --remaining || resolve(values);
34830    });
34831    if (result.error) reject(result.value);
34832    return capability.promise;
34833  }
34834});
34835
34836
34837/***/ }),
34838/* 657 */
34839/***/ (function(module, exports, __webpack_require__) {
34840
34841"use strict";
34842
34843var $ = __webpack_require__(2);
34844var aFunction = __webpack_require__(59);
34845var getBuiltIn = __webpack_require__(67);
34846var newPromiseCapabilityModule = __webpack_require__(228);
34847var perform = __webpack_require__(296);
34848var iterate = __webpack_require__(117);
34849
34850var PROMISE_ANY_ERROR = 'No one promise resolved';
34851
34852// `Promise.any` method
34853// https://github.com/tc39/proposal-promise-any
34854$({ target: 'Promise', stat: true }, {
34855  any: function any(iterable) {
34856    var C = this;
34857    var capability = newPromiseCapabilityModule.f(C);
34858    var resolve = capability.resolve;
34859    var reject = capability.reject;
34860    var result = perform(function () {
34861      var promiseResolve = aFunction(C.resolve);
34862      var errors = [];
34863      var counter = 0;
34864      var remaining = 1;
34865      var alreadyResolved = false;
34866      iterate(iterable, function (promise) {
34867        var index = counter++;
34868        var alreadyRejected = false;
34869        errors.push(undefined);
34870        remaining++;
34871        promiseResolve.call(C, promise).then(function (value) {
34872          if (alreadyRejected || alreadyResolved) return;
34873          alreadyResolved = true;
34874          resolve(value);
34875        }, function (error) {
34876          if (alreadyRejected || alreadyResolved) return;
34877          alreadyRejected = true;
34878          errors[index] = error;
34879          --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
34880        });
34881      });
34882      --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));
34883    });
34884    if (result.error) reject(result.value);
34885    return capability.promise;
34886  }
34887});
34888
34889
34890/***/ }),
34891/* 658 */
34892/***/ (function(module, exports, __webpack_require__) {
34893
34894"use strict";
34895
34896var $ = __webpack_require__(2);
34897var IS_PURE = __webpack_require__(72);
34898var NativePromise = __webpack_require__(382);
34899var fails = __webpack_require__(11);
34900var getBuiltIn = __webpack_require__(67);
34901var speciesConstructor = __webpack_require__(103);
34902var promiseResolve = __webpack_require__(385);
34903var redefine = __webpack_require__(54);
34904
34905// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829
34906var NON_GENERIC = !!NativePromise && fails(function () {
34907  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });
34908});
34909
34910// `Promise.prototype.finally` method
34911// https://tc39.github.io/ecma262/#sec-promise.prototype.finally
34912$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {
34913  'finally': function (onFinally) {
34914    var C = speciesConstructor(this, getBuiltIn('Promise'));
34915    var isFunction = typeof onFinally == 'function';
34916    return this.then(
34917      isFunction ? function (x) {
34918        return promiseResolve(C, onFinally()).then(function () { return x; });
34919      } : onFinally,
34920      isFunction ? function (e) {
34921        return promiseResolve(C, onFinally()).then(function () { throw e; });
34922      } : onFinally
34923    );
34924  }
34925});
34926
34927// patch native Promise.prototype for native async functions
34928if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
34929  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
34930}
34931
34932
34933/***/ }),
34934/* 659 */
34935/***/ (function(module, exports, __webpack_require__) {
34936
34937"use strict";
34938
34939var collection = __webpack_require__(229);
34940var collectionStrong = __webpack_require__(386);
34941
34942// `Map` constructor
34943// https://tc39.github.io/ecma262/#sec-map-objects
34944module.exports = collection('Map', function (init) {
34945  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };
34946}, collectionStrong);
34947
34948
34949/***/ }),
34950/* 660 */
34951/***/ (function(module, exports, __webpack_require__) {
34952
34953"use strict";
34954
34955var collection = __webpack_require__(229);
34956var collectionStrong = __webpack_require__(386);
34957
34958// `Set` constructor
34959// https://tc39.github.io/ecma262/#sec-set-objects
34960module.exports = collection('Set', function (init) {
34961  return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };
34962}, collectionStrong);
34963
34964
34965/***/ }),
34966/* 661 */
34967/***/ (function(module, exports, __webpack_require__) {
34968
34969"use strict";
34970
34971var global = __webpack_require__(16);
34972var redefineAll = __webpack_require__(150);
34973var InternalMetadataModule = __webpack_require__(135);
34974var collection = __webpack_require__(229);
34975var collectionWeak = __webpack_require__(387);
34976var isObject = __webpack_require__(19);
34977var enforceIternalState = __webpack_require__(58).enforce;
34978var NATIVE_WEAK_MAP = __webpack_require__(357);
34979
34980var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
34981var isExtensible = Object.isExtensible;
34982var InternalWeakMap;
34983
34984var wrapper = function (init) {
34985  return function WeakMap() {
34986    return init(this, arguments.length ? arguments[0] : undefined);
34987  };
34988};
34989
34990// `WeakMap` constructor
34991// https://tc39.github.io/ecma262/#sec-weakmap-constructor
34992var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
34993
34994// IE11 WeakMap frozen keys fix
34995// We can't use feature detection because it crash some old IE builds
34996// https://github.com/zloirock/core-js/issues/485
34997if (NATIVE_WEAK_MAP && IS_IE11) {
34998  InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
34999  InternalMetadataModule.REQUIRED = true;
35000  var WeakMapPrototype = $WeakMap.prototype;
35001  var nativeDelete = WeakMapPrototype['delete'];
35002  var nativeHas = WeakMapPrototype.has;
35003  var nativeGet = WeakMapPrototype.get;
35004  var nativeSet = WeakMapPrototype.set;
35005  redefineAll(WeakMapPrototype, {
35006    'delete': function (key) {
35007      if (isObject(key) && !isExtensible(key)) {
35008        var state = enforceIternalState(this);
35009        if (!state.frozen) state.frozen = new InternalWeakMap();
35010        return nativeDelete.call(this, key) || state.frozen['delete'](key);
35011      } return nativeDelete.call(this, key);
35012    },
35013    has: function has(key) {
35014      if (isObject(key) && !isExtensible(key)) {
35015        var state = enforceIternalState(this);
35016        if (!state.frozen) state.frozen = new InternalWeakMap();
35017        return nativeHas.call(this, key) || state.frozen.has(key);
35018      } return nativeHas.call(this, key);
35019    },
35020    get: function get(key) {
35021      if (isObject(key) && !isExtensible(key)) {
35022        var state = enforceIternalState(this);
35023        if (!state.frozen) state.frozen = new InternalWeakMap();
35024        return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
35025      } return nativeGet.call(this, key);
35026    },
35027    set: function set(key, value) {
35028      if (isObject(key) && !isExtensible(key)) {
35029        var state = enforceIternalState(this);
35030        if (!state.frozen) state.frozen = new InternalWeakMap();
35031        nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
35032      } else nativeSet.call(this, key, value);
35033      return this;
35034    }
35035  });
35036}
35037
35038
35039/***/ }),
35040/* 662 */
35041/***/ (function(module, exports, __webpack_require__) {
35042
35043"use strict";
35044
35045var collection = __webpack_require__(229);
35046var collectionWeak = __webpack_require__(387);
35047
35048// `WeakSet` constructor
35049// https://tc39.github.io/ecma262/#sec-weakset-constructor
35050collection('WeakSet', function (init) {
35051  return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };
35052}, collectionWeak);
35053
35054
35055/***/ }),
35056/* 663 */
35057/***/ (function(module, exports, __webpack_require__) {
35058
35059"use strict";
35060
35061var $ = __webpack_require__(2);
35062var global = __webpack_require__(16);
35063var arrayBufferModule = __webpack_require__(230);
35064var setSpecies = __webpack_require__(147);
35065
35066var ARRAY_BUFFER = 'ArrayBuffer';
35067var ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];
35068var NativeArrayBuffer = global[ARRAY_BUFFER];
35069
35070// `ArrayBuffer` constructor
35071// https://tc39.github.io/ecma262/#sec-arraybuffer-constructor
35072$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {
35073  ArrayBuffer: ArrayBuffer
35074});
35075
35076setSpecies(ARRAY_BUFFER);
35077
35078
35079/***/ }),
35080/* 664 */
35081/***/ (function(module, exports) {
35082
35083// IEEE754 conversions based on https://github.com/feross/ieee754
35084// eslint-disable-next-line no-shadow-restricted-names
35085var Infinity = 1 / 0;
35086var abs = Math.abs;
35087var pow = Math.pow;
35088var floor = Math.floor;
35089var log = Math.log;
35090var LN2 = Math.LN2;
35091
35092var pack = function (number, mantissaLength, bytes) {
35093  var buffer = new Array(bytes);
35094  var exponentLength = bytes * 8 - mantissaLength - 1;
35095  var eMax = (1 << exponentLength) - 1;
35096  var eBias = eMax >> 1;
35097  var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;
35098  var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;
35099  var index = 0;
35100  var exponent, mantissa, c;
35101  number = abs(number);
35102  // eslint-disable-next-line no-self-compare
35103  if (number != number || number === Infinity) {
35104    // eslint-disable-next-line no-self-compare
35105    mantissa = number != number ? 1 : 0;
35106    exponent = eMax;
35107  } else {
35108    exponent = floor(log(number) / LN2);
35109    if (number * (c = pow(2, -exponent)) < 1) {
35110      exponent--;
35111      c *= 2;
35112    }
35113    if (exponent + eBias >= 1) {
35114      number += rt / c;
35115    } else {
35116      number += rt * pow(2, 1 - eBias);
35117    }
35118    if (number * c >= 2) {
35119      exponent++;
35120      c /= 2;
35121    }
35122    if (exponent + eBias >= eMax) {
35123      mantissa = 0;
35124      exponent = eMax;
35125    } else if (exponent + eBias >= 1) {
35126      mantissa = (number * c - 1) * pow(2, mantissaLength);
35127      exponent = exponent + eBias;
35128    } else {
35129      mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);
35130      exponent = 0;
35131    }
35132  }
35133  for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);
35134  exponent = exponent << mantissaLength | mantissa;
35135  exponentLength += mantissaLength;
35136  for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);
35137  buffer[--index] |= sign * 128;
35138  return buffer;
35139};
35140
35141var unpack = function (buffer, mantissaLength) {
35142  var bytes = buffer.length;
35143  var exponentLength = bytes * 8 - mantissaLength - 1;
35144  var eMax = (1 << exponentLength) - 1;
35145  var eBias = eMax >> 1;
35146  var nBits = exponentLength - 7;
35147  var index = bytes - 1;
35148  var sign = buffer[index--];
35149  var exponent = sign & 127;
35150  var mantissa;
35151  sign >>= 7;
35152  for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);
35153  mantissa = exponent & (1 << -nBits) - 1;
35154  exponent >>= -nBits;
35155  nBits += mantissaLength;
35156  for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);
35157  if (exponent === 0) {
35158    exponent = 1 - eBias;
35159  } else if (exponent === eMax) {
35160    return mantissa ? NaN : sign ? -Infinity : Infinity;
35161  } else {
35162    mantissa = mantissa + pow(2, mantissaLength);
35163    exponent = exponent - eBias;
35164  } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);
35165};
35166
35167module.exports = {
35168  pack: pack,
35169  unpack: unpack
35170};
35171
35172
35173/***/ }),
35174/* 665 */
35175/***/ (function(module, exports, __webpack_require__) {
35176
35177var $ = __webpack_require__(2);
35178var ArrayBufferViewCore = __webpack_require__(29);
35179
35180var NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;
35181
35182// `ArrayBuffer.isView` method
35183// https://tc39.github.io/ecma262/#sec-arraybuffer.isview
35184$({ target: 'ArrayBuffer', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {
35185  isView: ArrayBufferViewCore.isView
35186});
35187
35188
35189/***/ }),
35190/* 666 */
35191/***/ (function(module, exports, __webpack_require__) {
35192
35193var $ = __webpack_require__(2);
35194var ArrayBufferModule = __webpack_require__(230);
35195var NATIVE_ARRAY_BUFFER = __webpack_require__(297);
35196
35197// `DataView` constructor
35198// https://tc39.github.io/ecma262/#sec-dataview-constructor
35199$({ global: true, forced: !NATIVE_ARRAY_BUFFER }, {
35200  DataView: ArrayBufferModule.DataView
35201});
35202
35203
35204/***/ }),
35205/* 667 */
35206/***/ (function(module, exports, __webpack_require__) {
35207
35208var createTypedArrayConstructor = __webpack_require__(104);
35209
35210// `Int8Array` constructor
35211// https://tc39.github.io/ecma262/#sec-typedarray-objects
35212createTypedArrayConstructor('Int8', function (init) {
35213  return function Int8Array(data, byteOffset, length) {
35214    return init(this, data, byteOffset, length);
35215  };
35216});
35217
35218
35219/***/ }),
35220/* 668 */
35221/***/ (function(module, exports, __webpack_require__) {
35222
35223var toInteger = __webpack_require__(73);
35224
35225module.exports = function (it) {
35226  var result = toInteger(it);
35227  if (result < 0) throw RangeError("The argument can't be less than 0");
35228  return result;
35229};
35230
35231
35232/***/ }),
35233/* 669 */
35234/***/ (function(module, exports, __webpack_require__) {
35235
35236var createTypedArrayConstructor = __webpack_require__(104);
35237
35238// `Uint8ClampedArray` constructor
35239// https://tc39.github.io/ecma262/#sec-typedarray-objects
35240createTypedArrayConstructor('Uint8', function (init) {
35241  return function Uint8ClampedArray(data, byteOffset, length) {
35242    return init(this, data, byteOffset, length);
35243  };
35244}, true);
35245
35246
35247/***/ }),
35248/* 670 */
35249/***/ (function(module, exports, __webpack_require__) {
35250
35251var createTypedArrayConstructor = __webpack_require__(104);
35252
35253// `Int16Array` constructor
35254// https://tc39.github.io/ecma262/#sec-typedarray-objects
35255createTypedArrayConstructor('Int16', function (init) {
35256  return function Int16Array(data, byteOffset, length) {
35257    return init(this, data, byteOffset, length);
35258  };
35259});
35260
35261
35262/***/ }),
35263/* 671 */
35264/***/ (function(module, exports, __webpack_require__) {
35265
35266var createTypedArrayConstructor = __webpack_require__(104);
35267
35268// `Uint16Array` constructor
35269// https://tc39.github.io/ecma262/#sec-typedarray-objects
35270createTypedArrayConstructor('Uint16', function (init) {
35271  return function Uint16Array(data, byteOffset, length) {
35272    return init(this, data, byteOffset, length);
35273  };
35274});
35275
35276
35277/***/ }),
35278/* 672 */
35279/***/ (function(module, exports, __webpack_require__) {
35280
35281var createTypedArrayConstructor = __webpack_require__(104);
35282
35283// `Int32Array` constructor
35284// https://tc39.github.io/ecma262/#sec-typedarray-objects
35285createTypedArrayConstructor('Int32', function (init) {
35286  return function Int32Array(data, byteOffset, length) {
35287    return init(this, data, byteOffset, length);
35288  };
35289});
35290
35291
35292/***/ }),
35293/* 673 */
35294/***/ (function(module, exports, __webpack_require__) {
35295
35296var createTypedArrayConstructor = __webpack_require__(104);
35297
35298// `Uint32Array` constructor
35299// https://tc39.github.io/ecma262/#sec-typedarray-objects
35300createTypedArrayConstructor('Uint32', function (init) {
35301  return function Uint32Array(data, byteOffset, length) {
35302    return init(this, data, byteOffset, length);
35303  };
35304});
35305
35306
35307/***/ }),
35308/* 674 */
35309/***/ (function(module, exports, __webpack_require__) {
35310
35311var createTypedArrayConstructor = __webpack_require__(104);
35312
35313// `Float32Array` constructor
35314// https://tc39.github.io/ecma262/#sec-typedarray-objects
35315createTypedArrayConstructor('Float32', function (init) {
35316  return function Float32Array(data, byteOffset, length) {
35317    return init(this, data, byteOffset, length);
35318  };
35319});
35320
35321
35322/***/ }),
35323/* 675 */
35324/***/ (function(module, exports, __webpack_require__) {
35325
35326var createTypedArrayConstructor = __webpack_require__(104);
35327
35328// `Float64Array` constructor
35329// https://tc39.github.io/ecma262/#sec-typedarray-objects
35330createTypedArrayConstructor('Float64', function (init) {
35331  return function Float64Array(data, byteOffset, length) {
35332    return init(this, data, byteOffset, length);
35333  };
35334});
35335
35336
35337/***/ }),
35338/* 676 */
35339/***/ (function(module, exports, __webpack_require__) {
35340
35341"use strict";
35342
35343var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(298);
35344var exportTypedArrayStaticMethod = __webpack_require__(29).exportTypedArrayStaticMethod;
35345var typedArrayFrom = __webpack_require__(390);
35346
35347// `%TypedArray%.from` method
35348// https://tc39.github.io/ecma262/#sec-%typedarray%.from
35349exportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
35350
35351
35352/***/ }),
35353/* 677 */
35354/***/ (function(module, exports, __webpack_require__) {
35355
35356"use strict";
35357
35358var ArrayBufferViewCore = __webpack_require__(29);
35359var TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(298);
35360
35361var aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;
35362var exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;
35363
35364// `%TypedArray%.of` method
35365// https://tc39.github.io/ecma262/#sec-%typedarray%.of
35366exportTypedArrayStaticMethod('of', function of(/* ...items */) {
35367  var index = 0;
35368  var length = arguments.length;
35369  var result = new (aTypedArrayConstructor(this))(length);
35370  while (length > index) result[index] = arguments[index++];
35371  return result;
35372}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);
35373
35374
35375/***/ }),
35376/* 678 */
35377/***/ (function(module, exports, __webpack_require__) {
35378
35379var $ = __webpack_require__(2);
35380var getBuiltIn = __webpack_require__(67);
35381var aFunction = __webpack_require__(59);
35382var anObject = __webpack_require__(20);
35383var fails = __webpack_require__(11);
35384
35385var nativeApply = getBuiltIn('Reflect', 'apply');
35386var functionApply = Function.apply;
35387
35388// MS Edge argumentsList argument is optional
35389var OPTIONAL_ARGUMENTS_LIST = !fails(function () {
35390  nativeApply(function () { /* empty */ });
35391});
35392
35393// `Reflect.apply` method
35394// https://tc39.github.io/ecma262/#sec-reflect.apply
35395$({ target: 'Reflect', stat: true, forced: OPTIONAL_ARGUMENTS_LIST }, {
35396  apply: function apply(target, thisArgument, argumentsList) {
35397    aFunction(target);
35398    anObject(argumentsList);
35399    return nativeApply
35400      ? nativeApply(target, thisArgument, argumentsList)
35401      : functionApply.call(target, thisArgument, argumentsList);
35402  }
35403});
35404
35405
35406/***/ }),
35407/* 679 */
35408/***/ (function(module, exports, __webpack_require__) {
35409
35410var $ = __webpack_require__(2);
35411var DESCRIPTORS = __webpack_require__(21);
35412var anObject = __webpack_require__(20);
35413var toPrimitive = __webpack_require__(79);
35414var definePropertyModule = __webpack_require__(30);
35415var fails = __webpack_require__(11);
35416
35417// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
35418var ERROR_INSTEAD_OF_FALSE = fails(function () {
35419  // eslint-disable-next-line no-undef
35420  Reflect.defineProperty(definePropertyModule.f({}, 1, { value: 1 }), 1, { value: 2 });
35421});
35422
35423// `Reflect.defineProperty` method
35424// https://tc39.github.io/ecma262/#sec-reflect.defineproperty
35425$({ target: 'Reflect', stat: true, forced: ERROR_INSTEAD_OF_FALSE, sham: !DESCRIPTORS }, {
35426  defineProperty: function defineProperty(target, propertyKey, attributes) {
35427    anObject(target);
35428    var key = toPrimitive(propertyKey, true);
35429    anObject(attributes);
35430    try {
35431      definePropertyModule.f(target, key, attributes);
35432      return true;
35433    } catch (error) {
35434      return false;
35435    }
35436  }
35437});
35438
35439
35440/***/ }),
35441/* 680 */
35442/***/ (function(module, exports, __webpack_require__) {
35443
35444var $ = __webpack_require__(2);
35445var anObject = __webpack_require__(20);
35446var getOwnPropertyDescriptor = __webpack_require__(51).f;
35447
35448// `Reflect.deleteProperty` method
35449// https://tc39.github.io/ecma262/#sec-reflect.deleteproperty
35450$({ target: 'Reflect', stat: true }, {
35451  deleteProperty: function deleteProperty(target, propertyKey) {
35452    var descriptor = getOwnPropertyDescriptor(anObject(target), propertyKey);
35453    return descriptor && !descriptor.configurable ? false : delete target[propertyKey];
35454  }
35455});
35456
35457
35458/***/ }),
35459/* 681 */
35460/***/ (function(module, exports, __webpack_require__) {
35461
35462var $ = __webpack_require__(2);
35463var isObject = __webpack_require__(19);
35464var anObject = __webpack_require__(20);
35465var has = __webpack_require__(35);
35466var getOwnPropertyDescriptorModule = __webpack_require__(51);
35467var getPrototypeOf = __webpack_require__(74);
35468
35469// `Reflect.get` method
35470// https://tc39.github.io/ecma262/#sec-reflect.get
35471function get(target, propertyKey /* , receiver */) {
35472  var receiver = arguments.length < 3 ? target : arguments[2];
35473  var descriptor, prototype;
35474  if (anObject(target) === receiver) return target[propertyKey];
35475  if (descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey)) return has(descriptor, 'value')
35476    ? descriptor.value
35477    : descriptor.get === undefined
35478      ? undefined
35479      : descriptor.get.call(receiver);
35480  if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);
35481}
35482
35483$({ target: 'Reflect', stat: true }, {
35484  get: get
35485});
35486
35487
35488/***/ }),
35489/* 682 */
35490/***/ (function(module, exports, __webpack_require__) {
35491
35492var $ = __webpack_require__(2);
35493var DESCRIPTORS = __webpack_require__(21);
35494var anObject = __webpack_require__(20);
35495var getOwnPropertyDescriptorModule = __webpack_require__(51);
35496
35497// `Reflect.getOwnPropertyDescriptor` method
35498// https://tc39.github.io/ecma262/#sec-reflect.getownpropertydescriptor
35499$({ target: 'Reflect', stat: true, sham: !DESCRIPTORS }, {
35500  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
35501    return getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
35502  }
35503});
35504
35505
35506/***/ }),
35507/* 683 */
35508/***/ (function(module, exports, __webpack_require__) {
35509
35510var $ = __webpack_require__(2);
35511var anObject = __webpack_require__(20);
35512var objectGetPrototypeOf = __webpack_require__(74);
35513var CORRECT_PROTOTYPE_GETTER = __webpack_require__(283);
35514
35515// `Reflect.getPrototypeOf` method
35516// https://tc39.github.io/ecma262/#sec-reflect.getprototypeof
35517$({ target: 'Reflect', stat: true, sham: !CORRECT_PROTOTYPE_GETTER }, {
35518  getPrototypeOf: function getPrototypeOf(target) {
35519    return objectGetPrototypeOf(anObject(target));
35520  }
35521});
35522
35523
35524/***/ }),
35525/* 684 */
35526/***/ (function(module, exports, __webpack_require__) {
35527
35528var $ = __webpack_require__(2);
35529
35530// `Reflect.has` method
35531// https://tc39.github.io/ecma262/#sec-reflect.has
35532$({ target: 'Reflect', stat: true }, {
35533  has: function has(target, propertyKey) {
35534    return propertyKey in target;
35535  }
35536});
35537
35538
35539/***/ }),
35540/* 685 */
35541/***/ (function(module, exports, __webpack_require__) {
35542
35543var $ = __webpack_require__(2);
35544var anObject = __webpack_require__(20);
35545
35546var objectIsExtensible = Object.isExtensible;
35547
35548// `Reflect.isExtensible` method
35549// https://tc39.github.io/ecma262/#sec-reflect.isextensible
35550$({ target: 'Reflect', stat: true }, {
35551  isExtensible: function isExtensible(target) {
35552    anObject(target);
35553    return objectIsExtensible ? objectIsExtensible(target) : true;
35554  }
35555});
35556
35557
35558/***/ }),
35559/* 686 */
35560/***/ (function(module, exports, __webpack_require__) {
35561
35562var $ = __webpack_require__(2);
35563var ownKeys = __webpack_require__(278);
35564
35565// `Reflect.ownKeys` method
35566// https://tc39.github.io/ecma262/#sec-reflect.ownkeys
35567$({ target: 'Reflect', stat: true }, {
35568  ownKeys: ownKeys
35569});
35570
35571
35572/***/ }),
35573/* 687 */
35574/***/ (function(module, exports, __webpack_require__) {
35575
35576var $ = __webpack_require__(2);
35577var getBuiltIn = __webpack_require__(67);
35578var anObject = __webpack_require__(20);
35579var FREEZING = __webpack_require__(178);
35580
35581// `Reflect.preventExtensions` method
35582// https://tc39.github.io/ecma262/#sec-reflect.preventextensions
35583$({ target: 'Reflect', stat: true, sham: !FREEZING }, {
35584  preventExtensions: function preventExtensions(target) {
35585    anObject(target);
35586    try {
35587      var objectPreventExtensions = getBuiltIn('Object', 'preventExtensions');
35588      if (objectPreventExtensions) objectPreventExtensions(target);
35589      return true;
35590    } catch (error) {
35591      return false;
35592    }
35593  }
35594});
35595
35596
35597/***/ }),
35598/* 688 */
35599/***/ (function(module, exports, __webpack_require__) {
35600
35601var $ = __webpack_require__(2);
35602var anObject = __webpack_require__(20);
35603var isObject = __webpack_require__(19);
35604var has = __webpack_require__(35);
35605var fails = __webpack_require__(11);
35606var definePropertyModule = __webpack_require__(30);
35607var getOwnPropertyDescriptorModule = __webpack_require__(51);
35608var getPrototypeOf = __webpack_require__(74);
35609var createPropertyDescriptor = __webpack_require__(100);
35610
35611// `Reflect.set` method
35612// https://tc39.github.io/ecma262/#sec-reflect.set
35613function set(target, propertyKey, V /* , receiver */) {
35614  var receiver = arguments.length < 4 ? target : arguments[3];
35615  var ownDescriptor = getOwnPropertyDescriptorModule.f(anObject(target), propertyKey);
35616  var existingDescriptor, prototype;
35617  if (!ownDescriptor) {
35618    if (isObject(prototype = getPrototypeOf(target))) {
35619      return set(prototype, propertyKey, V, receiver);
35620    }
35621    ownDescriptor = createPropertyDescriptor(0);
35622  }
35623  if (has(ownDescriptor, 'value')) {
35624    if (ownDescriptor.writable === false || !isObject(receiver)) return false;
35625    if (existingDescriptor = getOwnPropertyDescriptorModule.f(receiver, propertyKey)) {
35626      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
35627      existingDescriptor.value = V;
35628      definePropertyModule.f(receiver, propertyKey, existingDescriptor);
35629    } else definePropertyModule.f(receiver, propertyKey, createPropertyDescriptor(0, V));
35630    return true;
35631  }
35632  return ownDescriptor.set === undefined ? false : (ownDescriptor.set.call(receiver, V), true);
35633}
35634
35635// MS Edge 17-18 Reflect.set allows setting the property to object
35636// with non-writable property on the prototype
35637var MS_EDGE_BUG = fails(function () {
35638  var Constructor = function () { /* empty */ };
35639  var object = definePropertyModule.f(new Constructor(), 'a', { configurable: true });
35640  // eslint-disable-next-line no-undef
35641  return Reflect.set(Constructor.prototype, 'a', 1, object) !== false;
35642});
35643
35644$({ target: 'Reflect', stat: true, forced: MS_EDGE_BUG }, {
35645  set: set
35646});
35647
35648
35649/***/ }),
35650/* 689 */
35651/***/ (function(module, exports, __webpack_require__) {
35652
35653var $ = __webpack_require__(2);
35654var anObject = __webpack_require__(20);
35655var aPossiblePrototype = __webpack_require__(364);
35656var objectSetPrototypeOf = __webpack_require__(116);
35657
35658// `Reflect.setPrototypeOf` method
35659// https://tc39.github.io/ecma262/#sec-reflect.setprototypeof
35660if (objectSetPrototypeOf) $({ target: 'Reflect', stat: true }, {
35661  setPrototypeOf: function setPrototypeOf(target, proto) {
35662    anObject(target);
35663    aPossiblePrototype(proto);
35664    try {
35665      objectSetPrototypeOf(target, proto);
35666      return true;
35667    } catch (error) {
35668      return false;
35669    }
35670  }
35671});
35672
35673
35674/***/ }),
35675/* 690 */
35676/***/ (function(module, exports, __webpack_require__) {
35677
35678var $ = __webpack_require__(2);
35679var global = __webpack_require__(16);
35680var setToStringTag = __webpack_require__(80);
35681
35682$({ global: true }, { Reflect: {} });
35683
35684// Reflect[@@toStringTag] property
35685// https://tc39.es/ecma262/#sec-reflect-@@tostringtag
35686setToStringTag(global.Reflect, 'Reflect', true);
35687
35688
35689/***/ }),
35690/* 691 */
35691/***/ (function(module, exports, __webpack_require__) {
35692
35693__webpack_require__(88);
35694__webpack_require__(257);
35695__webpack_require__(692);
35696__webpack_require__(693);
35697__webpack_require__(694);
35698__webpack_require__(349);
35699__webpack_require__(697);
35700__webpack_require__(393);
35701var path = __webpack_require__(167);
35702
35703module.exports = path;
35704
35705
35706/***/ }),
35707/* 692 */
35708/***/ (function(module, exports, __webpack_require__) {
35709
35710var $ = __webpack_require__(2);
35711var global = __webpack_require__(16);
35712var task = __webpack_require__(295);
35713
35714var FORCED = !global.setImmediate || !global.clearImmediate;
35715
35716// http://w3c.github.io/setImmediate/
35717$({ global: true, bind: true, enumerable: true, forced: FORCED }, {
35718  // `setImmediate` method
35719  // http://w3c.github.io/setImmediate/#si-setImmediate
35720  setImmediate: task.set,
35721  // `clearImmediate` method
35722  // http://w3c.github.io/setImmediate/#si-clearImmediate
35723  clearImmediate: task.clear
35724});
35725
35726
35727/***/ }),
35728/* 693 */
35729/***/ (function(module, exports, __webpack_require__) {
35730
35731var $ = __webpack_require__(2);
35732var global = __webpack_require__(16);
35733var microtask = __webpack_require__(384);
35734var IS_NODE = __webpack_require__(146);
35735
35736var process = global.process;
35737
35738// `queueMicrotask` method
35739// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-queuemicrotask
35740$({ global: true, enumerable: true, noTargetGet: true }, {
35741  queueMicrotask: function queueMicrotask(fn) {
35742    var domain = IS_NODE && process.domain;
35743    microtask(domain ? domain.bind(fn) : fn);
35744  }
35745});
35746
35747
35748/***/ }),
35749/* 694 */
35750/***/ (function(module, exports, __webpack_require__) {
35751
35752var $ = __webpack_require__(2);
35753var global = __webpack_require__(16);
35754var userAgent = __webpack_require__(216);
35755
35756var slice = [].slice;
35757var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
35758
35759var wrap = function (scheduler) {
35760  return function (handler, timeout /* , ...arguments */) {
35761    var boundArgs = arguments.length > 2;
35762    var args = boundArgs ? slice.call(arguments, 2) : undefined;
35763    return scheduler(boundArgs ? function () {
35764      // eslint-disable-next-line no-new-func
35765      (typeof handler == 'function' ? handler : Function(handler)).apply(this, args);
35766    } : handler, timeout);
35767  };
35768};
35769
35770// ie9- setTimeout & setInterval additional parameters fix
35771// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
35772$({ global: true, bind: true, forced: MSIE }, {
35773  // `setTimeout` method
35774  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout
35775  setTimeout: wrap(global.setTimeout),
35776  // `setInterval` method
35777  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
35778  setInterval: wrap(global.setInterval)
35779});
35780
35781
35782/***/ }),
35783/* 695 */
35784/***/ (function(module, exports, __webpack_require__) {
35785
35786"use strict";
35787
35788// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
35789var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
35790var base = 36;
35791var tMin = 1;
35792var tMax = 26;
35793var skew = 38;
35794var damp = 700;
35795var initialBias = 72;
35796var initialN = 128; // 0x80
35797var delimiter = '-'; // '\x2D'
35798var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars
35799var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators
35800var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
35801var baseMinusTMin = base - tMin;
35802var floor = Math.floor;
35803var stringFromCharCode = String.fromCharCode;
35804
35805/**
35806 * Creates an array containing the numeric code points of each Unicode
35807 * character in the string. While JavaScript uses UCS-2 internally,
35808 * this function will convert a pair of surrogate halves (each of which
35809 * UCS-2 exposes as separate characters) into a single code point,
35810 * matching UTF-16.
35811 */
35812var ucs2decode = function (string) {
35813  var output = [];
35814  var counter = 0;
35815  var length = string.length;
35816  while (counter < length) {
35817    var value = string.charCodeAt(counter++);
35818    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
35819      // It's a high surrogate, and there is a next character.
35820      var extra = string.charCodeAt(counter++);
35821      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.
35822        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
35823      } else {
35824        // It's an unmatched surrogate; only append this code unit, in case the
35825        // next code unit is the high surrogate of a surrogate pair.
35826        output.push(value);
35827        counter--;
35828      }
35829    } else {
35830      output.push(value);
35831    }
35832  }
35833  return output;
35834};
35835
35836/**
35837 * Converts a digit/integer into a basic code point.
35838 */
35839var digitToBasic = function (digit) {
35840  //  0..25 map to ASCII a..z or A..Z
35841  // 26..35 map to ASCII 0..9
35842  return digit + 22 + 75 * (digit < 26);
35843};
35844
35845/**
35846 * Bias adaptation function as per section 3.4 of RFC 3492.
35847 * https://tools.ietf.org/html/rfc3492#section-3.4
35848 */
35849var adapt = function (delta, numPoints, firstTime) {
35850  var k = 0;
35851  delta = firstTime ? floor(delta / damp) : delta >> 1;
35852  delta += floor(delta / numPoints);
35853  for (; delta > baseMinusTMin * tMax >> 1; k += base) {
35854    delta = floor(delta / baseMinusTMin);
35855  }
35856  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
35857};
35858
35859/**
35860 * Converts a string of Unicode symbols (e.g. a domain name label) to a
35861 * Punycode string of ASCII-only symbols.
35862 */
35863// eslint-disable-next-line  max-statements
35864var encode = function (input) {
35865  var output = [];
35866
35867  // Convert the input in UCS-2 to an array of Unicode code points.
35868  input = ucs2decode(input);
35869
35870  // Cache the length.
35871  var inputLength = input.length;
35872
35873  // Initialize the state.
35874  var n = initialN;
35875  var delta = 0;
35876  var bias = initialBias;
35877  var i, currentValue;
35878
35879  // Handle the basic code points.
35880  for (i = 0; i < input.length; i++) {
35881    currentValue = input[i];
35882    if (currentValue < 0x80) {
35883      output.push(stringFromCharCode(currentValue));
35884    }
35885  }
35886
35887  var basicLength = output.length; // number of basic code points.
35888  var handledCPCount = basicLength; // number of code points that have been handled;
35889
35890  // Finish the basic string with a delimiter unless it's empty.
35891  if (basicLength) {
35892    output.push(delimiter);
35893  }
35894
35895  // Main encoding loop:
35896  while (handledCPCount < inputLength) {
35897    // All non-basic code points < n have been handled already. Find the next larger one:
35898    var m = maxInt;
35899    for (i = 0; i < input.length; i++) {
35900      currentValue = input[i];
35901      if (currentValue >= n && currentValue < m) {
35902        m = currentValue;
35903      }
35904    }
35905
35906    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.
35907    var handledCPCountPlusOne = handledCPCount + 1;
35908    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
35909      throw RangeError(OVERFLOW_ERROR);
35910    }
35911
35912    delta += (m - n) * handledCPCountPlusOne;
35913    n = m;
35914
35915    for (i = 0; i < input.length; i++) {
35916      currentValue = input[i];
35917      if (currentValue < n && ++delta > maxInt) {
35918        throw RangeError(OVERFLOW_ERROR);
35919      }
35920      if (currentValue == n) {
35921        // Represent delta as a generalized variable-length integer.
35922        var q = delta;
35923        for (var k = base; /* no condition */; k += base) {
35924          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
35925          if (q < t) break;
35926          var qMinusT = q - t;
35927          var baseMinusT = base - t;
35928          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
35929          q = floor(qMinusT / baseMinusT);
35930        }
35931
35932        output.push(stringFromCharCode(digitToBasic(q)));
35933        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
35934        delta = 0;
35935        ++handledCPCount;
35936      }
35937    }
35938
35939    ++delta;
35940    ++n;
35941  }
35942  return output.join('');
35943};
35944
35945module.exports = function (input) {
35946  var encoded = [];
35947  var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
35948  var i, label;
35949  for (i = 0; i < labels.length; i++) {
35950    label = labels[i];
35951    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
35952  }
35953  return encoded.join('.');
35954};
35955
35956
35957/***/ }),
35958/* 696 */
35959/***/ (function(module, exports, __webpack_require__) {
35960
35961var anObject = __webpack_require__(20);
35962var getIteratorMethod = __webpack_require__(173);
35963
35964module.exports = function (it) {
35965  var iteratorMethod = getIteratorMethod(it);
35966  if (typeof iteratorMethod != 'function') {
35967    throw TypeError(String(it) + ' is not iterable');
35968  } return anObject(iteratorMethod.call(it));
35969};
35970
35971
35972/***/ }),
35973/* 697 */
35974/***/ (function(module, exports, __webpack_require__) {
35975
35976"use strict";
35977
35978var $ = __webpack_require__(2);
35979
35980// `URL.prototype.toJSON` method
35981// https://url.spec.whatwg.org/#dom-url-tojson
35982$({ target: 'URL', proto: true, enumerable: true }, {
35983  toJSON: function toJSON() {
35984    return URL.prototype.toString.call(this);
35985  }
35986});
35987
35988
35989/***/ }),
35990/* 698 */
35991/***/ (function(module, exports) {
35992
35993function _arrayWithHoles(arr) {
35994  if (Array.isArray(arr)) return arr;
35995}
35996
35997module.exports = _arrayWithHoles;
35998
35999/***/ }),
36000/* 699 */
36001/***/ (function(module, exports) {
36002
36003function _nonIterableRest() {
36004  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
36005}
36006
36007module.exports = _nonIterableRest;
36008
36009/***/ }),
36010/* 700 */
36011/***/ (function(module, exports) {
36012
36013function _iterableToArray(iter) {
36014  if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
36015}
36016
36017module.exports = _iterableToArray;
36018
36019/***/ }),
36020/* 701 */,
36021/* 702 */,
36022/* 703 */,
36023/* 704 */
36024/***/ (function(module, exports, __webpack_require__) {
36025
36026// extracted by mini-css-extract-plugin
36027module.exports = {"wrap":"IframeWidget-module__wrap--S1PNo","frame":"IframeWidget-module__frame--3Z0Ym","narrow":"IframeWidget-module__narrow--W9hH5"};
36028
36029/***/ }),
36030/* 705 */
36031/***/ (function(module, __webpack_exports__, __webpack_require__) {
36032
36033"use strict";
36034/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return adsBlocked; });
36035/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return adsBlockedSync; });
36036/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(105);
36037/* harmony import */ var core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string__WEBPACK_IMPORTED_MODULE_0__);
36038/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187);
36039/* harmony import */ var core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise__WEBPACK_IMPORTED_MODULE_1__);
36040/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
36041/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);
36042/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
36043/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__);
36044/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
36045/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__);
36046/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10);
36047
36048
36049
36050
36051
36052
36053var adsBlocked = /*#__PURE__*/function () {
36054  var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee() {
36055    var _yield$import, adsAllowed;
36056
36057    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee$(_context) {
36058      while (1) {
36059        switch (_context.prev = _context.next) {
36060          case 0:
36061            _context.prev = 0;
36062            _context.next = 3;
36063            return __webpack_require__.e(/* import() | dfp.legacy */ 7).then(__webpack_require__.bind(null, 1055));
36064
36065          case 3:
36066            _yield$import = _context.sent;
36067            adsAllowed = _yield$import.adsAllowed;
36068            return _context.abrupt("return", !adsAllowed);
36069
36070          case 8:
36071            _context.prev = 8;
36072            _context.t0 = _context["catch"](0);
36073            Object(_logger__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "e"])("Ads blocked");
36074            return _context.abrupt("return", true);
36075
36076          case 12:
36077          case "end":
36078            return _context.stop();
36079        }
36080      }
36081    }, _callee, null, [[0, 8]]);
36082  }));
36083
36084  return function adsBlocked() {
36085    return _ref.apply(this, arguments);
36086  };
36087}();
36088/**
36089 * Synchronous version of adsBlocked
36090 */
36091
36092var adsBlockedSync = function adsBlockedSync() {
36093  try {
36094    // eslint-disable-next-line @typescript-eslint/no-var-requires
36095    var adsAllowed = __webpack_require__(
36096    /* webpackChunkName: "dfp" */
36097    1004); // Generates a file called "dfp.js", which is blocked by all adblockers
36098
36099
36100    return !adsAllowed;
36101  } catch (err) {
36102    Object(_logger__WEBPACK_IMPORTED_MODULE_5__[/* warn */ "e"])("Ads blocked");
36103    return true;
36104  }
36105};
36106
36107/***/ }),
36108/* 706 */,
36109/* 707 */,
36110/* 708 */,
36111/* 709 */,
36112/* 710 */,
36113/* 711 */,
36114/* 712 */,
36115/* 713 */,
36116/* 714 */,
36117/* 715 */,
36118/* 716 */,
36119/* 717 */,
36120/* 718 */,
36121/* 719 */,
36122/* 720 */,
36123/* 721 */,
36124/* 722 */,
36125/* 723 */,
36126/* 724 */,
36127/* 725 */,
36128/* 726 */,
36129/* 727 */,
36130/* 728 */,
36131/* 729 */,
36132/* 730 */
36133/***/ (function(module, exports) {
36134
36135module.exports = "<svg width=\"32\" height=\"32\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M22.232 8L16 14.232 9.768 8 8 9.768 14.232 16 8 22.233 9.768 24 16 17.768 22.232 24 24 22.233 17.767 16 24 9.768z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
36136
36137/***/ }),
36138/* 731 */
36139/***/ (function(module, exports) {
36140
36141module.exports = "<svg width=\"46px\" height=\"46px\" viewBox=\"0 0 46 46\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>icon_big_pause</title><g id=\"icon_big_pause\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-18\" fill=\"currentColor\"><path d=\"M23,0 C35.7025492,0 46,10.2974508 46,23 C46,35.7025492 35.7025492,46 23,46 C10.2974508,46 0,35.7025492 0,23 C0,10.2974508 10.2974508,0 23,0 Z M21.1791667,15.3333333 L16.8666667,15.3333333 L16.8666667,30.6666667 L21.1791667,30.6666667 L21.1791667,15.3333333 Z M29.325,15.3333333 L25.0125,15.3333333 L25.0125,30.6666667 L29.325,30.6666667 L29.325,15.3333333 Z\" id=\"Combined-Shape\"></path></g></g></svg>"
36142
36143/***/ }),
36144/* 732 */
36145/***/ (function(module, exports, __webpack_require__) {
36146
36147"use strict";
36148/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
36149//
36150// Permission is hereby granted, free of charge, to any person obtaining a
36151// copy of this software and associated documentation files (the
36152// "Software"), to deal in the Software without restriction, including
36153// without limitation the rights to use, copy, modify, merge, publish,
36154// distribute, sublicense, and/or sell copies of the Software, and to permit
36155// persons to whom the Software is furnished to do so, subject to the
36156// following conditions:
36157//
36158// The above copyright notice and this permission notice shall be included
36159// in all copies or substantial portions of the Software.
36160//
36161// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
36162// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
36163// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
36164// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
36165// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
36166// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
36167// USE OR OTHER DEALINGS IN THE SOFTWARE.
36168
36169
36170
36171/*<replacement>*/
36172
36173var pna = __webpack_require__(394);
36174/*</replacement>*/
36175
36176module.exports = Readable;
36177
36178/*<replacement>*/
36179var isArray = __webpack_require__(733);
36180/*</replacement>*/
36181
36182/*<replacement>*/
36183var Duplex;
36184/*</replacement>*/
36185
36186Readable.ReadableState = ReadableState;
36187
36188/*<replacement>*/
36189var EE = __webpack_require__(469).EventEmitter;
36190
36191var EElistenerCount = function (emitter, type) {
36192  return emitter.listeners(type).length;
36193};
36194/*</replacement>*/
36195
36196/*<replacement>*/
36197var Stream = __webpack_require__(734);
36198/*</replacement>*/
36199
36200/*<replacement>*/
36201
36202var Buffer = __webpack_require__(470).Buffer;
36203var OurUint8Array = global.Uint8Array || function () {};
36204function _uint8ArrayToBuffer(chunk) {
36205  return Buffer.from(chunk);
36206}
36207function _isUint8Array(obj) {
36208  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
36209}
36210
36211/*</replacement>*/
36212
36213/*<replacement>*/
36214var util = Object.create(__webpack_require__(314));
36215util.inherits = __webpack_require__(200);
36216/*</replacement>*/
36217
36218/*<replacement>*/
36219var debugUtil = __webpack_require__(905);
36220var debug = void 0;
36221if (debugUtil && debugUtil.debuglog) {
36222  debug = debugUtil.debuglog('stream');
36223} else {
36224  debug = function () {};
36225}
36226/*</replacement>*/
36227
36228var BufferList = __webpack_require__(906);
36229var destroyImpl = __webpack_require__(735);
36230var StringDecoder;
36231
36232util.inherits(Readable, Stream);
36233
36234var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
36235
36236function prependListener(emitter, event, fn) {
36237  // Sadly this is not cacheable as some libraries bundle their own
36238  // event emitter implementation with them.
36239  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
36240
36241  // This is a hack to make sure that our error handler is attached before any
36242  // userland ones.  NEVER DO THIS. This is here only because this code needs
36243  // to continue to work with older versions of Node.js that do not include
36244  // the prependListener() method. The goal is to eventually remove this hack.
36245  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);
vendor: 7,639 bytes, lines 36245-36475
36245else emitter._events[event] = [fn, emitter._events[event]];
36246}
36247
36248function ReadableState(options, stream) {
36249  Duplex = Duplex || __webpack_require__(240);
36250
36251  options = options || {};
36252
36253  // Duplex streams are both readable and writable, but share
36254  // the same options object.
36255  // However, some cases require setting options to different
36256  // values for the readable and the writable sides of the duplex stream.
36257  // These options can be provided separately as readableXXX and writableXXX.
36258  var isDuplex = stream instanceof Duplex;
36259
36260  // object stream flag. Used to make read(n) ignore n and to
36261  // make all the buffer merging and length checks go away
36262  this.objectMode = !!options.objectMode;
36263
36264  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
36265
36266  // the point at which it stops calling _read() to fill the buffer
36267  // Note: 0 is a valid value, means "don't call _read preemptively ever"
36268  var hwm = options.highWaterMark;
36269  var readableHwm = options.readableHighWaterMark;
36270  var defaultHwm = this.objectMode ? 16 : 16 * 1024;
36271
36272  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
36273
36274  // cast to ints.
36275  this.highWaterMark = Math.floor(this.highWaterMark);
36276
36277  // A linked list is used to store data chunks instead of an array because the
36278  // linked list can remove elements from the beginning faster than
36279  // array.shift()
36280  this.buffer = new BufferList();
36281  this.length = 0;
36282  this.pipes = null;
36283  this.pipesCount = 0;
36284  this.flowing = null;
36285  this.ended = false;
36286  this.endEmitted = false;
36287  this.reading = false;
36288
36289  // a flag to be able to tell if the event 'readable'/'data' is emitted
36290  // immediately, or on a later tick.  We set this to true at first, because
36291  // any actions that shouldn't happen until "later" should generally also
36292  // not happen before the first read call.
36293  this.sync = true;
36294
36295  // whenever we return null, then we set a flag to say
36296  // that we're awaiting a 'readable' event emission.
36297  this.needReadable = false;
36298  this.emittedReadable = false;
36299  this.readableListening = false;
36300  this.resumeScheduled = false;
36301
36302  // has it been destroyed
36303  this.destroyed = false;
36304
36305  // Crypto is kind of old and crusty.  Historically, its default string
36306  // encoding is 'binary' so we have to make this configurable.
36307  // Everything else in the universe uses 'utf8', though.
36308  this.defaultEncoding = options.defaultEncoding || 'utf8';
36309
36310  // the number of writers that are awaiting a drain event in .pipe()s
36311  this.awaitDrain = 0;
36312
36313  // if true, a maybeReadMore has been scheduled
36314  this.readingMore = false;
36315
36316  this.decoder = null;
36317  this.encoding = null;
36318  if (options.encoding) {
36319    if (!StringDecoder) StringDecoder = __webpack_require__(736).StringDecoder;
36320    this.decoder = new StringDecoder(options.encoding);
36321    this.encoding = options.encoding;
36322  }
36323}
36324
36325function Readable(options) {
36326  Duplex = Duplex || __webpack_require__(240);
36327
36328  if (!(this instanceof Readable)) return new Readable(options);
36329
36330  this._readableState = new ReadableState(options, this);
36331
36332  // legacy
36333  this.readable = true;
36334
36335  if (options) {
36336    if (typeof options.read === 'function') this._read = options.read;
36337
36338    if (typeof options.destroy === 'function') this._destroy = options.destroy;
36339  }
36340
36341  Stream.call(this);
36342}
36343
36344Object.defineProperty(Readable.prototype, 'destroyed', {
36345  get: function () {
36346    if (this._readableState === undefined) {
36347      return false;
36348    }
36349    return this._readableState.destroyed;
36350  },
36351  set: function (value) {
36352    // we ignore the value if the stream
36353    // has not been initialized yet
36354    if (!this._readableState) {
36355      return;
36356    }
36357
36358    // backward compatibility, the user is explicitly
36359    // managing destroyed
36360    this._readableState.destroyed = value;
36361  }
36362});
36363
36364Readable.prototype.destroy = destroyImpl.destroy;
36365Readable.prototype._undestroy = destroyImpl.undestroy;
36366Readable.prototype._destroy = function (err, cb) {
36367  this.push(null);
36368  cb(err);
36369};
36370
36371// Manually shove something into the read() buffer.
36372// This returns true if the highWaterMark has not been hit yet,
36373// similar to how Writable.write() returns true if you should
36374// write() some more.
36375Readable.prototype.push = function (chunk, encoding) {
36376  var state = this._readableState;
36377  var skipChunkCheck;
36378
36379  if (!state.objectMode) {
36380    if (typeof chunk === 'string') {
36381      encoding = encoding || state.defaultEncoding;
36382      if (encoding !== state.encoding) {
36383        chunk = Buffer.from(chunk, encoding);
36384        encoding = '';
36385      }
36386      skipChunkCheck = true;
36387    }
36388  } else {
36389    skipChunkCheck = true;
36390  }
36391
36392  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
36393};
36394
36395// Unshift should *always* be something directly out of read()
36396Readable.prototype.unshift = function (chunk) {
36397  return readableAddChunk(this, chunk, null, true, false);
36398};
36399
36400function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
36401  var state = stream._readableState;
36402  if (chunk === null) {
36403    state.reading = false;
36404    onEofChunk(stream, state);
36405  } else {
36406    var er;
36407    if (!skipChunkCheck) er = chunkInvalid(state, chunk);
36408    if (er) {
36409      stream.emit('error', er);
36410    } else if (state.objectMode || chunk && chunk.length > 0) {
36411      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
36412        chunk = _uint8ArrayToBuffer(chunk);
36413      }
36414
36415      if (addToFront) {
36416        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
36417      } else if (state.ended) {
36418        stream.emit('error', new Error('stream.push() after EOF'));
36419      } else {
36420        state.reading = false;
36421        if (state.decoder && !encoding) {
36422          chunk = state.decoder.write(chunk);
36423          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
36424        } else {
36425          addChunk(stream, state, chunk, false);
36426        }
36427      }
36428    } else if (!addToFront) {
36429      state.reading = false;
36430    }
36431  }
36432
36433  return needMoreData(state);
36434}
36435
36436function addChunk(stream, state, chunk, addToFront) {
36437  if (state.flowing && state.length === 0 && !state.sync) {
36438    stream.emit('data', chunk);
36439    stream.read(0);
36440  } else {
36441    // update the buffer info.
36442    state.length += state.objectMode ? 1 : chunk.length;
36443    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
36444
36445    if (state.needReadable) emitReadable(stream);
36446  }
36447  maybeReadMore(stream, state);
36448}
36449
36450function chunkInvalid(state, chunk) {
36451  var er;
36452  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
36453    er = new TypeError('Invalid non-string/buffer chunk');
36454  }
36455  return er;
36456}
36457
36458// if it's past the high water mark, we can push in some more.
36459// Also, if we have no data yet, we can stand some
36460// more bytes.  This is to work around cases where hwm=0,
36461// such as the repl.  Also, if the push() triggered a
36462// readable event, and the user called read(largeNumber) such that
36463// needReadable was set, then we ought to push more, so that another
36464// 'readable' event will be triggered.
36465function needMoreData(state) {
36466  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
36467}
36468
36469Readable.prototype.isPaused = function () {
36470  return this._readableState.flowing === false;
36471};
36472
36473// backwards compatibility.
36474Readable.prototype.setEncoding = function (enc) {
36475  if (!StringDecoder) StringDecoder = __webpack_require__(736
vendor: 9,953 bytes, lines 36475-36773
36475).StringDecoder;
36476  this._readableState.decoder = new StringDecoder(enc);
36477  this._readableState.encoding = enc;
36478  return this;
36479};
36480
36481// Don't raise the hwm > 8MB
36482var MAX_HWM = 0x800000;
36483function computeNewHighWaterMark(n) {
36484  if (n >= MAX_HWM) {
36485    n = MAX_HWM;
36486  } else {
36487    // Get the next highest power of 2 to prevent increasing hwm excessively in
36488    // tiny amounts
36489    n--;
36490    n |= n >>> 1;
36491    n |= n >>> 2;
36492    n |= n >>> 4;
36493    n |= n >>> 8;
36494    n |= n >>> 16;
36495    n++;
36496  }
36497  return n;
36498}
36499
36500// This function is designed to be inlinable, so please take care when making
36501// changes to the function body.
36502function howMuchToRead(n, state) {
36503  if (n <= 0 || state.length === 0 && state.ended) return 0;
36504  if (state.objectMode) return 1;
36505  if (n !== n) {
36506    // Only flow one buffer at a time
36507    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
36508  }
36509  // If we're asking for more than the current hwm, then raise the hwm.
36510  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
36511  if (n <= state.length) return n;
36512  // Don't have enough
36513  if (!state.ended) {
36514    state.needReadable = true;
36515    return 0;
36516  }
36517  return state.length;
36518}
36519
36520// you can override either this method, or the async _read(n) below.
36521Readable.prototype.read = function (n) {
36522  debug('read', n);
36523  n = parseInt(n, 10);
36524  var state = this._readableState;
36525  var nOrig = n;
36526
36527  if (n !== 0) state.emittedReadable = false;
36528
36529  // if we're doing read(0) to trigger a readable event, but we
36530  // already have a bunch of data in the buffer, then just trigger
36531  // the 'readable' event and move on.
36532  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
36533    debug('read: emitReadable', state.length, state.ended);
36534    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
36535    return null;
36536  }
36537
36538  n = howMuchToRead(n, state);
36539
36540  // if we've ended, and we're now clear, then finish it up.
36541  if (n === 0 && state.ended) {
36542    if (state.length === 0) endReadable(this);
36543    return null;
36544  }
36545
36546  // All the actual chunk generation logic needs to be
36547  // *below* the call to _read.  The reason is that in certain
36548  // synthetic stream cases, such as passthrough streams, _read
36549  // may be a completely synchronous operation which may change
36550  // the state of the read buffer, providing enough data when
36551  // before there was *not* enough.
36552  //
36553  // So, the steps are:
36554  // 1. Figure out what the state of things will be after we do
36555  // a read from the buffer.
36556  //
36557  // 2. If that resulting state will trigger a _read, then call _read.
36558  // Note that this may be asynchronous, or synchronous.  Yes, it is
36559  // deeply ugly to write APIs this way, but that still doesn't mean
36560  // that the Readable class should behave improperly, as streams are
36561  // designed to be sync/async agnostic.
36562  // Take note if the _read call is sync or async (ie, if the read call
36563  // has returned yet), so that we know whether or not it's safe to emit
36564  // 'readable' etc.
36565  //
36566  // 3. Actually pull the requested chunks out of the buffer and return.
36567
36568  // if we need a readable event, then we need to do some reading.
36569  var doRead = state.needReadable;
36570  debug('need readable', doRead);
36571
36572  // if we currently have less than the highWaterMark, then also read some
36573  if (state.length === 0 || state.length - n < state.highWaterMark) {
36574    doRead = true;
36575    debug('length less than watermark', doRead);
36576  }
36577
36578  // however, if we've ended, then there's no point, and if we're already
36579  // reading, then it's unnecessary.
36580  if (state.ended || state.reading) {
36581    doRead = false;
36582    debug('reading or ended', doRead);
36583  } else if (doRead) {
36584    debug('do read');
36585    state.reading = true;
36586    state.sync = true;
36587    // if the length is currently zero, then we *need* a readable event.
36588    if (state.length === 0) state.needReadable = true;
36589    // call internal read method
36590    this._read(state.highWaterMark);
36591    state.sync = false;
36592    // If _read pushed data synchronously, then `reading` will be false,
36593    // and we need to re-evaluate how much data we can return to the user.
36594    if (!state.reading) n = howMuchToRead(nOrig, state);
36595  }
36596
36597  var ret;
36598  if (n > 0) ret = fromList(n, state);else ret = null;
36599
36600  if (ret === null) {
36601    state.needReadable = true;
36602    n = 0;
36603  } else {
36604    state.length -= n;
36605  }
36606
36607  if (state.length === 0) {
36608    // If we have nothing in the buffer, then we want to know
36609    // as soon as we *do* get something into the buffer.
36610    if (!state.ended) state.needReadable = true;
36611
36612    // If we tried to read() past the EOF, then emit end on the next tick.
36613    if (nOrig !== n && state.ended) endReadable(this);
36614  }
36615
36616  if (ret !== null) this.emit('data', ret);
36617
36618  return ret;
36619};
36620
36621function onEofChunk(stream, state) {
36622  if (state.ended) return;
36623  if (state.decoder) {
36624    var chunk = state.decoder.end();
36625    if (chunk && chunk.length) {
36626      state.buffer.push(chunk);
36627      state.length += state.objectMode ? 1 : chunk.length;
36628    }
36629  }
36630  state.ended = true;
36631
36632  // emit 'readable' now to make sure it gets picked up.
36633  emitReadable(stream);
36634}
36635
36636// Don't emit readable right away in sync mode, because this can trigger
36637// another read() call => stack overflow.  This way, it might trigger
36638// a nextTick recursion warning, but that's not so bad.
36639function emitReadable(stream) {
36640  var state = stream._readableState;
36641  state.needReadable = false;
36642  if (!state.emittedReadable) {
36643    debug('emitReadable', state.flowing);
36644    state.emittedReadable = true;
36645    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
36646  }
36647}
36648
36649function emitReadable_(stream) {
36650  debug('emit readable');
36651  stream.emit('readable');
36652  flow(stream);
36653}
36654
36655// at this point, the user has presumably seen the 'readable' event,
36656// and called read() to consume some data.  that may have triggered
36657// in turn another _read(n) call, in which case reading = true if
36658// it's in progress.
36659// However, if we're not ended, or reading, and the length < hwm,
36660// then go ahead and try to read some more preemptively.
36661function maybeReadMore(stream, state) {
36662  if (!state.readingMore) {
36663    state.readingMore = true;
36664    pna.nextTick(maybeReadMore_, stream, state);
36665  }
36666}
36667
36668function maybeReadMore_(stream, state) {
36669  var len = state.length;
36670  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
36671    debug('maybeReadMore read 0');
36672    stream.read(0);
36673    if (len === state.length)
36674      // didn't get any data, stop spinning.
36675      break;else len = state.length;
36676  }
36677  state.readingMore = false;
36678}
36679
36680// abstract method.  to be overridden in specific implementation classes.
36681// call cb(er, data) where data is <= n in length.
36682// for virtual (non-string, non-buffer) streams, "length" is somewhat
36683// arbitrary, and perhaps not very meaningful.
36684Readable.prototype._read = function (n) {
36685  this.emit('error', new Error('_read() is not implemented'));
36686};
36687
36688Readable.prototype.pipe = function (dest, pipeOpts) {
36689  var src = this;
36690  var state = this._readableState;
36691
36692  switch (state.pipesCount) {
36693    case 0:
36694      state.pipes = dest;
36695      break;
36696    case 1:
36697      state.pipes = [state.pipes, dest];
36698      break;
36699    default:
36700      state.pipes.push(dest);
36701      break;
36702  }
36703  state.pipesCount += 1;
36704  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
36705
36706  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
36707
36708  var endFn = doEnd ? onend : unpipe;
36709  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
36710
36711  dest.on('unpipe', onunpipe);
36712  function onunpipe(readable, unpipeInfo) {
36713    debug('onunpipe');
36714    if (readable === src) {
36715      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
36716        unpipeInfo.hasUnpiped = true;
36717        cleanup();
36718      }
36719    }
36720  }
36721
36722  function onend() {
36723    debug('onend');
36724    dest.end();
36725  }
36726
36727  // when the dest drains, it reduces the awaitDrain counter
36728  // on the source.  This would be more elegant with a .once()
36729  // handler in flow(), but adding and removing repeatedly is
36730  // too slow.
36731  var ondrain = pipeOnDrain(src);
36732  dest.on('drain', ondrain);
36733
36734  var cleanedUp = false;
36735  function cleanup() {
36736    debug('cleanup');
36737    // cleanup event handlers once the pipe is broken
36738    dest.removeListener('close', onclose);
36739    dest.removeListener('finish', onfinish);
36740    dest.removeListener('drain', ondrain);
36741    dest.removeListener('error', onerror);
36742    dest.removeListener('unpipe', onunpipe);
36743    src.removeListener('end', onend);
36744    src.removeListener('end', unpipe);
36745    src.removeListener('data', ondata);
36746
36747    cleanedUp = true;
36748
36749    // if the reader is waiting for a drain event from this
36750    // specific writer, then it would cause it to never start
36751    // flowing again.
36752    // So, if this is awaiting a drain, then we just call it now.
36753    // If we don't know, then assume that we are waiting for one.
36754    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
36755  }
36756
36757  // If the user pushes more data while we're writing to dest then we'll end up
36758  // in ondata again. However, we only want to increase awaitDrain once because
36759  // dest will only emit one 'drain' event for the multiple writes.
36760  // => Introduce a guard on increasing awaitDrain.
36761  var increasedAwaitDrain = false;
36762  src.on('data', ondata);
36763  function ondata(chunk) {
36764    debug('ondata');
36765    increasedAwaitDrain = false;
36766    var ret = dest.write(chunk);
36767    if (false === ret && !increasedAwaitDrain) {
36768      // If the user unpiped during `dest.write()`, it is possible
36769      // to get stuck in a permanently paused state if that write
36770      // also returned false.
36771      // => Check whether `dest` is still a piping destination.
36772      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
36773        debug('false write response, pause', s
vendor: 2,380 bytes, lines 36773-36868
36773rc._readableState.awaitDrain);
36774        src._readableState.awaitDrain++;
36775        increasedAwaitDrain = true;
36776      }
36777      src.pause();
36778    }
36779  }
36780
36781  // if the dest has an error, then stop piping into it.
36782  // however, don't suppress the throwing behavior for this.
36783  function onerror(er) {
36784    debug('onerror', er);
36785    unpipe();
36786    dest.removeListener('error', onerror);
36787    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
36788  }
36789
36790  // Make sure our error handler is attached before userland ones.
36791  prependListener(dest, 'error', onerror);
36792
36793  // Both close and finish should trigger unpipe, but only once.
36794  function onclose() {
36795    dest.removeListener('finish', onfinish);
36796    unpipe();
36797  }
36798  dest.once('close', onclose);
36799  function onfinish() {
36800    debug('onfinish');
36801    dest.removeListener('close', onclose);
36802    unpipe();
36803  }
36804  dest.once('finish', onfinish);
36805
36806  function unpipe() {
36807    debug('unpipe');
36808    src.unpipe(dest);
36809  }
36810
36811  // tell the dest that it's being piped to
36812  dest.emit('pipe', src);
36813
36814  // start the flow if it hasn't been started already.
36815  if (!state.flowing) {
36816    debug('pipe resume');
36817    src.resume();
36818  }
36819
36820  return dest;
36821};
36822
36823function pipeOnDrain(src) {
36824  return function () {
36825    var state = src._readableState;
36826    debug('pipeOnDrain', state.awaitDrain);
36827    if (state.awaitDrain) state.awaitDrain--;
36828    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
36829      state.flowing = true;
36830      flow(src);
36831    }
36832  };
36833}
36834
36835Readable.prototype.unpipe = function (dest) {
36836  var state = this._readableState;
36837  var unpipeInfo = { hasUnpiped: false };
36838
36839  // if we're not piping anywhere, then do nothing.
36840  if (state.pipesCount === 0) return this;
36841
36842  // just one destination.  most common case.
36843  if (state.pipesCount === 1) {
36844    // passed in one, but it's not the right one.
36845    if (dest && dest !== state.pipes) return this;
36846
36847    if (!dest) dest = state.pipes;
36848
36849    // got a match.
36850    state.pipes = null;
36851    state.pipesCount = 0;
36852    state.flowing = false;
36853    if (dest) dest.emit('unpipe', this, unpipeInfo);
36854    return this;
36855  }
36856
36857  // slow case. multiple pipe destinations.
36858
36859  if (!dest) {
36860    // remove all.
36861    var dests = state.pipes;
36862    var len = state.pipesCount;
36863    state.pipes = null;
36864    state.pipesCount = 0;
36865    state.flowing = false;
36866
36867    for (var i = 0; i < len; i++) {
36868      dests[i].emit('unpipe', this, unpipeInfo
vendor: 8,062 bytes, lines 36868-37166
36868);
36869    }return this;
36870  }
36871
36872  // try to find the right one.
36873  var index = indexOf(state.pipes, dest);
36874  if (index === -1) return this;
36875
36876  state.pipes.splice(index, 1);
36877  state.pipesCount -= 1;
36878  if (state.pipesCount === 1) state.pipes = state.pipes[0];
36879
36880  dest.emit('unpipe', this, unpipeInfo);
36881
36882  return this;
36883};
36884
36885// set up data events if they are asked for
36886// Ensure readable listeners eventually get something
36887Readable.prototype.on = function (ev, fn) {
36888  var res = Stream.prototype.on.call(this, ev, fn);
36889
36890  if (ev === 'data') {
36891    // Start flowing on next tick if stream isn't explicitly paused
36892    if (this._readableState.flowing !== false) this.resume();
36893  } else if (ev === 'readable') {
36894    var state = this._readableState;
36895    if (!state.endEmitted && !state.readableListening) {
36896      state.readableListening = state.needReadable = true;
36897      state.emittedReadable = false;
36898      if (!state.reading) {
36899        pna.nextTick(nReadingNextTick, this);
36900      } else if (state.length) {
36901        emitReadable(this);
36902      }
36903    }
36904  }
36905
36906  return res;
36907};
36908Readable.prototype.addListener = Readable.prototype.on;
36909
36910function nReadingNextTick(self) {
36911  debug('readable nexttick read 0');
36912  self.read(0);
36913}
36914
36915// pause() and resume() are remnants of the legacy readable stream API
36916// If the user uses them, then switch into old mode.
36917Readable.prototype.resume = function () {
36918  var state = this._readableState;
36919  if (!state.flowing) {
36920    debug('resume');
36921    state.flowing = true;
36922    resume(this, state);
36923  }
36924  return this;
36925};
36926
36927function resume(stream, state) {
36928  if (!state.resumeScheduled) {
36929    state.resumeScheduled = true;
36930    pna.nextTick(resume_, stream, state);
36931  }
36932}
36933
36934function resume_(stream, state) {
36935  if (!state.reading) {
36936    debug('resume read 0');
36937    stream.read(0);
36938  }
36939
36940  state.resumeScheduled = false;
36941  state.awaitDrain = 0;
36942  stream.emit('resume');
36943  flow(stream);
36944  if (state.flowing && !state.reading) stream.read(0);
36945}
36946
36947Readable.prototype.pause = function () {
36948  debug('call pause flowing=%j', this._readableState.flowing);
36949  if (false !== this._readableState.flowing) {
36950    debug('pause');
36951    this._readableState.flowing = false;
36952    this.emit('pause');
36953  }
36954  return this;
36955};
36956
36957function flow(stream) {
36958  var state = stream._readableState;
36959  debug('flow', state.flowing);
36960  while (state.flowing && stream.read() !== null) {}
36961}
36962
36963// wrap an old-style stream as the async data source.
36964// This is *not* part of the readable stream interface.
36965// It is an ugly unfortunate mess of history.
36966Readable.prototype.wrap = function (stream) {
36967  var _this = this;
36968
36969  var state = this._readableState;
36970  var paused = false;
36971
36972  stream.on('end', function () {
36973    debug('wrapped end');
36974    if (state.decoder && !state.ended) {
36975      var chunk = state.decoder.end();
36976      if (chunk && chunk.length) _this.push(chunk);
36977    }
36978
36979    _this.push(null);
36980  });
36981
36982  stream.on('data', function (chunk) {
36983    debug('wrapped data');
36984    if (state.decoder) chunk = state.decoder.write(chunk);
36985
36986    // don't skip over falsy values in objectMode
36987    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
36988
36989    var ret = _this.push(chunk);
36990    if (!ret) {
36991      paused = true;
36992      stream.pause();
36993    }
36994  });
36995
36996  // proxy all the other methods.
36997  // important when wrapping filters and duplexes.
36998  for (var i in stream) {
36999    if (this[i] === undefined && typeof stream[i] === 'function') {
37000      this[i] = function (method) {
37001        return function () {
37002          return stream[method].apply(stream, arguments);
37003        };
37004      }(i);
37005    }
37006  }
37007
37008  // proxy certain important events.
37009  for (var n = 0; n < kProxyEvents.length; n++) {
37010    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
37011  }
37012
37013  // when we try to consume some more bytes, simply unpause the
37014  // underlying stream.
37015  this._read = function (n) {
37016    debug('wrapped _read', n);
37017    if (paused) {
37018      paused = false;
37019      stream.resume();
37020    }
37021  };
37022
37023  return this;
37024};
37025
37026Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
37027  // making it explicit this property is not enumerable
37028  // because otherwise some prototype manipulation in
37029  // userland will fail
37030  enumerable: false,
37031  get: function () {
37032    return this._readableState.highWaterMark;
37033  }
37034});
37035
37036// exposed for testing purposes only.
37037Readable._fromList = fromList;
37038
37039// Pluck off n bytes from an array of buffers.
37040// Length is the combined lengths of all the buffers in the list.
37041// This function is designed to be inlinable, so please take care when making
37042// changes to the function body.
37043function fromList(n, state) {
37044  // nothing buffered
37045  if (state.length === 0) return null;
37046
37047  var ret;
37048  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
37049    // read it all, truncate the list
37050    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
37051    state.buffer.clear();
37052  } else {
37053    // read part of list
37054    ret = fromListPartial(n, state.buffer, state.decoder);
37055  }
37056
37057  return ret;
37058}
37059
37060// Extracts only enough buffered data to satisfy the amount requested.
37061// This function is designed to be inlinable, so please take care when making
37062// changes to the function body.
37063function fromListPartial(n, list, hasStrings) {
37064  var ret;
37065  if (n < list.head.data.length) {
37066    // slice is the same for buffers and strings
37067    ret = list.head.data.slice(0, n);
37068    list.head.data = list.head.data.slice(n);
37069  } else if (n === list.head.data.length) {
37070    // first chunk is a perfect match
37071    ret = list.shift();
37072  } else {
37073    // result spans more than one buffer
37074    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
37075  }
37076  return ret;
37077}
37078
37079// Copies a specified amount of characters from the list of buffered data
37080// chunks.
37081// This function is designed to be inlinable, so please take care when making
37082// changes to the function body.
37083function copyFromBufferString(n, list) {
37084  var p = list.head;
37085  var c = 1;
37086  var ret = p.data;
37087  n -= ret.length;
37088  while (p = p.next) {
37089    var str = p.data;
37090    var nb = n > str.length ? str.length : n;
37091    if (nb === str.length) ret += str;else ret += str.slice(0, n);
37092    n -= nb;
37093    if (n === 0) {
37094      if (nb === str.length) {
37095        ++c;
37096        if (p.next) list.head = p.next;else list.head = list.tail = null;
37097      } else {
37098        list.head = p;
37099        p.data = str.slice(nb);
37100      }
37101      break;
37102    }
37103    ++c;
37104  }
37105  list.length -= c;
37106  return ret;
37107}
37108
37109// Copies a specified amount of bytes from the list of buffered data chunks.
37110// This function is designed to be inlinable, so please take care when making
37111// changes to the function body.
37112function copyFromBuffer(n, list) {
37113  var ret = Buffer.allocUnsafe(n);
37114  var p = list.head;
37115  var c = 1;
37116  p.data.copy(ret);
37117  n -= p.data.length;
37118  while (p = p.next) {
37119    var buf = p.data;
37120    var nb = n > buf.length ? buf.length : n;
37121    buf.copy(ret, ret.length - n, 0, nb);
37122    n -= nb;
37123    if (n === 0) {
37124      if (nb === buf.length) {
37125        ++c;
37126        if (p.next) list.head = p.next;else list.head = list.tail = null;
37127      } else {
37128        list.head = p;
37129        p.data = buf.slice(nb);
37130      }
37131      break;
37132    }
37133    ++c;
37134  }
37135  list.length -= c;
37136  return ret;
37137}
37138
37139function endReadable(stream) {
37140  var state = stream._readableState;
37141
37142  // If we get here before consuming all the bytes, then that is a
37143  // bug in node.  Should never happen.
37144  if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
37145
37146  if (!state.endEmitted) {
37147    state.ended = true;
37148    pna.nextTick(endReadableNT, state, stream);
37149  }
37150}
37151
37152function endReadableNT(state, stream) {
37153  // Check that we didn't get one last unshift.
37154  if (!state.endEmitted && state.length === 0) {
37155    state.endEmitted = true;
37156    stream.readable = false;
37157    stream.emit('end');
37158  }
37159}
37160
37161function indexOf(xs, x) {
37162  for (var i = 0, l = xs.length; i < l; i++) {
37163    if (xs[i] === x) return i;
37164  }
37165  return -1;
37166}
vendor: 2,430 bytes, lines 37167-37271
37167/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34), __webpack_require__(57)))
37168
37169/***/ }),
37170/* 733 */
37171/***/ (function(module, exports) {
37172
37173var toString = {}.toString;
37174
37175module.exports = Array.isArray || function (arr) {
37176  return toString.call(arr) == '[object Array]';
37177};
37178
37179
37180/***/ }),
37181/* 734 */
37182/***/ (function(module, exports, __webpack_require__) {
37183
37184module.exports = __webpack_require__(469).EventEmitter;
37185
37186
37187/***/ }),
37188/* 735 */
37189/***/ (function(module, exports, __webpack_require__) {
37190
37191"use strict";
37192
37193
37194/*<replacement>*/
37195
37196var pna = __webpack_require__(394);
37197/*</replacement>*/
37198
37199// undocumented cb() API, needed for core, not for public API
37200function destroy(err, cb) {
37201  var _this = this;
37202
37203  var readableDestroyed = this._readableState && this._readableState.destroyed;
37204  var writableDestroyed = this._writableState && this._writableState.destroyed;
37205
37206  if (readableDestroyed || writableDestroyed) {
37207    if (cb) {
37208      cb(err);
37209    } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
37210      pna.nextTick(emitErrorNT, this, err);
37211    }
37212    return this;
37213  }
37214
37215  // we set destroyed to true before firing error callbacks in order
37216  // to make it re-entrance safe in case destroy() is called within callbacks
37217
37218  if (this._readableState) {
37219    this._readableState.destroyed = true;
37220  }
37221
37222  // if this is a duplex stream mark the writable part as destroyed as well
37223  if (this._writableState) {
37224    this._writableState.destroyed = true;
37225  }
37226
37227  this._destroy(err || null, function (err) {
37228    if (!cb && err) {
37229      pna.nextTick(emitErrorNT, _this, err);
37230      if (_this._writableState) {
37231        _this._writableState.errorEmitted = true;
37232      }
37233    } else if (cb) {
37234      cb(err);
37235    }
37236  });
37237
37238  return this;
37239}
37240
37241function undestroy() {
37242  if (this._readableState) {
37243    this._readableState.destroyed = false;
37244    this._readableState.reading = false;
37245    this._readableState.ended = false;
37246    this._readableState.endEmitted = false;
37247  }
37248
37249  if (this._writableState) {
37250    this._writableState.destroyed = false;
37251    this._writableState.ended = false;
37252    this._writableState.ending = false;
37253    this._writableState.finished = false;
37254    this._writableState.errorEmitted = false;
37255  }
37256}
37257
37258function emitErrorNT(self, err) {
37259  self.emit('error', err);
37260}
37261
37262module.exports = {
37263  destroy: destroy,
37264  undestroy: undestroy
37265};
37266
37267/***/ }),
37268/* 736 */
37269/***/ (function(module, exports, __webpack_require__) {
37270
37271"use strict";
vendor: 2,205 bytes, lines 37272-37338
37272// Copyright Joyent, Inc. and other Node contributors.
37273//
37274// Permission is hereby granted, free of charge, to any person obtaining a
37275// copy of this software and associated documentation files (the
37276// "Software"), to deal in the Software without restriction, including
37277// without limitation the rights to use, copy, modify, merge, publish,
37278// distribute, sublicense, and/or sell copies of the Software, and to permit
37279// persons to whom the Software is furnished to do so, subject to the
37280// following conditions:
37281//
37282// The above copyright notice and this permission notice shall be included
37283// in all copies or substantial portions of the Software.
37284//
37285// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
37286// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37287// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
37288// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
37289// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
37290// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
37291// USE OR OTHER DEALINGS IN THE SOFTWARE.
37292
37293
37294
37295/*<replacement>*/
37296
37297var Buffer = __webpack_require__(909).Buffer;
37298/*</replacement>*/
37299
37300var isEncoding = Buffer.isEncoding || function (encoding) {
37301  encoding = '' + encoding;
37302  switch (encoding && encoding.toLowerCase()) {
37303    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
37304      return true;
37305    default:
37306      return false;
37307  }
37308};
37309
37310function _normalizeEncoding(enc) {
37311  if (!enc) return 'utf8';
37312  var retried;
37313  while (true) {
37314    switch (enc) {
37315      case 'utf8':
37316      case 'utf-8':
37317        return 'utf8';
37318      case 'ucs2':
37319      case 'ucs-2':
37320      case 'utf16le':
37321      case 'utf-16le':
37322        return 'utf16le';
37323      case 'latin1':
37324      case 'binary':
37325        return 'latin1';
37326      case 'base64':
37327      case 'ascii':
37328      case 'hex':
37329        return enc;
37330      default:
37331        if (retried) return; // undefined
37332        enc = ('' + enc).toLowerCase();
37333        retried = true;
37334    }
37335  }
37336};
37337
37338// Do not cache `Buffer.isEncoding` when checking encoding names as some
vendor: 7,342 bytes, lines 37339-37573
37339// modules monkey-patch it to support additional encodings
37340function normalizeEncoding(enc) {
37341  var nenc = _normalizeEncoding(enc);
37342  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
37343  return nenc || enc;
37344}
37345
37346// StringDecoder provides an interface for efficiently splitting a series of
37347// buffers into a series of JS strings without breaking apart multi-byte
37348// characters.
37349exports.StringDecoder = StringDecoder;
37350function StringDecoder(encoding) {
37351  this.encoding = normalizeEncoding(encoding);
37352  var nb;
37353  switch (this.encoding) {
37354    case 'utf16le':
37355      this.text = utf16Text;
37356      this.end = utf16End;
37357      nb = 4;
37358      break;
37359    case 'utf8':
37360      this.fillLast = utf8FillLast;
37361      nb = 4;
37362      break;
37363    case 'base64':
37364      this.text = base64Text;
37365      this.end = base64End;
37366      nb = 3;
37367      break;
37368    default:
37369      this.write = simpleWrite;
37370      this.end = simpleEnd;
37371      return;
37372  }
37373  this.lastNeed = 0;
37374  this.lastTotal = 0;
37375  this.lastChar = Buffer.allocUnsafe(nb);
37376}
37377
37378StringDecoder.prototype.write = function (buf) {
37379  if (buf.length === 0) return '';
37380  var r;
37381  var i;
37382  if (this.lastNeed) {
37383    r = this.fillLast(buf);
37384    if (r === undefined) return '';
37385    i = this.lastNeed;
37386    this.lastNeed = 0;
37387  } else {
37388    i = 0;
37389  }
37390  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
37391  return r || '';
37392};
37393
37394StringDecoder.prototype.end = utf8End;
37395
37396// Returns only complete characters in a Buffer
37397StringDecoder.prototype.text = utf8Text;
37398
37399// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
37400StringDecoder.prototype.fillLast = function (buf) {
37401  if (this.lastNeed <= buf.length) {
37402    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
37403    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
37404  }
37405  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
37406  this.lastNeed -= buf.length;
37407};
37408
37409// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
37410// continuation byte. If an invalid byte is detected, -2 is returned.
37411function utf8CheckByte(byte) {
37412  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
37413  return byte >> 6 === 0x02 ? -1 : -2;
37414}
37415
37416// Checks at most 3 bytes at the end of a Buffer in order to detect an
37417// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
37418// needed to complete the UTF-8 character (if applicable) are returned.
37419function utf8CheckIncomplete(self, buf, i) {
37420  var j = buf.length - 1;
37421  if (j < i) return 0;
37422  var nb = utf8CheckByte(buf[j]);
37423  if (nb >= 0) {
37424    if (nb > 0) self.lastNeed = nb - 1;
37425    return nb;
37426  }
37427  if (--j < i || nb === -2) return 0;
37428  nb = utf8CheckByte(buf[j]);
37429  if (nb >= 0) {
37430    if (nb > 0) self.lastNeed = nb - 2;
37431    return nb;
37432  }
37433  if (--j < i || nb === -2) return 0;
37434  nb = utf8CheckByte(buf[j]);
37435  if (nb >= 0) {
37436    if (nb > 0) {
37437      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
37438    }
37439    return nb;
37440  }
37441  return 0;
37442}
37443
37444// Validates as many continuation bytes for a multi-byte UTF-8 character as
37445// needed or are available. If we see a non-continuation byte where we expect
37446// one, we "replace" the validated continuation bytes we've seen so far with
37447// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
37448// behavior. The continuation byte check is included three times in the case
37449// where all of the continuation bytes for a character exist in the same buffer.
37450// It is also done this way as a slight performance increase instead of using a
37451// loop.
37452function utf8CheckExtraBytes(self, buf, p) {
37453  if ((buf[0] & 0xC0) !== 0x80) {
37454    self.lastNeed = 0;
37455    return '\ufffd';
37456  }
37457  if (self.lastNeed > 1 && buf.length > 1) {
37458    if ((buf[1] & 0xC0) !== 0x80) {
37459      self.lastNeed = 1;
37460      return '\ufffd';
37461    }
37462    if (self.lastNeed > 2 && buf.length > 2) {
37463      if ((buf[2] & 0xC0) !== 0x80) {
37464        self.lastNeed = 2;
37465        return '\ufffd';
37466      }
37467    }
37468  }
37469}
37470
37471// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
37472function utf8FillLast(buf) {
37473  var p = this.lastTotal - this.lastNeed;
37474  var r = utf8CheckExtraBytes(this, buf, p);
37475  if (r !== undefined) return r;
37476  if (this.lastNeed <= buf.length) {
37477    buf.copy(this.lastChar, p, 0, this.lastNeed);
37478    return this.lastChar.toString(this.encoding, 0, this.lastTotal);
37479  }
37480  buf.copy(this.lastChar, p, 0, buf.length);
37481  this.lastNeed -= buf.length;
37482}
37483
37484// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
37485// partial character, the character's bytes are buffered until the required
37486// number of bytes are available.
37487function utf8Text(buf, i) {
37488  var total = utf8CheckIncomplete(this, buf, i);
37489  if (!this.lastNeed) return buf.toString('utf8', i);
37490  this.lastTotal = total;
37491  var end = buf.length - (total - this.lastNeed);
37492  buf.copy(this.lastChar, 0, end);
37493  return buf.toString('utf8', i, end);
37494}
37495
37496// For UTF-8, a replacement character is added when ending on a partial
37497// character.
37498function utf8End(buf) {
37499  var r = buf && buf.length ? this.write(buf) : '';
37500  if (this.lastNeed) return r + '\ufffd';
37501  return r;
37502}
37503
37504// UTF-16LE typically needs two bytes per character, but even if we have an even
37505// number of bytes available, we need to check if we end on a leading/high
37506// surrogate. In that case, we need to wait for the next two bytes in order to
37507// decode the last character properly.
37508function utf16Text(buf, i) {
37509  if ((buf.length - i) % 2 === 0) {
37510    var r = buf.toString('utf16le', i);
37511    if (r) {
37512      var c = r.charCodeAt(r.length - 1);
37513      if (c >= 0xD800 && c <= 0xDBFF) {
37514        this.lastNeed = 2;
37515        this.lastTotal = 4;
37516        this.lastChar[0] = buf[buf.length - 2];
37517        this.lastChar[1] = buf[buf.length - 1];
37518        return r.slice(0, -1);
37519      }
37520    }
37521    return r;
37522  }
37523  this.lastNeed = 1;
37524  this.lastTotal = 2;
37525  this.lastChar[0] = buf[buf.length - 1];
37526  return buf.toString('utf16le', i, buf.length - 1);
37527}
37528
37529// For UTF-16LE we do not explicitly append special replacement characters if we
37530// end on a partial character, we simply let v8 handle that.
37531function utf16End(buf) {
37532  var r = buf && buf.length ? this.write(buf) : '';
37533  if (this.lastNeed) {
37534    var end = this.lastTotal - this.lastNeed;
37535    return r + this.lastChar.toString('utf16le', 0, end);
37536  }
37537  return r;
37538}
37539
37540function base64Text(buf, i) {
37541  var n = (buf.length - i) % 3;
37542  if (n === 0) return buf.toString('base64', i);
37543  this.lastNeed = 3 - n;
37544  this.lastTotal = 3;
37545  if (n === 1) {
37546    this.lastChar[0] = buf[buf.length - 1];
37547  } else {
37548    this.lastChar[0] = buf[buf.length - 2];
37549    this.lastChar[1] = buf[buf.length - 1];
37550  }
37551  return buf.toString('base64', i, buf.length - n);
37552}
37553
37554function base64End(buf) {
37555  var r = buf && buf.length ? this.write(buf) : '';
37556  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
37557  return r;
37558}
37559
37560// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
37561function simpleWrite(buf) {
37562  return buf.toString(this.encoding);
37563}
37564
37565function simpleEnd(buf) {
37566  return buf && buf.length ? this.write(buf) : '';
37567}
37568
37569/***/ }),
37570/* 737 */
37571/***/ (function(module, exports, __webpack_require__) {
37572
37573"use strict";
37574// Copyright Joyent, Inc. and other Node contributors.
37575//
37576// Permission is hereby granted, free of charge, to any person obtaining a
37577// copy of this software and associated documentation files (the
37578// "Software"), to deal in the Software without restriction, including
37579// without limitation the rights to use, copy, modify, merge, publish,
37580// distribute, sublicense, and/or sell copies of the Software, and to permit
37581// persons to whom the Software is furnished to do so, subject to the
37582// following conditions:
37583//
37584// The above copyright notice and this permission notice shall be included
37585// in all copies or substantial portions of the Software.
37586//
37587// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
37588// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37589// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
37590// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
37591// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
37592// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
37593// USE OR OTHER DEALINGS IN THE SOFTWARE.
37594
37595// a transform stream is a readable/writable stream where you do
37596// something with the data.  Sometimes it's called a "filter",
37597// but that's not a great name for it, since that implies a thing where
37598// some bits pass through, and others are simply ignored.  (That would
37599// be a valid example of a transform, of course.)
37600//
37601// While the output is causally related to the input, it's not a
37602// necessarily symmetric or synchronous transformation.  For example,
37603// a zlib stream might take multiple plain-text writes(), and then
37604// emit a single compressed chunk some time in the future.
37605//
37606// Here's how this works:
37607//
37608// The Transform stream has all the aspects of the readable and writable
37609// stream classes.  When you write(chunk), that calls _write(chunk,cb)
37610// internally, and returns false if there's a lot of pending writes
37611// buffered up.  When you call read(), that calls _read(n) until
37612// there's enough pending readable data buffered up.
37613//
37614// In a transform stream, the written data is placed in a buffer.  When
37615// _read(n) is called, it transforms the queued up data, calling the
37616// buffered _write cb's as it consumes chunks.  If consuming a single
37617// written chunk would result in multiple output chunks, then the first
37618// outputted bit calls the readcb, and subsequent chunks just go into
37619// the read buffer, and will cause it to emit 'readable' if necessary.
37620//
37621// This way, back-pressure is actually determined by the reading side,
37622// since _read has to be called to start processing a new chunk.  However,
37623// a pathological inflate type of transform can cause excessive buffering
37624// here.  For example, imagine a stream where every byte of input is
37625// interpreted as an integer from 0-255, and then results in that many
37626// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in
37627// 1kb of data being output.  In this case, you could write a very small
37628// amount of input, and end up with a very large amount of output.  In
37629// such a pathological inflating mechanism, there'd be no way to tell
37630// the system to stop doing the transform.  A single 4MB write could
37631// cause the system to run out of memory.
37632//
37633// However, even in such a pathological case, only a single written chunk
37634// would be consumed, and then the rest would wait (un-transformed) until
37635// the results of the previous transformed chunk were consumed.
37636
37637
37638
37639module.exports = Transform;
37640
37641var Duplex = __webpack_require__(240);
37642
37643/*<replacement>*/
37644var util = Object.create(__webpack_require__(314));
37645util.inherits = __webpack_require__(200);
37646/*</replacement>*/
37647
37648util.inherits(Transform, Duplex);
37649
37650function afterTransform(er, data) {
37651  var ts = this._transformState;
37652  ts.transforming = false;
37653
37654  var cb = ts.writecb;
37655
37656  if (!cb) {
37657    return this.emit('error', new Error('write callback called multiple times'));
37658  }
37659
37660  ts.writechunk = null;
37661  ts.writecb = null;
37662
37663  if (data != null) // single equals check for both `null` and `undefined`
37664    this.push(data);
37665
37666  cb(er);
37667
37668  var rs = this._readableState;
37669  rs.reading = false;
vendor: 4,781 bytes, lines 37670-37829
37670  if (rs.needReadable || rs.length < rs.highWaterMark) {
37671    this._read(rs.highWaterMark);
37672  }
37673}
37674
37675function Transform(options) {
37676  if (!(this instanceof Transform)) return new Transform(options);
37677
37678  Duplex.call(this, options);
37679
37680  this._transformState = {
37681    afterTransform: afterTransform.bind(this),
37682    needTransform: false,
37683    transforming: false,
37684    writecb: null,
37685    writechunk: null,
37686    writeencoding: null
37687  };
37688
37689  // start out asking for a readable event once data is transformed.
37690  this._readableState.needReadable = true;
37691
37692  // we have implemented the _read method, and done the other things
37693  // that Readable wants before the first _read call, so unset the
37694  // sync guard flag.
37695  this._readableState.sync = false;
37696
37697  if (options) {
37698    if (typeof options.transform === 'function') this._transform = options.transform;
37699
37700    if (typeof options.flush === 'function') this._flush = options.flush;
37701  }
37702
37703  // When the writable side finishes, then flush out anything remaining.
37704  this.on('prefinish', prefinish);
37705}
37706
37707function prefinish() {
37708  var _this = this;
37709
37710  if (typeof this._flush === 'function') {
37711    this._flush(function (er, data) {
37712      done(_this, er, data);
37713    });
37714  } else {
37715    done(this, null, null);
37716  }
37717}
37718
37719Transform.prototype.push = function (chunk, encoding) {
37720  this._transformState.needTransform = false;
37721  return Duplex.prototype.push.call(this, chunk, encoding);
37722};
37723
37724// This is the part where you do stuff!
37725// override this function in implementation classes.
37726// 'chunk' is an input chunk.
37727//
37728// Call `push(newChunk)` to pass along transformed output
37729// to the readable side.  You may call 'push' zero or more times.
37730//
37731// Call `cb(err)` when you are done with this chunk.  If you pass
37732// an error, then that'll put the hurt on the whole operation.  If you
37733// never call cb(), then you'll never get another chunk.
37734Transform.prototype._transform = function (chunk, encoding, cb) {
37735  throw new Error('_transform() is not implemented');
37736};
37737
37738Transform.prototype._write = function (chunk, encoding, cb) {
37739  var ts = this._transformState;
37740  ts.writecb = cb;
37741  ts.writechunk = chunk;
37742  ts.writeencoding = encoding;
37743  if (!ts.transforming) {
37744    var rs = this._readableState;
37745    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
37746  }
37747};
37748
37749// Doesn't matter what the args are here.
37750// _transform does all the work.
37751// That we got here means that the readable side wants more data.
37752Transform.prototype._read = function (n) {
37753  var ts = this._transformState;
37754
37755  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
37756    ts.transforming = true;
37757    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
37758  } else {
37759    // mark that we need a transform, so that any data that comes in
37760    // will get processed, now that we've asked for it.
37761    ts.needTransform = true;
37762  }
37763};
37764
37765Transform.prototype._destroy = function (err, cb) {
37766  var _this2 = this;
37767
37768  Duplex.prototype._destroy.call(this, err, function (err2) {
37769    cb(err2);
37770    _this2.emit('close');
37771  });
37772};
37773
37774function done(stream, er, data) {
37775  if (er) return stream.emit('error', er);
37776
37777  if (data != null) // single equals check for both `null` and `undefined`
37778    stream.push(data);
37779
37780  // if there's nothing in the write buffer, then that means
37781  // that nothing more will ever be provided
37782  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
37783
37784  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
37785
37786  return stream.push(null);
37787}
37788
37789/***/ }),
37790/* 738 */
37791/***/ (function(module, exports, __webpack_require__) {
37792
37793/* WEBPACK VAR INJECTION */(function(global) {exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)
37794
37795exports.writableStream = isFunction(global.WritableStream)
37796
37797exports.abortController = isFunction(global.AbortController)
37798
37799exports.blobConstructor = false
37800try {
37801	new Blob([new ArrayBuffer(1)])
37802	exports.blobConstructor = true
37803} catch (e) {}
37804
37805// The xhr request to example.com may violate some restrictive CSP configurations,
37806// so if we're running in a browser that supports `fetch`, avoid calling getXHR()
37807// and assume support for certain features below.
37808var xhr
37809function getXHR () {
37810	// Cache the xhr value
37811	if (xhr !== undefined) return xhr
37812
37813	if (global.XMLHttpRequest) {
37814		xhr = new global.XMLHttpRequest()
37815		// If XDomainRequest is available (ie only, where xhr might not work
37816		// cross domain), use the page location. Otherwise use example.com
37817		// Note: this doesn't actually make an http request.
37818		try {
37819			xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')
37820		} catch(e) {
37821			xhr = null
37822		}
37823	} else {
37824		// Service workers don't have XHR
37825		xhr = null
37826	}
37827	return xhr
37828}
37829
37830function checkTypeSupport (type) {
37831	var xhr = getXHR()
37832	if (!xhr) return false
37833	try {
37834		xhr.responseType = type
37835		return xhr.responseType === type
37836	} catch (e) {}
37837	return false
37838}
37839
37840// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.
37841// Safari 7.1 appears to have fixed this bug.
37842var haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'
37843var haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)
37844
37845// If fetch is supported, then arraybuffer will be supported too. Skip calling
37846// checkTypeSupport(), since that calls getXHR().
37847exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))
37848
37849// These next two tests unavoidably show warnings in Chrome. Since fetch will always
37850// be used if it's available, just return false for these to avoid the warnings.
37851exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')
37852exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&
37853	checkTypeSupport('moz-chunked-arraybuffer')
37854
37855// If fetch is supported, then overrideMimeType will be supported too. Skip calling
37856// getXHR().
37857exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)
37858
37859exports.vbArray = isFunction(global.VBArray)
37860
37861function isFunction (value) {
37862	return typeof value === 'function'
37863}
37864
37865xhr = null // Help gc
37866
37867/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
37868
37869/***/ }),
37870/* 739 */
37871/***/ (function(module, exports, __webpack_require__) {
37872
37873/* WEBPACK VAR INJECTION */(function(process, Buffer, global) {var capability = __webpack_require__(738)
37874var inherits = __webpack_require__(200)
37875var stream = __webpack_require__(312)
37876
37877var rStates = exports.readyStates = {
37878	UNSENT: 0,
37879	OPENED: 1,
37880	HEADERS_RECEIVED: 2,
37881	LOADING: 3,
37882	DONE: 4
37883}
37884
37885var IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {
37886	var self = this
37887	stream.Readable.call(self)
37888
37889	self._mode = mode
37890	self.headers = {}
37891	self.rawHeaders = []
37892	self.trailers = {}
37893	self.rawTrailers = []
37894
37895	// Fake the 'close' event, but only once 'end' fires
37896	self.on('end', function () {
37897		// The nextTick is necessary to prevent the 'request' module from causing an infinite loop
37898		process.nextTick(function () {
37899			self.emit('close')
37900		})
37901	})
37902
37903	if (mode === 'fetch') {
37904		self._fetchResponse = response
37905
37906		self.url = response.url
37907		self.statusCode = response.status
37908		self.statusMessage = response.statusText
37909		
37910		response.headers.forEach(function (header, key){
37911			self.headers[key.toLowerCase()] = header
37912			self.rawHeaders.push(key, header)
37913		})
37914
37915		if (capability.writableStream) {
37916			var writable = new WritableStream({
37917				write: function (chunk) {
37918					return new Promise(function (resolve, reject) {
37919						if (self._destroyed) {
37920							reject()
37921						} else if(self.push(new Buffer(chunk))) {
37922							resolve()
37923						} else {
37924							self._resumeFetch = resolve
37925						}
37926					})
37927				},
37928				close: function () {
37929					global.clearTimeout(fetchTimer)
37930					if (!self._destroyed)
37931						self.push(null)
37932				},
37933				abort: function (err) {
37934					if (!self._destroyed)
37935						self.emit('error', err)
37936				}
37937			})
37938
37939			try {
37940				response.body.pipeTo(writable).catch(function (err) {
37941					global.clearTimeout(fetchTimer)
37942					if (!self._destroyed)
37943						self.emit('error', err)
37944				})
37945				return
37946			} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this
37947		}
37948		// fallback for when writableStream or pipeTo aren't available
37949		var reader = response.body.getReader()
37950		function read () {
37951			reader.read().then(function (result) {
37952				if (self._destroyed)
37953					return
37954				if (result.done) {
37955					global.clearTimeout(fetchTimer)
37956					self.push(null)
37957					return
37958				}
37959				self.push(new Buffer(result.value))
37960				read()
37961			}).catch(function (err) {
37962				global.clearTimeout(fetchTimer)
37963				if (!self._destroyed)
37964					self.emit('error', err)
37965			})
37966		}
37967		read()
37968	} else {
37969		self._xhr = xhr
37970		self._pos = 0
37971
37972		self.url = xhr.responseURL
37973		self.statusCode = xhr.status
37974		self.statusMessage = xhr.statusText
37975		var headers = xhr.getAllResponseHeaders().split(/\r?\n/)
37976		headers.forEach(function (header) {
37977			var matches = header.match(/^([^:]+):\s*(.*)/)
37978			if (matches) {
37979				var key = matches[1].toLowerCase()
37980				if (key === 'set-cookie') {
37981					if (self.headers[key] === undefined) {
37982						self.headers[key] = []
37983					}
37984					self.headers[key].push(matches[2])
37985				} else if (self.headers[key] !== undefined) {
37986					self.headers[key] += ', ' + matches[2]
37987				} else {
37988					self.headers[key] = matches[2]
37989				}
37990				self.rawHeaders.push(matches[1], matches[2])
37991			}
37992		})
37993
37994		self._charset = 'x-user-defined'
37995		if (!capability.overrideMimeType) {
37996			var mimeType = self.rawHeaders['mime-type']
37997			if (mimeType) {
37998				var charsetMatch = mimeType.match(/;\s*charset=([^;])(;|$)/)
37999				if (charsetMatch) {
38000					self._charset = charsetMatch[1].toLowerCase()
38001				}
38002			}
38003			if (!self._charset)
38004				self._charset = 'utf-8' // best guess
38005		}
38006	}
38007}
38008
38009inherits(IncomingMessage, stream.Readable)
38010
38011IncomingMessage.prototype._read = function () {
38012	var self = this
38013
38014	var resolve = self._resumeFetch
38015	if (resolve) {
38016		self._resumeFetch = null
38017		resolve()
38018	}
38019}
38020
38021IncomingMessage.prototype._onXHRProgress = function () {
38022	var self = this
38023
38024	var xhr = self._xhr
38025
38026	var response = null
38027	switch (self._mode) {
38028		case 'text:vbarray': // For IE9
38029			if (xhr.readyState !== rStates.DONE)
38030				break
38031			try {
38032				// This fails in IE8
38033				response = new global.VBArray(xhr.responseBody).toArray()
38034			} catch (e) {}
38035			if (response !== null) {
38036				self.push(new Buffer(response))
38037				break
38038			}
38039			// Falls through in IE8	
38040		case 'text':
38041			try { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4
38042				response = xhr.responseText
38043			} catch (e) {
38044				self._mode = 'text:vbarray'
38045				break
38046			}
38047			if (response.length > self._pos) {
38048				var newData = response.substr(self._pos)
38049				if (self._charset === 'x-user-defined') {
38050					var buffer = new Buffer(newData.length)
38051					for (var i = 0; i < newData.length; i++)
38052						buffer[i] = newData.charCodeAt(i) & 0xff
38053
38054					self.push(buffer)
38055				} else {
38056					self.push(newData, self._charset)
38057				}
38058				self._pos = response.length
38059			}
38060			break
38061		case 'arraybuffer':
38062			if (xhr.readyState !== rStates.DONE || !xhr.response)
38063				break
38064			response = xhr.response
38065			self.push(new Buffer(new Uint8Array(response)))
38066			break
38067		case 'moz-chunked-arraybuffer': // take whole
38068			response = xhr.response
38069			if (xhr.readyState !== rStates.LOADING || !response)
38070				break
38071			self.push(new Buffer(new Uint8Array(response)))
38072			break
38073		case 'ms-stream':
38074			response = xhr.response
38075			if (xhr.readyState !== rStates.LOADING)
38076				break
38077			var reader = new global.MSStreamReader()
38078			reader.onprogress = function () {
38079				if (reader.result.byteLength > self._pos) {
38080					self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))
38081					self._pos = reader.result.byteLength
38082				}
38083			}
38084			reader.onload = function () {
38085				self.push(null)
38086			}
38087			// reader.onerror = ??? // TODO: this
38088			reader.readAsArrayBuffer(response)
38089			break
38090	}
38091
38092	// The ms-stream case handles end separately in reader.onload()
38093	if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {
38094		self.push(null)
38095	}
38096}
38097
38098/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(57), __webpack_require__(113).Buffer, __webpack_require__(34)))
38099
38100/***/ }),
38101/* 740 */
38102/***/ (function(module, exports, __webpack_require__) {
38103
38104"use strict";
38105/* WEBPACK VAR INJECTION */(function(global) {
38106
38107var objectAssign = __webpack_require__(930);
38108
38109// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js
38110// original notice:
38111
38112/*!
38113 * The buffer module from node.js, for the browser.
38114 *
38115 * @author   Feross Aboukhadijeh <[email protected]> <http://feross.org>
38116 * @license  MIT
38117 */
38118function compare(a, b) {
38119  if (a === b) {
38120    return 0;
38121  }
38122
38123  var x = a.length;
38124  var y = b.length;
38125
38126  for (var i = 0, len = Math.min(x, y); i < len; ++i) {
38127    if (a[i] !== b[i]) {
38128      x = a[i];
38129      y = b[i];
38130      break;
38131    }
38132  }
38133
38134  if (x < y) {
38135    return -1;
38136  }
38137  if (y < x) {
38138    return 1;
38139  }
38140  return 0;
38141}
38142function isBuffer(b) {
38143  if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
38144    return global.Buffer.isBuffer(b);
38145  }
38146  return !!(b != null && b._isBuffer);
38147}
38148
38149// based on node assert, original notice:
38150// NB: The URL to the CommonJS spec is kept just for tradition.
38151//     node-assert has evolved a lot since then, both in API and behavior.
38152
38153// http://wiki.commonjs.org/wiki/Unit_Testing/1.0
38154//
38155// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
38156//
38157// Originally from narwhal.js (http://narwhaljs.org)
38158// Copyright (c) 2009 Thomas Robinson <280north.com>
38159//
38160// Permission is hereby granted, free of charge, to any person obtaining a copy
38161// of this software and associated documentation files (the 'Software'), to
38162// deal in the Software without restriction, including without limitation the
38163// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
38164// sell copies of the Software, and to permit persons to whom the Software is
38165// furnished to do so, subject to the following conditions:
38166//
38167// The above copyright notice and this permission notice shall be included in
38168// all copies or substantial portions of the Software.
38169//
38170// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
38171// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38172// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
38173// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
38174// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
38175// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
38176
38177var util = __webpack_require__(311);
38178var hasOwn = Object.prototype.hasOwnProperty;
38179var pSlice = Array.prototype.slice;
38180var functionsHaveNames = (function () {
38181  return function foo() {}.name === 'foo';
38182}());
38183function pToString (obj) {
38184  return Object.prototype.toString.call(obj);
38185}
38186function isView(arrbuf) {
38187  if (isBuffer(arrbuf)) {
38188    return false;
vendor: 13,065 bytes, lines 38189-38598
38189  }
38190  if (typeof global.ArrayBuffer !== 'function') {
38191    return false;
38192  }
38193  if (typeof ArrayBuffer.isView === 'function') {
38194    return ArrayBuffer.isView(arrbuf);
38195  }
38196  if (!arrbuf) {
38197    return false;
38198  }
38199  if (arrbuf instanceof DataView) {
38200    return true;
38201  }
38202  if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
38203    return true;
38204  }
38205  return false;
38206}
38207// 1. The assert module provides functions that throw
38208// AssertionError's when particular conditions are not met. The
38209// assert module must conform to the following interface.
38210
38211var assert = module.exports = ok;
38212
38213// 2. The AssertionError is defined in assert.
38214// new assert.AssertionError({ message: message,
38215//                             actual: actual,
38216//                             expected: expected })
38217
38218var regex = /\s*function\s+([^\(\s]*)\s*/;
38219// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
38220function getName(func) {
38221  if (!util.isFunction(func)) {
38222    return;
38223  }
38224  if (functionsHaveNames) {
38225    return func.name;
38226  }
38227  var str = func.toString();
38228  var match = str.match(regex);
38229  return match && match[1];
38230}
38231assert.AssertionError = function AssertionError(options) {
38232  this.name = 'AssertionError';
38233  this.actual = options.actual;
38234  this.expected = options.expected;
38235  this.operator = options.operator;
38236  if (options.message) {
38237    this.message = options.message;
38238    this.generatedMessage = false;
38239  } else {
38240    this.message = getMessage(this);
38241    this.generatedMessage = true;
38242  }
38243  var stackStartFunction = options.stackStartFunction || fail;
38244  if (Error.captureStackTrace) {
38245    Error.captureStackTrace(this, stackStartFunction);
38246  } else {
38247    // non v8 browsers so we can have a stacktrace
38248    var err = new Error();
38249    if (err.stack) {
38250      var out = err.stack;
38251
38252      // try to strip useless frames
38253      var fn_name = getName(stackStartFunction);
38254      var idx = out.indexOf('\n' + fn_name);
38255      if (idx >= 0) {
38256        // once we have located the function frame
38257        // we need to strip out everything before it (and its line)
38258        var next_line = out.indexOf('\n', idx + 1);
38259        out = out.substring(next_line + 1);
38260      }
38261
38262      this.stack = out;
38263    }
38264  }
38265};
38266
38267// assert.AssertionError instanceof Error
38268util.inherits(assert.AssertionError, Error);
38269
38270function truncate(s, n) {
38271  if (typeof s === 'string') {
38272    return s.length < n ? s : s.slice(0, n);
38273  } else {
38274    return s;
38275  }
38276}
38277function inspect(something) {
38278  if (functionsHaveNames || !util.isFunction(something)) {
38279    return util.inspect(something);
38280  }
38281  var rawname = getName(something);
38282  var name = rawname ? ': ' + rawname : '';
38283  return '[Function' +  name + ']';
38284}
38285function getMessage(self) {
38286  return truncate(inspect(self.actual), 128) + ' ' +
38287         self.operator + ' ' +
38288         truncate(inspect(self.expected), 128);
38289}
38290
38291// At present only the three keys mentioned above are used and
38292// understood by the spec. Implementations or sub modules can pass
38293// other keys to the AssertionError's constructor - they will be
38294// ignored.
38295
38296// 3. All of the following functions must throw an AssertionError
38297// when a corresponding condition is not met, with a message that
38298// may be undefined if not provided.  All assertion methods provide
38299// both the actual and expected values to the assertion error for
38300// display purposes.
38301
38302function fail(actual, expected, message, operator, stackStartFunction) {
38303  throw new assert.AssertionError({
38304    message: message,
38305    actual: actual,
38306    expected: expected,
38307    operator: operator,
38308    stackStartFunction: stackStartFunction
38309  });
38310}
38311
38312// EXTENSION! allows for well behaved errors defined elsewhere.
38313assert.fail = fail;
38314
38315// 4. Pure assertion tests whether a value is truthy, as determined
38316// by !!guard.
38317// assert.ok(guard, message_opt);
38318// This statement is equivalent to assert.equal(true, !!guard,
38319// message_opt);. To test strictly for the value true, use
38320// assert.strictEqual(true, guard, message_opt);.
38321
38322function ok(value, message) {
38323  if (!value) fail(value, true, message, '==', assert.ok);
38324}
38325assert.ok = ok;
38326
38327// 5. The equality assertion tests shallow, coercive equality with
38328// ==.
38329// assert.equal(actual, expected, message_opt);
38330
38331assert.equal = function equal(actual, expected, message) {
38332  if (actual != expected) fail(actual, expected, message, '==', assert.equal);
38333};
38334
38335// 6. The non-equality assertion tests for whether two objects are not equal
38336// with != assert.notEqual(actual, expected, message_opt);
38337
38338assert.notEqual = function notEqual(actual, expected, message) {
38339  if (actual == expected) {
38340    fail(actual, expected, message, '!=', assert.notEqual);
38341  }
38342};
38343
38344// 7. The equivalence assertion tests a deep equality relation.
38345// assert.deepEqual(actual, expected, message_opt);
38346
38347assert.deepEqual = function deepEqual(actual, expected, message) {
38348  if (!_deepEqual(actual, expected, false)) {
38349    fail(actual, expected, message, 'deepEqual', assert.deepEqual);
38350  }
38351};
38352
38353assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
38354  if (!_deepEqual(actual, expected, true)) {
38355    fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
38356  }
38357};
38358
38359function _deepEqual(actual, expected, strict, memos) {
38360  // 7.1. All identical values are equivalent, as determined by ===.
38361  if (actual === expected) {
38362    return true;
38363  } else if (isBuffer(actual) && isBuffer(expected)) {
38364    return compare(actual, expected) === 0;
38365
38366  // 7.2. If the expected value is a Date object, the actual value is
38367  // equivalent if it is also a Date object that refers to the same time.
38368  } else if (util.isDate(actual) && util.isDate(expected)) {
38369    return actual.getTime() === expected.getTime();
38370
38371  // 7.3 If the expected value is a RegExp object, the actual value is
38372  // equivalent if it is also a RegExp object with the same source and
38373  // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
38374  } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
38375    return actual.source === expected.source &&
38376           actual.global === expected.global &&
38377           actual.multiline === expected.multiline &&
38378           actual.lastIndex === expected.lastIndex &&
38379           actual.ignoreCase === expected.ignoreCase;
38380
38381  // 7.4. Other pairs that do not both pass typeof value == 'object',
38382  // equivalence is determined by ==.
38383  } else if ((actual === null || typeof actual !== 'object') &&
38384             (expected === null || typeof expected !== 'object')) {
38385    return strict ? actual === expected : actual == expected;
38386
38387  // If both values are instances of typed arrays, wrap their underlying
38388  // ArrayBuffers in a Buffer each to increase performance
38389  // This optimization requires the arrays to have the same type as checked by
38390  // Object.prototype.toString (aka pToString). Never perform binary
38391  // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their
38392  // bit patterns are not identical.
38393  } else if (isView(actual) && isView(expected) &&
38394             pToString(actual) === pToString(expected) &&
38395             !(actual instanceof Float32Array ||
38396               actual instanceof Float64Array)) {
38397    return compare(new Uint8Array(actual.buffer),
38398                   new Uint8Array(expected.buffer)) === 0;
38399
38400  // 7.5 For all other Object pairs, including Array objects, equivalence is
38401  // determined by having the same number of owned properties (as verified
38402  // with Object.prototype.hasOwnProperty.call), the same set of keys
38403  // (although not necessarily the same order), equivalent values for every
38404  // corresponding key, and an identical 'prototype' property. Note: this
38405  // accounts for both named and indexed properties on Arrays.
38406  } else if (isBuffer(actual) !== isBuffer(expected)) {
38407    return false;
38408  } else {
38409    memos = memos || {actual: [], expected: []};
38410
38411    var actualIndex = memos.actual.indexOf(actual);
38412    if (actualIndex !== -1) {
38413      if (actualIndex === memos.expected.indexOf(expected)) {
38414        return true;
38415      }
38416    }
38417
38418    memos.actual.push(actual);
38419    memos.expected.push(expected);
38420
38421    return objEquiv(actual, expected, strict, memos);
38422  }
38423}
38424
38425function isArguments(object) {
38426  return Object.prototype.toString.call(object) == '[object Arguments]';
38427}
38428
38429function objEquiv(a, b, strict, actualVisitedObjects) {
38430  if (a === null || a === undefined || b === null || b === undefined)
38431    return false;
38432  // if one is a primitive, the other must be same
38433  if (util.isPrimitive(a) || util.isPrimitive(b))
38434    return a === b;
38435  if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
38436    return false;
38437  var aIsArgs = isArguments(a);
38438  var bIsArgs = isArguments(b);
38439  if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
38440    return false;
38441  if (aIsArgs) {
38442    a = pSlice.call(a);
38443    b = pSlice.call(b);
38444    return _deepEqual(a, b, strict);
38445  }
38446  var ka = objectKeys(a);
38447  var kb = objectKeys(b);
38448  var key, i;
38449  // having the same number of owned properties (keys incorporates
38450  // hasOwnProperty)
38451  if (ka.length !== kb.length)
38452    return false;
38453  //the same set of keys (although not necessarily the same order),
38454  ka.sort();
38455  kb.sort();
38456  //~~~cheap key test
38457  for (i = ka.length - 1; i >= 0; i--) {
38458    if (ka[i] !== kb[i])
38459      return false;
38460  }
38461  //equivalent values for every corresponding key, and
38462  //~~~possibly expensive deep test
38463  for (i = ka.length - 1; i >= 0; i--) {
38464    key = ka[i];
38465    if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
38466      return false;
38467  }
38468  return true;
38469}
38470
38471// 8. The non-equivalence assertion tests for any deep inequality.
38472// assert.notDeepEqual(actual, expected, message_opt);
38473
38474assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
38475  if (_deepEqual(actual, expected, false)) {
38476    fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
38477  }
38478};
38479
38480assert.notDeepStrictEqual = notDeepStrictEqual;
38481function notDeepStrictEqual(actual, expected, message) {
38482  if (_deepEqual(actual, expected, true)) {
38483    fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
38484  }
38485}
38486
38487
38488// 9. The strict equality assertion tests strict equality, as determined by ===.
38489// assert.strictEqual(actual, expected, message_opt);
38490
38491assert.strictEqual = function strictEqual(actual, expected, message) {
38492  if (actual !== expected) {
38493    fail(actual, expected, message, '===', assert.strictEqual);
38494  }
38495};
38496
38497// 10. The strict non-equality assertion tests for strict inequality, as
38498// determined by !==.  assert.notStrictEqual(actual, expected, message_opt);
38499
38500assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
38501  if (actual === expected) {
38502    fail(actual, expected, message, '!==', assert.notStrictEqual);
38503  }
38504};
38505
38506function expectedException(actual, expected) {
38507  if (!actual || !expected) {
38508    return false;
38509  }
38510
38511  if (Object.prototype.toString.call(expected) == '[object RegExp]') {
38512    return expected.test(actual);
38513  }
38514
38515  try {
38516    if (actual instanceof expected) {
38517      return true;
38518    }
38519  } catch (e) {
38520    // Ignore.  The instanceof check doesn't work for arrow functions.
38521  }
38522
38523  if (Error.isPrototypeOf(expected)) {
38524    return false;
38525  }
38526
38527  return expected.call({}, actual) === true;
38528}
38529
38530function _tryBlock(block) {
38531  var error;
38532  try {
38533    block();
38534  } catch (e) {
38535    error = e;
38536  }
38537  return error;
38538}
38539
38540function _throws(shouldThrow, block, expected, message) {
38541  var actual;
38542
38543  if (typeof block !== 'function') {
38544    throw new TypeError('"block" argument must be a function');
38545  }
38546
38547  if (typeof expected === 'string') {
38548    message = expected;
38549    expected = null;
38550  }
38551
38552  actual = _tryBlock(block);
38553
38554  message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
38555            (message ? ' ' + message : '.');
38556
38557  if (shouldThrow && !actual) {
38558    fail(actual, expected, 'Missing expected exception' + message);
38559  }
38560
38561  var userProvidedMessage = typeof message === 'string';
38562  var isUnwantedException = !shouldThrow && util.isError(actual);
38563  var isUnexpectedException = !shouldThrow && actual && !expected;
38564
38565  if ((isUnwantedException &&
38566      userProvidedMessage &&
38567      expectedException(actual, expected)) ||
38568      isUnexpectedException) {
38569    fail(actual, expected, 'Got unwanted exception' + message);
38570  }
38571
38572  if ((shouldThrow && actual && expected &&
38573      !expectedException(actual, expected)) || (!shouldThrow && actual)) {
38574    throw actual;
38575  }
38576}
38577
38578// 11. Expected to throw an error:
38579// assert.throws(block, Error_opt, message_opt);
38580
38581assert.throws = function(block, /*optional*/error, /*optional*/message) {
38582  _throws(true, block, error, message);
38583};
38584
38585// EXTENSION! This is annoying to write outside this module.
38586assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
38587  _throws(false, block, error, message);
38588};
38589
38590assert.ifError = function(err) { if (err) throw err; };
38591
38592// Expose a strict only variant of assert
38593function strict(value, message) {
38594  if (!value) fail(value, true, message, '==', strict);
38595}
38596assert.strict = objectAssign(strict, assert, {
38597  equal: assert.strictEqual,
38598  deepEqual: assert.deepStrictEqual,
38599  notEqual: assert.notStrictEqual,
38600  notDeepEqual: assert.notDeepStrictEqual
38601});
38602assert.strict.strict = assert.strict;
38603
38604var objectKeys = Object.keys || function (obj) {
38605  var keys = [];
38606  for (var key in obj) {
38607    if (hasOwn.call(obj, key)) keys.push(key);
38608  }
38609  return keys;
38610};
38611
38612/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
38613
38614/***/ }),
38615/* 741 */
38616/***/ (function(module, exports, __webpack_require__) {
38617
38618"use strict";
38619
38620
38621// Note: adler32 takes 12% for level 0 and 2% for level 6.
38622// It isn't worth it to make additional optimizations as in original.
38623// Small size is preferable.
38624
38625// (C) 1995-2013 Jean-loup Gailly and Mark Adler
38626// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
38627//
38628// This software is provided 'as-is', without any express or implied
38629// warranty. In no event will the authors be held liable for any damages
38630// arising from the use of this software.
38631//
38632// Permission is granted to anyone to use this software for any purpose,
38633// including commercial applications, and to alter it and redistribute it
38634// freely, subject to the following restrictions:
38635//
38636// 1. The origin of this software must not be misrepresented; you must not
38637//   claim that you wrote the original software. If you use this software
38638//   in a product, an acknowledgment in the product documentation would be
38639//   appreciated but is not required.
38640// 2. Altered source versions must be plainly marked as such, and must not be
38641//   misrepresented as being the original software.
38642// 3. This notice may not be removed or altered from any source distribution.
38643
38644function adler32(adler, buf, len, pos) {
38645  var s1 = (adler & 0xffff) |0,
38646      s2 = ((adler >>> 16) & 0xffff) |0,
38647      n = 0;
38648
38649  while (len !== 0) {
38650    // Set limit ~ twice less than 5552, to keep
38651    // s2 in 31-bits, because we force signed ints.
38652    // in other case %= will fail.
38653    n = len > 2000 ? 2000 : len;
38654    len -= n;
38655
38656    do {
38657      s1 = (s1 + buf[pos++]) |0;
38658      s2 = (s2 + s1) |0;
38659    } while (--n);
38660
38661    s1 %= 65521;
38662    s2 %= 65521;
38663  }
38664
38665  return (s1 | (s2 << 16)) |0;
38666}
38667
38668
38669module.exports = adler32;
38670
38671
38672/***/ }),
38673/* 742 */
38674/***/ (function(module, exports, __webpack_require__) {
38675
38676"use strict";
38677
38678
38679// Note: we can't get significant speed boost here.
38680// So write code to minimize size - no pregenerated tables
38681// and array tools dependencies.
38682
38683// (C) 1995-2013 Jean-loup Gailly and Mark Adler
38684// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
38685//
38686// This software is provided 'as-is', without any express or implied
38687// warranty. In no event will the authors be held liable for any damages
38688// arising from the use of this software.
38689//
38690// Permission is granted to anyone to use this software for any purpose,
38691// including commercial applications, and to alter it and redistribute it
38692// freely, subject to the following restrictions:
38693//
38694// 1. The origin of this software must not be misrepresented; you must not
38695//   claim that you wrote the original software. If you use this software
38696//   in a product, an acknowledgment in the product documentation would be
38697//   appreciated but is not required.
38698// 2. Altered source versions must be plainly marked as such, and must not be
38699//   misrepresented as being the original software.
38700// 3. This notice may not be removed or altered from any source distribution.
38701
38702// Use ordinary array, since untyped makes no boost here
38703function makeTable() {
38704  var c, table = [];
38705
38706  for (var n = 0; n < 256; n++) {
38707    c = n;
38708    for (var k = 0; k < 8; k++) {
38709      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
38710    }
38711    table[n] = c;
38712  }
38713
38714  return table;
38715}
38716
38717// Create table on load. Just 255 signed longs. Not a problem.
38718var crcTable = makeTable();
38719
38720
38721function crc32(crc, buf, len, pos) {
38722  var t = crcTable,
38723      end = pos + len;
38724
38725  crc ^= -1;
38726
38727  for (var i = pos; i < end; i++) {
38728    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];
38729  }
38730
38731  return (crc ^ (-1)); // >>> 0;
38732}
38733
38734
38735module.exports = crc32;
38736
38737
38738/***/ }),
38739/* 743 */,
38740/* 744 */,
38741/* 745 */,
38742/* 746 */,
38743/* 747 */,
38744/* 748 */,
38745/* 749 */,
38746/* 750 */,
38747/* 751 */
38748/***/ (function(module, __webpack_exports__, __webpack_require__) {
38749
38750"use strict";
38751/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useVolume; });
38752/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
38753/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
38754/* harmony import */ var _APIManager_useAPI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44);
38755/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);
38756/* harmony import */ var _APIManager_APIManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32);
38757/* harmony import */ var _EventBus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(152);
38758
38759
38760
38761
38762
38763var useVolume = function useVolume() {
38764  var _useAPI = Object(_APIManager_useAPI__WEBPACK_IMPORTED_MODULE_1__[/* useAPI */ "a"])(),
38765      _useAPI2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useAPI, 2),
38766      state = _useAPI2[0],
38767      dispatch = _useAPI2[1];
38768
38769  var _useEventBus = Object(_EventBus__WEBPACK_IMPORTED_MODULE_4__[/* useEventBus */ "b"])(),
38770      emit = _useEventBus.emit,
38771      emitter = _useEventBus.emitter;
38772
38773  var volume = Object(_APIManager_APIManager__WEBPACK_IMPORTED_MODULE_3__[/* getVolume */ "j"])(state.cookie);
38774  var setVolume = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_2__[/* useCallback */ "a"])(function (vol) {
38775    emit("setvolume", vol);
38776    dispatch({
38777      type: "SET_VOLUME",
38778      payload: vol
38779    });
38780  }, [dispatch, emit]);
38781  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_2__[/* useEffect */ "d"])(function () {
38782    if (!emitter) {
38783      return;
38784    }
38785
38786    emitter.on("requestvolume", setVolume);
38787    return function () {
38788      return emitter.off("requestvolume", setVolume);
38789    };
38790  }, [emit, emitter, setVolume, volume]);
38791  return [volume, setVolume];
38792};
38793
38794/***/ }),
38795/* 752 */
38796/***/ (function(module, __webpack_exports__, __webpack_require__) {
38797
38798"use strict";
38799/* harmony import */ var _SearchHistory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(431);
38800/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _SearchHistory__WEBPACK_IMPORTED_MODULE_0__["a"]; });
38801
38802
38803
38804/***/ }),
38805/* 753 */
38806/***/ (function(module, __webpack_exports__, __webpack_require__) {
38807
38808"use strict";
38809/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useIdleTimeout; });
38810/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
38811
38812var useIdleTimeout = function useIdleTimeout(callback) {
38813  var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;
38814  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useEffect */ "d"])(function () {
38815    // Listen to user activity
38816    var timeoutId;
38817
38818    var resetTimer = function resetTimer() {
38819      window.clearTimeout(timeoutId);
38820      timeoutId = window.setTimeout(function () {
38821        callback();
38822      }, timeout * 1000);
38823    };
38824
38825    document.addEventListener("mousemove", resetTimer, false);
38826    document.addEventListener("mousedown", resetTimer, false);
38827    document.addEventListener("wheel", resetTimer, false);
38828    document.addEventListener("keyup", resetTimer, false);
38829    document.addEventListener("touchstart", resetTimer, false);
38830    document.addEventListener("touchmove", resetTimer, false); // Initial timer
38831
38832    resetTimer();
38833    return function () {
38834      document.removeEventListener("mousemove", resetTimer, false);
38835      document.removeEventListener("mousedown", resetTimer, false);
38836      document.removeEventListener("wheel", resetTimer, false);
38837      document.removeEventListener("keyup", resetTimer, false);
38838      document.removeEventListener("touchstart", resetTimer, false);
38839      document.removeEventListener("touchmove", resetTimer, false);
38840      window.clearTimeout(timeoutId);
38841    };
38842  }, [callback, timeout]);
38843};
38844
38845/***/ }),
38846/* 754 */
38847/***/ (function(module, __webpack_exports__, __webpack_require__) {
38848
38849"use strict";
38850/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(319);
38851/* harmony import */ var _getFetch_cjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(405);
38852/* harmony import */ var _getFetch_cjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_getFetch_cjs__WEBPACK_IMPORTED_MODULE_1__);
38853function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
38854function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38855function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
38856function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
38857function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
38858function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
38859
38860
38861var fetchApi;
38862if (typeof fetch === 'function') {
38863  if (typeof global !== 'undefined' && global.fetch) {
38864    fetchApi = global.fetch;
38865  } else if (typeof window !== 'undefined' && window.fetch) {
38866    fetchApi = window.fetch;
38867  } else {
38868    fetchApi = fetch;
38869  }
38870}
38871var XmlHttpRequestApi;
38872if (Object(_utils_js__WEBPACK_IMPORTED_MODULE_0__[/* hasXMLHttpRequest */ "a"])()) {
38873  if (typeof global !== 'undefined' && global.XMLHttpRequest) {
38874    XmlHttpRequestApi = global.XMLHttpRequest;
38875  } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {
38876    XmlHttpRequestApi = window.XMLHttpRequest;
38877  }
38878}
38879var ActiveXObjectApi;
38880if (typeof ActiveXObject === 'function') {
38881  if (typeof global !== 'undefined' && global.ActiveXObject) {
38882    ActiveXObjectApi = global.ActiveXObject;
38883  } else if (typeof window !== 'undefined' && window.ActiveXObject) {
38884    ActiveXObjectApi = window.ActiveXObject;
38885  }
38886}
38887if (!fetchApi && _getFetch_cjs__WEBPACK_IMPORTED_MODULE_1__ && !XmlHttpRequestApi && !Active
38887XObjectApi) fetchApi = _getFetch_cjs__WEBPACK_IMPORTED_MODULE_1___default.a || _getFetch_cjs__WEBPACK_IMPORTED_MODULE_1__;
38888if (typeof fetchApi !== 'function') fetchApi = undefined;
38889var addQueryString = function addQueryString(url, params) {
38890  if (params && _typeof(params) === 'object') {
38891    var queryString = '';
38892    for (var paramName in params) {
38893      queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);
38894    }
38895    if (!queryString) return url;
38896    url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);
38897  }
38898  return url;
38899};
38900var fetchIt = function fetchIt(url, fetchOptions, callback) {
38901  var resolver = function resolver(response) {
38902    if (!response.ok) return callback(response.statusText || 'Error', {
38903      status: response.status
38904    });
38905    response.text().then(function (data) {
38906      callback(null, {
38907        status: response.status,
38908        data: data
38909      });
38910    }).catch(callback);
38911  };
38912  if (typeof fetch === 'function') {
38913    fetch(url, fetchOptions).then(resolver).catch(callback);
38914  } else {
38915    fetchApi(url, fetchOptions).then(resolver).catch(callback);
38916  }
38917};
38918var omitFetchOptions = false;
38919var requestWithFetch = function requestWithFetch(options, url, payload, callback) {
38920  if (options.queryStringParams) {
38921    url = addQueryString(url, options.queryStringParams);
38922  }
38923  var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);
38924  if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {
38925    headers['User-Agent'] = "i18next-http-backend (node/".concat(global.process.version, "; ").concat(global.process.platform, " ").concat(global.process.arch, ")");
38926  }
38927  if (payload) headers['Content-Type'] = 'application/json';
38928  var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;
38929  var fetchOptions = _objectSpread({
38930    method: payload ? 'POST' : 'GET',
38931    body: payload ? options.stringify(payload) : undefined,
38932    headers: headers
38933  }, omitFetchOptions ? {} : reqOptions);
38934  try {
38935    fetchIt(url, fetchOptions, callback);
38936  } catch (e) {
38937    if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {
38938      return callback(e);
38939    }
38940    try {
38941      Object.keys(reqOptions).forEach(function (opt) {
38942        delete fetchOptions[opt];
38943      });
38944      fetchIt(url, fetchOptions, callback);
38945      omitFetchOptions = true;
38946    } catch (err) {
38947      callback(err);
38948    }
38949  }
38950};
38951var requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {
38952  if (payload && _typeof(payload) === 'object') {
38953    payload = addQueryString('', payload).slice(1);
38954  }
38955  if (options.queryStringParams) {
38956    url = addQueryString(url, options.queryStringParams);
38957  }
38958  try {
38959    var x;
38960    if (XmlHttpRequestApi) {
38961      x = new XmlHttpRequestApi();
38962    } else {
38963      x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');
38964    }
38965    x.open(payload ? 'POST' : 'GET', url, 1);
38966    if (!options.crossDomain) {
38967      x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
38968    }
38969    x.withCredentials = !!options.withCredentials;
38970    if (payload) {
38971      x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
38972    }
38973    if (x.overrideMimeType) {
38974      x.overrideMimeType('application/json');
38975    }
38976    var h = options.customHeaders;
38977    h = typeof h === 'function' ? h() : h;
38978    if (h) {
38979      for (var i in h) {
38980        x.setRequestHeader(i, h[i]);
38981      }
38982    }
38983    x.onreadystatechange = function () {
38984      x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {
38985        status: x.status,
38986        data: x.responseText
38987      });
38988    };
38989    x.send(payload);
38990  } catch (e) {
38991    console && console.log(e);
38992  }
38993};
38994var request = function request(options, url, payload, callback) {
38995  if (typeof payload === 'function') {
38996    callback = payload;
38997    payload = undefined;
38998  }
38999  callback = callback || function () {};
39000  if (fetchApi && url.indexOf('file:') !== 0) {
39001    return requestWithFetch(options, url, payload, callback);
39002  }
39003  if (Object(_utils_js__WEBPACK_IMPORTED_MODULE_0__[/* hasXMLHttpRequest */ "a"])() || typeof ActiveXObject === 'function') {
39004    return requestWithXmlHttpRequest(options, url, payload, callback);
39005  }
39006  callback(new Error('No fetch and no xhr implementation found!'));
39007};
39008/* harmony default export */ __webpack_exports__["a"] = (request);
39009/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34)))
39010
39011/***/ }),
39012/* 755 */
39013/***/ (function(module, exports, __webpack_require__) {
39014
39015var http = __webpack_require__(317)
39016var url = __webpack_require__(246)
39017
39018var https = module.exports
39019
39020for (var key in http) {
39021  if (http.hasOwnProperty(key)) https[key] = http[key]
39022}
39023
39024https.request = function (params, cb) {
39025  params = validateParams(params)
39026  return http.request.call(this, params, cb)
39027}
39028
39029https.get = function (params, cb) {
39030  params = validateParams(params)
39031  return http.get.call(this, params, cb)
39032}
39033
39034function validateParams (params) {
39035  if (typeof params === 'string') {
39036    params = url.parse(params)
39037  }
39038  if (!params.protocol) {
39039    params.protocol = 'https:'
39040  }
39041  if (params.protocol !== 'https:') {
39042    throw new Error('Protocol "' + params.protocol + '" not supported. Expected "https:"')
39043  }
39044  return params
39045}
39046
39047
39048/***/ }),
39049/* 756 */
39050/***/ (function(module, __webpack_exports__, __webpack_require__) {
39051
39052"use strict";
39053/* unused harmony export useMappedEndpoints */
39054/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(124);
39055/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0__);
39056/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
39057/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);
39058/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
39059/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2__);
39060/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
39061/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_3__);
39062/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
39063/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4__);
39064/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4);
39065/* harmony import */ var _lib_fetchTimeout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(127);
39066
39067
39068
39069
39070
39071
39072
39073
39074var initMapEndpoint = /*#__PURE__*/function () {
39075  var _ref = _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee() {
39076    var res, endpoints;
39077    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee$(_context) {
39078      while (1) {
39079        switch (_context.prev = _context.next) {
39080          case 0:
39081            _context.next = 2;
39082            return Object(_lib_fetchTimeout__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])("https://mapi.radioplayer.cloud/mappings/console-api-mappings.json", {
39083              method: "GET",
39084              headers: {
39085                "Content-Type": "application/json",
39086                mode: "cors"
39087              }
39088            }, 3000);
39089
39090          case 2:
39091            res = _context.sent;
39092            endpoints = {}; // adding 403 to the status to ignore as the s3 bucket is not entirely public
39093
39094            if (!(!res.ok && ![403, 404].includes(res.status))) {
39095              _context.next = 6;
39096              break;
39097            }
39098
39099            throw new Error("Failed to fetch console-api-mappings.json: ".concat(res.statusText));
39100
39101          case 6:
39102            if (!res.ok) {
39103              _context.next = 10;
39104              break;
39105            }
39106
39107            _context.next = 9;
39108            return res.json();
39109
39110          case 9:
39111            endpoints = _context.sent;
39112
39113          case 10:
39114            return _context.abrupt("return", function (endpoint) {
39115              if (!endpoint) {
39116                return undefined;
39117              }
39118
39119              return endpoints[endpoint] || endpoint;
39120            });
39121
39122          case 11:
39123          case "end":
39124            return _context.stop();
39125        }
39126      }
39127    }, _callee);
39128  }));
39129
39130  return function initMapEndpoint() {
39131    return _ref.apply(this, arguments);
39132  };
39133}();
39134
39135var useMappedEndpoints = function useMappedEndpoints(_ref2) {
39136  var $qp = _ref2.$qp,
39137      $cm = _ref2.$cm,
39138      $np = _ref2.$np;
39139
39140  // undefined on intial render so requests aren't made to both
39141  // the previous endpoint and the new one
39142  var _useState = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useState */ "j"])(undefined),
39143      _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),
39144      qp = _useState2[0],
39145      setQp = _useState2[1];
39146
39147  var _useState3 = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useState */ "j"])(undefined),
39148      _useState4 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState3, 2),
39149      cm = _useState4[0],
39150      setCm = _useState4[1];
39151
39152  var _useState5 = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useState */ "j"])(undefined),
39153      _useState6 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState5, 2),
39154      np = _useState6[0],
39155      setNp = _useState6[1];
39156
39157  var _useState7 = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useState */ "j"])(null),
39158      _useState8 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState7, 2),
39159      mapEndpoint = _useState8[0],
39160      setMapEndpoint = _useState8[1];
39161
39162  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useEffect */ "d"])(function () {
39163    if (!mapEndpoint) {
39164      _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_4___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.mark(function _callee2() {
39165        var mapEndpoint;
39166        return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_2___default.a.wrap(function _callee2$(_context2) {
39167          while (1) {
39168            switch (_context2.prev = _context2.next) {
39169              case 0:
39170                _context2.next = 2;
39171                return initMapEndpoint();
39172
39173              case 2:
39174                mapEndpoint = _context2.sent;
39175                setMapEndpoint(function () {
39176                  return mapEndpoint;
39177                });
39178
39179              case 4:
39180              case "end":
39181                return _context2.stop();
39182            }
39183          }
39184        }, _callee2);
39185      }))();
39186    }
39187
39188    if (!mapEndpoint) {
39189      return;
39190    }
39191
39192    var mappedQp = mapEndpoint($qp);
39193    setQp(mappedQp);
39194    var mappedCm = mapEndpoint($cm);
39195    setCm(mappedCm);
39196    var mappedNp = mapEndpoint($np);
39197    setNp(mappedNp);
39198  }, [mapEndpoint, $qp, $cm, $np]);
39199  return {
39200    qp: qp,
39201    cm: cm,
39202    np: np
39203  };
39204};
39205/* harmony default export */ __webpack_exports__["a"] = (useMappedEndpoints);
39206
39207/***/ }),
39208/* 757 */
39209/***/ (function(module, __webpack_exports__, __webpack_require__) {
39210
39211"use strict";
39212/* harmony import */ var _APIProvider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(525);
39213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _APIProvider__WEBPACK_IMPORTED_MODULE_0__["a"]; });
39214
39215
39216
39217/***/ }),
39218/* 758 */,
39219/* 759 */
39220/***/ (function(module, __webpack_exports__, __webpack_require__) {
39221
39222"use strict";
39223
39224// EXPORTS
39225__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ setupCustomTrackingbabel_target_legacy_setupCustomTracking; });
39226
39227// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
39228var es_array_concatbabel_target_legacy = __webpack_require__(75);
39229
39230// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
39231var es_array_filterbabel_target_legacy = __webpack_require__(70);
39232
39233// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
39234var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
39235
39236// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
39237var es_array_mapbabel_target_legacy = __webpack_require__(77);
39238
39239// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
39240var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
39241
39242// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
39243var toConsumableArraybabel_target_legacy = __webpack_require__(37);
39244var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
39245
39246// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
39247var regenerator_babel_target_legacy = __webpack_require__(6);
39248var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
39249
39250// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
39251var runtimebabel_target_legacy = __webpack_require__(60);
39252
39253// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
39254var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
39255var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
39256
39257// CONCATENATED MODULE: ./src/lib/CustomTracking/quantyooData.ts?babel-target=legacy
39258
39259
39260
39261
39262var sendQuantyooEvent = /*#__PURE__*/function () {
39263  var _ref = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee(eventType, payloadFields) {
39264    var _window$Qyjs, _window;
39265
39266    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
39267      while (1) {
39268        switch (_context.prev = _context.next) {
39269          case 0:
39270            (_window$Qyjs = (_window = window).Qyjs) === null || _window$Qyjs === void 0 ? void 0 : _window$Qyjs.call(_window, "tracking.track", "fix:stream:".concat(eventType), payloadFields);
39271
39272          case 1:
39273          case "end":
39274            return _context.stop();
39275        }
39276      }
39277    }, _callee);
39278  }));
39279
39280  return function sendQuantyooEvent(_x, _x2) {
39281    return _ref.apply(this, arguments);
39282  };
39283}();
39284
39285var quantyooData = {
39286  modern: "https://qyp.radioplayer.de/qyjs/63d41b8e-2440-4cf7-b5e1-5640d229dd15/modern.js",
39287  legacy: "https://qyp.radioplayer.de/qyjs/63d41b8e-2440-4cf7-b5e1-5640d229dd15/legacy.js",
39288  eventHandlers: {
39289    start: function () {
39290      var _start = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2(identifier) {
39291        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
39292          while (1) {
39293            switch (_context2.prev = _context2.next) {
39294              case 0:
39295                _context2.next = 2;
39296                return sendQuantyooEvent("start", {
39297                  identifier: identifier
39298                });
39299
39300              case 2:
39301              case "end":
39302                return _context2.stop();
39303            }
39304          }
39305        }, _callee2);
39306      }));
39307
39308      function start(_x3) {
39309        return _start.apply(this, arguments);
39310      }
39311
39312      return start;
39313    }(),
39314    stop: function () {
39315      var _stop = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee3(identifier) {
39316        return regenerator_babel_target_legacy_default.a.wrap(function _callee3$(_context3) {
39317          while (1) {
39318            switch (_context3.prev = _context3.next) {
39319              case 0:
39320                _context3.next = 2;
39321                return sendQuantyooEvent("stop", {
39322                  identifier: identifier
39323                });
39324
39325              case 2:
39326              case "end":
39327                return _context3.stop();
39328            }
39329          }
39330        }, _callee3);
39331      }));
39332
39333      function stop(_x4) {
39334        return _stop.apply(this, arguments);
39335      }
39336
39337      return stop;
39338    }(),
39339    mute: function () {
39340      var _mute = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee4(identifier) {
39341        return regenerator_babel_target_legacy_default.a.wrap(function _callee4$(_context4) {
39342          while (1) {
39343            switch (_context4.prev = _context4.next) {
39344              case 0:
39345                _context4.next = 2;
39346                return sendQuantyooEvent("setting", {
39347                  identifier: identifier,
39348                  type: "volume",
39349                  value: 0
39350                });
39351
39352              case 2:
39353              case "end":
39354                return _context4.stop();
39355            }
39356          }
39357        }, _callee4);
39358      }));
39359
39360      function mute(_x5) {
39361        return _mute.apply(this, arguments);
39362      }
39363
39364      return mute;
39365    }(),
39366    unmute: function () {
39367      var _unmute = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee5(identifier, _ref2) {
39368        var volume;
39369        return regenerator_babel_target_legacy_default.a.wrap(function _callee5$(_context5) {
39370          while (1) {
39371            switch (_context5.prev = _context5.next) {
39372              case 0:
39373                volume = _ref2.volume;
39374                _context5.next = 3;
39375                return sendQuantyooEvent("setting", {
39376                  identifier: identifier,
39377                  type: "volume",
39378                  value: typeof volume === "number" ? volume : 1
39379                });
39380
39381              case 3:
39382              case "end":
39383                return _context5.stop();
39384            }
39385          }
39386        }, _callee5);
39387      }));
39388
39389      function unmute(_x6, _x7) {
39390        return _unmute.apply(this, arguments);
39391      }
39392
39393      return unmute;
39394    }()
39395  }
39396};
39397/* harmony default export */ var quantyooDatababel_target_legacy = (quantyooData);
39398// CONCATENATED MODULE: ./src/lib/CustomTracking/defaultData.ts?babel-target=legacy
39399
39400var trackedEvents = ["mute", "unmute", "start", "stop"];
39401var defaultDatababel_target_legacy_trackingProviders = {
39402  quantyoo: quantyooDatababel_target_legacy
39403};
39404// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
39405var es_function_namebabel_target_legacy = __webpack_require__(123);
39406
39407// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
39408var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
39409
39410// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js?babel-target=legacy
39411var es_promisebabel_target_legacy = __webpack_require__(187);
39412
39413// CONCATENATED MODULE: ./src/lib/domUtils.ts?babel-target=legacy
39414
39415
39416
39417
39418
39419
39420/**
39421 * Append a script tag to the end of the document.body
39422 * @returns a promise
39423 * @param src url of the file
39424 * @param id optional, value for script tag id attribute
39425 * @param type defaults to "text/javascript", value for script tag type attribute
39426 */
39427var addScriptToDom = function addScriptToDom(_ref) {
39428  var src = _ref.src,
39429      id = _ref.id,
39430      _ref$type = _ref.type,
39431      type = _ref$type === void 0 ? "text/javascript" : _ref$type,
39432      _ref$dataAttributes = _ref.dataAttributes,
39433      dataAttributes = _ref$dataAttributes === void 0 ? [] : _ref$dataAttributes;
39434  return new Promise(function (resolve, reject) {
39435    var script = document.createElement("script");
39436    document.body.appendChild(script);
39437    script.onload = resolve;
39438    script.onerror = reject;
39439    script.type = type;
39440    script.id = id || "";
39441    script.src = src;
39442    dataAttributes.forEach(function (_ref2) {
39443      var name = _ref2.name,
39444          val = _ref2.val;
39445      script.setAttribute(name, val);
39446    });
39447  });
39448};
39449// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find-index.js?babel-target=legacy
39450var es_array_find_indexbabel_target_legacy = __webpack_require__(343);
39451
39452// CONCATENATED MODULE: ./src/lib/arrayUtils.ts?babel-target=legacy
39453
39454
39455/**
39456 * @returns true if needle exists in haystack, false if needle doesnt exist in haystack or haystack isn't an array
39457 * @param haystack the array to search in
39458 * @param needle the item to search for
39459 */
39460var existsInArray = function existsInArray(haystack, needle) {
39461  if (!haystack || !haystack.length) {
39462    return false;
39463  }
39464
39465  return haystack.findIndex(function (i) {
39466    return i === needle;
39467  }) !== -1;
39468};
39469// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
39470var es_symbolbabel_target_legacy = __webpack_require__(71);
39471
39472// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js?babel-target=legacy
39473var es_array_joinbabel_target_legacy = __webpack_require__(160);
39474
39475// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
39476var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
39477
39478// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
39479var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
39480
39481// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
39482var es_object_keysbabel_target_legacy = __webpack_require__(89);
39483
39484// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
39485var definePropertybabel_target_legacy = __webpack_require__(15);
39486var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
39487
39488// CONCATENATED MODULE: ./src/lib/CustomTracking/propValidation.ts?babel-target=legacy
39489
39490
39491
39492
39493
39494
39495
39496
39497
39498
39499function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
39500
39501function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39502
39503
39504var propValidationbabel_target_legacy_validateTracking = function validateTracking(cmpValid, trackingVal) {
39505  if (!trackingVal) return undefined;
39506
39507  if (!cmpValid) {
39508    console.error("Value passed for \"tracking\" will be ignored as no Consent Management Platform is configured or the CMP is not configured correctly.");
39509    return undefined;
39510  }
39511
39512  if (!defaultDatababel_target_legacy_trackingProviders[trackingVal.type]) {
39513    console.error("The value of tracking.type is invalid. Supported tracking types are \"".concat(Object.keys(defaultDatababel_target_legacy_trackingProviders).join('", "'), "\"."));
39514    return undefined;
39515  }
39516
39517  return _objectSpread(_objectSpread({}, defaultDatababel_target_legacy_trackingProviders[trackingVal.type]), trackingVal);
39518};
39519// CONCATENATED MODULE: ./src/lib/CustomTracking/setupCustomTracking.ts?babel-target=legacy
39520
39521
39522
39523
39524
39525
39526
39527
39528
39529
39530
39531
39532
39533var observers = [];
39534
39535var supportsES6 = function () {
39536  try {
39537    // eslint-disable-next-line no-new-func
39538    new Function("(a = 0) => a");
39539    return true;
39540  } catch (err) {
39541    return false;
39542  }
39543}();
39544
39545var setupCustomTrackingbabel_target_legacy_notifyTrackingObservers = function notifyTrackingObservers(eventType, rpId, additionalData) {
39546  if (!rpId || !existsInArray(trackedEvents, eventType)) {
39547    return;
39548  }
39549
39550  observers.forEach(function (observer) {
39551    observer.eventHandlers[eventType](rpId, additionalData || {});
39552  });
39553};
39554
39555var initQuantYooConfig = /*#__PURE__*/function () {
39556  var _ref = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee(tracking) {
39557    var _window;
39558
39559    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
39560      while (1) {
39561        switch (_context.prev = _context.next) {
39562          case 0:
39563            if (tracking.type === "quantyoo") {
39564              // eslint-disable-next-line @typescript-eslint/camelcase
39565              window.qy_config = ((_window = window) === null || _window === void 0 ? void 0 : _window.qy_config) || {}; // set base url for radioplayer proxy (with trailing slash)
39566
39567              window.qy_config.proxy_base_url = "https://".concat(tracking.trackingBaseUrl || "qyp.radioplayer.de", "/qyproxy/");
39568
39569              window.Qyjs = function () {
39570                // eslint-disable-next-line prefer-rest-params
39571                (window.QyQ = window.QyQ || []).push(arguments);
39572              }; // dynamically set Quantyoo platformkey as querystring here
39573
39574
39575              if (tracking.pk) window.qy_config.proxy_query_string = "&platformkey=".concat(tracking.pk);else console.warn("Radioplay::Quantyoo: Unable to configure Quantyoo query proxy string - no platformkey linked to domain");
39576            }
39577
39578          case 1:
39579          case "end":
39580            return _context.stop();
39581        }
39582      }
39583    }, _callee);
39584  }));
39585
39586  return function initQuantYooConfig(_x) {
39587    return _ref.apply(this, arguments);
39588  };
39589}();
39590
39591var setupCustomTrackingbabel_target_legacy_createTrackingObservers = function createTrackingObservers(tracking, cmpValid) {
39592  if (!tracking) return [];
39593  var normalised = tracking.length ? toConsumableArraybabel_target_legacy_default()(tracking) : [tracking]; // Initialise Quantyoo config before js files are called
39594
39595  normalised.forEach(initQuantYooConfig);
39596  return normalised.map(function (tc) {
39597    return propValidationbabel_target_legacy_validateTracking(cmpValid, tc);
39598  }).filter(function (i) {
39599    return i !== undefined;
39600  });
39601};
39602
39603var setupCustomTrackingbabel_target_legacy_addTrackingJsFiles = function addTrackingJsFiles(createdObservers, trackingConfig) {
39604  createdObservers.forEach(function (_ref2) {
39605    var pk = _ref2.pk;
39606    // Determine if tracking config is an array of TrackingConfig, if so use the first item.
39607    var tracking = (trackingConfig === null || trackingConfig === void 0 ? void 0 : trackingConfig[0]) || trackingConfig;
39608    var modernScriptProps = {
39609      // Use the provided tracking config url
39610      src: "https://".concat((tracking === null || tracking === void 0 ? void 0 : tracking.trackingBaseUrl) || // or fall back to the .de version to ensure existing implementations do not break
39611      "qyp.radioplayer.de", "/qyjs/").concat(pk, "/modern.js"),
39612      dataAttributes: [{
39613        name: "async",
39614        val: "async"
39615      }, {
39616        name: "type",
39617        val: "module"
39618      }]
39619    };
39620    var legacyScriptProps = {
39621      // Use the provided tracking config url
39622      src: "https://".concat((tracking === null || tracking === void 0 ? void 0 : tracking.trackingBaseUrl) || "qyp.radioplayer.de", "/qyjs/").concat(pk, "/legacy.js"),
39623      // or fall back to the .de version to ensure existing implementations do not break
39624      dataAttributes: [{
39625        name: "async",
39626        val: "async"
39627      }, {
39628        name: "nomodule",
39629        val: "nomodule"
39630      }]
39631    };
39632    addScriptToDom(supportsES6 ? modernScriptProps : legacyScriptProps);
39633  });
39634};
39635
39636var setupCustomTrackingbabel_target_legacy_setupCustomTracking = function setupCustomTracking(cmp, tracking) {
39637  var trackingProviders = setupCustomTrackingbabel_target_legacy_createTrackingObservers(tracking, !!cmp);
39638  setupCustomTrackingbabel_target_legacy_addTrackingJsFiles(trackingProviders, tracking);
39639  observers.length = 0; // just incase this is regenerated
39640
39641  observers.push.apply(observers, toConsumableArraybabel_target_legacy_default()(trackingProviders));
39642  return {
39643    trackingProviders: trackingProviders,
39644    notifyTrackingObservers: setupCustomTrackingbabel_target_legacy_notifyTrackingObservers
39645  };
39646};
39647
39648/***/ }),
39649/* 760 */,
39650/* 761 */,
39651/* 762 */,
39652/* 763 */,
39653/* 764 */,
39654/* 765 */,
39655/* 766 */,
39656/* 767 */,
39657/* 768 */
39658/***/ (function(module, exports, __webpack_require__) {
39659
39660// extracted by mini-css-extract-plugin
39661
39662/***/ }),
39663/* 769 */,
39664/* 770 */
39665/***/ (function(module, exports) {
39666
39667function _iterableToArrayLimit(arr, i) {
39668  if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
39669  var _arr = [];
39670  var _n = true;
39671  var _d = false;
39672  var _e = undefined;
39673
39674  try {
39675    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
39676      _arr.push(_s.value);
39677
39678      if (i && _arr.length === i) break;
39679    }
39680  } catch (err) {
39681    _d = true;
39682    _e = err;
39683  } finally {
39684    try {
39685      if (!_n && _i["return"] != null) _i["return"]();
39686    } finally {
39687      if (_d) throw _e;
39688    }
39689  }
39690
39691  return _arr;
39692}
39693
39694module.exports = _iterableToArrayLimit;
39695
39696/***/ }),
39697/* 771 */
39698/***/ (function(module, exports) {
39699
39700function _objectWithoutPropertiesLoose(source, excluded) {
39701  if (source == null) return {};
39702  var target = {};
39703  var sourceKeys = Object.keys(source);
39704  var key, i;
39705
39706  for (i = 0; i < sourceKeys.length; i++) {
39707    key = sourceKeys[i];
39708    if (excluded.indexOf(key) >= 0) continue;
39709    target[key] = source[key];
39710  }
39711
39712  return target;
39713}
39714
39715module.exports = _objectWithoutPropertiesLoose;
39716
39717/***/ }),
39718/* 772 */
39719/***/ (function(module, exports, __webpack_require__) {
39720
39721var arrayLikeToArray = __webpack_require__(463);
39722
39723function _arrayWithoutHoles(arr) {
39724  if (Array.isArray(arr)) return arrayLikeToArray(arr);
39725}
39726
39727module.exports = _arrayWithoutHoles;
39728
39729/***/ }),
39730/* 773 */
39731/***/ (function(module, exports) {
39732
39733function _nonIterableSpread() {
39734  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
39735}
39736
39737module.exports = _nonIterableSpread;
39738
39739/***/ }),
39740/* 774 */
39741/***/ (function(module, exports, __webpack_require__) {
39742
39743"use strict";
39744
39745
39746var _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; };
39747
39748var _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; }; }();
39749
39750function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39751
39752var _require = __webpack_require__(464),
39753    encodeConsentString = _require.encodeConsentString,
39754    _getMaxVendorId = _require.getMaxVendorId,
39755    encodeVendorIdsToBits = _require.encodeVendorIdsToBits,
39756    encodePurposeIdsToBits = _require.encodePurposeIdsToBits;
39757
39758var _require2 = __webpack_require__(467),
39759    decodeConsentString = _require2.decodeConsentString;
39760
39761var _require3 = __webpack_require__(466),
39762    vendorVersionMap = _require3.vendorVersionMap;
39763/**
39764 * Regular expression for validating
39765 */
39766
39767
39768var consentLanguageRegexp = /^[a-z]{2}$/;
39769var cachedString = void 0;
39770
39771var ConsentString = function () {
39772  function ConsentString() {
39773    var baseString = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
39774
39775    _classCallCheck(this, ConsentString);
39776
39777    this.maxVendorId = 0;
39778    this.created = new Date();
39779    this.lastUpdated = new Date();
39780    this.version = 1;
39781    this.vendorList = null;
39782    this.vendorListVersion = null;
39783    this.cmpId = null;
39784    this.cmpVersion = null;
39785    this.consentScreen = null;
39786    this.consentLanguage = null;
39787    this.allowedPurposeIds = [];
39788    this.allowedVendorIds = [];
39789
39790    // Decode the base string
39791    if (baseString) {
39792      cachedString = baseString;
39793      Object.assign(this, decodeConsentString(baseString));
39794    }
39795  }
39796
39797  _createClass(ConsentString, [{
39798    key: 'getConsentString',
39799    value: function getConsentString() {
39800      var updateDate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
39801
39802      var retr = void 0;
39803
39804      /**
39805       * check for cached string that was passed in.  This avoids having to
39806       * decode the consent string and even to have a vendorlist
39807       */
39808      if (cachedString && !updateDate) {
39809        retr = cachedString;
39810      } else {
39811        if (!this.vendorList) {
39812          throw new Error('ConsentString - A vendor list is required to encode a consent string');
39813        }
39814
39815        if (updateDate === true) {
39816          this.lastUpdated = new Date();
39817        }
39818
39819        retr = encodeConsentString({
39820          version: this.getVersion(),
39821          vendorList: this.vendorList,
39822          allowedPurposeIds: this.allowedPurposeIds,
39823          allowedVendorIds: this.allowedVendorIds,
39824          created: this.created,
39825          lastUpdated: this.lastUpdated,
39826          cmpId: this.cmpId,
39827          cmpVersion: this.cmpVersion,
39828          consentScreen: this.consentScreen,
39829          consentLanguage: this.consentLanguage,
39830          vendorListVersion: this.vendorListVersion
39831        });
39832
39833        cachedString = retr;
39834      }
39835      return retr;
39836    }
39837  }, {
39838    key: 'getLastUpdated',
39839    value: function getLastUpdated() {
39840      return this.lastUpdated;
39841    }
39842  }, {
39843    key: 'setLastUpdated',
39844    value: function setLastUpdated() {
39845      var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
39846
39847      cachedString = '';
39848      if (date) {
39849        this.lastUpdated = new Date(date);
39850      } else {
39851        this.lastUpdated = new Date();
39852      }
39853    }
39854  }, {
39855    key: 'getCreated',
39856    value: function getCreated() {
39857      return this.created;
39858    }
39859  }, {
39860    key: 'setCreated',
39861    value: function setCreated() {
39862      var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
39863
39864      cachedString = '';
39865      if (date) {
39866        this.created = new Date(date);
39867      } else {
39868        this.created = new Date();
39869      }
39870    }
39871  }, {
39872    key: 'getMaxVendorId',
39873    value: function getMaxVendorId() {
39874      if (!this.maxVendorId) {
39875        if (this.vendorList) {
39876          this.maxVendorId = _getMaxVendorId(this.vendorList.vendors);
39877        }
39878      }
39879      return this.maxVendorId;
39880    }
39881  }, {
39882    key: 'getParsedVendorConsents',
39883    value: function getParsedVendorConsents() {
39884      return encodeVendorIdsToBits(_getMaxVendorId(this.vendorList.vendors), this.allowedVendorIds);
39885    }
39886  }, {
39887    key: 'getParsedPurposeConsents',
39888    value: function getParsedPurposeConsents() {
39889      return encodePurposeIdsToBits(this.vendorList.purposes, this.allowedPurposeIds);
39890    }
39891  }, {
39892    key: 'getMetadataString',
39893    value: function getMetadataString() {
39894      return encodeConsentString({
39895        version: this.getVersion(),
39896        created: this.created,
39897        lastUpdated: this.lastUpdated,
39898        cmpId: this.cmpId,
39899        cmpVersion: this.cmpVersion,
39900        consentScreen: this.consentScreen,
39901        vendorListVersion: this.vendorListVersion
39902      });
39903    }
39904  }, {
39905    key: 'getVersion',
39906    value: function getVersion() {
39907      return this.version;
39908    }
39909  }, {
39910    key: 'getVendorListVersion',
39911    value: function getVendorListVersion() {
39912      return this.vendorListVersion;
39913    }
39914  }, {
39915    key: 'setGlobalVendorList',
39916    value: function setGlobalVendorList(vendorList) {
39917      if ((typeof vendorList === 'undefined' ? 'undefined' : _typeof(vendorList)) !== 'object') {
39918        throw new Error('ConsentString - You must provide an object when setting the global vendor list');
39919      }
39920
39921      if (!vendorList.vendorListVersion || !Array.isArray(vendorList.purposes) || !Array.isArray(vendorList.vendors)) {
39922        // The provided vendor list does not look valid
39923        throw new Error('ConsentString - The provided vendor list does not respect the schema from the IAB EU’s GDPR Consent and Transparency Framework');
39924      }
39925
39926      // does a vendorList already exist and is it a different version
39927      if (!this.vendorList || this.vendorListVersion !== vendorList.vendorListVersion) {
39928        cachedString = '';
39929        // Cloning the GVL
39930        // It's important as we might transform it and don't want to modify objects that we do not own
39931        this.vendorList = {
39932          vendorListVersion: vendorList.vendorListVersion,
39933          lastUpdated: vendorList.lastUpdated,
39934          purposes: vendorList.purposes,
39935          features: vendorList.features,
39936
39937          // Clone the list and sort the vendors by ID (it breaks our range generation algorithm if they are not sorted)
39938          vendors: vendorList.vendors.slice(0).sort(function (firstVendor, secondVendor) {
39939            return firstVendor.id < secondVendor.id ? -1 : 1;
39940          })
39941        };
39942        this.vendorListVersion = vendorList.vendorListVersion;
39943      }
39944    }
39945  }, {
39946    key: 'getGlobalVendorList',
39947    value: function getGlobalVendorList() {
39948      return this.vendorList;
39949    }
39950  }, {
39951    key: 'setCmpId',
39952    value: function setCmpId(id) {
39953      if (id !== this.cmpId) {
39954        cachedString = '';
39955        this.cmpId = id;
39956      }
39957    }
39958  }, {
39959    key: 'getCmpId',
39960    value: function getCmpId() {
39961      return this.cmpId;
39962    }
39963  }, {
39964    key: 'setCmpVersion',
39965    value: function setCmpVersion(version) {
39966      if (version !== this.cmpVersion) {
39967        cachedString = '';
39968        this.cmpVersion = version;
39969      }
39970    }
39971  }, {
39972    key: 'getCmpVersion',
39973    value: function getCmpVersion() {
39974      return this.cmpVersion;
39975    }
39976  }, {
39977    key: 'setConsentScreen',
39978    value: function setConsentScreen(screenId) {
39979      if (screenId !== this.consentScreen) {
39980        cachedString = '';
39981        this.consentScreen = screenId;
39982      }
39983    }
39984  }, {
39985    key: 'getConsentScreen',
39986    value: function getConsentScreen() {
39987      return this.consentScreen;
39988    }
39989  }, {
39990    key: 'setConsentLanguage',
39991    value: function setConsentLanguage(language) {
39992      if (consentLanguageRegexp.test(language) === false) {
39993        throw new Error('ConsentString - The consent language must be a two-letter ISO639-1 code (en, fr, de, etc.)');
39994      }
39995
39996      if (language !== this.consentLanguage) {
39997        cachedString = '';
39998        this.consentLanguage = language;
39999      }
40000    }
40001  }, {
40002    key: 'getConsentLanguage',
40003    value: function getConsentLanguage() {
40004      return this.consentLanguage;
40005    }
40006  }, {
40007    key: 'setPurposesAllowed',
40008    value: function setPurposesAllowed(purposeIds) {
40009      cachedString = '';
40010      this.allowedPurposeIds = purposeIds;
40011    }
40012  }, {
40013    key: 'getPurposesAllowed',
40014    value: function getPurposesAllowed() {
40015      return this.allowedPurposeIds;
40016    }
40017  }, {
40018    key: 'setPurposeAllowed',
40019    value: function setPurposeAllowed(purposeId, value) {
40020      var purposeIndex = this.allowedPurposeIds.indexOf(purposeId);
40021
40022      cachedString = '';
40023
40024      if (value === true) {
40025        if (purposeIndex === -1) {
40026          this.allowedPurposeIds.push(purposeId);
40027        }
40028      } else if (value === false) {
40029        if (purposeIndex !== -1) {
40030          this.allowedPurposeIds.splice(purposeIndex, 1);
40031        }
40032      }
40033    }
40034  }, {
40035    key: 'isPurposeAllowed',
40036    value: function isPurposeAllowed(purposeId) {
40037      return this.allowedPurposeIds.indexOf(purposeId) !== -1;
40038    }
40039  }, {
40040    key: 'setVendorsAllowed',
40041    value: function setVendorsAllowed(vendorIds) {
40042      cachedString = '';
40043      this.allowedVendorIds = vendorIds;
40044    }
40045  }, {
40046    key: 'getVendorsAllowed',
40047    value: function getVendorsAllowed() {
40048      return this.allowedVendorIds;
40049    }
40050  }, {
40051    key: 'setVendorAllowed',
40052    value: function setVendorAllowed(vendorId, value) {
40053      var vendorIndex = this.allowedVendorIds.indexOf(vendorId);
40054
40055      cachedString = '';
40056      if (value === true) {
40057        if (vendorIndex === -1) {
40058          this.allowedVendorIds.push(vendorId);
40059        }
40060      } else if (value === false) {
40061        if (vendorIndex !== -1) {
40062          this.allowedVendorIds.splice(vendorIndex, 1);
40063        }
40064      }
40065    }
40066  }, {
40067    key: 'isVendorAllowed',
40068    value: function isVendorAllowed(vendorId) {
40069      return this.allowedVendorIds.indexOf(vendorId) !== -1;
40070    }
40071  }], [{
40072    key: 'decodeMetadataString',
40073    value: function decodeMetadataString(encodedMetadata) {
40074      var decodedString = decodeConsentString(encodedMetadata);
40075      var metadata = {};
40076      vendorVersionMap[decodedString.version].metadataFields.forEach(function (field) {
40077        metadata[field] = decodedString[field];
40078      });
40079      return metadata;
40080    }
40081  }]);
40082
40083  return ConsentString;
40084}();
40085
40086module.exports = {
40087  ConsentString: ConsentString
40088};
40089
40090/***/ }),
40091/* 775 */
40092/***/ (function(module, exports, __webpack_require__) {
40093
40094/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */
40095;(function(root) {
40096
40097	// Detect free variables `exports`.
40098	var freeExports =  true && exports;
40099
40100	// Detect free variable `module`.
40101	var freeModule =  true && module &&
40102		module.exports == freeExports && module;
40103
40104	// Detect free variable `global`, from Node.js or Browserified code, and use
40105	// it as `root`.
40106	var freeGlobal = typeof global == 'object' && global;
40107	if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {
40108		root = freeGlobal;
40109	}
40110
40111	/*--------------------------------------------------------------------------*/
40112
40113	var InvalidCharacterError = function(message) {
40114		this.message = message;
40115	};
40116	InvalidCharacterError.prototype = new Error;
40117	InvalidCharacterError.prototype.name = 'InvalidCharacterError';
40118
40119	var error = function(message) {
40120		// Note: the error messages used throughout this file match those used by
40121		// the native `atob`/`btoa` implementation in Chromium.
40122		throw new InvalidCharacterError(message);
40123	};
40124
40125	var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
40125+/';
40126	// http://whatwg.org/html/common-microsyntaxes.html#space-character
40127	var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g;
40128
40129	// `decode` is designed to be fully compatible with `atob` as described in the
40130	// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob
40131	// The optimized base64-decoding algorithm used is based on @atk’s excellent
40132	// implementation. https://gist.github.com/atk/1020396
40133	var decode = function(input) {
40134		input = String(input)
40135			.replace(REGEX_SPACE_CHARACTERS, '');
40136		var length = input.length;
40137		if (length % 4 == 0) {
40138			input = input.replace(/==?$/, '');
40139			length = input.length;
40140		}
40141		if (
40142			length % 4 == 1 ||
40143			// http://whatwg.org/C#alphanumeric-ascii-characters
40144			/[^+a-zA-Z0-9/]/.test(input)
40145		) {
40146			error(
40147				'Invalid character: the string to be decoded is not correctly encoded.'
40148			);
40149		}
40150		var bitCounter = 0;
40151		var bitStorage;
40152		var buffer;
40153		var output = '';
40154		var position = -1;
40155		while (++position < length) {
40156			buffer = TABLE.indexOf(input.charAt(position));
40157			bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;
40158			// Unless this is the first of a group of 4 characters…
40159			if (bitCounter++ % 4) {
40160				// …convert the first 8 bits to a single ASCII character.
40161				output += String.fromCharCode(
40162					0xFF & bitStorage >> (-2 * bitCounter & 6)
40163				);
40164			}
40165		}
40166		return output;
40167	};
40168
40169	// `encode` is designed to be fully compatible with `btoa` as described in the
40170	// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa
40171	var encode = function(input) {
40172		input = String(input);
40173		if (/[^\0-\xFF]/.test(input)) {
40174			// Note: no need to special-case astral symbols here, as surrogates are
40175			// matched, and the input is supposed to only contain ASCII anyway.
40176			error(
40177				'The string to be encoded contains characters outside of the ' +
40178				'Latin1 range.'
40179			);
40180		}
40181		var padding = input.length % 3;
40182		var output = '';
40183		var position = -1;
40184		var a;
40185		var b;
40186		var c;
40187		var d;
40188		var buffer;
40189		// Make sure any padding is handled outside of the loop.
40190		var length = input.length - padding;
40191
40192		while (++position < length) {
40193			// Read three bytes, i.e. 24 bits.
40194			a = input.charCodeAt(position) << 16;
40195			b = input.charCodeAt(++position) << 8;
40196			c = input.charCodeAt(++position);
40197			buffer = a + b + c;
40198			// Turn the 24 bits into four chunks of 6 bits each, and append the
40199			// matching character for each of them to the output.
40200			output += (
40201				TABLE.charAt(buffer >> 18 & 0x3F) +
40202				TABLE.charAt(buffer >> 12 & 0x3F) +
40203				TABLE.charAt(buffer >> 6 & 0x3F) +
40204				TABLE.charAt(buffer & 0x3F)
40205			);
40206		}
40207
40208		if (padding == 2) {
40209			a = input.charCodeAt(position) << 8;
40210			b = input.charCodeAt(++position);
40211			buffer = a + b;
40212			output += (
40213				TABLE.charAt(buffer >> 10) +
40214				TABLE.charAt((buffer >> 4) & 0x3F) +
40215				TABLE.charAt((buffer << 2) & 0x3F) +
40216				'='
40217			);
40218		} else if (padding == 1) {
40219			buffer = input.charCodeAt(position);
40220			output += (
40221				TABLE.charAt(buffer >> 2) +
40222				TABLE.charAt((buffer << 4) & 0x3F) +
40223				'=='
40224			);
40225		}
40226
40227		return output;
40228	};
40229
40230	var base64 = {
40231		'encode': encode,
40232		'decode': decode,
40233		'version': '0.1.0'
40234	};
40235
40236	// Some AMD build optimizers, like r.js, check for specific condition patterns
40237	// like the following:
40238	if (
40239		true
40240	) {
40241		!(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
40242			return base64;
40243		}).call(exports, __webpack_require__, exports, module),
40244				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
40245	}	else { var key; }
40246
40247}(this));
40248
40249/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(186)(module), __webpack_require__(34)))
40250
40251/***/ }),
40252/* 776 */,
40253/* 777 */,
40254/* 778 */,
40255/* 779 */
40256/***/ (function(module, __webpack_exports__, __webpack_require__) {
40257
40258"use strict";
40259/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useBackgrounded; });
40260/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(124);
40261/* harmony import */ var core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes__WEBPACK_IMPORTED_MODULE_0__);
40262/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(140);
40263/* harmony import */ var core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes__WEBPACK_IMPORTED_MODULE_1__);
40264/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8);
40265/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2__);
40266/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4);
40267/* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10);
40268
40269
40270
40271
40272
40273var useBackgrounded = function useBackgrounded() {
40274  var _useState = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_3__[/* useState */ "j"])(false),
40275      _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_2___default()(_useState, 2),
40276      backgrounded = _useState2[0],
40277      setBackgrounded = _useState2[1];
40278
40279  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_3__[/* useEffect */ "d"])(function () {
40280    var ua = window.navigator.userAgent;
40281    var isIE = ua.includes("MSIE ") || ua.includes("Trident/");
40282    var blur = isIE ? "focusout" : "blur";
40283    var focus = isIE ? "focusin" : "focus";
40284
40285    var onBlur = function onBlur() {
40286      Object(_lib_logger__WEBPACK_IMPORTED_MODULE_4__[/* log */ "c"])("Blur");
40287      setBackgrounded(true);
40288    };
40289
40290    var onFocus = function onFocus() {
40291      Object(_lib_logger__WEBPACK_IMPORTED_MODULE_4__[/* log */ "c"])("Focus");
40292      setBackgrounded(false);
40293    };
40294
40295    window.addEventListener(blur, onBlur);
40296    window.addEventListener(focus, onFocus);
40297    return function () {
40298      window.removeEventListener(blur, onBlur);
40299      window.removeEventListener(focus, onFocus);
40300    };
40301  }, [setBackgrounded]);
40302  return backgrounded;
40303};
40304
40305/***/ }),
40306/* 780 */
40307/***/ (function(module, exports, __webpack_require__) {
40308
40309var arrayWithHoles = __webpack_require__(698);
40310
40311var iterableToArray = __webpack_require__(700);
40312
40313var unsupportedIterableToArray = __webpack_require__(412);
40314
40315var nonIterableRest = __webpack_require__(699);
40316
40317function _toArray(arr) {
40318  return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();
40319}
40320
40321module.exports = _toArray;
40322
40323/***/ }),
40324/* 781 */,
40325/* 782 */
40326/***/ (function(module, __webpack_exports__, __webpack_require__) {
40327
40328"use strict";
40329
40330// EXPORTS
40331__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ Scrubberbabel_target_legacy_Scrubber; });
40332
40333// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
40334var definePropertybabel_target_legacy = __webpack_require__(15);
40335var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
40336
40337// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
40338var slicedToArraybabel_target_legacy = __webpack_require__(8);
40339var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
40340
40341// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
40342var preact_modulebabel_target_legacy = __webpack_require__(1);
40343
40344// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js?babel-target=legacy
vendor: 10,118 bytes, lines 40344-40564
40344
40345/*! *****************************************************************************
40346Copyright (c) Microsoft Corporation.
40347
40348Permission to use, copy, modify, and/or distribute this software for any
40349purpose with or without fee is hereby granted.
40350
40351THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
40352REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
40353AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
40354INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
40355LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
40356OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
40357PERFORMANCE OF THIS SOFTWARE.
40358***************************************************************************** */
40359/* global Reflect, Promise */
40360
40361var extendStatics = function(d, b) {
40362    extendStatics = Object.setPrototypeOf ||
40363        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40364        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40365    return extendStatics(d, b);
40366};
40367
40368function __extends(d, b) {
40369    extendStatics(d, b);
40370    function __() { this.constructor = d; }
40371    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40372}
40373
40374var __assign = function() {
40375    __assign = Object.assign || function __assign(t) {
40376        for (var s, i = 1, n = arguments.length; i < n; i++) {
40377            s = arguments[i];
40378            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
40379        }
40380        return t;
40381    }
40382    return __assign.apply(this, arguments);
40383}
40384
40385function __rest(s, e) {
40386    var t = {};
40387    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
40388        t[p] = s[p];
40389    if (s != null && typeof Object.getOwnPropertySymbols === "function")
40390        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
40391            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
40392                t[p[i]] = s[p[i]];
40393        }
40394    return t;
40395}
40396
40397function __decorate(decorators, target, key, desc) {
40398    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40399    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40400    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
40401    return c > 3 && r && Object.defineProperty(target, key, r), r;
40402}
40403
40404function __param(paramIndex, decorator) {
40405    return function (target, key) { decorator(target, key, paramIndex); }
40406}
40407
40408function __metadata(metadataKey, metadataValue) {
40409    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
40410}
40411
40412function __awaiter(thisArg, _arguments, P, generator) {
40413    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
40414    return new (P || (P = Promise))(function (resolve, reject) {
40415        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40416        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40417        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
40418        step((generator = generator.apply(thisArg, _arguments || [])).next());
40419    });
40420}
40421
40422function __generator(thisArg, body) {
40423    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
40424    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40425    function verb(n) { return function (v) { return step([n, v]); }; }
40426    function step(op) {
40427        if (f) throw new TypeError("Generator is already executing.");
40428        while (_) try {
40429            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
40430            if (y = 0, t) op = [op[0] & 2, t.value];
40431            switch (op[0]) {
40432                case 0: case 1: t = op; break;
40433                case 4: _.label++; return { value: op[1], done: false };
40434                case 5: _.label++; y = op[1]; op = [0]; continue;
40435                case 7: op = _.ops.pop(); _.trys.pop(); continue;
40436                default:
40437                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40438                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
40439                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40440                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40441                    if (t[2]) _.ops.pop();
40442                    _.trys.pop(); continue;
40443            }
40444            op = body.call(thisArg, _);
40445        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40446        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
40447    }
40448}
40449
40450function __createBinding(o, m, k, k2) {
40451    if (k2 === undefined) k2 = k;
40452    o[k2] = m[k];
40453}
40454
40455function __exportStar(m, exports) {
40456    for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) exports[p] = m[p];
40457}
40458
40459function __values(o) {
40460    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
40461    if (m) return m.call(o);
40462    if (o && typeof o.length === "number") return {
40463        next: function () {
40464            if (o && i >= o.length) o = void 0;
40465            return { value: o && o[i++], done: !o };
40466        }
40467    };
40468    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
40469}
40470
40471function __read(o, n) {
40472    var m = typeof Symbol === "function" && o[Symbol.iterator];
40473    if (!m) return o;
40474    var i = m.call(o), r, ar = [], e;
40475    try {
40476        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
40477    }
40478    catch (error) { e = { error: error }; }
40479    finally {
40480        try {
40481            if (r && !r.done && (m = i["return"])) m.call(i);
40482        }
40483        finally { if (e) throw e.error; }
40484    }
40485    return ar;
40486}
40487
40488function __spread() {
40489    for (var ar = [], i = 0; i < arguments.length; i++)
40490        ar = ar.concat(__read(arguments[i]));
40491    return ar;
40492}
40493
40494function __spreadArrays() {
40495    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
40496    for (var r = Array(s), k = 0, i = 0; i < il; i++)
40497        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
40498            r[k] = a[j];
40499    return r;
40500};
40501
40502function __await(v) {
40503    return this instanceof __await ? (this.v = v, this) : new __await(v);
40504}
40505
40506function __asyncGenerator(thisArg, _arguments, generator) {
40507    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40508    var g = generator.apply(thisArg, _arguments || []), i, q = [];
40509    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
40510    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
40511    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
40512    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
40513    function fulfill(value) { resume("next", value); }
40514    function reject(value) { resume("throw", value); }
40515    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
40516}
40517
40518function __asyncDelegator(o) {
40519    var i, p;
40520    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
40521    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
40522}
40523
40524function __asyncValues(o) {
40525    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40526    var m = o[Symbol.asyncIterator], i;
40527    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
40528    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
40529    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
40530}
40531
40532function __makeTemplateObject(cooked, raw) {
40533    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
40534    return cooked;
40535};
40536
40537function __importStar(mod) {
40538    if (mod && mod.__esModule) return mod;
40539    var result = {};
40540    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
40541    result.default = mod;
40542    return result;
40543}
40544
40545function __importDefault(mod) {
40546    return (mod && mod.__esModule) ? mod : { default: mod };
40547}
40548
40549function __classPrivateFieldGet(receiver, privateMap) {
40550    if (!privateMap.has(receiver)) {
40551        throw new TypeError("attempted to get private field on non-instance");
40552    }
40553    return privateMap.get(receiver);
40554}
40555
40556function __classPrivateFieldSet(receiver, privateMap, value) {
40557    if (!privateMap.has(receiver)) {
40558        throw new TypeError("attempted to set private field on non-instance");
40559    }
40560    privateMap.set(receiver, value);
40561    return value;
40562}
40563
40564// 
40564CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/utils.js?babel-target=legacy
40565function noop() {
40566    var _rest = [];
40567    for (var _i = 0; _i < arguments.length; _i++) {
40568        _rest[_i] = arguments[_i];
40569    }
40570}
40571function clampValue(value, _a) {
40572    var min = _a.min, max = _a.max;
40573    if (value <= min) {
40574        return min;
40575    }
40576    if (value >= max) {
40577        return max;
40578    }
40579    return value;
40580}
40581function isValueOutOfRange(value, _a) {
40582    var min = _a.min, max = _a.max;
40583    return ((value < min)
40584        || (value > max));
40585}
40586function getPrecision(step) {
40587    var stepString = step.toString();
40588    var dotIndex = stepString.indexOf('.');
40589    var precision = 0;
40590    if (dotIndex !== -1) {
40591        precision = stepString.length - dotIndex - 1;
40592    }
40593    return precision;
40594}
40595function clampValueToSurroundingHandles(value, _a, _b) {
40596    var allowCross = _a.allowCross;
40597    var handle = _b.handle, bounds = _b.bounds;
40598    if (!allowCross
40599        && (handle != null)) {
40600        if ((handle > 0)
40601            && (value <= bounds[handle - 1])) {
40602            return bounds[handle - 1];
40603        }
40604        if ((handle < (bounds.length - 1))
40605            && (value >= bounds[handle + 1])) {
40606            return bounds[handle + 1];
40607        }
40608    }
40609    return value;
40610}
40611function getClosestPoint(value, _a) {
40612    var marks = _a.marks, step = _a.step, min = _a.min;
40613    var points = Object.keys(marks).map(Number);
40614    if ((step != null)
40615        && (step > 0)) {
40616        var closestStep = Math.round((value - min) / step) * step + min;
40617        points.push(closestStep);
40618    }
40619    var diffs = points.map(function (point) { return Math.abs(value - point); });
40620    return (points[diffs.indexOf(Math.min.apply(Math, diffs))]
40621        || min);
40622}
40623function alignValue(value, props) {
40624    var step = props.step;
40625    var closestPoint = getClosestPoint(value, props);
40626    return (((step == null)
40627        || (step <= 0))
40628        ? closestPoint
40629        : Number(closestPoint.toFixed(getPrecision(step))));
40630}
40631function getHandleCenterPosition(vertical, handle) {
40632    var coords = handle.getBoundingClientRect();
40633    return (vertical
40634        ? coords.top + (coords.height / 2)
40635        : coords.left + (coords.width / 2));
40636}
40637function getMousePosition(vertical, event) {
40638    return (vertical ? event.clientY : event.pageX);
40639}
40640function getTouchPosition(vertical, event) {
40641    return (vertical ? event.touches[0].clientY : event.touches[0].pageX);
40642}
40643function isEventFromHandle(event, handles) {
40644    return (handles.some(function (handle) { return event.target === handle; }));
40645}
40646function isNotCorrectTouchEvent(event) {
40647    return ((event.touches.length > 1)
40648        || ((event.type.toLowerCase() === 'touchend')
40649            && (event.touches.length > 0)));
40650}
40651function killEvent(event) {
40652    event.stopPropagation();
40653    event.preventDefault();
40654}
40655
40656var ONEHOUR = 3600;
40657var zeroPad = function (num) {
40658    return num >= 100 ? "" + Math.floor(num) : ("00" + Math.floor(num)).slice(-2);
40659};
40660var formatTime = function (seconds) {
40661    if (isNaN(seconds) || seconds === Infinity) {
40662        return '';
40663    }
40664    if (seconds > 604800) {
40665        var date = new Date(seconds * 1000);
40666        return (zeroPad(date.getHours()) +
40667            ':' +
40668            zeroPad(date.getMinutes()) +
40669            ':' +
40670            zeroPad(date.getSeconds()));
40671    }
40672    var sign = '';
40673    if (seconds < 0) {
40674        seconds = Math.abs(seconds);
40675        sign = '-';
40676    }
40677    if (seconds < ONEHOUR) {
40678        return sign + zeroPad(seconds / 60) + ':' + zeroPad(seconds % 60);
40679    }
40680    var formatted = Math.floor(seconds / ONEHOUR) +
40681        ':' +
40682        zeroPad((seconds % ONEHOUR) / 60) +
40683        ':' +
40684        zeroPad(seconds % 60);
40685    return "" + sign + formatted;
40686};
40687//# sourceMappingURL=utils.js.map
40688// CONCATENATED MODULE: ./node_modules/classjoin/es5-esm?babel-target=legacy
40689function classJoin(withConditions, withoutConditions) {
40690    var classes = [];
40691    var keys = Object.keys(withConditions);
40692    for (var i = 0, n = keys.length; i < n; i++) {
40693        var key = keys[i];
40694        if (withConditions[key]) {
40695            classes.push(key);
40696        }
40697    }
40698    if (withoutConditions) {
40699        classes = withoutConditions.concat(classes);
40700    }
40701    return classes.join(' ');
40702}
40703
40704//# sourceMappingURL=index.js.map
40705// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/Marks.js?babel-target=legacy
40706
40707
40708function Marks(_a) {
40709    var min = _a.min, max = _a.max, lowerBound = _a.lowerBound, upperBound = _a.upperBound, marks = _a.marks, included = _a.included, vertical = _a.vertical, classesPrefix = _a.classesPrefix;
40710    var marksKeys = Object.keys(marks);
40711    var marksCount = marksKeys.length;
40712    var unit = 100 / (marksCount - 1);
40713    var markWidth = unit * 0.9;
40714    var range = max - min;
40715    var elements = marksKeys.map(Number)
40716        .sort(function (a, b) { return a - b; })
40717        .map(function (point) {
40718        var _a;
40719        var active = ((!included
40720            && (point === upperBound))
40721            || (included
40722                && (point <= upperBound)
40723                && (point >= lowerBound)));
40724        var classes = classJoin((_a = {},
40725            _a[classesPrefix + 'active'] = active,
40726            _a), [classesPrefix + 'text']);
40727        var style = (vertical
40728            ? {
40729                marginBottom: '-50%',
40730                bottom: ((point - min) / range * 100) + '%',
40731            }
40732            : {
40733                width: markWidth + '%',
40734                marginLeft: (-markWidth / 2) + '%',
40735                left: ((point - min) / range * 100) + '%',
40736            });
40737        var markPoint = marks[point];
40738        return (Object(preact_modulebabel_target_legacy["h"])("span", { class: classes, style: style, key: String(point) }, markPoint));
40739    });
40740    return (Object(preact_modulebabel_target_legacy["h"])("div", { class: classesPrefix + 'marks' }, elements));
40741}
40742
40743//# sourceMappingURL=Marks.js.map
40744// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/Steps.js?babel-target=legacy
40745
40746
40747function Steps(_a) {
40748    var min = _a.min, max = _a.max, step = _a.step, lowerBound = _a.lowerBound, upperBound = _a.upperBound, marks = _a.marks, dots = _a.dots, included = _a.included, vertical = _a.vertical, classesPrefix = _a.classesPrefix;
40749    var range = max - min;
40750    var elements = calcPoints(marks, dots, step, min, max).map(function (point) {
40751        var _a;
40752        var offset = (Math.abs(point - min) / range * 100) + '%';
40753        var style = (vertical
40754            ? { bottom: offset }
40755            : { left: offset });
40756        var active = ((!included
40757            && (point === upperBound))
40758            || (included
40759                && (point <= upperBound)
40760                && (point >= lowerBound)));
40761        var classes = classJoin((_a = {},
40762            _a[classesPrefix + 'active'] = active,
40763            _a), [classesPrefix + 'dot']);
40764        return (Object(preact_modulebabel_target_legacy["h"])("span", { class: classes, style: style, key: String(point) }));
40765    });
40766    return (Object(preact_modulebabel_target_legacy["h"])("div", { class: classesPrefix + 'steps' }, elements));
40767}
40768function calcPoints(marks, dots, step, min, max) {
40769    var points = Object.keys(marks).map(Number);
40770    if (dots && (step > 0)) {
40771        for (var i = min; i <= max; i = i + step) {
40772            if (points.indexOf(i) === -1) {
40773                points.push(i);
40774            }
40775        }
40776    }
40777    return points;
40778}
40779
40780//# sourceMappingURL=Steps.js.map
40781// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/AbstractSlider.js?babel-target=legacy
40782
40783
40784
40785
40786
40787
40788var MouseButtons;
40789(function (MouseButtons) {
40790    MouseButtons[MouseButtons["LEFT"] = 0] = "LEFT";
40791    MouseButtons[MouseButtons["MIDDLE"] = 1] = "MIDDLE";
40792    MouseButtons[MouseButtons["RIGHT"] = 2] = "RIGHT";
40793    MouseButtons[MouseButtons["BACK"] = 3] = "BACK";
40794    MouseButtons[MouseButtons["FORWARD"] = 4] = "FORWARD";
40795})(MouseButtons || (MouseButtons = {}));
40796var AbstractSliderbabel_target_legacy_AbstractSlider = (function (_super) {
40797    __extends(AbstractSlider, _super);
40798    function AbstractSlider() {
40799        var _this = _super !== null && _super.apply(this, arguments) || this;
40800        _this.dragOffset = 0;
40801        _this.handlesRefs = [];
40802        _this.saveSlider = function (element) {
40803            _this.sliderRef = element;
40804        };
40805        _this.saveHandle = function (component, index) {
40806            if (index === void 0) { index = 0; }
40807            if (component == null || component.base === undefined) {
40808                delete _this.handlesRefs[index];
40809            }
40810            else {
40811                _this.handlesRefs[index] = component.base;
40812            }
40813        };
40814        _this.calcMinValue = function (value, seekable) {
40815            return seekable && seekable > value ? seekable : value;
40816        };
40817        _this.calcMaxValue = function (value, seekable) {
40818            return seekable && seekable < value ? seekable : value;
40819        };
40820        _this.onMouseDown = function (event) {
40821            if (event.button !== MouseButtons.LEFT) {
40822                return;
40823            }
40824            var vertical = _this.props.vertical;
40825            var position = getMousePosition(vertical, event);
40826            if (isEventFromHandle(event, _this.handlesRefs)) {
40827                var handlePosition = getHandleCenterPosition(vertical, event.target);
40828                _this.dragOffset = position - handlePosition;
40829                position = handlePosition;
40830            }
40831            else {
40832                _this.dragOffset = 0;
40833            }
40834            _this.onStart(position);
40835            _this.addDocumentMouseEvents();
40836            killEvent(event);
40837        };
40838        _this.onTouchStart = function (event) {
40839            if (isNotCorrectTouchEvent(event)) {
40840                return;
40841            }
40842            var vertical = _this.props.vertical;
40843            var position = getTouchPosition(vertical, event);
40844            if (isEventFromHandle(event, _this.handlesRefs)) {
40845                var handlePosition = getHandleCenterPosition(vertical, event.target);
40846                _this.dragOffset = position - handlePosition;
40847                position = handlePosition;
40848            }
40849            else {
40850                _this.dragOffset = 0;
40851            }
40852            _this.onStart(position);
40853            _this.addDocumentTouchEvents();
40854            killEvent(event);
40855        };
40856        _this.onDocumentMouseMove = function (event) {
40857            if (!_this.sliderRef) {
40858                _this.onEnd();
40859                return;
40860            }
40861            var position = getMousePosition(_this.props.vertical, event);
40862            _this.onMove(position - _this.dragOffset);
40863            killEvent(event);
40864        };
40865        _this.onSliderMouseMove = function (event) {
40866            if (!_this.sliderRef) {
40867                _this.onEnd();
40868                return;
40869            }
40870            var position = getMousePosition(_this.props.vertical, event);
40871            _this.onHover(position - _this.dragOffset);
40872            killEvent(event);
40873        };
40874        _this.onSliderMouseLeave = function () {
40875            _this.setState({
40876                toolTipDisplay: _this.state.dragging,
40877            });
40878        };
40879        _this.onTouchMove = function (event) {
40880            if (!_this.sliderRef
40881                || isNotCorrectTouchEvent(event)) {
40882                _this.onEnd();
40883                return;
40884            }
40885            var position = getTouchPosition(_this.props.vertical, event);
40886            _this.onMove(position - _this.dragOffset);
40887            killEvent(event);
40888        };
40889        _this.onEventEnd = function () {
40890            _this.removeDocumentEvents();
40891            _this.onEnd();
40892            _this.props.onAfterChange(_this.getValue());
40893        };
40894        return _this;
40895    }
40896    AbstractSlider.prototype.componentWillUnmount = function () {
40897        this.removeDocumentEvents();
40898        this.removeElementEvents();
40899    };
40900    AbstractSlider.prototype.renderBase = function (tracks, handles) {
40901        var _a;
40902        var _b = this.props, min = _b.min, max = _b.max, step = _b.step, marks = _b.marks, dots = _b.dots, included = _b.included, vertical = _b.vertical, disabled = _b.disabled, className = _b.className, classesPrefix = _b.classesPrefix, children = _b.children, minSeekable = _b.minSeekable, maxSeekable = _b.maxSeekable;
40903        var lowerBound = this.getLowerBound();
40904        var upperBound = this.getUpperBound();
40905        var classes = classJoin((_a = {},
40906            _a[classesPrefix + 'with-marks'] = Object.keys(marks).length,
40907            _a[classesPrefix + 'vertical'] = vertical,
40908            _a[classesPrefix + 'disabled'] = disabled,
40909            _a[classesPrefix + 'minSeekable'] = minSeekable && (minSeekable > min),
40910            _a[classesPrefix + 'maxSeekable'] = maxSeekable && (maxSeekable < max),
40911            _a), [className]);
40912        var unSeekableStyles = function () {
40913            var marginLeft = minSeekable && (minSeekable > min) ? ((minSeekable - min) / (max - min)) * 100 : 0;
40914            var marginRight = maxSeekable && (maxSeekable < max) ? ((max - maxSeekable) / (max - min)) * 100 : 0;
40915            var scrubberWidth = 100 - (marginRight + marginLeft);
40916            return {
40917                margin: "0 " + marginRight + "% 0 " + marginLeft + "%",
40918                width: scrubberWidth + "%",
40919            };
40920        };
40921        var maxValue = this.calcMaxValue(max, maxSeekable);
40922        var minValue = this.calcMinValue(min, minSeekable);
40923        return (Object(preact_modulebabel_target_legacy["h"])("div", { class: 'slider-container' },
40924            Object(preact_modulebabel_target_legacy["h"])("div", { class: classes, ref: this.saveSlider, onTouchStart: disabled ? noop : this.onTouchStart, onMouseDown: disabled ? noop : this.onMouseDown, onMouseMove: disabled ? noop : this.onSliderMouseMove, onMouseLeave: disabled ? noop : this.onSliderMouseLeave, style: unSeekableStyles() },
40925                Object(preact_modulebabel_target_legacy["h"])("div", { class: classesPrefix + 'rail' }),
40926                tracks,
40927                Object(preact_modulebabel_target_legacy["h"])(Steps, { vertical: vertical, marks: marks, dots: dots, step: step, included: included, lowerBound: lowerBound, upperBound: upperBound, max: maxValue, min: minValue, classesPrefix: classesPrefix }),
40928                handles,
40929                Object(preact_modulebabel_target_legacy["h"])(Marks, { vertical: vertical, marks: marks, included: included, lowerBound: lowerBound, upperBound: upperBound, max: maxValue, min: minValue, classesPrefix: classesPrefix }),
40930                children,
40931                this.state.toolTipDisplay &&
40932                    Object(preact_modulebabel_target_legacy["h"])("span", { class: classesPrefix + "tip\n\t\t\t\t\t\t\t" + classesPrefix + "tip-dragging-" + this.state.dragging + "\n\t\t\t\t\t\t\t" + classesPrefix + "tip-display-" + true, style: { left: this.calcOffset(this.state.toolTipValue) + "%" } },
40933                        formatTime(this.state.toolTipValue | 0),
40934                        !this.state.dragging && Object(preact_modulebabel_target_legacy["h"])("span", { className: "tip-indicator" })))));
40935    };
40936    AbstractSlider.prototype.getSliderStart = function () {
40937        var slider = this.sliderRef;
40938        if (!slider) {
40939            return 0;
40940        }
40941        var rect = slider.getBoundingClientRect();
40942        return (this.props.vertical
40943            ? rect.top
40944            : rect.left);
40945    };
40946    AbstractSlider.prototype.getSliderLength = function () {
40947        var slider = this.sliderRef;
40948        if (!slider) {
40949            return 0;
40950        }
40951        return (this.props.vertical
40952            ? slider.clientHeight
40953            : slider.clientWidth);
40954    };
40955    AbstractSlider.prototype.calcValue = function (offset) {
40956        var _a = this.props, vertical = _a.vertical, min = _a.min, max = _a.max, minSeekable = _a.minSeekable, maxSeekable = _a.maxSeekable;
40957        var minValue = this.calcMinValue(min, minSeekable);
40958        var maxValue = this.calcMaxValue(max, maxSeekable);
40959        var ratio = Math.abs(Math.max(offset, 0) / this.getSliderLength());
40960        var value = (vertical
40961            ? ((1 - ratio) * (maxValue - minValue) + minValue)
40962            : (ratio * (maxValue - minValue) + minValue));
40963        return maxSeekable ? value <= maxSeekable ? value : maxSeekable : value;
40964    };
40965    AbstractSlider.prototype.calcValueByPos = function (position) {
40966        var pixelOffset = position - this.getSliderStart();
40967        var nextValue = this.clampAlignValue(this.calcValue(pixelOffset));
40968        return nextValue;
40969    };
40970    AbstractSlider.prototype.calcOffset = function (value) {
40971        var _a = this.props, min = _a.min, max = _a.max, minSeekable = _a.minSeekable, maxSeekable = _a.maxSeekable;
40972        var minValue = this.calcMinValue(min, minSeekable);
40973        var maxValue = this.calcMaxValue(max, maxSeekable);
40974        var ratio = (value - minValue) / (maxValue - minValue);
40975        return ratio * 100;
40976    };
40977    AbstractSlider.prototype.addDocumentMouseEvents = function () {
40978        document.addEventListener('mousemove', this.onDocumentMouseMove);
40979        document.addEventListener('mouseup', this.onEventEnd);
40980    };
40981    AbstractSlider.prototype.addDocumentTouchEvents = function () {
40982        document.addEventListener('touchmove', this.onTouchMove);
40983        document.addEventListener('touchend', this.onEventEnd);
40984    };
40985    AbstractSlider.prototype.removeDocumentEvents = function () {
40986        document.removeEventListener('mousemove', this.onDocumentMouseMove);
40987        document.removeEventListener('mouseup', this.onEventEnd);
40988        document.removeEventListener('touchmove', this.onTouchMove);
40989        document.removeEventListener('touchend', this.onEventEnd);
40990    };
40991    AbstractSlider.prototype.removeElementEvents = function () {
40992        var slider = this.sliderRef;
40993        if (slider) {
40994            slider.removeEventListener('touchstart', this.onTouchStart);
40995            slider.removeEventListener('mousedown', this.onMouseDown);
40996            slider.removeEventListener('mousemove', this.onSliderMouseMove);
40997            slider.removeEventListener('mouseleave', this.onSliderMouseLeave);
40998        }
40999    };
41000    AbstractSlider.defaultProps = {
41001        min: 0,
41002        max: 100,
41003        step: 1,
41004        marks: {},
41005        dots: false,
41006        included: true,
41007        vertical: false,
41008        disabled: false,
41009        className: 'range-slider',
41010        classesPrefix: '',
41011        onBeforeChange: noop,
41012        onChange: noop,
41013        onAfterChange: noop,
41014        tipFormatter: String,
41015        minSeekable: undefined,
41016        maxSeekable: undefined,
41017    };
41018    AbstractSlider.getDerivedStateFromProps = function (_props, _state) { return ({}); };
41019    return AbstractSlider;
41020}(preact_modulebabel_target_legacy["Component"]));
41021
41022//# sourceMappingURL=AbstractSlider.js.map
41023// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/Handle.js?babel-target=legacy
41024
41025
41026
41027var Handlebabel_target_legacy_Handle = (function (_super) {
41028    __extends(Handle, _super);
41029    function Handle() {
41030        var _this = _super !== null && _super.apply(this, arguments) || this;
41031        _this.saveElement = function (element) {
41032            _this.elementRef = element;
41033        };
41034        return _this;
41035    }
41036    Handle.prototype.render = function (_a) {
41037        var min = _a.min, max = _a.max, value = _a.value, vertical = _a.vertical, disabled = _a.disabled, dragging = _a.dragging, index = _a.index, offset = _a.offset, classesPrefix = _a.classesPrefix;
41038        var _b;
41039        var style = (vertical
41040            ? {
41041                bottom: offset + '%',
41042            }
41043            : {
41044                left: offset + '%',
41045            });
41046        if (dragging && this.elementRef) {
41047            this.elementRef.focus();
41048        }
41049        var classes = classJoin((_b = {},
41050            _b[classesPrefix + 'dragging'] = dragging,
41051            _b), [
41052            classesPrefix + 'handle',
41053            classesPrefix + "handle-" + index,
41054        ]);
41055        return (Object(preact_modulebabel_target_legacy["h"])("div", { class: classes, style: style, role: "slider", tabIndex: disabled ? undefined : 0, "aria-orientation": vertical ? 'vertical' : 'horizontal', "aria-disabled": String(disabled), "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, ref: this.saveElement }));
41056    };
41057    return Handle;
41058}(preact_modulebabel_target_legacy["Component"]));
41059
41060//# sourceMappingURL=Handle.js.map
41061// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/Track.js?babel-target=legacy
41062
41063
41064var Trackbabel_target_legacy_Track = (function (_super) {
41065    __extends(Track, _super);
41066    function Track() {
41067        return _super !== null && _super.apply(this, arguments) || this;
41068    }
41069    Track.prototype.render = function (_a) {
41070        var vertical = _a.vertical, included = _a.included, index = _a.index, offset = _a.offset, length = _a.length, classesPrefix = _a.classesPrefix;
41071        var style = {};
41072        if (!included) {
41073            style.visibility = 'hidden';
41074        }
41075        if (vertical) {
41076            style.bottom = offset + '%';
41077            style.height = length + '%';
41078        }
41079        else {
41080            style.left = offset + '%';
41081            style.width = length + '%';
41082        }
41083        return (Object(preact_modulebabel_target_legacy["h"])("div", { class: classesPrefix + "track " + classesPrefix + "track-" + index, style: style }));
41084    };
41085    return Track;
41086}(preact_modulebabel_target_legacy["Component"]));
41087
41088//# sourceMappingURL=Track.js.map
41089// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/Slider.js?babel-target=legacy
41090
41091
41092
41093
41094
41095
41096var Sliderbabel_target_legacy_Slider = (function (_super) {
41097    __extends(Slider, _super);
41098    function Slider(props) {
41099        var _this = _super.call(this, props) || this;
41100        var value = ((props.value != null)
41101            ? props.value
41102            : ((props.defaultValue != null)
41103                ? props.defaultValue
41104                : props.min));
41105        _this.state = {
41106            dragging: false,
41107            value: _this.clampAlignValue(value),
41108            toolTipDisplay: false,
41109            toolTipValue: _this.clampAlignValue(value),
41110        };
41111        return _this;
41112    }
41113    Slider.prototype.render = function (_a, _b) {
41114        var min = _a.min, max = _a.max, vertical = _a.vertical, included = _a.included, disabled = _a.disabled, classesPrefix = _a.classesPrefix;
41115        var value = _b.value, dragging = _b.dragging;
41116        var offset = this.calcOffset(value);
41117        var handle = (Object(preact_modulebabel_target_legacy["h"])(Handlebabel_target_legacy_Handle, { vertical: vertical, disabled: disabled, dragging: dragging, min: min, max: max, value: value, index: 1, offset: offset, classesPrefix: classesPrefix, ref: this.saveHandle, key: 'handle-0' }));
41118        var track = (Object(preact_modulebabel_target_legacy["h"])(Trackbabel_target_legacy_Track, { vertical: vertical, included: included, index: 1, offset: 0, length: offset, classesPrefix: classesPrefix, key: 'track-0' }));
41119        return this.renderBase(track, handle);
41120    };
41121    Slider.prototype.getValue = function () {
41122        return this.state.value;
41123    };
41124    Slider.prototype.getLowerBound = function () {
41125        return this.props.min;
41126    };
41127    Slider.prototype.getUpperBound = function () {
41128        return this.state.value;
41129    };
41130    Slider.prototype.onChange = function (state) {
41131        var _this = this;
41132        var props = this.props;
41133        var isControlled = ('value' in props);
41134        var hasValue = function (s) {
41135            return typeof s.value !== 'undefined';
41136        };
41137        if (isControlled && hasValue(state)) {
41138            props.onChange(state.value);
41139            return;
41140        }
41141        this.setState(state, function () { return props.onChange(_this.state.value); });
41142    };
41143    Slider.prototype.onStart = function (position) {
41144        this.setState({ dragging: true });
41145        var prevValue = this.getValue();
41146        this.props.onBeforeChange(prevValue);
41147        var value = this.calcValueByPos(position);
41148        if (value === prevValue) {
41149            return;
41150        }
41151        this.setState({
41152            toolTipDisplay: true,
41153            toolTipValue: value,
41154        });
41155        this.onChange({ value: value });
41156    };
41157    Slider.prototype.onMove = function (position) {
41158        var value = this.calcValueByPos(position);
41159        var oldValue = this.state.value;
41160        if (value === oldValue) {
41161            return;
41162        }
41163        this.setState({
41164            toolTipDisplay: true,
41165            toolTipValue: value,
41166        });
41167        this.onChange({ value: value });
41168    };
41169    Slider.prototype.onHover = function (position) {
41170        var value = this.calcValueByPos(position);
41171        var oldValue = this.state.value;
41172        if (value === oldValue) {
41173            return;
41174        }
41175        this.setState({
41176            toolTipDisplay: true,
41177            toolTipValue: value,
41178        });
41179        if (this.state.dragging) {
41180            this.onChange({ value: value });
41181        }
41182    };
41183    Slider.prototype.onEnd = function () {
41184        this.setState({
41185            toolTipDisplay: false,
41186            dragging: false,
41187        });
41188    };
41189    Slider.prototype.clampAlignValue = function (value, nextProps) {
41190        if (nextProps === void 0) { nextProps = {}; }
41191        var mergedProps = __assign({}, this.props, nextProps);
41192        return alignValue(clampValue(value, mergedProps), mergedProps);
41193    };
41194    Slider.getDerivedStateFromProps = function (props, state) {
41195        var nextProps = props;
41196        var prevState = state;
41197        if (!(('value' in nextProps)
41198            || ('min' in nextProps)
41199            || ('max' in nextProps))) {
41200            return {};
41201        }
41202        var prevValue = prevState.value;
41203        var value = ((nextProps.value == null)
41204            ? prevValue
41205            : nextProps.value);
41206        var nextValue = alignValue(clampValue(value, nextProps), nextProps);
41207        if (nextValue === prevValue) {
41208            return {};
41209        }
41210        if (isValueOutOfRange(value, nextProps)) {
41211            nextProps.onChange(nextValue);
41212        }
41213        return { value: nextValue };
41214    };
41215    return Slider;
41216}(AbstractSliderbabel_target_legacy_AbstractSlider));
41217
41218//# sourceMappingURL=Slider.js.map
41219// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm/components/MultiSlider.js?babel-target=legacy
41220
41221
41222
41223
41224
41225
41226var MultiSliderbabel_target_legacy_MultiSlider = (function (_super) {
41227    __extends(MultiSlider, _super);
41228    function MultiSlider(props) {
41229        var _this = _super.call(this, props) || this;
41230        var count = props.count, min = props.min, max = props.max;
41231        var initialValue = Array(count + 1).slice().map(function () { return min; });
41232        var values = ((props.value != null)
41233            ? props.value
41234            : ((props.defaultValue != null)
41235                ? props.defaultValue
41236                : initialValue));
41237        var bounds = values.map(function (value) { return _this.clampAlignValue(value); });
41238        var recent = ((bounds[0] === max)
41239            ? 0
41240            : bounds.length - 1);
41241        _this.state = {
41242            handle: null,
41243            recent: recent,
41244            bounds: bounds,
41245            dragging: false,
41246            value: 0,
41247            toolTipDisplay: false,
41248            toolTipValue: 0,
41249        };
41250        return _this;
41251    }
41252    MultiSlider.prototype.render = function (_a, _b) {
41253        var _this = this;
41254        var min = _a.min, max = _a.max, vertical = _a.vertical, included = _a.included, disabled = _a.disabled, classesPrefix = _a.classesPrefix;
41255        var handle = _b.handle, bounds = _b.bounds;
41256        var offsets = bounds.map(function (value) { return _this.calcOffset(value); });
41257        var handles = bounds.map(function (value, index) { return (Object(preact_modulebabel_target_legacy["h"])(Handlebabel_target_legacy_Handle, { vertical: vertical, disabled: disabled, dragging: handle === index, min: min, max: max, value: value, index: index + 1, offset: offsets[index], classesPrefix: classesPrefix, ref: function (component) { return _this.saveHandle(component, index); }, key: "handle-" + index })); });
41258        var tracks = bounds.slice(0, -1).map(function (_value, index) {
41259            var nextIndex = index + 1;
41260            return (Object(preact_modulebabel_target_legacy["h"])(Trackbabel_target_legacy_Track, { vertical: vertical, included: included, index: nextIndex, offset: offsets[index], length: offsets[nextIndex] - offsets[index], classesPrefix: classesPrefix, key: "track-" + index }));
41261        });
41262        return this.renderBase(tracks, handles);
41263    };
41264    MultiSlider.prototype.getValue = function () {
41265        return this.state.bounds;
41266    };
41267    MultiSlider.prototype.getLowerBound = function () {
41268        return this.state.bounds[0];
41269    };
41270    MultiSlider.prototype.getUpperBound = function () {
41271        var bounds = this.state.bounds;
41272        return bounds[bounds.length - 1];
41273    };
41274    MultiSlider.prototype.onChange = function (state) {
41275        var props = this.props;
41276        var isNotControlled = !('value' in props);
41277        var hasHandle = function (s) {
41278            return typeof s.handle !== 'undefined';
41279        };
41280        if (isNotControlled) {
41281            this.setState(state);
41282        }
41283        else if (hasHandle(state)) {
41284            this.setState({ handle: state.handle });
41285        }
41286        var data = __assign({}, this.state, state);
41287        props.onChange(data.bounds);
41288    };
41289    MultiSlider.prototype.onStart = function (position) {
41290        var props = this.props;
41291        var state = this.state;
41292        var bounds = this.getValue();
41293        props.onBeforeChange(bounds);
41294        var value = this.calcValueByPos(position);
41295        var closestBound = this.getClosestBound(value);
41296        var boundNeedMoving = this.getBoundNeedMoving(value, closestBound);
41297        this.setState({
41298            handle: boundNeedMoving,
41299            recent: boundNeedMoving,
41300        });
41301        var prevValue = bounds[boundNeedMoving];
41302        if (value === prevValue) {
41303            return;
41304        }
41305        var nextBounds = state.bounds.slice();
41306        nextBounds[boundNeedMoving] = value;
41307        this.onChange({ bounds: nextBounds });
41308    };
41309    MultiSlider.prototype.onHover = function (position) {
41310        var value = this.calcValueByPos(position);
41311        this.setState({
41312            toolTipValue: value,
41313            toolTipDisplay: false,
41314        });
41315    };
41316    MultiSlider.prototype.onMove = function (position) {
41317        var props = this.props;
41318        var state = this.state;
41319        if (state.handle == null) {
41320            return;
41321        }
41322        var value = this.calcValueByPos(position);
41323        var oldValue = state.bounds[state.handle];
41324        if (value === oldValue) {
41325            return;
41326        }
41327        var nextBounds = state.bounds.slice();
41328        nextBounds[state.handle] = value;
41329        var nextHandle = state.handle;
41330        if (props.pushable !== false) {
41331            var originalValue = state.bounds[nextHandle];
41332            this.pushSurroundingHandles(nextBounds, nextHandle, originalValue);
41333        }
41334        else if (props.allowCross) {
41335            nextBounds.sort(function (a, b) { return a - b; });
41336            nextHandle = nextBounds.indexOf(value);
41337        }
41338        this.onChange({
41339            handle: nextHandle,
41340            bounds: nextBounds,
41341        });
41342    };
41343    MultiSlider.prototype.onEnd = function () {
41344        this.setState({ handle: null });
41345    };
41346    MultiSlider.prototype.clampAlignValue = function (value, nextProps) {
41347        if (nextProps === void 0) { nextProps = {}; }
41348        var mergedProps = __assign({}, this.props, nextProps);
41349        return alignValue(this.clampValueToSurroundingHandles(clampValue(value, mergedProps), mergedProps), mergedProps);
41350    };
41351    MultiSlider.prototype.getClosestBound = function (value) {
41352        var bounds = this.state.bounds;
41353        var closestBound = 0;
41354        for (var i = 1, n = bounds.length - 1; i < n; i++) {
41355            if (value > bounds[i]) {
41356                closestBound = i;
41357            }
41358        }
41359        if (Math.abs(bounds[closestBound + 1] - value)
41360            < Math.abs(bounds[closestBound] - value)) {
41361            closestBound += 1;
41362        }
41363        return closestBound;
41364    };
41365    MultiSlider.prototype.getBoundNeedMoving = function (value, closestBound) {
41366        var _a = this.state, bounds = _a.bounds, recent = _a.recent;
41367        var boundNeedMoving = closestBound;
41368        var nextBound = closestBound + 1;
41369        var atTheSamePoint = (bounds[nextBound] === bounds[closestBound]);
41370        if (atTheSamePoint) {
41371            if (bounds[recent] === bounds[closestBound]) {
41372                boundNeedMoving = recent;
41373            }
41374            else {
41375                boundNeedMoving = nextBound;
41376            }
41377            if (value !== bounds[nextBound]) {
41378                boundNeedMoving = ((value < bounds[nextBound])
41379                    ? closestBound
41380                    : nextBound);
41381            }
41382        }
41383        return boundNeedMoving;
41384    };
41385    MultiSlider.prototype.pushSurroundingHandles = function (bounds, handle, originalValue) {
41386        var threshold = Number(this.props.pushable);
41387        var value = bounds[handle];
41388        var direction = 0;
41389        if ((bounds[handle + 1] - value) < threshold) {
41390            direction = +1;
41391        }
41392        if ((value - bounds[handle - 1]) < threshold) {
41393            direction = -1;
41394        }
41395        if (direction === 0) {
41396            return;
41397        }
41398        var nextHandle = handle + direction;
41399        var diffToNext = direction * (bounds[nextHandle] - value);
41400        if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
41401            bounds[handle] = originalValue;
41402        }
41403    };
41404    MultiSlider.prototype.pushHandle = function (bounds, handle, direction, amount) {
41405        var originalValue = bounds[handle];
41406        var currentValue = bounds[handle];
41407        while ((direction * (currentValue - originalValue)) < amount) {
41408            if (!this.pushHandleOnePoint(bounds, handle, direction)) {
41409                bounds[handle] = originalValue;
41410                return false;
41411            }
41412            currentValue = bounds[handle];
41413        }
41414        return true;
41415    };
41416    MultiSlider.prototype.pushHandleOnePoint = function (bounds, handle, direction) {
41417        var points = this.getPoints();
41418        var pointIndex = points.indexOf(bounds[handle]);
41419        var nextPointIndex = pointIndex + direction;
41420        if ((nextPointIndex >= points.length)
41421            || (nextPointIndex < 0)) {
41422            return false;
41423        }
41424        var nextHandle = handle + direction;
41425        var nextValue = points[nextPointIndex];
41426        var threshold = Number(this.props.pushable);
41427        var diffToNext = direction * (bounds[nextHandle] - nextValue);
41428        if (!this.pushHandle(bounds, nextHandle, direction, threshold - diffToNext)) {
41429            return false;
41430        }
41431        bounds[handle] = nextValue;
41432        return true;
41433    };
41434    MultiSlider.prototype.getPoints = function () {
41435        var _a = this.props, marks = _a.marks, step = _a.step, min = _a.min, max = _a.max;
41436        var cache = this.pointsCache;
41437        if (!cache
41438            || (cache.marks !== marks)
41439            || (cache.step !== step)) {
41440            var pointsObject = __assign({}, marks);
41441            if ((step != null)
41442                && (step > 0)) {
41443                for (var point = min; point <= max; point += step) {
41444                    pointsObject[point] = String(point);
41445                }
41446            }
41447            var points = Object.keys(pointsObject).map(Number);
41448            points.sort(function (a, b) { return a - b; });
41449            this.pointsCache = { marks: marks, step: step, points: points };
41450        }
41451        return this.pointsCache.points;
41452    };
41453    MultiSlider.prototype.clampValueToSurroundingHandles = function (value, props) {
41454        return clampValueToSurroundingHandles(value, props, this.state);
41455    };
41456    MultiSlider.defaultProps = __assign({}, AbstractSliderbabel_target_legacy_AbstractSlider.defaultProps, { count: 1, allowCross: true, pushable: false });
41457    MultiSlider.getDerivedStateFromProps = function (nextProps, prevState) {
41458        if (!(('value' in nextProps)
41459            || ('min' in nextProps)
41460            || ('max' in nextProps))) {
41461            return {};
41462        }
41463        var props = nextProps;
41464        var state = prevState;
41465        var bounds = state.bounds;
41466        var value = props.value || bounds;
41467        var nextBounds = value.map(function (singleValue) { return alignValue(clampValueToSurroundingHandles(clampValue(singleValue, props), props, state), props); });
41468        if ((nextBounds.length === bounds.length)
41469            && nextBounds.every(function (singleValue, index) { return (singleValue === bounds[index]); })) {
41470            return {};
41471        }
41472        if (bounds.some(function (singleValue) { return isValueOutOfRange(singleValue, props); })) {
41473            props.onChange(nextBounds);
41474        }
41475        return { bounds: nextBounds };
41476    };
41477    return MultiSlider;
41478}(AbstractSliderbabel_target_legacy_AbstractSlider));
41479
41480//# sourceMappingURL=MultiSlider.js.map
41481// CONCATENATED MODULE: ./node_modules/@aerian/preact-range-slider/es5-esm?babel-target=legacy
41482
41483
41484//# sourceMappingURL=index.js.map
41485// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
41486var hooks_modulebabel_target_legacy = __webpack_require__(4);
41487
41488// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
41489var es_array_concatbabel_target_legacy = __webpack_require__(75);
41490
41491// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
41492var es_array_mapbabel_target_legacy = __webpack_require__(77);
41493
41494// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js?babel-target=legacy
41495var es_array_slicebabel_target_legacy = __webpack_require__(177);
41496
41497// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.from-code-point.js?babel-target=legacy
41498var es_string_from_code_pointbabel_target_legacy = __webpack_require__(460);
41499
41500// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
41501var toConsumableArraybabel_target_legacy = __webpack_require__(37);
41502var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
41503
41504// CONCATENATED MODULE: ./src/lib/number.ts?babel-target=legacy
41505
41506
41507
41508
41509
41510var numberbabel_target_legacy_ONEHOUR = 3600;
41511var ONEWEEK = 604800;
41512var numberbabel_target_legacy_zeroPad = function zeroPad(num) {
41513  return num >= 100 ? "".concat(Math.floor(num)) : "00".concat(Math.floor(num)).slice(-2);
41514};
41515var numberbabel_target_legacy_formatTime = function formatTime(seconds) {
41516  if (isNaN(seconds) || seconds === Infinity) {
41517    return "";
41518  }
41519
41520  if (seconds > ONEWEEK) {
41521    var date = new Date(seconds * 1000);
41522    return "".concat(numberbabel_target_legacy_zeroPad(date.getHours()), ":").concat(numberbabel_target_legacy_zeroPad(date.getMinutes()), ":").concat(numberbabel_target_legacy_zeroPad(date.getSeconds()));
41523  }
41524
41525  var sign = "";
41526
41527  if (seconds < 0) {
41528    seconds = Math.abs(seconds);
41529    sign = "-";
41530  }
41531
41532  if (seconds < numberbabel_target_legacy_ONEHOUR) {
41533    return "".concat(sign + numberbabel_target_legacy_zeroPad(seconds / 60), ":").concat(numberbabel_target_legacy_zeroPad(seconds % 60));
41534  }
41535
41536  var formatted = "".concat(Math.floor(seconds / numberbabel_target_legacy_ONEHOUR), ":").concat(numberbabel_target_legacy_zeroPad(seconds % numberbabel_target_legacy_ONEHOUR / 60), ":").concat(numberbabel_target_legacy_zeroPad(seconds % 60));
41537  return "".concat(sign).concat(formatted);
41538};
41539var OFFSET = 127397;
41540var numberbabel_target_legacy_flag = function flag(countryCode) {
41541  return /^[A-Z]{2}$/.test(countryCode) ? String.fromCodePoint.apply(String, toConsumableArraybabel_target_legacy_default()(toConsumableArraybabel_target_legacy_default()(countryCode).map(function (c) {
41542    return c.charCodeAt(0) + OFFSET;
41543  }))) : "";
41544};
41545// EXTERNAL MODULE: ./src/components/Scrubber/Slider.scss
41546var Scrubber_Slider = __webpack_require__(768);
41547
41548// EXTERNAL MODULE: ./src/components/Scrubber/Scrubber.module.scss
41549var Scrubber_module = __webpack_require__(299);
41550
41551// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
41552var classnames_babel_target_legacy = __webpack_require__(27);
41553var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
41554
41555// EXTERNAL MODULE: ./src/components/LiveIcon/index.ts?babel-target=legacy + 1 modules
41556var LiveIconbabel_target_legacy = __webpack_require__(305);
41557
41558// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
41559var es_babel_target_legacy = __webpack_require__(25);
41560
41561// CONCATENATED MODULE: ./src/components/Scrubber/Scrubber.tsx?babel-target=legacy
41562
41563
41564
41565
41566
41567
41568
41569
41570
41571
41572
41573var Scrubberbabel_target_legacy_Scrubber = function Scrubber(_ref) {
41574  var secondaryColor = _ref.secondaryColor,
41575      min = _ref.min,
41576      max = _ref.max,
41577      value = _ref.value,
41578      disabled = _ref.disabled,
41579      onValueChange = _ref.onValueChange,
41580      minSeekable = _ref.minSeekable,
41581      maxSeekable = _ref.maxSeekable,
41582      live = _ref.live,
41583      darkTheme = _ref.darkTheme;
41584
41585  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
41586      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
41587      sliderValue = _useState2[0],
41588      setSliderValue = _useState2[1];
41589
41590  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
41591      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
41592      scrubbing = _useState4[0],
41593      setScrubbing = _useState4[1];
41594
41595  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41596      t = _useTranslation.t;
41597
41598  var startDrag = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
41599    setScrubbing(true);
41600  }, []);
41601  var endDrag = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
41602    setScrubbing(false);
41603    onValueChange(sliderValue);
41604  }, [sliderValue, onValueChange]);
41605
41606  var onChange = function onChange(val) {
41607    setSliderValue(val);
41608  };
41609
41610  var displayValue = scrubbing ? sliderValue : value;
41611
41612  if (disabled) {
41613    maxSeekable = displayValue;
41614  }
41615
41616  return Object(preact_modulebabel_target_legacy["h"])("div", {
41617    className: classnames_babel_target_legacy_default()(Scrubber_module["wrap"], definePropertybabel_target_legacy_default()({}, Scrubber_module["dark"], darkTheme)),
41618    style: {
41619      color: secondaryColor
41620    }
41621  }, Object(preact_modulebabel_target_legacy["h"])(Sliderbabel_target_legacy_Slider, {
41622    min: min,
41623    max: max,
41624    defaultValue: displayValue,
41625    value: displayValue,
41626    disabled: disabled,
41627    onChange: onChange,
41628    onBeforeChange: startDrag,
41629    onAfterChange: endDrag,
41630    tipFormatter: numberbabel_target_legacy_formatTime,
41631    minSeekable: minSeekable,
41632    maxSeekable: maxSeekable
41633  }), Object(preact_modulebabel_target_legacy["h"])("div", {
41634    className: Scrubber_module["labels"],
41635    style: {
41636      color: secondaryColor
41637    }
41638  }, Object(preact_modulebabel_target_legacy["h"])("label", null, !disabled && numberbabel_target_legacy_formatTime(
41638displayValue)), Object(preact_modulebabel_target_legacy["h"])("label", null, live ? [Object(preact_modulebabel_target_legacy["h"])(LiveIconbabel_target_legacy["a" /* LiveIcon */], {
41639    animate: true,
41640    key: "icon"
41641  }), t("LABEL_LIVE")] : numberbabel_target_legacy_formatTime(max))));
41642};
41643// CONCATENATED MODULE: ./src/components/Scrubber/index.ts?babel-target=legacy
41644
41645
41646/***/ }),
41647/* 783 */,
41648/* 784 */
41649/***/ (function(module, __webpack_exports__, __webpack_require__) {
41650
41651"use strict";
41652
41653// EXPORTS
41654__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ TransportControlsbabel_target_legacy_TransportControls; });
41655
41656// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
41657var definePropertybabel_target_legacy = __webpack_require__(15);
41658var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
41659
41660// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
41661var preact_modulebabel_target_legacy = __webpack_require__(1);
41662
41663// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
41664var classnames_babel_target_legacy = __webpack_require__(27);
41665var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
41666
41667// EXTERNAL MODULE: ./src/components/PlayButton/index.ts?babel-target=legacy + 1 modules
41668var PlayButtonbabel_target_legacy = __webpack_require__(433);
41669
41670// EXTERNAL MODULE: ./src/components/Scrubber/index.ts?babel-target=legacy + 13 modules
41671var Scrubberbabel_target_legacy = __webpack_require__(782);
41672
41673// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
41674var extendsbabel_target_legacy = __webpack_require__(50);
41675var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
41676
41677// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
41678var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
41679var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
41680
41681// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
41682var slicedToArraybabel_target_legacy = __webpack_require__(8);
41683var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
41684
41685// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
41686var hooks_modulebabel_target_legacy = __webpack_require__(4);
41687
41688// CONCATENATED MODULE: ./src/components/AnimatingButton/AnimatingButton.tsx?babel-target=legacy
41689
41690
41691
41692
41693
41694
41695
41696var AnimatingButtonbabel_target_legacy_AnimatingButton = function AnimatingButton(_ref) {
41697  var _ref$mouseDownClassNa = _ref.mouseDownClassName,
41698      mouseDownClassName = _ref$mouseDownClassNa === void 0 ? "mousedown" : _ref$mouseDownClassNa,
41699      className = _ref.className,
41700      children = _ref.children,
41701      delay = _ref.delay,
41702      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["mouseDownClassName", "className", "children", "delay"]);
41703
41704  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
41705      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
41706      mouseIsDown = _useState2[0],
41707      setMouseIsDown = _useState2[1];
41708
41709  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(undefined),
41710      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
41711      timeout = _useState4[0],
41712      setTimeout = _useState4[1];
41713
41714  var mousedown = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
41715    setMouseIsDown(true);
41716  }, []);
41717  var mouseup = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
41718    if (timeout) {
41719      window.clearTimeout(timeout);
41720    }
41721
41722    if (delay) {
41723      setTimeout(window.setTimeout(function () {
41724        setMouseIsDown(false);
41725        setTimeout(undefined);
41726      }, delay));
41727      return;
41728    }
41729
41730    setMouseIsDown(false);
41731  }, [timeout, delay]);
41732  return Object(preact_modulebabel_target_legacy["h"])("button", extendsbabel_target_legacy_default()({}, props, {
41733    onMouseDown: mousedown,
41734    onTouchStart: mousedown,
41735    onMouseUp: mouseup,
41736    onMouseLeave: mouseup,
41737    onTouchCancel: mouseup,
41738    onTouchEnd: mouseup,
41739    className: classnames_babel_target_legacy_default()(className, definePropertybabel_target_legacy_default()({}, mouseDownClassName, mouseIsDown))
41740  }), children);
41741};
41742/* harmony default export */ var AnimatingButtonbabel_target_legacy = (AnimatingButtonbabel_target_legacy_AnimatingButton);
41743// CONCATENATED MODULE: ./src/components/AnimatingButton/index.ts?babel-target=legacy
41744
41745// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
41746var RPIconbabel_target_legacy = __webpack_require__(42);
41747
41748// EXTERNAL MODULE: ./src/components/SkipBackButton/SkipBackButton.module.scss
41749var SkipBackButton_module = __webpack_require__(193);
41750var SkipBackButton_module_default = /*#__PURE__*/__webpack_require__.n(SkipBackButton_module);
41751
41752// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
41753var es_babel_target_legacy = __webpack_require__(25);
41754
41755// CONCATENATED MODULE: ./src/components/SkipBackButton/SkipBackButton.tsx?babel-target=legacy
41756
41757
41758
41759
41760
41761
41762
41763
41764
41765var SkipBackButtonbabel_target_legacy_SkipBackButton = function SkipBackButton(_ref) {
41766  var darkTheme = _ref.darkTheme,
41767      className = _ref.className,
41768      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["darkTheme", "className"]);
41769
41770  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41771      t = _useTranslation.t;
41772
41773  return Object(preact_modulebabel_target_legacy["h"])(AnimatingButtonbabel_target_legacy_AnimatingButton, extendsbabel_target_legacy_default()({}, props, {
41774    mouseDownClassName: SkipBackButton_module_default.a.rotate,
41775    className: classnames_babel_target_legacy_default()(className, SkipBackButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, SkipBackButton_module_default.a.dark, darkTheme)),
41776    "aria-label": t("ARIA_SKIP_BACK_10")
41777  }), Object(preact_modulebabel_target_legacy["h"])("picture", {
41778    className: SkipBackButton_module_default.a.arrow
41779  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41780    src: __webpack_require__(1007),
41781    colour: "currentColor"
41782  })), Object(preact_modulebabel_target_legacy["h"])("picture", {
41783    className: SkipBackButton_module_default.a.text
41784  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41785    src: __webpack_require__(1008),
41786    colour: "currentColor"
41787  })));
41788};
41789/* harmony default export */ var SkipBackButtonbabel_target_legacy = (SkipBackButtonbabel_target_legacy_SkipBackButton);
41790// CONCATENATED MODULE: ./src/components/SkipBackButton/index.ts?babel-target=legacy
41791
41792// EXTERNAL MODULE: ./src/components/SkipForwardButton/SkipForwardButton.module.scss
41793var SkipForwardButton_module = __webpack_require__(194);
41794var SkipForwardButton_module_default = /*#__PURE__*/__webpack_require__.n(SkipForwardButton_module);
41795
41796// CONCATENATED MODULE: ./src/components/SkipForwardButton/SkipForwardButton.tsx?babel-target=legacy
41797
41798
41799
41800
41801
41802
41803
41804
41805
41806var SkipForwardButtonbabel_target_legacy_SkipForwardButton = function SkipForwardButton(_ref) {
41807  var darkTheme = _ref.darkTheme,
41808      className = _ref.className,
41809      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["darkTheme", "className"]);
41810
41811  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41812      t = _useTranslation.t;
41813
41814  return Object(preact_modulebabel_target_legacy["h"])(AnimatingButtonbabel_target_legacy_AnimatingButton, extendsbabel_target_legacy_default()({}, props, {
41815    mouseDownClassName: SkipForwardButton_module_default.a.rotate,
41816    className: classnames_babel_target_legacy_default()(className, SkipForwardButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, SkipForwardButton_module_default.a.dark, darkTheme)),
41817    "aria-label": t("ARIA_SKIP_FORWARD_30")
41818  }), Object(preact_modulebabel_target_legacy["h"])("picture", {
41819    className: SkipForwardButton_module_default.a.arrow
41820  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41821    src: __webpack_require__(1009),
41822    colour: "currentColor"
41823  })), Object(preact_modulebabel_target_legacy["h"])("picture", {
41824    className: SkipForwardButton_module_default.a.text
41825  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41826    src: __webpack_require__(1010),
41827    colour: "currentColor"
41828  })));
41829};
41830/* harmony default export */ var SkipForwardButtonbabel_target_legacy = (SkipForwardButtonbabel_target_legacy_SkipForwardButton);
41831// CONCATENATED MODULE: ./src/components/SkipForwardButton/index.ts?babel-target=legacy
41832
41833// EXTERNAL MODULE: ./src/components/SkipToLiveButton/SkipToLiveButton.module.scss
41834var SkipToLiveButton_module = __webpack_require__(195);
41835var SkipToLiveButton_module_default = /*#__PURE__*/__webpack_require__.n(SkipToLiveButton_module);
41836
41837// CONCATENATED MODULE: ./src/components/SkipToLiveButton/SkipToLiveButton.tsx?babel-target=legacy
41838
41839
41840
41841
41842
41843
41844
41845
41846
41847var SkipToLiveButtonbabel_target_legacy_SkipToLiveButton = function SkipToLiveButton(_ref) {
41848  var darkTheme = _ref.darkTheme,
41849      className = _ref.className,
41850      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["darkTheme", "className"]);
41851
41852  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41853      t = _useTranslation.t;
41854
41855  return Object(preact_modulebabel_target_legacy["h"])(AnimatingButtonbabel_target_legacy_AnimatingButton, extendsbabel_target_legacy_default()({}, props, {
41856    mouseDownClassName: SkipToLiveButton_module_default.a.rotate,
41857    className: classnames_babel_target_legacy_default()(className, SkipToLiveButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, SkipToLiveButton_module_default.a.dark, darkTheme)),
41858    delay: 500,
41859    "aria-label": t("ARIA_SKIP_TO_LIVE")
41860  }), Object(preact_modulebabel_target_legacy["h"])("span", {
41861    className: SkipToLiveButton_module_default.a.arrow,
41862    "aria-hidden": "true"
41863  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41864    src: __webpack_require__(1011),
41865    colour: "currentColor"
41866  })), Object(preact_modulebabel_target_legacy["h"])("span", {
41867    className: SkipToLiveButton_module_default.a.text,
41868    "aria-hidden": "true"
41869  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41870    src: __webpack_require__(1012),
41871    colour: "currentColor"
41872  })));
41873};
41874/* harmony default export */ var SkipToLiveButtonbabel_target_legacy = (SkipToLiveButtonbabel_target_legacy_SkipToLiveButton);
41875// CONCATENATED MODULE: ./src/components/SkipToLiveButton/index.ts?babel-target=legacy
41876
41877// EXTERNAL MODULE: ./src/components/SkipToStartButton/SkipToStartButton.module.scss
41878var SkipToStartButton_module = __webpack_require__(196);
41879var SkipToStartButton_module_default = /*#__PURE__*/__webpack_require__.n(SkipToStartButton_module);
41880
41881// CONCATENATED MODULE: ./src/components/SkipToStartButton/SkipToStartButton.tsx?babel-target=legacy
41882
41883
41884
41885
41886
41887
41888
41889
41890
41891var SkipToStartButtonbabel_target_legacy_SkipToStartButton = function Ski
41891pToStartButton(_ref) {
41892  var darkTheme = _ref.darkTheme,
41893      className = _ref.className,
41894      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["darkTheme", "className"]);
41895
41896  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41897      t = _useTranslation.t;
41898
41899  return Object(preact_modulebabel_target_legacy["h"])(AnimatingButtonbabel_target_legacy_AnimatingButton, extendsbabel_target_legacy_default()({}, props, {
41900    mouseDownClassName: SkipToStartButton_module_default.a.rotate,
41901    className: classnames_babel_target_legacy_default()(className, SkipToStartButton_module_default.a.button, definePropertybabel_target_legacy_default()({}, SkipToStartButton_module_default.a.dark, darkTheme)),
41902    delay: 500,
41903    "aria-label": t("ARIA_RESTART_SHOW")
41904  }), Object(preact_modulebabel_target_legacy["h"])("span", {
41905    className: SkipToStartButton_module_default.a.arrow,
41906    "aria-hidden": "true"
41907  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41908    src: __webpack_require__(1013),
41909    colour: "currentColor"
41910  })), Object(preact_modulebabel_target_legacy["h"])("span", {
41911    className: SkipToStartButton_module_default.a.text,
41912    "aria-hidden": "true"
41913  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
41914    src: __webpack_require__(1014),
41915    colour: "currentColor"
41916  })));
41917};
41918/* harmony default export */ var SkipToStartButtonbabel_target_legacy = (SkipToStartButtonbabel_target_legacy_SkipToStartButton);
41919// CONCATENATED MODULE: ./src/components/SkipToStartButton/index.ts?babel-target=legacy
41920
41921// EXTERNAL MODULE: ./src/components/Spinner/index.ts?babel-target=legacy + 1 modules
41922var Spinnerbabel_target_legacy = __webpack_require__(236);
41923
41924// EXTERNAL MODULE: ./src/components/VolumeControl/index.ts?babel-target=legacy + 1 modules
41925var VolumeControlbabel_target_legacy = __webpack_require__(528);
41926
41927// EXTERNAL MODULE: ./src/components/TransportControls/TransportControls.module.scss
41928var TransportControls_module = __webpack_require__(91);
41929var TransportControls_module_default = /*#__PURE__*/__webpack_require__.n(TransportControls_module);
41930
41931// EXTERNAL MODULE: ./src/components/FaveButton/index.ts?babel-target=legacy + 3 modules
41932var FaveButtonbabel_target_legacy = __webpack_require__(330);
41933
41934// EXTERNAL MODULE: ./src/components/StationLogo/index.ts?babel-target=legacy + 1 modules
41935var StationLogobabel_target_legacy = __webpack_require__(529);
41936
41937// CONCATENATED MODULE: ./src/components/TransportControls/TransportControls.tsx?babel-target=legacy
41938
41939
41940
41941
41942
41943
41944
41945
41946
41947
41948
41949
41950
41951
41952
41953var TransportControlsbabel_target_legacy_TransportControls = function TransportControls(_ref) {
41954  var _classNames;
41955
41956  var darkTheme = _ref.darkTheme,
41957      live = _ref.live,
41958      seekable = _ref.seekable,
41959      paused = _ref.paused,
41960      time = _ref.time,
41961      showStart = _ref.showStart,
41962      showEnd = _ref.showEnd,
41963      start = _ref.start,
41964      end = _ref.end,
41965      requestSeek = _ref.requestSeek,
41966      stalled = _ref.stalled,
41967      showPlayButton = _ref.showPlayButton,
41968      requestPlay = _ref.requestPlay,
41969      skipBack = _ref.skipBack,
41970      skipForward = _ref.skipForward,
41971      skipToLive = _ref.skipToLive,
41972      skipToStart = _ref.skipToStart,
41973      _ref$volume = _ref.volume,
41974      volume = _ref$volume === void 0 ? 0 : _ref$volume,
41975      setVolume = _ref.setVolume,
41976      rpId = _ref.rpId,
41977      disabled = _ref.disabled,
41978      attention = _ref.attention,
41979      disablePlaybackButtons = _ref.disablePlaybackButtons,
41980      disableScrubber = _ref.disableScrubber,
41981      logo = _ref.logo,
41982      stationUrl = _ref.stationUrl,
41983      stationName = _ref.stationName;
41984  var min = typeof showStart !== "undefined" ? showStart : start;
41985  var max = typeof showEnd !== "undefined" ? showEnd : end;
41986
41987  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
41988      t = _useTranslation.t;
41989
41990  return Object(preact_modulebabel_target_legacy["h"])("div", {
41991    className: classnames_babel_target_legacy_default()(TransportControls_module_default.a.wrapper, (_classNames = {}, definePropertybabel_target_legacy_default()(_classNames, TransportControls_module_default.a.dark, darkTheme), definePropertybabel_target_legacy_default()(_classNames, TransportControls_module_default.a.compact, disablePlaybackButtons), _classNames))
41992  }, disableScrubber || Object(preact_modulebabel_target_legacy["h"])(Scrubberbabel_target_legacy["a" /* Scrubber */], {
41993    min: min,
41994    max: max,
41995    minSeekable: start,
41996    maxSeekable: end,
41997    value: time,
41998    onValueChange: requestSeek,
41999    live: live,
42000    darkTheme: darkTheme,
42001    disabled: !seekable || disabled
42002  }), disablePlaybackButtons || Object(preact_modulebabel_target_legacy["h"])("div", {
42003    className: classnames_babel_target_legacy_default()(TransportControls_module_default.a.body, definePropertybabel_target_legacy_default()({}, TransportControls_module_default.a.noscrubs, disableScrubber))
42004  }, Object(preact_modulebabel_target_legacy["h"])(StationLogobabel_target_legacy["a" /* StationLogo */], {
42005    stationName: stationName,
42006    stationUrl: stationUrl,
42007    logo: logo
42008  }), Object(preact_modulebabel_target_legacy["h"])("div", {
42009    className: TransportControls_module_default.a.buttonsouter
42010  }, attention && showPlayButton ? Object(preact_modulebabel_target_legacy["h"])("p", {
42011    className: TransportControls_module_default.a.prompt
42012  }, t("LABEL_START_PROMPT")) : [!showPlayButton && Object(preact_modulebabel_target_legacy["h"])("p", {
42013    className: TransportControls_module_default.a.prompt
42014  }, t("LABEL_LOADING"))], Object(preact_modulebabel_target_legacy["h"])("div", {
42015    className: TransportControls_module_default.a.buttons
42016  }, Object(preact_modulebabel_target_legacy["h"])("div", null, !stalled && seekable && live && !disabled && !attention && Object(preact_modulebabel_target_legacy["h"])(SkipToStartButtonbabel_target_legacy_SkipToStartButton, {
42017    darkTheme: darkTheme,
42018    onClick: skipToStart
42019  })), Object(preact_modulebabel_target_legacy["h"])("div", null, !stalled && seekable && !disabled && !attention && Object(preact_modulebabel_target_legacy["h"])(SkipBackButtonbabel_target_legacy_SkipB
42019ackButton, {
42020    darkTheme: darkTheme,
42021    onClick: function onClick() {
42022      return skipBack(10);
42023    }
42024  })), Object(preact_modulebabel_target_legacy["h"])("div", null, stalled || !showPlayButton ? Object(preact_modulebabel_target_legacy["h"])("div", {
42025    className: TransportControls_module_default.a.stalled
42026  }, Object(preact_modulebabel_target_legacy["h"])(Spinnerbabel_target_legacy["a" /* Spinner */], null)) : !disabled && Object(preact_modulebabel_target_legacy["h"])(PlayButtonbabel_target_legacy["a" /* PlayButton */], {
42027    onPressPlay: requestPlay,
42028    type: paused ? "play" : seekable ? "pause" : "stop",
42029    pulsate: attention
42030  })), Object(preact_modulebabel_target_legacy["h"])("div", null, !stalled && seekable && !disabled && !attention && Object(preact_modulebabel_target_legacy["h"])(SkipForwardButtonbabel_target_legacy_SkipForwardButton, {
42031    darkTheme: darkTheme,
42032    onClick: function onClick() {
42033      return skipForward(30);
42034    }
42035  })), Object(preact_modulebabel_target_legacy["h"])("div", null, !stalled && seekable && live && !disabled && !attention && Object(preact_modulebabel_target_legacy["h"])(SkipToLiveButtonbabel_target_legacy_SkipToLiveButton, {
42036    darkTheme: darkTheme,
42037    onClick: skipToLive
42038  })))), Object(preact_modulebabel_target_legacy["h"])("div", {
42039    className: TransportControls_module_default.a.meta
42040  }, rpId && Object(preact_modulebabel_target_legacy["h"])(FaveButtonbabel_target_legacy["a" /* FaveButton */], {
42041    id: rpId,
42042    className: TransportControls_module_default.a.fave,
42043    darkTheme: darkTheme,
42044    tip: true
42045  }), Object(preact_modulebabel_target_legacy["h"])(VolumeControlbabel_target_legacy["a" /* VolumeControl */], {
42046    volume: volume,
42047    setVolume: setVolume,
42048    darkTheme: darkTheme
42049  }))), Object(preact_modulebabel_target_legacy["h"])("span", null));
42050};
42051/* harmony default export */ var TransportControlsbabel_target_legacy = (TransportControlsbabel_target_legacy_TransportControls);
42052// CONCATENATED MODULE: ./src/components/TransportControls/index.ts?babel-target=legacy
42053
42054
42055/***/ }),
42056/* 785 */,
42057/* 786 */
42058/***/ (function(module, __webpack_exports__, __webpack_require__) {
42059
42060"use strict";
42061
42062// EXPORTS
42063__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ GptWrapperbabel_target_legacy_GptWrapper; });
42064
42065// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
42066var es_array_mapbabel_target_legacy = __webpack_require__(77);
42067
42068// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
42069var es_object_keysbabel_target_legacy = __webpack_require__(89);
42070
42071// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
42072var regenerator_babel_target_legacy = __webpack_require__(6);
42073var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
42074
42075// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
42076var runtimebabel_target_legacy = __webpack_require__(60);
42077
42078// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
42079var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
42080var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
42081
42082// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
42083var slicedToArraybabel_target_legacy = __webpack_require__(8);
42084var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
42085
42086// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
42087var preact_modulebabel_target_legacy = __webpack_require__(1);
42088
42089// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
42090var hooks_modulebabel_target_legacy = __webpack_require__(4);
42091
42092// EXTERNAL MODULE: ./node_modules/@alugha/ima/lib/esm?babel-target=legacy + 2 modules
42093var esm_babel_target_legacy = __webpack_require__(334);
42094
42095// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
42096var loggerbabel_target_legacy = __webpack_require__(10);
42097
42098// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
42099var useAPIbabel_target_legacy = __webpack_require__(44);
42100
42101// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
42102var APIManagerbabel_target_legacy = __webpack_require__(32);
42103
42104// CONCATENATED MODULE: ./src/components/GptWrapper/GptWrapper.tsx?babel-target=legacy
42105
42106
42107
42108
42109
42110
42111
42112
42113
42114
42115
42116
42117var GptWrapperbabel_target_legacy_GptWrapper = function GptWrapper(_ref) {
42118  var adUnitPath = _ref.adUnitPath,
42119      _ref$slotSize = _ref.slotSize,
42120      slotSize = _ref$slotSize === void 0 ? [300, 250] : _ref$slotSize,
42121      refreshInterval = _ref.refreshInterval,
42122      targeting = _ref.targeting,
42123      _ref$style = _ref.style,
42124      style = _ref$style === void 0 ? {
42125    "margin-top": "0"
42126  } : _ref$style,
42127      _ref$advertId = _ref.advertId,
42128      advertId = _ref$advertId === void 0 ? 0 : _ref$advertId;
42129
42130  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
42131      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
42132      state = _useAPI2[0];
42133
42134  var tcString = state.tcString;
42135
42136  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(advertId),
42137      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 1),
42138      adId = _useState2[0];
42139
42140  var id = "gpt-".concat(adId);
42141  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
42142    var load = /*#__PURE__*/function () {
42143      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
42144        var decoded, w;
42145        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
42146          while (1) {
42147            switch (_context.prev = _context.next) {
42148              case 0:
42149                if (!(tcString === true)) {
42150                  _context.next = 2;
42151                  break;
42152                }
42153
42154                return _context.abrupt("return");
42155
42156              case 2:
42157                if (!tcString) {
42158                  _context.next = 8;
42159                  break;
42160                }
42161
42162                _context.next = 5;
42163                return Object(APIManagerbabel_target_legacy["d" /* decodeConsent */])(tcString, 2);
42164
42165              case 5:
42166                decoded = _context.sent;
42167
42168                if (decoded.core.vendorConsents[755]) {
42169                  _context.next = 8;
42170                  break;
42171                }
42172
42173                return _context.abrupt("return");
42174
42175              case 8:
42176                // otherwise we are not using a CMP
42177                // For why we're using `globalThis` see
42178                // https://github.com/microsoft/TypeScript/issues/33128
42179                w = window;
42180
42181                if (!w.googletag) {
42182                  Object(esm_babel_target_legacy["b" /* loadScript */])("https://securepubads.g.doubleclick.net/tag/js/gpt.js");
42183                }
42184
42185                w.googletag = w.googletag || {};
42186                w.googletag.cmd = googletag.cmd || [];
42187                w.googletag.cmd.push(function () {
42188                  var slot = googletag.defineSlot(adUnitPath, slotSize, id);
42189                  var pub = googletag.pubads();
42190
42191                  if (slot) {
42192                    slot.addService(pub);
42193                    pub.collapseEmptyDivs();
42194
42195                    if (targeting) {
42196                      Object.keys(targeting).map(function (key) {
42197                        return pub.setTargeting(key, targeting[key]);
42198                      });
42199                    }
42200
42201                    googletag.enableServices();
42202                    googletag.display(id);
42203                  }
42204                });
42205
42206              case 13:
42207              case "end":
42208                return _context.stop();
42209            }
42210          }
42211        }, _callee);
42212      }));
42213
42214      return function load() {
42215        return _ref2.apply(this, arguments);
42216      };
42217    }();
42218
42219    if (adUnitPath) {
42220      load();
42221    }
42222  }, [adUnitPath, id, slotSize, targeting, tcString]);
42223  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
42224    var refresh = function refresh() {
42225      var googletag = window.googletag;
42226
42227      if (googletag && googletag.apiReady) {
42228        Object(loggerbabel_target_legacy["c" /* log */])("Refreshing ads");
42229        googletag.pubads().refresh();
42230      }
42231    };
42232
42233    if (refreshInterval) {
42234      window.setInterval(refresh, refreshInterval * 1000);
42235      return function () {
42236        return window.clearInterval(refreshInterval);
42237      };
42238    }
42239  }, [refreshInterval]);
42240  return Object(preact_modulebabel_target_legacy["h"])("div", {
42241    id: id,
42242    style: style
42243  });
42244};
42245/* harmony default export */ var GptWrapperbabel_target_legacy = (GptWrapperbabel_target_legacy_GptWrapper);
42246// CONCATENATED MODULE: ./src/components/GptWrapper/index.ts?babel-target=legacy
42247
42248
42249/***/ }),
42250/* 787 */,
42251/* 788 */
42252/***/ (function(module, __webpack_exports__, __webpack_require__) {
42253
42254"use strict";
42255
42256// EXPORTS
42257__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ StationErrorbabel_target_legacy_StationError; });
42258
42259// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.link.js?babel-target=legacy
42260var es_string_linkbabel_target_legacy = __webpack_require__(426);
42261
42262// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
42263var preact_modulebabel_target_legacy = __webpack_require__(1);
42264
42265// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
42266var RPIconbabel_target_legacy = __webpack_require__(42);
42267
42268// EXTERNAL MODULE: ./src/components/StationError/StationError.module.scss
42269var StationError_module = __webpack_require__(142);
42270var StationError_module_default = /*#__PURE__*/__webpack_require__.n(StationError_module);
42271
42272// EXTERNAL MODULE: ./src/lib/Trans/Trans.js?babel-target=legacy + 2 modules
42273var Transbabel_target_legacy = __webpack_require__(333);
42274
42275// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
42276var es_babel_target_legacy = __webpack_require__(25);
42277
42278// CONCATENATED MODULE: ./src/components/StationError/StationError.tsx?babel-target=legacy
42279
42280
42281/* eslint-disable react/jsx-no-literals */
42282
42283
42284
42285
42286
42287var StationErrorbabel_target_legacy_StationError = function StationError() {
42288  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
42289      t = _useTranslation.t,
42290      i18n = _useTranslation.i18n;
42291
42292  return Object(preact_modulebabel_target_legacy["h"])("div", {
42293    className: StationError_module_default.a.background
42294  }, Object(preact_modulebabel_target_legacy["h"])("section", {
42295    className: StationError_module_default.a.container
42296  }, Object(preact_modulebabel_target_legacy["h"])("div", {
42297    className: StationError_module_default.a.icon
42298  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
42299    src: __webpack_require__(974)
42300  })), Object(preact_modulebabel_target_legacy["h"])("p", {
42301    className: StationError_module_default.a.lyrics
42302  }, t("STATION_ERROR_LYRIC")), Object(preact_modulebabel_target_legacy["h"])("h1", {
42303    className: StationError_module_default.a.title
42304  }, t("STATION_ERROR_TITLE")), Object(preact_modulebabel_target_legacy["h"])("div", {
42305    className: StationError_module_default.a.copyContainer
42306  }, Object(preact_modulebabel_target_legacy["h"])("p", null, t("STATION_ERROR_COPY")), Object(preact_modulebabel_target_legacy["h"])("p", null, Object(preact_modulebabel_target_legacy["h"])(Transbabel_target_legacy["a" /* Trans */], {
42307    i18nKey: "STATION_ERROR_LINK",
42308    i18n: i18n
42309  }, "Don't worry though, you can discover more great UK radio by searching or browsing recommendations in the menu above. Alternatively, visit", " ", Object(preact_modulebabel_target_legacy["h"])("a", {
42310    href: t("STATION_ERROR_URL"),
42311    target: "_blank",
42312    rel: "noopener noreferrer",
42313    className: StationError_module_default.a.link
42314  }, "the Radioplayer website"), " ", "to listen in other ways.")))
42314));
42315};
42316// CONCATENATED MODULE: ./src/components/StationError/index.ts?babel-target=legacy
42317
42318
42319/***/ }),
42320/* 789 */,
42321/* 790 */,
42322/* 791 */
42323/***/ (function(module, exports) {
42324
42325function _getPrototypeOf(o) {
42326  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
42327    return o.__proto__ || Object.getPrototypeOf(o);
42328  };
42329  return _getPrototypeOf(o);
42330}
42331
42332module.exports = _getPrototypeOf;
42333
42334/***/ }),
42335/* 792 */
42336/***/ (function(module, exports, __webpack_require__) {
42337
42338var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.2
42339// https://github.com/bgrins/TinyColor
42340// Brian Grinstead, MIT License
42341
42342(function(Math) {
42343
42344var trimLeft = /^\s+/,
42345    trimRight = /\s+$/,
42346    tinyCounter = 0,
42347    mathRound = Math.round,
42348    mathMin = Math.min,
42349    mathMax = Math.max,
42350    mathRandom = Math.random;
42351
42352function tinycolor (color, opts) {
42353
42354    color = (color) ? color : '';
42355    opts = opts || { };
42356
42357    // If input is already a tinycolor, return itself
42358    if (color instanceof tinycolor) {
42359       return color;
42360    }
42361    // If we are called as a function, call using new instead
42362    if (!(this instanceof tinycolor)) {
42363        return new tinycolor(color, opts);
42364    }
42365
42366    var rgb = inputToRGB(color);
42367    this._originalInput = color,
42368    this._r = rgb.r,
42369    this._g = rgb.g,
42370    this._b = rgb.b,
42371    this._a = rgb.a,
42372    this._roundA = mathRound(100*this._a) / 100,
42373    this._format = opts.format || rgb.format;
42374    this._gradientType = opts.gradientType;
42375
42376    // Don't let the range of [0,255] come back in [0,1].
42377    // Potentially lose a little bit of precision here, but will fix issues where
42378    // .5 gets interpreted as half of the total, instead of half of 1
42379    // If it was supposed to be 128, this was already taken care of by `inputToRgb`
42380    if (this._r < 1) { this._r = mathRound(this._r); }
42381    if (this._g < 1) { this._g = mathRound(this._g); }
42382    if (this._b < 1) { this._b = mathRound(this._b); }
42383
42384    this._ok = rgb.ok;
42385    this._tc_id = tinyCounter++;
42386}
42387
42388tinycolor.prototype = {
42389    isDark: function() {
42390        return this.getBrightness() < 128;
42391    },
42392    isLight: function() {
42393        return !this.isDark();
42394    },
42395    isValid: function() {
42396        return this._ok;
42397    },
42398    getOriginalInput: function() {
42399      return this._originalInput;
42400    },
42401    getFormat: function() {
42402        return this._format;
42403    },
42404    getAlpha: function() {
42405        return this._a;
42406    },
42407    getBrightness: function() {
42408        //http://www.w3.org/TR/AERT#color-contrast
42409        var rgb = this.toRgb();
42410        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
42411    },
42412    getLuminance: function() {
42413        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
42414        var rgb = this.toRgb();
42415        var RsRGB, GsRGB, BsRGB, R, G, B;
42416        RsRGB = rgb.r/255;
42417        GsRGB = rgb.g/255;
42418        BsRGB = rgb.b/255;
42419
42420        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}
42421        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}
42422        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}
42423        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);
42424    },
42425    setAlpha: function(value) {
42426        this._a = boundAlpha(value);
42427        this._roundA = mathRound(100*this._a) / 100;
42428        return this;
42429    },
42430    toHsv: function() {
42431        var hsv = rgbToHsv(this._r, this._g, this._b);
42432        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };
42433    },
42434    toHsvString: function() {
42435        var hsv = rgbToHsv(this._r, this._g, this._b);
42436        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
42437        return (this._a == 1) ?
42438          "hsv("  + h + ", " + s + "%, " + v + "%)" :
42439          "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")";
42440    },
42441    toHsl: function() {
42442        var hsl = rgbToHsl(this._r, this._g, this._b);
42443        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };
42444    },
42445    toHslString: function() {
42446        var hsl = rgbToHsl(this._r, this._g, this._b);
42447        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
42448        return (this._a == 1) ?
42449          "hsl("  + h + ", " + s + "%, " + l + "%)" :
42450          "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")";
42451    },
42452    toHex: function(allow3Char) {
42453        return rgbToHex(this._r, this._g, this._b, allow3Char);
42454    },
42455    toHexString: function(allow3Char) {
42456        return '#' + this.toHex(allow3Char);
42457    },
42458    toHex8: function(allow4Char) {
42459        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);
42460    },
42461    toHex8String: function(allow4Char) {
42462        return '#' + this.toHex8(allow4Char);
42463    },
42464    toRgb: function() {
42465        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };
42466    },
42467    toRgbString: function() {
42468        return (this._a == 1) ?
42469          "rgb("  + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" :
42470          "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")";
42471    },
42472    toPercentageRgb: function() {
42473        return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a };
42474    },
42475    toPercentageRgbString: function() {
42476        return (this._a == 1) ?
42477          "rgb("  + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" :
42478          "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")";
42479    },
42480    toName: function() {
42481        if (this._a === 0) {
42482            return "transparent";
vendor: 12,442 bytes, lines 42483-42906
42483        }
42484
42485        if (this._a < 1) {
42486            return false;
42487        }
42488
42489        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;
42490    },
42491    toFilter: function(secondColor) {
42492        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);
42493        var secondHex8String = hex8String;
42494        var gradientType = this._gradientType ? "GradientType = 1, " : "";
42495
42496        if (secondColor) {
42497            var s = tinycolor(secondColor);
42498            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);
42499        }
42500
42501        return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")";
42502    },
42503    toString: function(format) {
42504        var formatSet = !!format;
42505        format = format || this._format;
42506
42507        var formattedString = false;
42508        var hasAlpha = this._a < 1 && this._a >= 0;
42509        var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name");
42510
42511        if (needsAlphaFormat) {
42512            // Special case for "transparent", all other non-alpha formats
42513            // will return rgba when there is transparency.
42514            if (format === "name" && this._a === 0) {
42515                return this.toName();
42516            }
42517            return this.toRgbString();
42518        }
42519        if (format === "rgb") {
42520            formattedString = this.toRgbString();
42521        }
42522        if (format === "prgb") {
42523            formattedString = this.toPercentageRgbString();
42524        }
42525        if (format === "hex" || format === "hex6") {
42526            formattedString = this.toHexString();
42527        }
42528        if (format === "hex3") {
42529            formattedString = this.toHexString(true);
42530        }
42531        if (format === "hex4") {
42532            formattedString = this.toHex8String(true);
42533        }
42534        if (format === "hex8") {
42535            formattedString = this.toHex8String();
42536        }
42537        if (format === "name") {
42538            formattedString = this.toName();
42539        }
42540        if (format === "hsl") {
42541            formattedString = this.toHslString();
42542        }
42543        if (format === "hsv") {
42544            formattedString = this.toHsvString();
42545        }
42546
42547        return formattedString || this.toHexString();
42548    },
42549    clone: function() {
42550        return tinycolor(this.toString());
42551    },
42552
42553    _applyModification: function(fn, args) {
42554        var color = fn.apply(null, [this].concat([].slice.call(args)));
42555        this._r = color._r;
42556        this._g = color._g;
42557        this._b = color._b;
42558        this.setAlpha(color._a);
42559        return this;
42560    },
42561    lighten: function() {
42562        return this._applyModification(lighten, arguments);
42563    },
42564    brighten: function() {
42565        return this._applyModification(brighten, arguments);
42566    },
42567    darken: function() {
42568        return this._applyModification(darken, arguments);
42569    },
42570    desaturate: function() {
42571        return this._applyModification(desaturate, arguments);
42572    },
42573    saturate: function() {
42574        return this._applyModification(saturate, arguments);
42575    },
42576    greyscale: function() {
42577        return this._applyModification(greyscale, arguments);
42578    },
42579    spin: function() {
42580        return this._applyModification(spin, arguments);
42581    },
42582
42583    _applyCombination: function(fn, args) {
42584        return fn.apply(null, [this].concat([].slice.call(args)));
42585    },
42586    analogous: function() {
42587        return this._applyCombination(analogous, arguments);
42588    },
42589    complement: function() {
42590        return this._applyCombination(complement, arguments);
42591    },
42592    monochromatic: function() {
42593        return this._applyCombination(monochromatic, arguments);
42594    },
42595    splitcomplement: function() {
42596        return this._applyCombination(splitcomplement, arguments);
42597    },
42598    triad: function() {
42599        return this._applyCombination(triad, arguments);
42600    },
42601    tetrad: function() {
42602        return this._applyCombination(tetrad, arguments);
42603    }
42604};
42605
42606// If input is an object, force 1 into "1.0" to handle ratios properly
42607// String input requires "1.0" as input, so 1 will be treated as 1
42608tinycolor.fromRatio = function(color, opts) {
42609    if (typeof color == "object") {
42610        var newColor = {};
42611        for (var i in color) {
42612            if (color.hasOwnProperty(i)) {
42613                if (i === "a") {
42614                    newColor[i] = color[i];
42615                }
42616                else {
42617                    newColor[i] = convertToPercentage(color[i]);
42618                }
42619            }
42620        }
42621        color = newColor;
42622    }
42623
42624    return tinycolor(color, opts);
42625};
42626
42627// Given a string or object, convert that input to RGB
42628// Possible string inputs:
42629//
42630//     "red"
42631//     "#f00" or "f00"
42632//     "#ff0000" or "ff0000"
42633//     "#ff000000" or "ff000000"
42634//     "rgb 255 0 0" or "rgb (255, 0, 0)"
42635//     "rgb 1.0 0 0" or "rgb (1, 0, 0)"
42636//     "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
42637//     "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
42638//     "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
42639//     "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
42640//     "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
42641//
42642function inputToRGB(color) {
42643
42644    var rgb = { r: 0, g: 0, b: 0 };
42645    var a = 1;
42646    var s = null;
42647    var v = null;
42648    var l = null;
42649    var ok = false;
42650    var format = false;
42651
42652    if (typeof color == "string") {
42653        color = stringInputToObject(color);
42654    }
42655
42656    if (typeof color == "object") {
42657        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
42658            rgb = rgbToRgb(color.r, color.g, color.b);
42659            ok = true;
42660            format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
42661        }
42662        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
42663            s = convertToPercentage(color.s);
42664            v = convertToPercentage(color.v);
42665            rgb = hsvToRgb(color.h, s, v);
42666            ok = true;
42667            format = "hsv";
42668        }
42669        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
42670            s = convertToPercentage(color.s);
42671            l = convertToPercentage(color.l);
42672            rgb = hslToRgb(color.h, s, l);
42673            ok = true;
42674            format = "hsl";
42675        }
42676
42677        if (color.hasOwnProperty("a")) {
42678            a = color.a;
42679        }
42680    }
42681
42682    a = boundAlpha(a);
42683
42684    return {
42685        ok: ok,
42686        format: color.format || format,
42687        r: mathMin(255, mathMax(rgb.r, 0)),
42688        g: mathMin(255, mathMax(rgb.g, 0)),
42689        b: mathMin(255, mathMax(rgb.b, 0)),
42690        a: a
42691    };
42692}
42693
42694
42695// Conversion Functions
42696// --------------------
42697
42698// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
42699// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
42700
42701// `rgbToRgb`
42702// Handle bounds / percentage checking to conform to CSS color spec
42703// <http://www.w3.org/TR/css3-color/>
42704// *Assumes:* r, g, b in [0, 255] or [0, 1]
42705// *Returns:* { r, g, b } in [0, 255]
42706function rgbToRgb(r, g, b){
42707    return {
42708        r: bound01(r, 255) * 255,
42709        g: bound01(g, 255) * 255,
42710        b: bound01(b, 255) * 255
42711    };
42712}
42713
42714// `rgbToHsl`
42715// Converts an RGB color value to HSL.
42716// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
42717// *Returns:* { h, s, l } in [0,1]
42718function rgbToHsl(r, g, b) {
42719
42720    r = bound01(r, 255);
42721    g = bound01(g, 255);
42722    b = bound01(b, 255);
42723
42724    var max = mathMax(r, g, b), min = mathMin(r, g, b);
42725    var h, s, l = (max + min) / 2;
42726
42727    if(max == min) {
42728        h = s = 0; // achromatic
42729    }
42730    else {
42731        var d = max - min;
42732        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
42733        switch(max) {
42734            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
42735            case g: h = (b - r) / d + 2; break;
42736            case b: h = (r - g) / d + 4; break;
42737        }
42738
42739        h /= 6;
42740    }
42741
42742    return { h: h, s: s, l: l };
42743}
42744
42745// `hslToRgb`
42746// Converts an HSL color value to RGB.
42747// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
42748// *Returns:* { r, g, b } in the set [0, 255]
42749function hslToRgb(h, s, l) {
42750    var r, g, b;
42751
42752    h = bound01(h, 360);
42753    s = bound01(s, 100);
42754    l = bound01(l, 100);
42755
42756    function hue2rgb(p, q, t) {
42757        if(t < 0) t += 1;
42758        if(t > 1) t -= 1;
42759        if(t < 1/6) return p + (q - p) * 6 * t;
42760        if(t < 1/2) return q;
42761        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
42762        return p;
42763    }
42764
42765    if(s === 0) {
42766        r = g = b = l; // achromatic
42767    }
42768    else {
42769        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
42770        var p = 2 * l - q;
42771        r = hue2rgb(p, q, h + 1/3);
42772        g = hue2rgb(p, q, h);
42773        b = hue2rgb(p, q, h - 1/3);
42774    }
42775
42776    return { r: r * 255, g: g * 255, b: b * 255 };
42777}
42778
42779// `rgbToHsv`
42780// Converts an RGB color value to HSV
42781// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
42782// *Returns:* { h, s, v } in [0,1]
42783function rgbToHsv(r, g, b) {
42784
42785    r = bound01(r, 255);
42786    g = bound01(g, 255);
42787    b = bound01(b, 255);
42788
42789    var max = mathMax(r, g, b), min = mathMin(r, g, b);
42790    var h, s, v = max;
42791
42792    var d = max - min;
42793    s = max === 0 ? 0 : d / max;
42794
42795    if(max == min) {
42796        h = 0; // achromatic
42797    }
42798    else {
42799        switch(max) {
42800            case r: h = (g - b) / d + (g < b ? 6 : 0); break;
42801            case g: h = (b - r) / d + 2; break;
42802            case b: h = (r - g) / d + 4; break;
42803        }
42804        h /= 6;
42805    }
42806    return { h: h, s: s, v: v };
42807}
42808
42809// `hsvToRgb`
42810// Converts an HSV color value to RGB.
42811// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
42812// *Returns:* { r, g, b } in the set [0, 255]
42813 function hsvToRgb(h, s, v) {
42814
42815    h = bound01(h, 360) * 6;
42816    s = bound01(s, 100);
42817    v = bound01(v, 100);
42818
42819    var i = Math.floor(h),
42820        f = h - i,
42821        p = v * (1 - s),
42822        q = v * (1 - f * s),
42823        t = v * (1 - (1 - f) * s),
42824        mod = i % 6,
42825        r = [v, q, p, p, t, v][mod],
42826        g = [t, v, v, q, p, p][mod],
42827        b = [p, p, t, v, v, q][mod];
42828
42829    return { r: r * 255, g: g * 255, b: b * 255 };
42830}
42831
42832// `rgbToHex`
42833// Converts an RGB color to hex
42834// Assumes r, g, and b are contained in the set [0, 255]
42835// Returns a 3 or 6 character hex
42836function rgbToHex(r, g, b, allow3Char) {
42837
42838    var hex = [
42839        pad2(mathRound(r).toString(16)),
42840        pad2(mathRound(g).toString(16)),
42841        pad2(mathRound(b).toString(16))
42842    ];
42843
42844    // Return a 3 character hex if possible
42845    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
42846        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
42847    }
42848
42849    return hex.join("");
42850}
42851
42852// `rgbaToHex`
42853// Converts an RGBA color plus alpha transparency to hex
42854// Assumes r, g, b are contained in the set [0, 255] and
42855// a in [0, 1]. Returns a 4 or 8 character rgba hex
42856function rgbaToHex(r, g, b, a, allow4Char) {
42857
42858    var hex = [
42859        pad2(mathRound(r).toString(16)),
42860        pad2(mathRound(g).toString(16)),
42861        pad2(mathRound(b).toString(16)),
42862        pad2(convertDecimalToHex(a))
42863    ];
42864
42865    // Return a 4 character hex if possible
42866    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {
42867        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
42868    }
42869
42870    return hex.join("");
42871}
42872
42873// `rgbaToArgbHex`
42874// Converts an RGBA color to an ARGB Hex8 string
42875// Rarely used, but required for "toFilter()"
42876function rgbaToArgbHex(r, g, b, a) {
42877
42878    var hex = [
42879        pad2(convertDecimalToHex(a)),
42880        pad2(mathRound(r).toString(16)),
42881        pad2(mathRound(g).toString(16)),
42882        pad2(mathRound(b).toString(16))
42883    ];
42884
42885    return hex.join("");
42886}
42887
42888// `equals`
42889// Can be called with any tinycolor input
42890tinycolor.equals = function (color1, color2) {
42891    if (!color1 || !color2) { return false; }
42892    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
42893};
42894
42895tinycolor.random = function() {
42896    return tinycolor.fromRatio({
42897        r: mathRandom(),
42898        g: mathRandom(),
42899        b: mathRandom()
42900    });
42901};
42902
42903
42904// Modification Functions
42905// ----------------------
42906// Thanks to less.js for some of the basics here
42907// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
42908
42909function desaturate(color, amount) {
42910    amount = (amount === 0) ? 0 : (amount || 10);
42911    var hsl = tinycolor(color).toHsl();
42912    hsl.s -= amount / 100;
42913    hsl.s = clamp01(hsl.s);
42914    return tinycolor(hsl);
42915}
42916
42917function saturate(color, amount) {
42918    amount = (amount === 0) ? 0 : (amount || 10);
42919    var hsl = tinycolor(color).toHsl();
42920    hsl.s += amount / 100;
42921    hsl.s = clamp01(hsl.s);
42922    return tinycolor(hsl);
42923}
42924
42925function greyscale(color) {
42926    return tinycolor(color).desaturate(100);
42927}
42928
42929function lighten (color, amount) {
42930    amount = (amount === 0) ? 0 : (amount || 10);
42931    var hsl = tinycolor(color).toHsl();
42932    hsl.l += amount / 100;
42933    hsl.l = clamp01(hsl.l);
42934    return tinycolor(hsl);
42935}
42936
42937function brighten(color, amount) {
42938    amount = (amount === 0) ? 0 : (amount || 10);
42939    var rgb = tinycolor(color).toRgb();
42940    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));
42941    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));
42942    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));
42943    return tinycolor(rgb);
42944}
42945
42946function darken (color, amount) {
42947    amount = (amount === 0) ? 0 : (amount || 10);
42948    var hsl = tinycolor(color).toHsl();
42949    hsl.l -= amount / 100;
42950    hsl.l = clamp01(hsl.l);
42951    return tinycolor(hsl);
42952}
42953
42954// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
42955// Values outside of this range will be wrapped into this range.
42956function spin(color, amount) {
42957    var hsl = tinycolor(color).toHsl();
42958    var hue = (hsl.h + amount) % 360;
42959    hsl.h = hue < 0 ? 360 + hue : hue;
42960    return tinycolor(hsl);
42961}
42962
42963// Combination Functions
42964// ---------------------
42965// Thanks to jQuery xColor for some of the ideas behind these
42966// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
42967
42968function complement(color) {
42969    var hsl = tinycolor(color).toHsl();
42970    hsl.h = (hsl.h + 180) % 360;
42971    return tinycolor(hsl);
42972}
42973
42974function triad(color) {
42975    var hsl = tinycolor(color).toHsl();
42976    var h = hsl.h;
42977    return [
42978        tinycolor(color),
42979        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
42980        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
42981    ];
42982}
42983
42984function tetrad(color) {
42985    var hsl = tinycolor(color).toHsl();
42986    var h = hsl.h;
42987    return [
42988        tinycolor(color),
42989        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
42990        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
42991        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
42992    ];
42993}
42994
42995function splitcomplement(color) {
42996    var hsl = tinycolor(color).toHsl();
42997    var h = hsl.h;
42998    return [
42999        tinycolor(color),
43000        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
43001        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
43002    ];
43003}
43004
43005function analogous(color, results, slices) {
43006    results = results || 6;
43007    slices = slices || 30;
43008
43009    var hsl = tinycolor(color).toHsl();
43010    var part = 360 / slices;
43011    var ret = [tinycolor(color)];
43012
43013    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
43014        hsl.h = (hsl.h + part) % 360;
43015        ret.push(tinycolor(hsl));
43016    }
43017    return ret;
43018}
43019
43020function monochromatic(color, results) {
43021    results = results || 6;
43022    var hsv = tinycolor(color).toHsv();
43023    var h = hsv.h, s = hsv.s, v = hsv.v;
43024    var ret = [];
43025    var modification = 1 / results;
43026
43027    while (results--) {
43028        ret.push(tinycolor({ h: h, s: s, v: v}));
43029        v = (v + modification) % 1;
43030    }
43031
43032    return ret;
43033}
43034
43035// Utility Functions
43036// ---------------------
43037
43038tinycolor.mix = function(color1, color2, amount) {
43039    amount = (amount === 0) ? 0 : (amount || 50);
43040
43041    var rgb1 = tinycolor(color1).toRgb();
43042    var rgb2 = tinycolor(color2).toRgb();
43043
43044    var p = amount / 100;
43045
43046    var rgba = {
43047        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,
43048        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,
43049        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,
43050        a: ((rgb2.a - rgb1.a) * p) + rgb1.a
43051    };
43052
43053    return tinycolor(rgba);
43054};
43055
43056
43057// Readability Functions
43058// ---------------------
43059// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)
43060
43061// `contrast`
43062// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)
43063tinycolor.readability = function(color1, color2) {
43064    var c1 = tinycolor(color1);
43065    var c2 = tinycolor(color2);
43066    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);
43067};
43068
43069// `isReadable`
43070// Ensure that foreground and background color combinations meet WCAG2 guidelines.
43071// The third argument is an optional Object.
43072//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';
43073//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.
43074// If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}.
43075
43076// *Example*
43077//    tinycolor.isReadable("#000", "#111") => false
43078//    tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false
43079tinycolor.isReadable = function(color1, color2, wcag2) {
43080    var readability = tinycolor.readability(color1, color2);
43081    var wcag2Parms, out;
43082
43083    out = false;
vendor: 4,209 bytes, lines 43084-43225
43084
43085    wcag2Parms = validateWCAG2Parms(wcag2);
43086    switch (wcag2Parms.level + wcag2Parms.size) {
43087        case "AAsmall":
43088        case "AAAlarge":
43089            out = readability >= 4.5;
43090            break;
43091        case "AAlarge":
43092            out = readability >= 3;
43093            break;
43094        case "AAAsmall":
43095            out = readability >= 7;
43096            break;
43097    }
43098    return out;
43099
43100};
43101
43102// `mostReadable`
43103// Given a base color and a list of possible foreground or background
43104// colors for that base, returns the most readable color.
43105// Optionally returns Black or White if the most readable color is unreadable.
43106// *Example*
43107//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255"
43108//    tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString();  // "#ffffff"
43109//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3"
43110//    tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff"
43111tinycolor.mostReadable = function(baseColor, colorList, args) {
43112    var bestColor = null;
43113    var bestScore = 0;
43114    var readability;
43115    var includeFallbackColors, level, size ;
43116    args = args || {};
43117    includeFallbackColors = args.includeFallbackColors ;
43118    level = args.level;
43119    size = args.size;
43120
43121    for (var i= 0; i < colorList.length ; i++) {
43122        readability = tinycolor.readability(baseColor, colorList[i]);
43123        if (readability > bestScore) {
43124            bestScore = readability;
43125            bestColor = tinycolor(colorList[i]);
43126        }
43127    }
43128
43129    if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) {
43130        return bestColor;
43131    }
43132    else {
43133        args.includeFallbackColors=false;
43134        return tinycolor.mostReadable(baseColor,["#fff", "#000"],args);
43135    }
43136};
43137
43138
43139// Big List of Colors
43140// ------------------
43141// <http://www.w3.org/TR/css3-color/#svg-color>
43142var names = tinycolor.names = {
43143    aliceblue: "f0f8ff",
43144    antiquewhite: "faebd7",
43145    aqua: "0ff",
43146    aquamarine: "7fffd4",
43147    azure: "f0ffff",
43148    beige: "f5f5dc",
43149    bisque: "ffe4c4",
43150    black: "000",
43151    blanchedalmond: "ffebcd",
43152    blue: "00f",
43153    blueviolet: "8a2be2",
43154    brown: "a52a2a",
43155    burlywood: "deb887",
43156    burntsienna: "ea7e5d",
43157    cadetblue: "5f9ea0",
43158    chartreuse: "7fff00",
43159    chocolate: "d2691e",
43160    coral: "ff7f50",
43161    cornflowerblue: "6495ed",
43162    cornsilk: "fff8dc",
43163    crimson: "dc143c",
43164    cyan: "0ff",
43165    darkblue: "00008b",
43166    darkcyan: "008b8b",
43167    darkgoldenrod: "b8860b",
43168    darkgray: "a9a9a9",
43169    darkgreen: "006400",
43170    darkgrey: "a9a9a9",
43171    darkkhaki: "bdb76b",
43172    darkmagenta: "8b008b",
43173    darkolivegreen: "556b2f",
43174    darkorange: "ff8c00",
43175    darkorchid: "9932cc",
43176    darkred: "8b0000",
43177    darksalmon: "e9967a",
43178    darkseagreen: "8fbc8f",
43179    darkslateblue: "483d8b",
43180    darkslategray: "2f4f4f",
43181    darkslategrey: "2f4f4f",
43182    darkturquoise: "00ced1",
43183    darkviolet: "9400d3",
43184    deeppink: "ff1493",
43185    deepskyblue: "00bfff",
43186    dimgray: "696969",
43187    dimgrey: "696969",
43188    dodgerblue: "1e90ff",
43189    firebrick: "b22222",
43190    floralwhite: "fffaf0",
43191    forestgreen: "228b22",
43192    fuchsia: "f0f",
43193    gainsboro: "dcdcdc",
43194    ghostwhite: "f8f8ff",
43195    gold: "ffd700",
43196    goldenrod: "daa520",
43197    gray: "808080",
43198    green: "008000",
43199    greenyellow: "adff2f",
43200    grey: "808080",
43201    honeydew: "f0fff0",
43202    hotpink: "ff69b4",
43203    indianred: "cd5c5c",
43204    indigo: "4b0082",
43205    ivory: "fffff0",
43206    khaki: "f0e68c",
43207    lavender: "e6e6fa",
43208    lavenderblush: "fff0f5",
43209    lawngreen: "7cfc00",
43210    lemonchiffon: "fffacd",
43211    lightblue: "add8e6",
43212    lightcoral: "f08080",
43213    lightcyan: "e0ffff",
43214    lightgoldenrodyellow: "fafad2",
43215    lightgray: "d3d3d3",
43216    lightgreen: "90ee90",
43217    lightgrey: "d3d3d3",
43218    lightpink: "ffb6c1",
43219    lightsalmon: "ffa07a",
43220    lightseagreen: "20b2aa",
43221    lightskyblue: "87cefa",
43222    lightslategray: "789",
43223    lightslategrey: "789",
43224    lightsteelblue: "b0c4de",
43225    lightyellow: "ffffe0",
vendor: 5,423 bytes, lines 43226-43420
43226    lime: "0f0",
43227    limegreen: "32cd32",
43228    linen: "faf0e6",
43229    magenta: "f0f",
43230    maroon: "800000",
43231    mediumaquamarine: "66cdaa",
43232    mediumblue: "0000cd",
43233    mediumorchid: "ba55d3",
43234    mediumpurple: "9370db",
43235    mediumseagreen: "3cb371",
43236    mediumslateblue: "7b68ee",
43237    mediumspringgreen: "00fa9a",
43238    mediumturquoise: "48d1cc",
43239    mediumvioletred: "c71585",
43240    midnightblue: "191970",
43241    mintcream: "f5fffa",
43242    mistyrose: "ffe4e1",
43243    moccasin: "ffe4b5",
43244    navajowhite: "ffdead",
43245    navy: "000080",
43246    oldlace: "fdf5e6",
43247    olive: "808000",
43248    olivedrab: "6b8e23",
43249    orange: "ffa500",
43250    orangered: "ff4500",
43251    orchid: "da70d6",
43252    palegoldenrod: "eee8aa",
43253    palegreen: "98fb98",
43254    paleturquoise: "afeeee",
43255    palevioletred: "db7093",
43256    papayawhip: "ffefd5",
43257    peachpuff: "ffdab9",
43258    peru: "cd853f",
43259    pink: "ffc0cb",
43260    plum: "dda0dd",
43261    powderblue: "b0e0e6",
43262    purple: "800080",
43263    rebeccapurple: "663399",
43264    red: "f00",
43265    rosybrown: "bc8f8f",
43266    royalblue: "4169e1",
43267    saddlebrown: "8b4513",
43268    salmon: "fa8072",
43269    sandybrown: "f4a460",
43270    seagreen: "2e8b57",
43271    seashell: "fff5ee",
43272    sienna: "a0522d",
43273    silver: "c0c0c0",
43274    skyblue: "87ceeb",
43275    slateblue: "6a5acd",
43276    slategray: "708090",
43277    slategrey: "708090",
43278    snow: "fffafa",
43279    springgreen: "00ff7f",
43280    steelblue: "4682b4",
43281    tan: "d2b48c",
43282    teal: "008080",
43283    thistle: "d8bfd8",
43284    tomato: "ff6347",
43285    turquoise: "40e0d0",
43286    violet: "ee82ee",
43287    wheat: "f5deb3",
43288    white: "fff",
43289    whitesmoke: "f5f5f5",
43290    yellow: "ff0",
43291    yellowgreen: "9acd32"
43292};
43293
43294// Make it easy to access colors via `hexNames[hex]`
43295var hexNames = tinycolor.hexNames = flip(names);
43296
43297
43298// Utilities
43299// ---------
43300
43301// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
43302function flip(o) {
43303    var flipped = { };
43304    for (var i in o) {
43305        if (o.hasOwnProperty(i)) {
43306            flipped[o[i]] = i;
43307        }
43308    }
43309    return flipped;
43310}
43311
43312// Return a valid alpha value [0,1] with all invalid values being set to 1
43313function boundAlpha(a) {
43314    a = parseFloat(a);
43315
43316    if (isNaN(a) || a < 0 || a > 1) {
43317        a = 1;
43318    }
43319
43320    return a;
43321}
43322
43323// Take input from [0, n] and return it as [0, 1]
43324function bound01(n, max) {
43325    if (isOnePointZero(n)) { n = "100%"; }
43326
43327    var processPercent = isPercentage(n);
43328    n = mathMin(max, mathMax(0, parseFloat(n)));
43329
43330    // Automatically convert percentage into number
43331    if (processPercent) {
43332        n = parseInt(n * max, 10) / 100;
43333    }
43334
43335    // Handle floating point rounding errors
43336    if ((Math.abs(n - max) < 0.000001)) {
43337        return 1;
43338    }
43339
43340    // Convert into [0, 1] range if it isn't already
43341    return (n % max) / parseFloat(max);
43342}
43343
43344// Force a number between 0 and 1
43345function clamp01(val) {
43346    return mathMin(1, mathMax(0, val));
43347}
43348
43349// Parse a base-16 hex value into a base-10 integer
43350function parseIntFromHex(val) {
43351    return parseInt(val, 16);
43352}
43353
43354// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
43355// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
43356function isOnePointZero(n) {
43357    return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
43358}
43359
43360// Check to see if string passed in is a percentage
43361function isPercentage(n) {
43362    return typeof n === "string" && n.indexOf('%') != -1;
43363}
43364
43365// Force a hex value to have 2 characters
43366function pad2(c) {
43367    return c.length == 1 ? '0' + c : '' + c;
43368}
43369
43370// Replace a decimal with it's percentage value
43371function convertToPercentage(n) {
43372    if (n <= 1) {
43373        n = (n * 100) + "%";
43374    }
43375
43376    return n;
43377}
43378
43379// Converts a decimal to a hex value
43380function convertDecimalToHex(d) {
43381    return Math.round(parseFloat(d) * 255).toString(16);
43382}
43383// Converts a hex value to a decimal
43384function convertHexToDecimal(h) {
43385    return (parseIntFromHex(h) / 255);
43386}
43387
43388var matchers = (function() {
43389
43390    // <http://www.w3.org/TR/css3-values/#integers>
43391    var CSS_INTEGER = "[-\\+]?\\d+%?";
43392
43393    // <http://www.w3.org/TR/css3-values/#number-value>
43394    var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
43395
43396    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.
43397    var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
43398
43399    // Actual matching.
43400    // Parentheses and commas are optional, but not required.
43401    // Whitespace can take the place of commas or opening paren
43402    var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
43403    var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
43404
43405    return {
43406        CSS_UNIT: new RegExp(CSS_UNIT),
43407        rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
43408        rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
43409        hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
43410        hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
43411        hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
43412        hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
43413        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
43414        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
43415        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
43416        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
43417    };
43418})();
43419
43420// `isValidCSSUnit`
43421// Take in a single string / number and check to see if it looks like a CSS unit
43422// (see `matchers` above for definition).
43423function isValidCSSUnit(color) {
43424    return !!matchers.CSS_UNIT.exec(color);
43425}
43426
43427// `stringInputToObject`
43428// Permissive string parsing.  Take in a number of formats, and output an object
43429// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
43430function stringInputToObject(color) {
43431
43432    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
43433    var named = false;
43434    if (names[color]) {
43435        color = names[color];
43436        named = true;
43437    }
43438    else if (color == 'transparent') {
43439        return { r: 0, g: 0, b: 0, a: 0, format: "name" };
43440    }
43441
43442    // Try to match string input using regular expressions.
43443    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
43444    // Just return an object and let the conversion functions handle that.
43445    // This way the result will be the same whether the tinycolor is initialized with string or object.
43446    var match;
43447    if ((match = matchers.rgb.exec(color))) {
43448        return { r: match[1], g: match[2], b: match[3] };
43449    }
43450    if ((match = matchers.rgba.exec(color))) {
43451        return { r: match[1], g: match[2], b: match[3], a: match[4] };
43452    }
43453    if ((match = matchers.hsl.exec(color))) {
43454        return { h: match[1], s: match[2], l: match[3] };
43455    }
43456    if ((match = matchers.hsla.exec(color))) {
43457        return { h: match[1], s: match[2], l: match[3], a: match[4] };
43458    }
43459    if ((match = matchers.hsv.exec(color))) {
43460        return { h: match[1], s: match[2], v: match[3] };
43461    }
43462    if ((match = matchers.hsva.exec(color))) {
43463        return { h: match[1], s: match[2], v: match[3], a: match[4] };
43464    }
43465    if ((match = matchers.hex8.exec(color))) {
43466        return {
43467            r: parseIntFromHex(match[1]),
43468            g: parseIntFromHex(match[2]),
43469            b: parseIntFromHex(match[3]),
43470            a: convertHexToDecimal(match[4]),
43471            format: named ? "name" : "hex8"
43472        };
43473    }
43474    if ((match = matchers.hex6.exec(color))) {
43475        return {
43476            r: parseIntFromHex(match[1]),
43477            g: parseIntFromHex(match[2]),
43478            b: parseIntFromHex(match[3]),
43479            format: named ? "name" : "hex"
43480        };
43481    }
43482    if ((match = matchers.hex4.exec(color))) {
43483        return {
43484            r: parseIntFromHex(match[1] + '' + match[1]),
43485            g: parseIntFromHex(match[2] + '' + match[2]),
43486            b: parseIntFromHex(match[3] + '' + match[3]),
43487            a: convertHexToDecimal(match[4] + '' + match[4]),
43488            format: named ? "name" : "hex8"
43489        };
43490    }
43491    if ((match = matchers.hex3.exec(color))) {
43492        return {
43493            r: parseIntFromHex(match[1] + '' + match[1]),
43494            g: parseIntFromHex(match[2] + '' + match[2]),
43495            b: parseIntFromHex(match[3] + '' + match[3]),
43496            format: named ? "name" : "hex"
43497        };
43498    }
43499
43500    return false;
43501}
43502
43503function validateWCAG2Parms(parms) {
43504    // return valid WCAG2 parms for isReadable.
43505    // If input parms are invalid, return {"level":"AA", "size":"small"}
43506    var level, size;
43507    parms = parms || {"level":"AA", "size":"small"};
43508    level = (parms.level || "AA").toUpperCase();
43509    size = (parms.size || "small").toLowerCase();
43510    if (level !== "AA" && level !== "AAA") {
43511        level = "AA";
43512    }
43513    if (size !== "small" && size !== "large") {
43514        size = "small";
43515    }
43516    return {"level":level, "size":size};
43517}
43518
43519// Node: Export function
43520if ( true && module.exports) {
43521    module.exports = tinycolor;
43522}
43523// AMD/requirejs: Define the module
43524else if (true) {
43525    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),
43526				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
43527}
43528// Browser: Expose to window
43529else {}
43530
43531})(Math);
43532
43533
43534/***/ }),
43535/* 793 */,
43536/* 794 */,
43537/* 795 */,
43538/* 796 */,
43539/* 797 */,
43540/* 798 */,
43541/* 799 */,
43542/* 800 */,
43543/* 801 */,
43544/* 802 */,
43545/* 803 */,
43546/* 804 */,
43547/* 805 */,
43548/* 806 */,
43549/* 807 */,
43550/* 808 */,
43551/* 809 */,
43552/* 810 */,
43553/* 811 */,
43554/* 812 */,
43555/* 813 */,
43556/* 814 */,
43557/* 815 */,
43558/* 816 */,
43559/* 817 */,
43560/* 818 */,
43561/* 819 */,
43562/* 820 */,
43563/* 821 */,
43564/* 822 */,
43565/* 823 */,
43566/* 824 */,
43567/* 825 */,
43568/* 826 */,
43569/* 827 */,
43570/* 828 */,
43571/* 829 */,
43572/* 830 */,
43573/* 831 */,
43574/* 832 */,
43575/* 833 */,
43576/* 834 */,
43577/* 835 */,
43578/* 836 */,
43579/* 837 */,
43580/* 838 */,
43581/* 839 */,
43582/* 840 */,
43583/* 841 */,
43584/* 842 */,
43585/* 843 */,
43586/* 844 */,
43587/* 845 */,
43588/* 846 */,
43589/* 847 */,
43590/* 848 */,
43591/* 849 */,
43592/* 850 */,
43593/* 851 */,
43594/* 852 */,
43595/* 853 */,
43596/* 854 */,
43597/* 855 */,
43598/* 856 */,
43599/* 857 */,
43600/* 858 */,
43601/* 859 */,
43602/* 860 */,
43603/* 861 */,
43604/* 862 */,
43605/* 863 */,
43606/* 864 */,
43607/* 865 */,
43608/* 866 */,
43609/* 867 */,
43610/* 868 */,
43611/* 869 */,
43612/* 870 */,
43613/* 871 */,
43614/* 872 */,
43615/* 873 */,
43616/* 874 */,
43617/* 875 */,
43618/* 876 */,
43619/* 877 */,
43620/* 878 */
43621/***/ (function(module, exports, __webpack_require__) {
43622
43623/*jshint -W030 */
43624var tagRE = /(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g;
43625var parseTag = __webpack_require__(879);
43626// re-used obj for quick lookups of components
43627var empty = Object.create ? Object.create(null) : {};
43628// common logic for pushing a child node onto a list
43629function pushTextNode(list, html, level, start, ignoreWhitespace) {
43630    // calculate correct end of the content slice in case there's
43631    // no tag after the text node.
43632    var end = html.indexOf('<', start);
43633    var content = html.slice(start, end === -1 ? undefined : end);
43634    // if a node is nothing but whitespace, collapse it as the spec states:
43635    // https://www.w3.org/TR/html4/struct/text.html#h-9.1
43636    if (/^\s*$/.test(content)) {
43637        content = ' ';
43638    }
43639    // don't add whitespace-only text nodes if they would be trailing text nodes
43640    // or if they would be leading whitespace-only text nodes:
43641    //  * end > -1 indicates this is not a trailing text node
43642    //  * leading node is when level is -1 and list has length 0
43643    if ((!ignoreWhitespace && end > -1 && level + list.length >= 0) || content !== ' ') {
43644        list.push({
43645            type: 'text',
43646            content: content
43647        });
43648    }
43649}
43650
43651module.exports = function parse(html, options) {
43652    options || (options = {});
43653    options.components || (options.components = empty);
43654    var result = [];
43655    var current;
43656    var level = -1;
43657    var arr = [];
43658    var byTag = {};
43659    var inComponent = false;
43660
43661    html.replace(tagRE, function (tag, index) {
43662        if (inComponent) {
43663            if (tag !== ('</' + current.name + '>')) {
43664                return;
43665            } else {
43666                inComponent = false;
43667            }
43668        }
43669
43670        var isOpen = tag.charAt(1) !== '/';
43671        var isComment = tag.indexOf('<!--') === 0;
43672        var start = index + tag.length;
43673        var nextChar = html.charAt(start);
43674        var parent;
43675
43676        if (isOpen && !isComment) {
43677            level++;
43678
43679            current = parseTag(tag);
43680            if (current.type === 'tag' && options.components[current.name]) {
43681                current.type = 'component';
43682                inComponent = true;
43683            }
43684
43685            if (!current.voidElement && !inComponent && nextChar && nextChar !== '<') {
43686                pushTextNode(current.children, html, level, start, options.ignoreWhitespace);
43687            }
43688
43689            byTag[current.tagName] = current;
43690
43691            // if we're at root, push new base node
43692            if (level === 0) {
43693                result.push(current);
43694            }
43695
43696            parent = arr[level - 1];
43697
43698            if (parent) {
43699                parent.children.push(current);
43700            }
43701
43702            arr[level] = current;
43703        }
43704
43705        if (isComment || !isOpen || current.voidElement) {
43706            if (!isComment) {
43707                level--;
43708            }
43709            if (!inComponent && nextChar !== '<' && nextChar) {
43710                // trailing text node
43711                // if we're at the root, push a base text node. otherwise add as
43712                // a child to the current node.
43713                parent = level === -1 ? result : arr[level].children;
43714                pushTextNode(parent, html, level, start, options.ignoreWhitespace);
43715            }
43716        }
43717    });
43718
43719    // If the "html" passed isn't actually html, add it as a text node.
43720    if (!result.length && html.length) {
43721        pushTextNode(result, html, 0, 0, options.ignoreWhitespace);
43722    }
43723
43724    return result;
43725};
43726
43727
43728/***/ }),
43729/* 879 */
43730/***/ (function(module, exports, __webpack_require__) {
43731
43732var attrRE = /([\w-]+)|=|(['"])([.\s\S]*?)\2/g;
43733var voidElements = __webpack_require__(880);
43734
43735module.exports = function (tag) {
43736    var i = 0;
43737    var key;
43738    var expectingValueAfterEquals = true;
43739    var res = {
43740        type: 'tag',
43741        name: '',
43742        voidElement: false,
43743        attrs: {},
43744        children: []
43745    };
43746
43747    tag.replace(attrRE, function (match) {
43748        if (match === '=') {
43749            expectingValueAfterEquals = true;
43750            i++;
43751            return;
43752        }
43753
43754        if (!expectingValueAfterEquals) {
43755            if (key) {
43756                res.attrs[key] = key; // boolean attribute
43757            }
43758            key=match;
43759        } else {
43760            if (i === 0) {
43761                if (voidElements[match] || tag.charAt(tag.length - 2) === '/') {
43762                    res.voidElement = true;
43763                }
43764                res.name = match;
43765            } else {
43766                res.attrs[key] = match.replace(/^['"]|['"]$/g, '');
43767                key=undefined;
43768            }
43769        }
43770        i++;
43771        expectingValueAfterEquals = false;
43772    });
43773
43774    return res;
43775};
43776
43777
43778/***/ }),
43779/* 880 */
43780/***/ (function(module, exports) {
43781
43782/**
43783 * This file automatically generated from `pre-publish.js`.
43784 * Do not manually edit.
43785 */
43786
43787module.exports = {
43788  "area": true,
43789  "base": true,
43790  "br": true,
43791  "col": true,
43792  "embed": true,
43793  "hr": true,
43794  "img": true,
43795  "input": true,
43796  "keygen": true,
43797  "link": true,
43798  "menuitem": true,
43799  "meta": true,
43800  "param": true,
43801  "source": true,
43802  "track": true,
43803  "wbr": true
43804};
43805
43806
43807/***/ }),
43808/* 881 */
43809/***/ (function(module, exports) {
43810
43811function attrString(attrs) {
43812    var buff = [];
43813    for (var key in attrs) {
43814        buff.push(key + '="' + attrs[key] + '"');
43815    }
43816    if (!buff.length) {
43817        return '';
43818    }
43819    return ' ' + buff.join(' ');
43820}
43821
43822function stringify(buff, doc) {
43823    switch (doc.type) {
43824    case 'text':
43825        return buff + doc.content;
43826    case 'tag':
43827        buff += '<' + doc.name + (doc.attrs ? attrString(doc.attrs) : '') + (doc.voidElement ? '/>' : '>');
43828        if (doc.voidElement) {
43829            return buff;
43830        }
43831        return buff + doc.children.reduce(stringify, '') + '</' + doc.name + '>';
43832    }
43833}
43834
43835module.exports = function (doc) {
43836    return doc.reduce(function (token, rootEl) {
43837        return token + stringify('', rootEl);
43838    }, '');
43839};
43840
43841
43842/***/ }),
43843/* 882 */
43844/***/ (function(module, exports) {
43845
43846module.exports = "<svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M14.075 1l-7.944 9.47-4.518-3.787L0 8.606l6.44 5.404L16 2.616z\" fill-rule=\"evenodd\"></path></svg>"
43847
43848/***/ }),
43849/* 883 */
43850/***/ (function(module, exports) {
43851
43852module.exports = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.232 0L8 6.232L1.768 0L0 1.768L6.232 8L0 14.233L1.768 16L8 9.768L14.232 16L16 14.233L9.767 8L16 1.768L14.232 0Z\" fill=\"currentColor\"></path></svg>"
43853
43854/***/ }),
43855/* 884 */
43856/***/ (function(module, exports) {
43857
43858module.exports = "<svg width=\"60\" height=\"60\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><path d=\"M45 30.571l-4.364 2.858v-5.715L45 30.571zm-7.636 5.202L34.09 38V23.143l3.273 2.23v10.4zm-6.546 4.55l-3.273 2.248v-24l3.273 2.253v19.5zm-6.545 3.423L21 46V14l3.273 2.258v27.488z\" id=\"a\"></path></defs><g fill=\"none\" fill-rule=\"evenodd\"><circle fill=\"currentColor\" cx=\"30\" cy=\"30\" r=\"30\"></circle><use fill=\"#FFF\" xlink:href=\"#a\"></use></g></svg>"
43859
43860/***/ }),
43861/* 885 */
43862/***/ (function(module, exports) {
43863
43864module.exports = "<svg width=\"60\" height=\"60\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><circle fill=\"currentColor\" cx=\"30\" cy=\"30\" r=\"30\"></circle><path d=\"M22 40V20h5.625v20H22zm10.625 0V20h5.625v20h-5.625z\" fill=\"#FFF\"></path></g></svg>"
43865
43866/***/ }),
43867/* 886 */
43868/***/ (function(module, exports) {
43869
43870module.exports = "<svg width=\"60\" height=\"60\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><circle fill=\"currentColor\" cx=\"30\" cy=\"30\" r=\"30\"></circle><path fill=\"#FFF\" d=\"M20 40h20V20H20z\"></path></g></svg>"
43871
43872/***/ }),
43873/* 887 */
43874/***/ (function(module, exports) {
43875
43876module.exports = "<svg width=\"46px\" height=\"46px\" viewBox=\"0 0 46 46\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><title>icon_big_play</title><defs><path d=\"M23,46 C35.7025492,46 46,35.7025492 46,23 C46,10.2974508 35.7025492,0 23,0 C10.2974508,0 0,10.2974508 0,23 C0,35.7025492 10.2974508,46 23,46 Z M16.56,11.04 L19.0688869,12.7522421 L19.0688869,33.5993598 L16.56,35.3087694 L16.56,11.04 Z M21.5782076,14.0509245 L24.0870945,15.7631666 L24.0870945,30.5884353 L21.5782076,32.2978448 L21.5782076,14.0509245 Z M26.5963355,17.4722221 L29.1052224,19.1844641 L29.1052224,27.1671377 L26.5963355,28.8765473 L26.5963355,17.4722221 Z M31.6144634,20.8938737 L34.96,23.1758009 L31.6144634,25.4577281 L31.6144634,20.8938737 Z\" id=\"path-1\"></path></defs><g id=\"icon_big_play\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Play-Control\"><mask id=\"mask-2\" fill=\"white\"><use xlink:href=\"#path-1\"></use></mask><use id=\"Combined-Shape\" fill=\"currentColor\" xlink:href=\"#path-1\"></use></g></g></svg>"
43877
43878/***/ }),
43879/* 888 */
43880/***/ (function(module, exports) {
43881
43882module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.117 20.005c0 1.362-.567 2.599-1.484 3.495l1.242 1.212a6.563 6.563 0 0 0 1.997-4.707c0-1.843-.767-3.51-2.006-4.717l-1.243 1.211a4.875 4.875 0 0 1 1.494 3.506\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
43883
43884/***/ }),
43885/* 889 */
vendor: 9,807 bytes, lines 43886-44185
43886/***/ (function(module, exports) {
43887
43888module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M23.904 20.005a9.657 9.657 0 0 1-2.845 6.837l1.245 1.213c2.073-2.07 3.355-4.911 3.355-8.05 0-3.145-1.286-5.99-3.363-8.06l-1.244 1.212c1.76 1.763 2.852 4.18 2.852 6.848\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
43889
43890/***/ }),
43891/* 890 */
43892/***/ (function(module, exports) {
43893
43894module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.77 20.005c0 3.975-1.627 7.58-4.253 10.21l1.246 1.214c2.942-2.937 4.762-6.97 4.762-11.424 0-4.46-1.824-8.497-4.77-11.434l-1.246 1.215c2.632 2.629 4.26 6.238 4.26 10.219\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
43895
43896/***/ }),
43897/* 891 */
43898/***/ (function(module, exports) {
43899
43900module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M33.48 20.005c0 5.247-2.145 10.006-5.613 13.475l1.247 1.216c3.783-3.775 6.121-8.964 6.121-14.691 0-5.733-2.34-10.925-6.13-14.702L27.859 6.52c3.474 3.47 5.622 8.232 5.622 13.485\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
43901
43902/***/ }),
43903/* 892 */
43904/***/ (function(module, exports) {
43905
43906module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M32.502 38C37.137 33.376 40 27.02 40 20.005 40 12.984 37.134 6.625 32.493 2l-1.249 1.217c4.326 4.32 7.001 10.25 7.001 16.788 0 6.533-2.672 12.46-6.992 16.777L32.502 38z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
43907
43908/***/ }),
43909/* 893 */
43910/***/ (function(module, exports) {
43911
43912module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M8.505 14.635H0v10.268h8.505l5.533 5.36V9.728z\" fill-rule=\"evenodd\"></path></svg>"
43913
43914/***/ }),
43915/* 894 */
43916/***/ (function(module, exports) {
43917
43918module.exports = "<svg width=\"40\" height=\"40\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M32.453 13L27 18.453 21.547 13 20 14.547 25.453 20 20 25.453 21.547 27 27 21.547 32.453 27 34 25.453 28.547 20 34 14.547z\" fill-rule=\"evenodd\"></path></svg>"
43919
43920/***/ }),
43921/* 895 */
43922/***/ (function(module, exports) {
43923
43924module.exports = "assets/radioplayer-c905599.svg";
43925
43926/***/ }),
43927/* 896 */
43928/***/ (function(module, exports) {
43929
43930module.exports = "<svg width=\"16\" height=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"currentColor\" d=\"M7.992 3L0 11.002l2.095 2.099L7.96 7.278l5.84 5.81L16 10.992z\" fill-rule=\"evenodd\"></path></svg>"
43931
43932/***/ }),
43933/* 897 */
43934/***/ (function(module, exports, __webpack_require__) {
43935
43936const nodeFetch = __webpack_require__(898)
43937const realFetch = nodeFetch.default || nodeFetch
43938
43939const fetch = function (url, options) {
43940  // Support schemaless URIs on the server for parity with the browser.
43941  // Ex: //github.com/ -> https://github.com/
43942  if (/^\/\//.test(url)) {
43943    url = 'https:' + url
43944  }
43945  return realFetch.call(this, url, options)
43946}
43947
43948fetch.ponyfill = true
43949
43950module.exports = exports = fetch
43951exports.fetch = fetch
43952exports.Headers = nodeFetch.Headers
43953exports.Request = nodeFetch.Request
43954exports.Response = nodeFetch.Response
43955
43956// Needed for TypeScript consumers without esModuleInterop.
43957exports.default = fetch
43958
43959
43960/***/ }),
43961/* 898 */
43962/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) {
43963
43964"use strict";
43965__webpack_require__.r(__webpack_exports__);
43966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Headers", function() { return Headers; });
43967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Request", function() { return Request; });
43968/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Response", function() { return Response; });
43969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FetchError", function() { return FetchError; });
43970/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbortError", function() { return AbortError; });
43971/* harmony import */ var stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(129);
43972/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(317);
43973/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(246);
43974/* harmony import */ var whatwg_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(486);
43975/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(755);
43976/* harmony import */ var zlib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(202);
43977
43978
43979
43980
43981
43982
43983
43984// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
43985
43986// fix for "Readable" isn't a named export issue
43987const Readable = stream__WEBPACK_IMPORTED_MODULE_0__.Readable;
43988
43989const BUFFER = Symbol('buffer');
43990const TYPE = Symbol('type');
43991
43992class Blob {
43993	constructor() {
43994		this[TYPE] = '';
43995
43996		const blobParts = arguments[0];
43997		const options = arguments[1];
43998
43999		const buffers = [];
44000		let size = 0;
44001
44002		if (blobParts) {
44003			const a = blobParts;
44004			const length = Number(a.length);
44005			for (let i = 0; i < length; i++) {
44006				const element = a[i];
44007				let buffer;
44008				if (element instanceof Buffer) {
44009					buffer = element;
44010				} else if (ArrayBuffer.isView(element)) {
44011					buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
44012				} else if (element instanceof ArrayBuffer) {
44013					buffer = Buffer.from(element);
44014				} else if (element instanceof Blob) {
44015					buffer = element[BUFFER];
44016				} else {
44017					buffer = Buffer.from(typeof element === 'string' ? element : String(element));
44018				}
44019				size += buffer.length;
44020				buffers.push(buffer);
44021			}
44022		}
44023
44024		this[BUFFER] = Buffer.concat(buffers);
44025
44026		let type = options && options.type !== undefined && String(options.type).toLowerCase();
44027		if (type && !/[^\u0020-\u007E]/.test(type)) {
44028			this[TYPE] = type;
44029		}
44030	}
44031	get size() {
44032		return this[BUFFER].length;
44033	}
44034	get type() {
44035		return this[TYPE];
44036	}
44037	text() {
44038		return Promise.resolve(this[BUFFER].toString());
44039	}
44040	arrayBuffer() {
44041		const buf = this[BUFFER];
44042		const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
44043		return Promise.resolve(ab);
44044	}
44045	stream() {
44046		const readable = new Readable();
44047		readable._read = function () {};
44048		readable.push(this[BUFFER]);
44049		readable.push(null);
44050		return readable;
44051	}
44052	toString() {
44053		return '[object Blob]';
44054	}
44055	slice() {
44056		const size = this.size;
44057
44058		const start = arguments[0];
44059		const end = arguments[1];
44060		let relativeStart, relativeEnd;
44061		if (start === undefined) {
44062			relativeStart = 0;
44063		} else if (start < 0) {
44064			relativeStart = Math.max(size + start, 0);
44065		} else {
44066			relativeStart = Math.min(start, size);
44067		}
44068		if (end === undefined) {
44069			relativeEnd = size;
44070		} else if (end < 0) {
44071			relativeEnd = Math.max(size + end, 0);
44072		} else {
44073			relativeEnd = Math.min(end, size);
44074		}
44075		const span = Math.max(relativeEnd - relativeStart, 0);
44076
44077		const buffer = this[BUFFER];
44078		const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
44079		const blob = new Blob([], { type: arguments[2] });
44080		blob[BUFFER] = slicedBuffer;
44081		return blob;
44082	}
44083}
44084
44085Object.defineProperties(Blob.prototype, {
44086	size: { enumerable: true },
44087	type: { enumerable: true },
44088	slice: { enumerable: true }
44089});
44090
44091Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
44092	value: 'Blob',
44093	writable: false,
44094	enumerable: false,
44095	configurable: true
44096});
44097
44098/**
44099 * fetch-error.js
44100 *
44101 * FetchError interface for operational errors
44102 */
44103
44104/**
44105 * Create FetchError instance
44106 *
44107 * @param   String      message      Error message for human
44108 * @param   String      type         Error type for machine
44109 * @param   String      systemError  For Node.js system error
44110 * @return  FetchError
44111 */
44112function FetchError(message, type, systemError) {
44113  Error.call(this, message);
44114
44115  this.message = message;
44116  this.type = type;
44117
44118  // when err.type is `system`, err.code contains system error code
44119  if (systemError) {
44120    this.code = this.errno = systemError.code;
44121  }
44122
44123  // hide custom error implementation details from end-users
44124  Error.captureStackTrace(this, this.constructor);
44125}
44126
44127FetchError.prototype = Object.create(Error.prototype);
44128FetchError.prototype.constructor = FetchError;
44129FetchError.prototype.name = 'FetchError';
44130
44131let convert;
44132try {
44133	convert = require('encoding').convert;
44134} catch (e) {}
44135
44136const INTERNALS = Symbol('Body internals');
44137
44138// fix an issue where "PassThrough" isn't a named export for node <10
44139const PassThrough = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;
44140
44141/**
44142 * Body mixin
44143 *
44144 * Ref: https://fetch.spec.whatwg.org/#body
44145 *
44146 * @param   Stream  body  Readable stream
44147 * @param   Object  opts  Response options
44148 * @return  Void
44149 */
44150function Body(body) {
44151	var _this = this;
44152
44153	var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
44154	    _ref$size = _ref.size;
44155
44156	let size = _ref$size === undefined ? 0 : _ref$size;
44157	var _ref$timeout = _ref.timeout;
44158	let timeout = _ref$timeout === undefined ? 0 : _ref$timeout;
44159
44160	if (body == null) {
44161		// body is undefined or null
44162		body = null;
44163	} else if (isURLSearchParams(body)) {
44164		// body is a URLSearchParams
44165		body = Buffer.from(body.toString());
44166	} else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
44167		// body is ArrayBuffer
44168		body = Buffer.from(body);
44169	} else if (ArrayBuffer.isView(body)) {
44170		// body is ArrayBufferView
44171		body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);
44172	} else if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__) ; else {
44173		// none of the above
44174		// coerce to string then buffer
44175		body = Buffer.from(String(body));
44176	}
44177	this[INTERNALS] = {
44178		body,
44179		disturbed: false,
44180		error: null
44181	};
44182	this.size = size;
44183	this.timeout = timeout;
44184
44185	if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__
vendor: 3,269 bytes, lines 44185-44341
44185) {
44186		body.on('error', function (err) {
44187			const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err);
44188			_this[INTERNALS].error = error;
44189		});
44190	}
44191}
44192
44193Body.prototype = {
44194	get body() {
44195		return this[INTERNALS].body;
44196	},
44197
44198	get bodyUsed() {
44199		return this[INTERNALS].disturbed;
44200	},
44201
44202	/**
44203  * Decode response as ArrayBuffer
44204  *
44205  * @return  Promise
44206  */
44207	arrayBuffer() {
44208		return consumeBody.call(this).then(function (buf) {
44209			return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
44210		});
44211	},
44212
44213	/**
44214  * Return raw response as Blob
44215  *
44216  * @return Promise
44217  */
44218	blob() {
44219		let ct = this.headers && this.headers.get('content-type') || '';
44220		return consumeBody.call(this).then(function (buf) {
44221			return Object.assign(
44222			// Prevent copying
44223			new Blob([], {
44224				type: ct.toLowerCase()
44225			}), {
44226				[BUFFER]: buf
44227			});
44228		});
44229	},
44230
44231	/**
44232  * Decode response as json
44233  *
44234  * @return  Promise
44235  */
44236	json() {
44237		var _this2 = this;
44238
44239		return consumeBody.call(this).then(function (buffer) {
44240			try {
44241				return JSON.parse(buffer.toString());
44242			} catch (err) {
44243				return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json'));
44244			}
44245		});
44246	},
44247
44248	/**
44249  * Decode response as text
44250  *
44251  * @return  Promise
44252  */
44253	text() {
44254		return consumeBody.call(this).then(function (buffer) {
44255			return buffer.toString();
44256		});
44257	},
44258
44259	/**
44260  * Decode response as buffer (non-spec api)
44261  *
44262  * @return  Promise
44263  */
44264	buffer() {
44265		return consumeBody.call(this);
44266	},
44267
44268	/**
44269  * Decode response as text, while automatically detecting the encoding and
44270  * trying to decode to UTF-8 (non-spec api)
44271  *
44272  * @return  Promise
44273  */
44274	textConverted() {
44275		var _this3 = this;
44276
44277		return consumeBody.call(this).then(function (buffer) {
44278			return convertBody(buffer, _this3.headers);
44279		});
44280	}
44281};
44282
44283// In browsers, all properties are enumerable.
44284Object.defineProperties(Body.prototype, {
44285	body: { enumerable: true },
44286	bodyUsed: { enumerable: true },
44287	arrayBuffer: { enumerable: true },
44288	blob: { enumerable: true },
44289	json: { enumerable: true },
44290	text: { enumerable: true }
44291});
44292
44293Body.mixIn = function (proto) {
44294	for (const name of Object.getOwnPropertyNames(Body.prototype)) {
44295		// istanbul ignore else: future proof
44296		if (!(name in proto)) {
44297			const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
44298			Object.defineProperty(proto, name, desc);
44299		}
44300	}
44301};
44302
44303/**
44304 * Consume and convert an entire Body to a Buffer.
44305 *
44306 * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body
44307 *
44308 * @return  Promise
44309 */
44310function consumeBody() {
44311	var _this4 = this;
44312
44313	if (this[INTERNALS].disturbed) {
44314		return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
44315	}
44316
44317	this[INTERNALS].disturbed = true;
44318
44319	if (this[INTERNALS].error) {
44320		return Body.Promise.reject(this[INTERNALS].error);
44321	}
44322
44323	let body = this.body;
44324
44325	// body is null
44326	if (body === null) {
44327		return Body.Promise.resolve(Buffer.alloc(0));
44328	}
44329
44330	// body is blob
44331	if (isBlob(body)) {
44332		body = body.stream();
44333	}
44334
44335	// body is buffer
44336	if (Buffer.isBuffer(body)) {
44337		return Body.Promise.resolve(body);
44338	}
44339
44340	// istanbul ignore if: should never happen
44341	if (!(body instanceof 
vendor: 6,497 bytes, lines 44341-44562
44341stream__WEBPACK_IMPORTED_MODULE_0__)) {
44342		return Body.Promise.resolve(Buffer.alloc(0));
44343	}
44344
44345	// body is stream
44346	// get ready to actually consume the body
44347	let accum = [];
44348	let accumBytes = 0;
44349	let abort = false;
44350
44351	return new Body.Promise(function (resolve, reject) {
44352		let resTimeout;
44353
44354		// allow timeout on slow response body
44355		if (_this4.timeout) {
44356			resTimeout = setTimeout(function () {
44357				abort = true;
44358				reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout'));
44359			}, _this4.timeout);
44360		}
44361
44362		// handle stream errors
44363		body.on('error', function (err) {
44364			if (err.name === 'AbortError') {
44365				// if the request was aborted, reject with this Error
44366				abort = true;
44367				reject(err);
44368			} else {
44369				// other errors, such as incorrect content-encoding
44370				reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err));
44371			}
44372		});
44373
44374		body.on('data', function (chunk) {
44375			if (abort || chunk === null) {
44376				return;
44377			}
44378
44379			if (_this4.size && accumBytes + chunk.length > _this4.size) {
44380				abort = true;
44381				reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size'));
44382				return;
44383			}
44384
44385			accumBytes += chunk.length;
44386			accum.push(chunk);
44387		});
44388
44389		body.on('end', function () {
44390			if (abort) {
44391				return;
44392			}
44393
44394			clearTimeout(resTimeout);
44395
44396			try {
44397				resolve(Buffer.concat(accum, accumBytes));
44398			} catch (err) {
44399				// handle streams that have accumulated too much data (issue #414)
44400				reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err));
44401			}
44402		});
44403	});
44404}
44405
44406/**
44407 * Detect buffer encoding and convert to target encoding
44408 * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
44409 *
44410 * @param   Buffer  buffer    Incoming buffer
44411 * @param   String  encoding  Target encoding
44412 * @return  String
44413 */
44414function convertBody(buffer, headers) {
44415	if (typeof convert !== 'function') {
44416		throw new Error('The package `encoding` must be installed to use the textConverted() function');
44417	}
44418
44419	const ct = headers.get('content-type');
44420	let charset = 'utf-8';
44421	let res, str;
44422
44423	// header
44424	if (ct) {
44425		res = /charset=([^;]*)/i.exec(ct);
44426	}
44427
44428	// no charset in content type, peek at response body for at most 1024 bytes
44429	str = buffer.slice(0, 1024).toString();
44430
44431	// html5
44432	if (!res && str) {
44433		res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str);
44434	}
44435
44436	// html4
44437	if (!res && str) {
44438		res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str);
44439		if (!res) {
44440			res = /<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(str);
44441			if (res) {
44442				res.pop(); // drop last quote
44443			}
44444		}
44445
44446		if (res) {
44447			res = /charset=(.*)/i.exec(res.pop());
44448		}
44449	}
44450
44451	// xml
44452	if (!res && str) {
44453		res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str);
44454	}
44455
44456	// found charset
44457	if (res) {
44458		charset = res.pop();
44459
44460		// prevent decode issues when sites use incorrect encoding
44461		// ref: https://hsivonen.fi/encoding-menu/
44462		if (charset === 'gb2312' || charset === 'gbk') {
44463			charset = 'gb18030';
44464		}
44465	}
44466
44467	// turn raw buffers into a single utf-8 buffer
44468	return convert(buffer, 'UTF-8', charset).toString();
44469}
44470
44471/**
44472 * Detect a URLSearchParams object
44473 * ref: https://github.com/bitinn/node-fetch/issues/296#issuecomment-307598143
44474 *
44475 * @param   Object  obj     Object to detect by type or brand
44476 * @return  String
44477 */
44478function isURLSearchParams(obj) {
44479	// Duck-typing as a necessary condition.
44480	if (typeof obj !== 'object' || typeof obj.append !== 'function' || typeof obj.delete !== 'function' || typeof obj.get !== 'function' || typeof obj.getAll !== 'function' || typeof obj.has !== 'function' || typeof obj.set !== 'function') {
44481		return false;
44482	}
44483
44484	// Brand-checking and more duck-typing as optional condition.
44485	return obj.constructor.name === 'URLSearchParams' || Object.prototype.toString.call(obj) === '[object URLSearchParams]' || typeof obj.sort === 'function';
44486}
44487
44488/**
44489 * Check if `obj` is a W3C `Blob` object (which `File` inherits from)
44490 * @param  {*} obj
44491 * @return {boolean}
44492 */
44493function isBlob(obj) {
44494	return typeof obj === 'object' && typeof obj.arrayBuffer === 'function' && typeof obj.type === 'string' && typeof obj.stream === 'function' && typeof obj.constructor === 'function' && typeof obj.constructor.name === 'string' && /^(Blob|File)$/.test(obj.constructor.name) && /^(Blob|File)$/.test(obj[Symbol.toStringTag]);
44495}
44496
44497/**
44498 * Clone body given Res/Req instance
44499 *
44500 * @param   Mixed  instance  Response or Request instance
44501 * @return  Mixed
44502 */
44503function clone(instance) {
44504	let p1, p2;
44505	let body = instance.body;
44506
44507	// don't allow cloning a used body
44508	if (instance.bodyUsed) {
44509		throw new Error('cannot clone body after it is used');
44510	}
44511
44512	// check that body is a stream and not form-data object
44513	// note: we can't clone the form-data object without having it as a dependency
44514	if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__ && typeof body.getBoundary !== 'function') {
44515		// tee instance body
44516		p1 = new PassThrough();
44517		p2 = new PassThrough();
44518		body.pipe(p1);
44519		body.pipe(p2);
44520		// set instance body to teed body and return the other teed body
44521		instance[INTERNALS].body = p1;
44522		body = p2;
44523	}
44524
44525	return body;
44526}
44527
44528/**
44529 * Performs the operation "extract a `Content-Type` value from |object|" as
44530 * specified in the specification:
44531 * https://fetch.spec.whatwg.org/#concept-bodyinit-extract
44532 *
44533 * This function assumes that instance.body is present.
44534 *
44535 * @param   Mixed  instance  Any options.body input
44536 */
44537function extractContentType(body) {
44538	if (body === null) {
44539		// body is null
44540		return null;
44541	} else if (typeof body === 'string') {
44542		// body is string
44543		return 'text/plain;charset=UTF-8';
44544	} else if (isURLSearchParams(body)) {
44545		// body is a URLSearchParams
44546		return 'application/x-www-form-urlencoded;charset=UTF-8';
44547	} else if (isBlob(body)) {
44548		// body is blob
44549		return body.type || null;
44550	} else if (Buffer.isBuffer(body)) {
44551		// body is buffer
44552		return null;
44553	} else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') {
44554		// body is ArrayBuffer
44555		return null;
44556	} else if (ArrayBuffer.isView(body)) {
44557		// body is ArrayBufferView
44558		return null;
44559	} else if (typeof body.getBoundary === 'function') {
44560		// detect form data input from form-data module
44561		return `multipart/form-data;boundary=${body.getBoundary()}`;
44562	} else if (body instanceof stream__WEBPACK_IMPORTED_MODULE_0__
vendor: 10,309 bytes, lines 44562-45016
44562) {
44563		// body is stream
44564		// can't really do much about this
44565		return null;
44566	} else {
44567		// Body constructor defaults other things to string
44568		return 'text/plain;charset=UTF-8';
44569	}
44570}
44571
44572/**
44573 * The Fetch Standard treats this as if "total bytes" is a property on the body.
44574 * For us, we have to explicitly get it with a function.
44575 *
44576 * ref: https://fetch.spec.whatwg.org/#concept-body-total-bytes
44577 *
44578 * @param   Body    instance   Instance of Body
44579 * @return  Number?            Number of bytes, or null if not possible
44580 */
44581function getTotalBytes(instance) {
44582	const body = instance.body;
44583
44584
44585	if (body === null) {
44586		// body is null
44587		return 0;
44588	} else if (isBlob(body)) {
44589		return body.size;
44590	} else if (Buffer.isBuffer(body)) {
44591		// body is buffer
44592		return body.length;
44593	} else if (body && typeof body.getLengthSync === 'function') {
44594		// detect form data input from form-data module
44595		if (body._lengthRetrievers && body._lengthRetrievers.length == 0 || // 1.x
44596		body.hasKnownLength && body.hasKnownLength()) {
44597			// 2.x
44598			return body.getLengthSync();
44599		}
44600		return null;
44601	} else {
44602		// body is stream
44603		return null;
44604	}
44605}
44606
44607/**
44608 * Write a Body to a Node.js WritableStream (e.g. http.Request) object.
44609 *
44610 * @param   Body    instance   Instance of Body
44611 * @return  Void
44612 */
44613function writeToStream(dest, instance) {
44614	const body = instance.body;
44615
44616
44617	if (body === null) {
44618		// body is null
44619		dest.end();
44620	} else if (isBlob(body)) {
44621		body.stream().pipe(dest);
44622	} else if (Buffer.isBuffer(body)) {
44623		// body is buffer
44624		dest.write(body);
44625		dest.end();
44626	} else {
44627		// body is stream
44628		body.pipe(dest);
44629	}
44630}
44631
44632// expose Promise
44633Body.Promise = global.Promise;
44634
44635/**
44636 * headers.js
44637 *
44638 * Headers class offers convenient helpers
44639 */
44640
44641const invalidTokenRegex = /[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/;
44642const invalidHeaderCharRegex = /[^\t\x20-\x7e\x80-\xff]/;
44643
44644function validateName(name) {
44645	name = `${name}`;
44646	if (invalidTokenRegex.test(name) || name === '') {
44647		throw new TypeError(`${name} is not a legal HTTP header name`);
44648	}
44649}
44650
44651function validateValue(value) {
44652	value = `${value}`;
44653	if (invalidHeaderCharRegex.test(value)) {
44654		throw new TypeError(`${value} is not a legal HTTP header value`);
44655	}
44656}
44657
44658/**
44659 * Find the key in the map object given a header name.
44660 *
44661 * Returns undefined if not found.
44662 *
44663 * @param   String  name  Header name
44664 * @return  String|Undefined
44665 */
44666function find(map, name) {
44667	name = name.toLowerCase();
44668	for (const key in map) {
44669		if (key.toLowerCase() === name) {
44670			return key;
44671		}
44672	}
44673	return undefined;
44674}
44675
44676const MAP = Symbol('map');
44677class Headers {
44678	/**
44679  * Headers class
44680  *
44681  * @param   Object  headers  Response headers
44682  * @return  Void
44683  */
44684	constructor() {
44685		let init = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;
44686
44687		this[MAP] = Object.create(null);
44688
44689		if (init instanceof Headers) {
44690			const rawHeaders = init.raw();
44691			const headerNames = Object.keys(rawHeaders);
44692
44693			for (const headerName of headerNames) {
44694				for (const value of rawHeaders[headerName]) {
44695					this.append(headerName, value);
44696				}
44697			}
44698
44699			return;
44700		}
44701
44702		// We don't worry about converting prop to ByteString here as append()
44703		// will handle it.
44704		if (init == null) ; else if (typeof init === 'object') {
44705			const method = init[Symbol.iterator];
44706			if (method != null) {
44707				if (typeof method !== 'function') {
44708					throw new TypeError('Header pairs must be iterable');
44709				}
44710
44711				// sequence<sequence<ByteString>>
44712				// Note: per spec we have to first exhaust the lists then process them
44713				const pairs = [];
44714				for (const pair of init) {
44715					if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
44716						throw new TypeError('Each header pair must be iterable');
44717					}
44718					pairs.push(Array.from(pair));
44719				}
44720
44721				for (const pair of pairs) {
44722					if (pair.length !== 2) {
44723						throw new TypeError('Each header pair must be a name/value tuple');
44724					}
44725					this.append(pair[0], pair[1]);
44726				}
44727			} else {
44728				// record<ByteString, ByteString>
44729				for (const key of Object.keys(init)) {
44730					const value = init[key];
44731					this.append(key, value);
44732				}
44733			}
44734		} else {
44735			throw new TypeError('Provided initializer must be an object');
44736		}
44737	}
44738
44739	/**
44740  * Return combined header value given name
44741  *
44742  * @param   String  name  Header name
44743  * @return  Mixed
44744  */
44745	get(name) {
44746		name = `${name}`;
44747		validateName(name);
44748		const key = find(this[MAP], name);
44749		if (key === undefined) {
44750			return null;
44751		}
44752
44753		return this[MAP][key].join(', ');
44754	}
44755
44756	/**
44757  * Iterate over all headers
44758  *
44759  * @param   Function  callback  Executed for each item with parameters (value, name, thisArg)
44760  * @param   Boolean   thisArg   `this` context for callback function
44761  * @return  Void
44762  */
44763	forEach(callback) {
44764		let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
44765
44766		let pairs = getHeaders(this);
44767		let i = 0;
44768		while (i < pairs.length) {
44769			var _pairs$i = pairs[i];
44770			const name = _pairs$i[0],
44771			      value = _pairs$i[1];
44772
44773			callback.call(thisArg, value, name, this);
44774			pairs = getHeaders(this);
44775			i++;
44776		}
44777	}
44778
44779	/**
44780  * Overwrite header values given name
44781  *
44782  * @param   String  name   Header name
44783  * @param   String  value  Header value
44784  * @return  Void
44785  */
44786	set(name, value) {
44787		name = `${name}`;
44788		value = `${value}`;
44789		validateName(name);
44790		validateValue(value);
44791		const key = find(this[MAP], name);
44792		this[MAP][key !== undefined ? key : name] = [value];
44793	}
44794
44795	/**
44796  * Append a value onto existing header
44797  *
44798  * @param   String  name   Header name
44799  * @param   String  value  Header value
44800  * @return  Void
44801  */
44802	append(name, value) {
44803		name = `${name}`;
44804		value = `${value}`;
44805		validateName(name);
44806		validateValue(value);
44807		const key = find(this[MAP], name);
44808		if (key !== undefined) {
44809			this[MAP][key].push(value);
44810		} else {
44811			this[MAP][name] = [value];
44812		}
44813	}
44814
44815	/**
44816  * Check for header name existence
44817  *
44818  * @param   String   name  Header name
44819  * @return  Boolean
44820  */
44821	has(name) {
44822		name = `${name}`;
44823		validateName(name);
44824		return find(this[MAP], name) !== undefined;
44825	}
44826
44827	/**
44828  * Delete all header values given name
44829  *
44830  * @param   String  name  Header name
44831  * @return  Void
44832  */
44833	delete(name) {
44834		name = `${name}`;
44835		validateName(name);
44836		const key = find(this[MAP], name);
44837		if (key !== undefined) {
44838			delete this[MAP][key];
44839		}
44840	}
44841
44842	/**
44843  * Return raw headers (non-spec api)
44844  *
44845  * @return  Object
44846  */
44847	raw() {
44848		return this[MAP];
44849	}
44850
44851	/**
44852  * Get an iterator on keys.
44853  *
44854  * @return  Iterator
44855  */
44856	keys() {
44857		return createHeadersIterator(this, 'key');
44858	}
44859
44860	/**
44861  * Get an iterator on values.
44862  *
44863  * @return  Iterator
44864  */
44865	values() {
44866		return createHeadersIterator(this, 'value');
44867	}
44868
44869	/**
44870  * Get an iterator on entries.
44871  *
44872  * This is the default iterator of the Headers object.
44873  *
44874  * @return  Iterator
44875  */
44876	[Symbol.iterator]() {
44877		return createHeadersIterator(this, 'key+value');
44878	}
44879}
44880Headers.prototype.entries = Headers.prototype[Symbol.iterator];
44881
44882Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
44883	value: 'Headers',
44884	writable: false,
44885	enumerable: false,
44886	configurable: true
44887});
44888
44889Object.defineProperties(Headers.prototype, {
44890	get: { enumerable: true },
44891	forEach: { enumerable: true },
44892	set: { enumerable: true },
44893	append: { enumerable: true },
44894	has: { enumerable: true },
44895	delete: { enumerable: true },
44896	keys: { enumerable: true },
44897	values: { enumerable: true },
44898	entries: { enumerable: true }
44899});
44900
44901function getHeaders(headers) {
44902	let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value';
44903
44904	const keys = Object.keys(headers[MAP]).sort();
44905	return keys.map(kind === 'key' ? function (k) {
44906		return k.toLowerCase();
44907	} : kind === 'value' ? function (k) {
44908		return headers[MAP][k].join(', ');
44909	} : function (k) {
44910		return [k.toLowerCase(), headers[MAP][k].join(', ')];
44911	});
44912}
44913
44914const INTERNAL = Symbol('internal');
44915
44916function createHeadersIterator(target, kind) {
44917	const iterator = Object.create(HeadersIteratorPrototype);
44918	iterator[INTERNAL] = {
44919		target,
44920		kind,
44921		index: 0
44922	};
44923	return iterator;
44924}
44925
44926const HeadersIteratorPrototype = Object.setPrototypeOf({
44927	next() {
44928		// istanbul ignore if
44929		if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
44930			throw new TypeError('Value of `this` is not a HeadersIterator');
44931		}
44932
44933		var _INTERNAL = this[INTERNAL];
44934		const target = _INTERNAL.target,
44935		      kind = _INTERNAL.kind,
44936		      index = _INTERNAL.index;
44937
44938		const values = getHeaders(target, kind);
44939		const len = values.length;
44940		if (index >= len) {
44941			return {
44942				value: undefined,
44943				done: true
44944			};
44945		}
44946
44947		this[INTERNAL].index = index + 1;
44948
44949		return {
44950			value: values[index],
44951			done: false
44952		};
44953	}
44954}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
44955
44956Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
44957	value: 'HeadersIterator',
44958	writable: false,
44959	enumerable: false,
44960	configurable: true
44961});
44962
44963/**
44964 * Export the Headers object in a form that Node.js can consume.
44965 *
44966 * @param   Headers  headers
44967 * @return  Object
44968 */
44969function exportNodeCompatibleHeaders(headers) {
44970	const obj = Object.assign({ __proto__: null }, headers[MAP]);
44971
44972	// http.request() only supports string as Host header. This hack makes
44973	// specifying custom Host header possible.
44974	const hostHeaderKey = find(headers[MAP], 'Host');
44975	if (hostHeaderKey !== undefined) {
44976		obj[hostHeaderKey] = obj[hostHeaderKey][0];
44977	}
44978
44979	return obj;
44980}
44981
44982/**
44983 * Create a Headers object from an object of headers, ignoring those that do
44984 * not conform to HTTP grammar productions.
44985 *
44986 * @param   Object  obj  Object of headers
44987 * @return  Headers
44988 */
44989function createHeadersLenient(obj) {
44990	const headers = new Headers();
44991	for (const name of Object.keys(obj)) {
44992		if (invalidTokenRegex.test(name)) {
44993			continue;
44994		}
44995		if (Array.isArray(obj[name])) {
44996			for (const val of obj[name]) {
44997				if (invalidHeaderCharRegex.test(val)) {
44998					continue;
44999				}
45000				if (headers[MAP][name] === undefined) {
45001					headers[MAP][name] = [val];
45002				} else {
45003					headers[MAP][name].push(val);
45004				}
45005			}
45006		} else if (!invalidHeaderCharRegex.test(obj[name])) {
45007			headers[MAP][name] = [obj[name]];
45008		}
45009	}
45010	return headers;
45011}
45012
45013const INTERNALS$1 = Symbol('Response internals');
45014
45015// fix an issue where "STATUS_CODES" aren't a named export for node <10
45016const STATUS_CODES = http
vendor: 8,434 bytes, lines 45016-45353
45016__WEBPACK_IMPORTED_MODULE_1__.STATUS_CODES;
45017
45018/**
45019 * Response class
45020 *
45021 * @param   Stream  body  Readable stream
45022 * @param   Object  opts  Response options
45023 * @return  Void
45024 */
45025class Response {
45026	constructor() {
45027		let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
45028		let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
45029
45030		Body.call(this, body, opts);
45031
45032		const status = opts.status || 200;
45033		const headers = new Headers(opts.headers);
45034
45035		if (body != null && !headers.has('Content-Type')) {
45036			const contentType = extractContentType(body);
45037			if (contentType) {
45038				headers.append('Content-Type', contentType);
45039			}
45040		}
45041
45042		this[INTERNALS$1] = {
45043			url: opts.url,
45044			status,
45045			statusText: opts.statusText || STATUS_CODES[status],
45046			headers,
45047			counter: opts.counter
45048		};
45049	}
45050
45051	get url() {
45052		return this[INTERNALS$1].url || '';
45053	}
45054
45055	get status() {
45056		return this[INTERNALS$1].status;
45057	}
45058
45059	/**
45060  * Convenience property representing if the request ended normally
45061  */
45062	get ok() {
45063		return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
45064	}
45065
45066	get redirected() {
45067		return this[INTERNALS$1].counter > 0;
45068	}
45069
45070	get statusText() {
45071		return this[INTERNALS$1].statusText;
45072	}
45073
45074	get headers() {
45075		return this[INTERNALS$1].headers;
45076	}
45077
45078	/**
45079  * Clone this response
45080  *
45081  * @return  Response
45082  */
45083	clone() {
45084		return new Response(clone(this), {
45085			url: this.url,
45086			status: this.status,
45087			statusText: this.statusText,
45088			headers: this.headers,
45089			ok: this.ok,
45090			redirected: this.redirected
45091		});
45092	}
45093}
45094
45095Body.mixIn(Response.prototype);
45096
45097Object.defineProperties(Response.prototype, {
45098	url: { enumerable: true },
45099	status: { enumerable: true },
45100	ok: { enumerable: true },
45101	redirected: { enumerable: true },
45102	statusText: { enumerable: true },
45103	headers: { enumerable: true },
45104	clone: { enumerable: true }
45105});
45106
45107Object.defineProperty(Response.prototype, Symbol.toStringTag, {
45108	value: 'Response',
45109	writable: false,
45110	enumerable: false,
45111	configurable: true
45112});
45113
45114const INTERNALS$2 = Symbol('Request internals');
45115const URL = url__WEBPACK_IMPORTED_MODULE_2__.URL || whatwg_url__WEBPACK_IMPORTED_MODULE_3__.URL;
45116
45117// fix an issue where "format", "parse" aren't a named export for node <10
45118const parse_url = url__WEBPACK_IMPORTED_MODULE_2__.parse;
45119const format_url = url__WEBPACK_IMPORTED_MODULE_2__.format;
45120
45121/**
45122 * Wrapper around `new URL` to handle arbitrary URLs
45123 *
45124 * @param  {string} urlStr
45125 * @return {void}
45126 */
45127function parseURL(urlStr) {
45128	/*
45129 	Check whether the URL is absolute or not
45130 		Scheme: https://tools.ietf.org/html/rfc3986#section-3.1
45131 	Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3
45132 */
45133	if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) {
45134		urlStr = new URL(urlStr).toString();
45135	}
45136
45137	// Fallback to old implementation for arbitrary URLs
45138	return parse_url(urlStr);
45139}
45140
45141const streamDestructionSupported = 'destroy' in stream__WEBPACK_IMPORTED_MODULE_0__.Readable.prototype;
45142
45143/**
45144 * Check if a value is an instance of Request.
45145 *
45146 * @param   Mixed   input
45147 * @return  Boolean
45148 */
45149function isRequest(input) {
45150	return typeof input === 'object' && typeof input[INTERNALS$2] === 'object';
45151}
45152
45153function isAbortSignal(signal) {
45154	const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal);
45155	return !!(proto && proto.constructor.name === 'AbortSignal');
45156}
45157
45158/**
45159 * Request class
45160 *
45161 * @param   Mixed   input  Url or Request instance
45162 * @param   Object  init   Custom options
45163 * @return  Void
45164 */
45165class Request {
45166	constructor(input) {
45167		let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
45168
45169		let parsedURL;
45170
45171		// normalize input
45172		if (!isRequest(input)) {
45173			if (input && input.href) {
45174				// in order to support Node.js' Url objects; though WHATWG's URL objects
45175				// will fall into this branch also (since their `toString()` will return
45176				// `href` property anyway)
45177				parsedURL = parseURL(input.href);
45178			} else {
45179				// coerce input to a string before attempting to parse
45180				parsedURL = parseURL(`${input}`);
45181			}
45182			input = {};
45183		} else {
45184			parsedURL = parseURL(input.url);
45185		}
45186
45187		let method = init.method || input.method || 'GET';
45188		method = method.toUpperCase();
45189
45190		if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) {
45191			throw new TypeError('Request with GET/HEAD method cannot have body');
45192		}
45193
45194		let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
45195
45196		Body.call(this, inputBody, {
45197			timeout: init.timeout || input.timeout || 0,
45198			size: init.size || input.size || 0
45199		});
45200
45201		const headers = new Headers(init.headers || input.headers || {});
45202
45203		if (inputBody != null && !headers.has('Content-Type')) {
45204			const contentType = extractContentType(inputBody);
45205			if (contentType) {
45206				headers.append('Content-Type', contentType);
45207			}
45208		}
45209
45210		let signal = isRequest(input) ? input.signal : null;
45211		if ('signal' in init) signal = init.signal;
45212
45213		if (signal != null && !isAbortSignal(signal)) {
45214			throw new TypeError('Expected signal to be an instanceof AbortSignal');
45215		}
45216
45217		this[INTERNALS$2] = {
45218			method,
45219			redirect: init.redirect || input.redirect || 'follow',
45220			headers,
45221			parsedURL,
45222			signal
45223		};
45224
45225		// node-fetch-only options
45226		this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20;
45227		this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true;
45228		this.counter = init.counter || input.counter || 0;
45229		this.agent = init.agent || input.agent;
45230	}
45231
45232	get method() {
45233		return this[INTERNALS$2].method;
45234	}
45235
45236	get url() {
45237		return format_url(this[INTERNALS$2].parsedURL);
45238	}
45239
45240	get headers() {
45241		return this[INTERNALS$2].headers;
45242	}
45243
45244	get redirect() {
45245		return this[INTERNALS$2].redirect;
45246	}
45247
45248	get signal() {
45249		return this[INTERNALS$2].signal;
45250	}
45251
45252	/**
45253  * Clone this request
45254  *
45255  * @return  Request
45256  */
45257	clone() {
45258		return new Request(this);
45259	}
45260}
45261
45262Body.mixIn(Request.prototype);
45263
45264Object.defineProperty(Request.prototype, Symbol.toStringTag, {
45265	value: 'Request',
45266	writable: false,
45267	enumerable: false,
45268	configurable: true
45269});
45270
45271Object.defineProperties(Request.prototype, {
45272	method: { enumerable: true },
45273	url: { enumerable: true },
45274	headers: { enumerable: true },
45275	redirect: { enumerable: true },
45276	clone: { enumerable: true },
45277	signal: { enumerable: true }
45278});
45279
45280/**
45281 * Convert a Request to Node.js http request options.
45282 *
45283 * @param   Request  A Request instance
45284 * @return  Object   The options object to be passed to http.request
45285 */
45286function getNodeRequestOptions(request) {
45287	const parsedURL = request[INTERNALS$2].parsedURL;
45288	const headers = new Headers(request[INTERNALS$2].headers);
45289
45290	// fetch step 1.3
45291	if (!headers.has('Accept')) {
45292		headers.set('Accept', '*/*');
45293	}
45294
45295	// Basic fetch
45296	if (!parsedURL.protocol || !parsedURL.hostname) {
45297		throw new TypeError('Only absolute URLs are supported');
45298	}
45299
45300	if (!/^https?:$/.test(parsedURL.protocol)) {
45301		throw new TypeError('Only HTTP(S) protocols are supported');
45302	}
45303
45304	if (request.signal && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable && !streamDestructionSupported) {
45305		throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8');
45306	}
45307
45308	// HTTP-network-or-cache fetch steps 2.4-2.7
45309	let contentLengthValue = null;
45310	if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
45311		contentLengthValue = '0';
45312	}
45313	if (request.body != null) {
45314		const totalBytes = getTotalBytes(request);
45315		if (typeof totalBytes === 'number') {
45316			contentLengthValue = String(totalBytes);
45317		}
45318	}
45319	if (contentLengthValue) {
45320		headers.set('Content-Length', contentLengthValue);
45321	}
45322
45323	// HTTP-network-or-cache fetch step 2.11
45324	if (!headers.has('User-Agent')) {
45325		headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)');
45326	}
45327
45328	// HTTP-network-or-cache fetch step 2.15
45329	if (request.compress && !headers.has('Accept-Encoding')) {
45330		headers.set('Accept-Encoding', 'gzip,deflate');
45331	}
45332
45333	let agent = request.agent;
45334	if (typeof agent === 'function') {
45335		agent = agent(parsedURL);
45336	}
45337
45338	// HTTP-network fetch step 4.2
45339	// chunked encoding is handled by Node.js
45340
45341	return Object.assign({}, parsedURL, {
45342		method: request.method,
45343		headers: exportNodeCompatibleHeaders(headers),
45344		agent
45345	});
45346}
45347
45348/**
45349 * abort-error.js
45350 *
45351 * AbortError interface for cancelled requests
45352 */
45353
45354/**
45355 * Create AbortError instance
45356 *
45357 * @param   String      message      Error message for human
45358 * @return  AbortError
45359 */
45360function AbortError(message) {
45361  Error.call(this, message);
45362
45363  this.type = 'aborted';
45364  this.message = message;
45365
45366  // hide custom error implementation details from end-users
45367  Error.captureStackTrace(this, this.constructor);
45368}
45369
45370AbortError.prototype = Object.create(Error.prototype);
45371AbortError.prototype.constructor = AbortError;
45372AbortError.prototype.name = 'AbortError';
45373
45374const URL$1 = url__WEBPACK_IMPORTED_MODULE_2__.URL || whatwg_url__WEBPACK_IMPORTED_MODULE_3__.URL;
45375
45376// fix an issue where "PassThrough", "resolve" aren't a named export for node <10
45377const PassThrough$1 = stream__WEBPACK_IMPORTED_MODULE_0__.PassThrough;
45378
45379const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) {
45380	const orig = new URL$1(original).hostname;
45381	const dest = new URL$1(destination).hostname;
45382
45383	return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest);
45384};
45385
45386/**
45387 * isSameProtocol reports whether the two provided URLs use the same protocol.
45388 *
45389 * Both domains must already be in canonical form.
45390 * @param {string|URL} original
45391 * @param {string|URL} destination
45392 */
45393const isSameProtocol = function isSameProtocol(destination, original) {
45394	const orig = new URL$1(original).protocol;
45395	const dest = new URL$1(destination).protocol;
45396
45397	return orig === dest;
45398};
45399
45400/**
45401 * Fetch function
45402 *
45403 * @param   Mixed    url   Absolute url or Request instance
45404 * @param   Object   opts  Fetch options
45405 * @return  Promise
45406 */
45407function fetch(url, opts) {
45408
45409	// allow custom promise
45410	if (!fetch.Promise) {
45411		throw new Error('native promise missing, set fetch.Promise to your favorite alternative');
45412	}
45413
45414	Body.Promise = fetch.Promise;
45415
45416	// wrap http.request into fetch
45417	return new fetch.Promise(function (resolve, reject) {
45418		// build request object
45419		const request = new Request(url, opts);
45420		const options = getNodeRequestOptions(request);
45421
45422		const send = (options.protocol === 'https:' ? https__WEBPACK_IMPORTED_MODULE_4__ : http__WEBPACK_IMPORTED_MODULE_1__).request;
45423		const signal = request.signal;
45424
45425		let response = null;
45426
45427		const abort = function abort() {
45428			let error = new AbortError('The user aborted a request.');
45429			reject(error);
45430			if (request.body && request.body instanceof stream__WEBPACK_IMPORTED_MODULE_0__.Readable) {
45431				destroyStream(request.body, error);
45432			}
45433			if (!response || !response.body) return;
45434			response.body.emit('error', error);
45435		};
45436
45437		if (signal && signal.aborted) {
45438			abort();
45439			return;
45440		}
45441
45442		const abortAndFinalize = function abortAndFinalize() {
45443			abort();
45444			finalize();
45445		};
45446
45447		// send request
45448		const req = send(options);
45449		let reqTimeout;
45450
45451		if (signal) {
45452			signal.addEventListener('abort', abortAndFinalize);
45453		}
45454
45455		function finalize() {
45456			req.abort();
45457			if (signal) signal.removeEventListener('abort', abortAndFinalize);
45458			clearTimeout(reqTimeout);
45459		}
45460
45461		if (request.timeout) {
45462			req.once('socket', function (socket) {
45463				reqTimeout = setTimeout(function () {
45464					reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'));
45465					finalize();
45466				}, request.timeout);
45467			});
45468		}
45469
45470		req.on('error', function (err) {
45471			reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err));
45472
45473			if (response && response.body) {
45474				destroyStream(response.body, err);
45475			}
45476
45477			finalize();
45478		});
45479
45480		fixResponseChunkedTransferBadEnding(req, function (err) {
45481			if (signal && signal.aborted) {
45482				return;
45483			}
45484
45485			if (response && response.body) {
45486				destroyStream(response.body, err);
45487			}
45488		});
45489
45490		/* c8 ignore next 18 */
45491		if (parseInt(process.version.substring(1)) < 14) {
45492			// Before Node.js 14, pipeline() does not fully support async 
45492iterators and does not always
45493			// properly handle when the socket close/end events are out of order.
45494			req.on('socket', function (s) {
45495				s.addListener('close', function (hadError) {
45496					// if a data listener is still present we didn't end cleanly
45497					const hasDataListener = s.listenerCount('data') > 0;
45498
45499					// if end happened before close but the socket didn't emit an error, do it now
45500					if (response && hasDataListener && !hadError && !(signal && signal.aborted)) {
45501						const err = new Error('Premature close');
45502						err.code = 'ERR_STREAM_PREMATURE_CLOSE';
45503						response.body.emit('error', err);
45504					}
45505				});
45506			});
45507		}
45508
45509		req.on('response', function (res) {
45510			clearTimeout(reqTimeout);
45511
45512			const headers = createHeadersLenient(res.headers);
45513
45514			// HTTP fetch step 5
45515			if (fetch.isRedirect(res.statusCode)) {
45516				// HTTP fetch step 5.2
45517				const location = headers.get('Location');
45518
45519				// HTTP fetch step 5.3
45520				let locationURL = null;
45521				try {
45522					locationURL = location === null ? null : new URL$1(location, request.url).toString();
45523				} catch (err) {
45524					// error here can only be invalid URL in Location: header
45525					// do not throw when options.redirect == manual
45526					// let the user extract the errorneous redirect URL
45527					if (request.redirect !== 'manual') {
45528						reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect'));
45529						finalize();
45530						return;
45531					}
45532				}
45533
45534				// HTTP fetch step 5.5
45535				switch (request.redirect) {
45536					case 'error':
45537						reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect'));
45538						finalize();
45539						return;
45540					case 'manual':
45541						// node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL.
45542						if (locationURL !== null) {
45543							// handle corrupted header
45544							try {
45545								headers.set('Location', locationURL);
45546							} catch (err) {
45547								// istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request
45548								reject(err);
45549							}
45550						}
45551						break;
45552					case 'follow':
45553						// HTTP-redirect fetch step 2
45554						if (locationURL === null) {
45555							break;
45556						}
45557
45558						// HTTP-redirect fetch step 5
45559						if (request.counter >= request.follow) {
45560							reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'));
45561							finalize();
45562							return;
45563						}
45564
45565						// HTTP-redirect fetch step 6 (counter increment)
45566						// Create a new Request object.
45567						const requestOpts = {
45568							headers: new Headers(request.headers),
45569							follow: request.follow,
45570							counter: request.counter + 1,
45571							agent: request.agent,
45572							compress: request.compress,
45573							method: request.method,
45574							body: request.body,
45575							signal: request.signal,
45576							timeout: request.timeout,
45577							size: request.size
45578						};
45579
45580						if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {
45581							for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) {
45582								requestOpts.headers.delete(name);
45583							}
45584						}
45585
45586						// HTTP-redirect fetch step 9
45587						if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
45588							reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect'));
45589							finalize();
45590							return;
45591						}
45592
45593						// HTTP-redirect fetch step 11
45594						if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') {
45595							requestOpts.method = 'GET';
45596							requestOpts.body = undefined;
45597							requestOpts.headers.delete('content-length');
45598						}
45599
45600						// HTTP-redirect fetch step 15
45601						resolve(fetch(new Request(locationURL, requestOpts)));
45602						finalize();
45603						return;
45604				}
45605			}
45606
45607			// prepare response
45608			res.once('end', function () {
45609				if (signal) signal.removeEventListener('abort', abortAndFinalize);
45610			});
45611			let body = res.pipe(new PassThrough$1());
45612
45613			const response_options = {
45614				url: request.url,
45615				status: res.statusCode,
45616				statusText: res.statusMessage,
45617				headers: headers,
45618				size: request.size,
45619				timeout: request.timeout,
45620				counter: request.counter
45621			};
45622
45623			// HTTP-network fetch step 12.1.1.3
45624			const codings = headers.get('Content-Encoding');
45625
45626			// HTTP-network fetch step 12.1.1.4: handle content codings
45627
45628			// in following scenarios we ignore compression support
45629			// 1. compression support is disabled
45630			// 2. HEAD request
45631			// 3. no Content-Encoding header
45632			// 4. no content response (204)
45633			// 5. content not modified response (304)
45634			if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
45635				response = new Response(body, response_options);
45636				resolve(response);
45637				return;
45638			}
45639
45640			// For Node v6+
45641			// Be less strict when decoding compressed responses, since sometimes
45642			// servers send slightly invalid responses that are still accepted
45643			// by common browsers.
45644			// Always using Z_SYNC_FLUSH is what cURL does.
45645			const zlibOptions = {
45646				flush: zlib__WEBPACK_IMPORTED_MODULE_5__.Z_SYNC_FLUSH,
45647				finishFlush: zlib__WEBPACK_IMPORTED_MODULE_5__.Z_SYNC_FLUSH
45648			};
45649
45650			// for gzip
45651			if (codings == 'gzip' || codings == 'x-gzip') {
45652				body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_5__.createGunzip(zlibOptions));
45653				response = new Response(body, response_options);
45654				resolve(response);
45655				return;
45656			}
45657
45658			// for deflate
45659			if (codings == 'deflate' || codings == 'x-deflate') {
45660				// handle the infamous raw deflate response from old servers
45661				// a hack for old IIS and Apache servers
45662				const raw = res.pipe(new PassThrough$1());
45663				raw.once('data', function (chunk) {
45664					// see http://stackoverflow.com/questions/37519828
45665					if ((chunk[0] & 0x0F) === 0x08) {
45666						body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_5__.createInflate());
45667					} else {
45668						body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_5__.createInflateRaw());
45669					}
45670					response = new Response(body, response_options);
45671					resolve(response);
45672				});
45673				raw.on('end', function () {
45674					// some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted.
45675					if (!response) {
45676						response = new Response(body, response_options);
45677						resolve(response);
45678					}
45679				});
45680				return;
45681			}
45682
45683			// for br
45684			if (codings == 'br' && typeof zlib__WEBPACK_IMPORTED_MODULE_5__.createBrotliDecompress === 'function') {
45685				body = body.pipe(zlib__WEBPACK_IMPORTED_MODULE_5__.createBrotliDecompress());
45686				response = new Response(body, response_options);
45687				resolve(response);
45688				return;
45689			}
45690
45691			// otherwise, use response as-is
45692			response = new Response(body, response_options);
45693			resolve(response);
45694		});
45695
45696		writeToStream(req, request);
45697	});
45698}
45699function fixResponseChunkedTransferBadEnding(request, errorCallback) {
45700	let socket;
45701
45702	request.on('socket', function (s) {
45703		socket = s;
45704	});
45705
45706	request.on('response', function (response) {
45707		const headers = response.headers;
45708
45709		if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) {
45710			response.once('close', function (hadError) {
45711				// tests for socket presence, as in some situations the
45712				// the 'socket' event is not triggered for the request
45713				// (happens in deno), avoids `TypeError`
45714				// if a data listener is still present we didn't end cleanly
45715				const hasDataListener = socket && socket.listenerCount('data') > 0;
45716
45717				if (hasDataListener && !hadError) {
45718					const err = new Error('Premature close');
45719					err.code = 'ERR_STREAM_PREMATURE_CLOSE';
45720					errorCallback(err);
45721				}
45722			});
45723		}
45724	});
45725}
45726
45727function destroyStream(stream, err) {
45728	if (stream.destroy) {
45729		stream.destroy(err);
45730	} else {
45731		// node < 8
45732		stream.emit('error', err);
45733		stream.end();
45734	}
45735}
45736
45737/**
45738 * Redirect code matching
45739 *
45740 * @param   Number   code  Status code
45741 * @return  Boolean
45742 */
45743fetch.isRedirect = function (code) {
45744	return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
45745};
45746
45747// expose Promise
45748fetch.Promise = global.Promise;
45749
45750/* harmony default export */ __webpack_exports__["default"] = (fetch);
45751
45752
45753
45754/***/ }),
45755/* 899 */
45756/***/ (function(module, exports) {
45757
45758module.exports = function isBuffer(arg) {
45759  return arg && typeof arg === 'object'
45760    && typeof arg.copy === 'function'
45761    && typeof arg.fill === 'function'
45762    && typeof arg.readUInt8 === 'function';
45763}
45764
45765/***/ }),
45766/* 900 */
45767/***/ (function(module, exports, __webpack_require__) {
45768
45769try {
45770  var util = __webpack_require__(311);
45771  if (typeof util.inherits !== 'function') throw '';
45772  module.exports = util.inherits;
45773} catch (e) {
45774  module.exports = __webpack_require__(901);
45775}
45776
45777
45778/***/ }),
45779/* 901 */
vendor: 10,001 bytes, lines 45780-46182
45780/***/ (function(module, exports) {
45781
45782if (typeof Object.create === 'function') {
45783  // implementation from standard node.js 'util' module
45784  module.exports = function inherits(ctor, superCtor) {
45785    ctor.super_ = superCtor
45786    ctor.prototype = Object.create(superCtor.prototype, {
45787      constructor: {
45788        value: ctor,
45789        enumerable: false,
45790        writable: true,
45791        configurable: true
45792      }
45793    });
45794  };
45795} else {
45796  // old school shim for old browsers
45797  module.exports = function inherits(ctor, superCtor) {
45798    ctor.super_ = superCtor
45799    var TempCtor = function () {}
45800    TempCtor.prototype = superCtor.prototype
45801    ctor.prototype = new TempCtor()
45802    ctor.prototype.constructor = ctor
45803  }
45804}
45805
45806
45807/***/ }),
45808/* 902 */
45809/***/ (function(module, exports) {
45810
45811if (typeof Object.create === 'function') {
45812  // implementation from standard node.js 'util' module
45813  module.exports = function inherits(ctor, superCtor) {
45814    if (superCtor) {
45815      ctor.super_ = superCtor
45816      ctor.prototype = Object.create(superCtor.prototype, {
45817        constructor: {
45818          value: ctor,
45819          enumerable: false,
45820          writable: true,
45821          configurable: true
45822        }
45823      })
45824    }
45825  };
45826} else {
45827  // old school shim for old browsers
45828  module.exports = function inherits(ctor, superCtor) {
45829    if (superCtor) {
45830      ctor.super_ = superCtor
45831      var TempCtor = function () {}
45832      TempCtor.prototype = superCtor.prototype
45833      ctor.prototype = new TempCtor()
45834      ctor.prototype.constructor = ctor
45835    }
45836  }
45837}
45838
45839
45840/***/ }),
45841/* 903 */
45842/***/ (function(module, exports, __webpack_require__) {
45843
45844"use strict";
45845
45846
45847exports.byteLength = byteLength
45848exports.toByteArray = toByteArray
45849exports.fromByteArray = fromByteArray
45850
45851var lookup = []
45852var revLookup = []
45853var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
45854
45855var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
45856for (var i = 0, len = code.length; i < len; ++i) {
45857  lookup[i] = code[i]
45858  revLookup[code.charCodeAt(i)] = i
45859}
45860
45861// Support decoding URL-safe base64 strings, as Node.js does.
45862// See: https://en.wikipedia.org/wiki/Base64#URL_applications
45863revLookup['-'.charCodeAt(0)] = 62
45864revLookup['_'.charCodeAt(0)] = 63
45865
45866function getLens (b64) {
45867  var len = b64.length
45868
45869  if (len % 4 > 0) {
45870    throw new Error('Invalid string. Length must be a multiple of 4')
45871  }
45872
45873  // Trim off extra bytes after placeholder bytes are found
45874  // See: https://github.com/beatgammit/base64-js/issues/42
45875  var validLen = b64.indexOf('=')
45876  if (validLen === -1) validLen = len
45877
45878  var placeHoldersLen = validLen === len
45879    ? 0
45880    : 4 - (validLen % 4)
45881
45882  return [validLen, placeHoldersLen]
45883}
45884
45885// base64 is 4/3 + up to two characters of the original data
45886function byteLength (b64) {
45887  var lens = getLens(b64)
45888  var validLen = lens[0]
45889  var placeHoldersLen = lens[1]
45890  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
45891}
45892
45893function _byteLength (b64, validLen, placeHoldersLen) {
45894  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
45895}
45896
45897function toByteArray (b64) {
45898  var tmp
45899  var lens = getLens(b64)
45900  var validLen = lens[0]
45901  var placeHoldersLen = lens[1]
45902
45903  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
45904
45905  var curByte = 0
45906
45907  // if there are placeholders, only get up to the last complete 4 chars
45908  var len = placeHoldersLen > 0
45909    ? validLen - 4
45910    : validLen
45911
45912  var i
45913  for (i = 0; i < len; i += 4) {
45914    tmp =
45915      (revLookup[b64.charCodeAt(i)] << 18) |
45916      (revLookup[b64.charCodeAt(i + 1)] << 12) |
45917      (revLookup[b64.charCodeAt(i + 2)] << 6) |
45918      revLookup[b64.charCodeAt(i + 3)]
45919    arr[curByte++] = (tmp >> 16) & 0xFF
45920    arr[curByte++] = (tmp >> 8) & 0xFF
45921    arr[curByte++] = tmp & 0xFF
45922  }
45923
45924  if (placeHoldersLen === 2) {
45925    tmp =
45926      (revLookup[b64.charCodeAt(i)] << 2) |
45927      (revLookup[b64.charCodeAt(i + 1)] >> 4)
45928    arr[curByte++] = tmp & 0xFF
45929  }
45930
45931  if (placeHoldersLen === 1) {
45932    tmp =
45933      (revLookup[b64.charCodeAt(i)] << 10) |
45934      (revLookup[b64.charCodeAt(i + 1)] << 4) |
45935      (revLookup[b64.charCodeAt(i + 2)] >> 2)
45936    arr[curByte++] = (tmp >> 8) & 0xFF
45937    arr[curByte++] = tmp & 0xFF
45938  }
45939
45940  return arr
45941}
45942
45943function tripletToBase64 (num) {
45944  return lookup[num >> 18 & 0x3F] +
45945    lookup[num >> 12 & 0x3F] +
45946    lookup[num >> 6 & 0x3F] +
45947    lookup[num & 0x3F]
45948}
45949
45950function encodeChunk (uint8, start, end) {
45951  var tmp
45952  var output = []
45953  for (var i = start; i < end; i += 3) {
45954    tmp =
45955      ((uint8[i] << 16) & 0xFF0000) +
45956      ((uint8[i + 1] << 8) & 0xFF00) +
45957      (uint8[i + 2] & 0xFF)
45958    output.push(tripletToBase64(tmp))
45959  }
45960  return output.join('')
45961}
45962
45963function fromByteArray (uint8) {
45964  var tmp
45965  var len = uint8.length
45966  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
45967  var parts = []
45968  var maxChunkLength = 16383 // must be multiple of 3
45969
45970  // go through the array every three bytes, we'll deal with trailing stuff later
45971  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
45972    parts.push(encodeChunk(
45973      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
45974    ))
45975  }
45976
45977  // pad the end with zeros, but make sure to not forget the extra bytes
45978  if (extraBytes === 1) {
45979    tmp = uint8[len - 1]
45980    parts.push(
45981      lookup[tmp >> 2] +
45982      lookup[(tmp << 4) & 0x3F] +
45983      '=='
45984    )
45985  } else if (extraBytes === 2) {
45986    tmp = (uint8[len - 2] << 8) + uint8[len - 1]
45987    parts.push(
45988      lookup[tmp >> 10] +
45989      lookup[(tmp >> 4) & 0x3F] +
45990      lookup[(tmp << 2) & 0x3F] +
45991      '='
45992    )
45993  }
45994
45995  return parts.join('')
45996}
45997
45998
45999/***/ }),
46000/* 904 */
46001/***/ (function(module, exports) {
46002
46003/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
46004exports.read = function (buffer, offset, isLE, mLen, nBytes) {
46005  var e, m
46006  var eLen = (nBytes * 8) - mLen - 1
46007  var eMax = (1 << eLen) - 1
46008  var eBias = eMax >> 1
46009  var nBits = -7
46010  var i = isLE ? (nBytes - 1) : 0
46011  var d = isLE ? -1 : 1
46012  var s = buffer[offset + i]
46013
46014  i += d
46015
46016  e = s & ((1 << (-nBits)) - 1)
46017  s >>= (-nBits)
46018  nBits += eLen
46019  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
46020
46021  m = e & ((1 << (-nBits)) - 1)
46022  e >>= (-nBits)
46023  nBits += mLen
46024  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
46025
46026  if (e === 0) {
46027    e = 1 - eBias
46028  } else if (e === eMax) {
46029    return m ? NaN : ((s ? -1 : 1) * Infinity)
46030  } else {
46031    m = m + Math.pow(2, mLen)
46032    e = e - eBias
46033  }
46034  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
46035}
46036
46037exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
46038  var e, m, c
46039  var eLen = (nBytes * 8) - mLen - 1
46040  var eMax = (1 << eLen) - 1
46041  var eBias = eMax >> 1
46042  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
46043  var i = isLE ? 0 : (nBytes - 1)
46044  var d = isLE ? 1 : -1
46045  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
46046
46047  value = Math.abs(value)
46048
46049  if (isNaN(value) || value === Infinity) {
46050    m = isNaN(value) ? 1 : 0
46051    e = eMax
46052  } else {
46053    e = Math.floor(Math.log(value) / Math.LN2)
46054    if (value * (c = Math.pow(2, -e)) < 1) {
46055      e--
46056      c *= 2
46057    }
46058    if (e + eBias >= 1) {
46059      value += rt / c
46060    } else {
46061      value += rt * Math.pow(2, 1 - eBias)
46062    }
46063    if (value * c >= 2) {
46064      e++
46065      c /= 2
46066    }
46067
46068    if (e + eBias >= eMax) {
46069      m = 0
46070      e = eMax
46071    } else if (e + eBias >= 1) {
46072      m = ((value * c) - 1) * Math.pow(2, mLen)
46073      e = e + eBias
46074    } else {
46075      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
46076      e = 0
46077    }
46078  }
46079
46080  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
46081
46082  e = (e << mLen) | m
46083  eLen += mLen
46084  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
46085
46086  buffer[offset + i - d] |= s * 128
46087}
46088
46089
46090/***/ }),
46091/* 905 */
46092/***/ (function(module, exports) {
46093
46094/* (ignored) */
46095
46096/***/ }),
46097/* 906 */
46098/***/ (function(module, exports, __webpack_require__) {
46099
46100"use strict";
46101
46102
46103function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
46104
46105var Buffer = __webpack_require__(470).Buffer;
46106var util = __webpack_require__(907);
46107
46108function copyBuffer(src, target, offset) {
46109  src.copy(target, offset);
46110}
46111
46112module.exports = function () {
46113  function BufferList() {
46114    _classCallCheck(this, BufferList);
46115
46116    this.head = null;
46117    this.tail = null;
46118    this.length = 0;
46119  }
46120
46121  BufferList.prototype.push = function push(v) {
46122    var entry = { data: v, next: null };
46123    if (this.length > 0) this.tail.next = entry;else this.head = entry;
46124    this.tail = entry;
46125    ++this.length;
46126  };
46127
46128  BufferList.prototype.unshift = function unshift(v) {
46129    var entry = { data: v, next: this.head };
46130    if (this.length === 0) this.tail = entry;
46131    this.head = entry;
46132    ++this.length;
46133  };
46134
46135  BufferList.prototype.shift = function shift() {
46136    if (this.length === 0) return;
46137    var ret = this.head.data;
46138    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;
46139    --this.length;
46140    return ret;
46141  };
46142
46143  BufferList.prototype.clear = function clear() {
46144    this.head = this.tail = null;
46145    this.length = 0;
46146  };
46147
46148  BufferList.prototype.join = function join(s) {
46149    if (this.length === 0) return '';
46150    var p = this.head;
46151    var ret = '' + p.data;
46152    while (p = p.next) {
46153      ret += s + p.data;
46154    }return ret;
46155  };
46156
46157  BufferList.prototype.concat = function concat(n) {
46158    if (this.length === 0) return Buffer.alloc(0);
46159    if (this.length === 1) return this.head.data;
46160    var ret = Buffer.allocUnsafe(n >>> 0);
46161    var p = this.head;
46162    var i = 0;
46163    while (p) {
46164      copyBuffer(p.data, ret, i);
46165      i += p.data.length;
46166      p = p.next;
46167    }
46168    return ret;
46169  };
46170
46171  return BufferList;
46172}();
46173
46174if (util && util.inspect && util.inspect.custom) {
46175  module.exports.prototype[util.inspect.custom] = function () {
46176    var obj = util.inspect({ length: this.length });
46177    return this.constructor.name + ' ' + obj;
46178  };
46179}
46180
46181/***/ }),
46182/* 907 */
46183/***/ (function(module, exports) {
46184
46185/* (ignored) */
46186
46187/***/ }),
46188/* 908 */
46189/***/ (function(module, exports, __webpack_require__) {
46190
46191
46192/**
46193 * For Node.js, simply re-export the core `util.deprecate` function.
46194 */
46195
46196module.exports = __webpack_require__(311).deprecate;
46197
46198
46199/***/ }),
46200/* 909 */
46201/***/ (function(module, exports, __webpack_require__) {
46202
46203/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
46204/* eslint-disable node/no-deprecated-api */
46205var buffer = __webpack_require__(313)
46206var Buffer = buffer.Buffer
46207
46208// alternative to using Object.keys for old browsers
46209function copyProps (src, dst) {
46210  for (var key in src) {
46211    dst[key] = src[key]
46212  }
46213}
46214if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
46215  module.exports = buffer
46216} else {
46217  // Copy properties from require('buffer')
46218  copyProps(buffer, exports)
46219  exports.Buffer = SafeBuffer
46220}
46221
46222function SafeBuffer (arg, encodingOrOffset, length) {
46223  return Buffer(arg, encodingOrOffset, length)
46224}
46225
46226SafeBuffer.prototype = Object.create(Buffer.prototype)
46227
46228// Copy static methods from Buffer
46229copyProps(Buffer, SafeBuffer)
46230
46231SafeBuffer.from = function (arg, encodingOrOffset, length) {
46232  if (typeof arg === 'number') {
46233    throw new TypeError('Argument must not be a number')
46234  }
46235  return Buffer(arg, encodingOrOffset, length)
46236}
46237
46238SafeBuffer.alloc = function (size, fill, encoding) {
46239  if (typeof size !== 'number') {
46240    throw new TypeError('Argument must be a number')
46241  }
46242  var buf = Buffer(size)
46243  if (fill !== undefined) {
46244    if (typeof encoding === 'string') {
46245      buf.fill(fill, encoding)
46246    } else {
46247      buf.fill(fill)
46248    }
46249  } else {
46250    buf.fill(0)
46251  }
46252  return buf
46253}
46254
46255SafeBuffer.allocUnsafe = function (size) {
46256  if (typeof size !== 'number') {
46257    throw new TypeError('Argument must be a number')
46258  }
46259  return Buffer(size)
46260}
46261
46262SafeBuffer.allocUnsafeSlow = function (size) {
46263  if (typeof size !== 'number') {
46264    throw new TypeError('Argument must be a number')
46265  }
46266  return buffer.SlowBuffer(size)
46267}
46268
46269
46270/***/ }),
46271/* 910 */
46272/***/ (function(module, exports, __webpack_require__) {
46273
46274"use strict";
46275// Copyright Joyent, Inc. and other Node contributors.
46276//
46277// Permission is hereby granted, free of charge, to any person obtaining a
46278// copy of this software and associated documentation files (the
46279// "Software"), to deal in the Software without restriction, including
46280// without limitation the rights to use, copy, modify, merge, publish,
46281// distribute, sublicense, and/or sell copies of the Software, and to permit
46282// persons to whom the Software is furnished to do so, subject to the
46283// following conditions:
46284//
46285// The above copyright notice and this permission notice shall be included
46286// in all copies or substantial portions of the Software.
46287//
46288// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46289// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
46290// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
46291// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
46292// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
46293// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
46294// USE OR OTHER DEALINGS IN THE SOFTWARE.
46295
46296// a passthrough stream.
46297// basically just the most minimal sort of Transform stream.
46298// Every written chunk gets output as-is.
46299
46300
46301
46302module.exports = PassThrough;
46303
46304var Transform = __webpack_require__(737);
46305
46306/*<replacement>*/
46307var util = Object.create(__webpack_require__(314));
46308util.inherits = __webpack_require__(200);
46309/*</replacement>*/
46310
46311util.inherits(PassThrough, Transform);
46312
46313function PassThrough(options) {
46314  if (!(this instanceof PassThrough)) return new PassThrough(options);
46315
46316  Transform.call(this, options);
46317}
46318
46319PassThrough.prototype._transform = function (chunk, encoding, cb) {
46320  cb(null, chunk);
46321};
46322
46323/***/ }),
46324/* 911 */
46325/***/ (function(module, exports, __webpack_require__) {
46326
46327module.exports = __webpack_require__(471);
46328
46329
46330/***/ }),
46331/* 912 */
46332/***/ (function(module, exports, __webpack_require__) {
46333
46334module.exports = __webpack_require__(240);
46335
46336
46337/***/ }),
46338/* 913 */
46339/***/ (function(module, exports, __webpack_require__) {
46340
46341module.exports = __webpack_require__(312).Transform
46342
46343
46344/***/ }),
46345/* 914 */
46346/***/ (function(module, exports, __webpack_require__) {
46347
46348module.exports = __webpack_require__(312).PassThrough
46349
46350
46351/***/ }),
46352/* 915 */
46353/***/ (function(module, exports, __webpack_require__) {
46354
46355/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {var capability = __webpack_require__(738)
46356var inherits = __webpack_require__(200)
46357var response = __webpack_require__(739)
46358var stream = __webpack_require__(312)
46359var toArrayBuffer = __webpack_require__(916)
46360
46361var IncomingMessage = response.IncomingMessage
46362var rStates = response.readyStates
46363
46364function decideMode (preferBinary, useFetch) {
46365	if (capability.fetch && useFetch) {
46366		return 'fetch'
46367	} else if (capability.mozchunkedarraybuffer) {
46368		return 'moz-chunked-arraybuffer'
46369	} else if (capability.msstream) {
46370		return 'ms-stream'
46371	} else if (capability.arraybuffer && preferBinary) {
46372		return 'arraybuffer'
46373	} else if (capability.vbArray && preferBinary) {
46374		return 'text:vbarray'
46375	} else {
46376		return 'text'
46377	}
46378}
46379
46380var ClientRequest = module.exports = function (opts) {
46381	var self = this
46382	stream.Writable.call(self)
46383
46384	self._opts = opts
46385	self._body = []
46386	self._headers = {}
46387	if (opts.auth)
46388		self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))
46389	Object.keys(opts.headers).forEach(function (name) {
46390		self.setHeader(name, opts.headers[name])
46391	})
46392
46393	var preferBinary
46394	var useFetch = true
46395	if (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {
46396		// If the use of XHR should be preferred. Not typically needed.
46397		useFetch = false
46398		preferBinary = true
46399	} else if (opts.mode === 'prefer-streaming') {
46400		// If streaming is a high priority but binary compatibility and
46401		// the accuracy of the 'content-type' header aren't
46402		preferBinary = false
46403	} else if (opts.mode === 'allow-wrong-content-type') {
46404		// If streaming is more important than preserving the 'content-type' header
46405		preferBinary = !capability.overrideMimeType
46406	} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {
46407		// Use binary if text streaming may corrupt data or the content-type header, or for speed
46408		preferBinary = true
46409	} else {
46410		throw new Error('Invalid value for opts.mode')
46411	}
46412	self._mode = decideMode(preferBinary, useFetch)
46413	self._fetchTimer = null
46414
46415	self.on('finish', function () {
46416		self._onFinish()
46417	})
46418}
46419
46420inherits(ClientRequest, stream.Writable)
46421
46422ClientRequest.prototype.setHeader = function (name, value) {
46423	var self = this
46424	var lowerName = name.toLowerCase()
46425	// This check is not necessary, but it prevents warnings from browsers about setting unsafe
46426	// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but
46427	// http-browserify did it, so I will too.
46428	if (unsafeHeaders.indexOf(lowerName) !== -1)
46429		return
46430
46431	self._headers[lowerName] = {
46432		name: name,
46433		value: value
46434	}
46435}
46436
46437ClientRequest.prototype.getHeader = function (name) {
46438	var header = this._headers[name.toLowerCase()]
46439	if (header)
46440		return header.value
46441	return null
46442}
46443
46444ClientRequest.prototype.removeHeader = function (name) {
46445	var self = this
46446	delete self._headers[name.toLowerCase()]
46447}
46448
46449ClientRequest.prototype._onFinish = function () {
46450	var self = this
46451
46452	if (self._destroyed)
46453		return
46454	var opts = self._opts
46455
46456	var headersObj = self._headers
46457	var body = null
46458	if (opts.method !== 'GET' && opts.method !== 'HEAD') {
46459		if (capability.arraybuffer) {
46460			body = toArrayBuffer(Buffer.concat(self._body))
46461		} else if (capability.blobConstructor) {
46462			body = new global.Blob(self._body.map(function (buffer) {
46463				return toArrayBuffer(buffer)
46464			}), {
46465				type: (headersObj['content-type'] || {}).value || ''
46466			})
46467		} else {
46468			// get utf8 string
46469			body = Buffer.concat(self._body).toString()
46470		}
46471	}
46472
46473	// create flattened list of headers
46474	var headersList = []
46475	Object.keys(headersObj).forEach(function (keyName) {
46476		var name = headersObj[keyName].name
46477		var value = headersObj[keyName].value
46478		if (Array.isArray(value)) {
46479			value.forEach(function (v) {
46480				headersList.push([name, v])
46481			})
46482		} else {
46483			headersList.push([name, value])
46484		}
46485	})
46486
46487	if (self._mode === 'fetch') {
46488		var signal = null
46489		var fetchTimer = null
46490		if (capability.abortController) {
46491			var controller = new AbortController()
46492			signal = controller.signal
46493			self._fetchAbortController = controller
46494
46495			if ('requestTimeout' in opts && opts.requestTimeout !== 0) {
46496				self._fetchTimer = global.setTimeout(function () {
46497					self.emit('requestTimeout')
46498					if (self._fetchAbortController)
46499						self._fetchAbortController.abort()
46500				}, opts.requestTimeout)
46501			}
46502		}
46503
46504		global.fetch(self._opts.url, {
46505			method: self._opts.method,
46506			headers: headersList,
46507			body: body || undefined,
46508			mode: 'cors',
46509			credentials: opts.withCredentials ? 'include' : 'same-origin',
46510			signal: signal
46511		}).then(function (response) {
46512			self._fetchResponse = response
46513			self._connect()
46514		}, function (reason) {
46515			global.clearTimeout(self._fetchTimer)
46516			if (!self._destroyed)
46517				self.emit('error', reason)
46518		})
46519	} else {
46520		var xhr = self._xhr = new global.XMLHttpRequest()
46521		try {
46522			xhr.open(self._opts.method, self._opts.url, true)
46523		} catch (err) {
46524			process.nextTick(function () {
46525				self.emit('error', err)
46526			})
46527			return
46528		}
46529
46530		// Can't set responseType on really old browsers
46531		if ('responseType' in xhr)
46532			xhr.responseType = self._mode.split(':')[0]
46533
46534		if ('withCredentials' in xhr)
46535			xhr.withCredentials = !!opts.withCredentials
46536
46537		if (self._mode === 'text' && 'overrideMimeType' in xhr)
46538			xhr.overrideMimeType('text/plain; charset=x-user-defined')
46539
46540		if ('requestTimeout' in opts) {
46541			xhr.timeout = opts.requestTimeout
46542			xhr.ontimeout = function () {
46543				self.emit('requestTimeout')
46544			}
46545		}
46546
46547		headersList.forEach(function (header) {
46548			xhr.setRequestHeader(header[0], header[1])
46549		})
46550
46551		self._response = null
46552		xhr.onreadystatechange = function () {
46553			switch (xhr.readyState) {
46554				case rStates.LOADING:
46555				case rStates.DONE:
46556					self._onXHRProgress()
46557					break
46558			}
46559		}
46560		// Necessary for streaming in Firefox, since xhr.response is ONLY defined
46561		// in onprogress, not in onreadystatechange with xhr.readyState = 3
46562		if (self._mode === 'moz-chunked-arraybuffer') {
46563			xhr.onprogress = function () {
46564				self._onXHRProgress()
46565			}
46566		}
46567
46568		xhr.onerror = function () {
46569			if (self._destroyed)
46570				return
46571			self.emit('error', new Error('XHR error'))
46572		}
46573
46574		try {
46575			xhr.send(body)
46576		} catch (err) {
46577			process.nextTick(function () {
46578				self.emit('error', err)
46579			})
46580			return
46581		}
46582	}
46583}
46584
46585/**
46586 * Checks if xhr.status is readable and non-zero, indicating no error.
46587 * Even though the spec says it should be available in readyState 3,
46588 * accessing it throws an exception in IE8
46589 */
46590function statusValid (xhr) {
46591	try {
46592		var status = xhr.status
46593		return (status !== null && status !== 0)
46594	} catch (e) {
46595		return false
46596	}
46597}
46598
46599ClientRequest.prototype._onXHRProgress = function () {
46600	var self = this
46601
46602	if (!statusValid(self._xhr) || self._destroyed)
46603		return
46604
46605	if (!self._response)
46606		self._connect()
46607
46608	self._response._onXHRProgress()
46609}
46610
46611ClientRequest.prototype._connect = function () {
46612	var self = this
46613
46614	if (self._destroyed)
46615		return
46616
46617	self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)
46618	self._response.on('error', function(err) {
46619		self.emit('error', err)
46620	})
46621
46622	self.emit('response', self._response)
46623}
46624
46625ClientRequest.prototype._write = function (chunk, encoding, cb) {
46626	var self = this
46627
46628	self._body.push(chunk)
46629	cb()
46630}
46631
46632ClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {
46633	var self = this
46634	self._destroyed = true
46635	global.clearTimeout(self._fetchTimer)
46636	if (self._response)
46637		self._response._destroyed = true
46638	if (self._xhr)
46639		self._xhr.abort()
46640	else if (self._fetchAbortController)
46641		self._fetchAbortController.abort()
46642}
46643
46644ClientRequest.prototype.end = function (data, encoding, cb) {
46645	var self = this
46646	if (typeof data === 'function') {
46647		cb = data
46648		data = undefined
46649	}
46650
46651	stream.Writable.prototype.end.call(self, data, encoding, cb)
46652}
46653
46654ClientRequest.prototype.flushHeaders = function () {}
46655ClientRequest.prototype.setTimeout = function () {}
46656ClientRequest.prototype.setNoDelay = function () {}
46657ClientRequest.prototype.setSocketKeepAlive = function () {}
46658
46659// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method
46660var unsafeHeaders = [
46661	'accept-charset',
46662	'accept-encoding',
46663	'access-control-request-headers',
46664	'access-control-request-method',
46665	'connection',
46666	'content-length',
46667	'cookie',
46668	'cookie2',
46669	'date',
46670	'dnt',
46671	'expect',
46672	'host',
46673	'keep-alive',
46674	'origin',
46675	'referer',
46676	'te',
46677	'trailer',
46678	'transfer-encoding',
46679	'upgrade',
46680	'via'
46681]
46682
46683/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(113).Buffer, __webpack_require__(34), __webpack_require__(57)))
46684
46685/***/ }),
46686/* 916 */
46687/***/ (function(module, exports, __webpack_require__) {
46688
46689var Buffer = __webpack_require__(313).Buffer
46690
46691module.exports = function (buf) {
46692	// If the buffer is backed by a Uint8Array, a faster version will work
46693	if (buf instanceof Uint8Array) {
46694		// If the buffer isn't a subarray, return the underlying ArrayBuffer
46695		if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {
46696			return buf.buffer
46697		} else if (typeof buf.buffer.slice === 'function') {
46698			// Otherwise we need to get a proper copy
46699			return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)
46700		}
46701	}
46702
46703	if (Buffer.isBuffer(buf)) {
46704		// This is the slow version that will work with any Buffer
46705		// implementation (even in old browsers)
46706		var arrayCopy = new Uint8Array(buf.length)
46707		var len = buf.length
46708		for (var i = 0; i < len; i++) {
46709			arrayCopy[i] = buf[i]
46710		}
46711		return arrayCopy.buffer
46712	} else {
46713		throw new Error('Argument must be a Buffer')
46714	}
46715}
46716
46717
46718/***/ }),
46719/* 917 */
46720/***/ (function(module, exports) {
46721
46722module.exports = extend
46723
46724var hasOwnProperty = Object.prototype.hasOwnProperty;
46725
46726function extend() {
46727    var target = {}
46728
46729    for (var i = 0; i < arguments.length; i++) {
46730        var source = arguments[i]
46731
46732        for (var key in source) {
46733            if (hasOwnProperty.call(source, key)) {
46734                target[key] = source[key]
46735            }
46736        }
46737    }
46738
46739    return target
46740}
46741
46742
46743/***/ }),
46744/* 918 */
46745/***/ (function(module, exports, __webpack_require__) {
46746
46747"use strict";
46748
46749
46750module.exports = __webpack_require__(317).STATUS_CODES
46751
46752
46753/***/ }),
46754/* 919 */
46755/***/ (function(module, exports, __webpack_require__) {
46756
46757"use strict";
46758
46759
46760module.exports = {
46761  isString: function(arg) {
46762    return typeof(arg) === 'string';
46763  },
46764  isObject: function(arg) {
46765    return typeof(arg) === 'object' && arg !== null;
46766  },
46767  isNull: function(arg) {
46768    return arg === null;
46769  },
46770  isNullOrUndefined: function(arg) {
46771    return arg == null;
46772  }
46773};
46774
46775
46776/***/ }),
46777/* 920 */
46778/***/ (function(module, exports, __webpack_require__) {
46779
46780"use strict";
46781
46782
46783exports.decode = exports.parse = __webpack_require__(921);
46784exports.encode = exports.stringify = __webpack_require__(922);
46785
46786
46787/***/ }),
46788/* 921 */
46789/***/ (function(module, exports, __webpack_require__) {
46790
46791"use strict";
vendor: 2,590 bytes, lines 46792-46882
46792// Copyright Joyent, Inc. and other Node contributors.
46793//
46794// Permission is hereby granted, free of charge, to any person obtaining a
46795// copy of this software and associated documentation files (the
46796// "Software"), to deal in the Software without restriction, including
46797// without limitation the rights to use, copy, modify, merge, publish,
46798// distribute, sublicense, and/or sell copies of the Software, and to permit
46799// persons to whom the Software is furnished to do so, subject to the
46800// following conditions:
46801//
46802// The above copyright notice and this permission notice shall be included
46803// in all copies or substantial portions of the Software.
46804//
46805// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46806// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
46807// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
46808// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
46809// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
46810// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
46811// USE OR OTHER DEALINGS IN THE SOFTWARE.
46812
46813
46814
46815// If obj.hasOwnProperty has been overridden, then calling
46816// obj.hasOwnProperty(prop) will break.
46817// See: https://github.com/joyent/node/issues/1707
46818function hasOwnProperty(obj, prop) {
46819  return Object.prototype.hasOwnProperty.call(obj, prop);
46820}
46821
46822module.exports = function(qs, sep, eq, options) {
46823  sep = sep || '&';
46824  eq = eq || '=';
46825  var obj = {};
46826
46827  if (typeof qs !== 'string' || qs.length === 0) {
46828    return obj;
46829  }
46830
46831  var regexp = /\+/g;
46832  qs = qs.split(sep);
46833
46834  var maxKeys = 1000;
46835  if (options && typeof options.maxKeys === 'number') {
46836    maxKeys = options.maxKeys;
46837  }
46838
46839  var len = qs.length;
46840  // maxKeys <= 0 means that we should not limit keys count
46841  if (maxKeys > 0 && len > maxKeys) {
46842    len = maxKeys;
46843  }
46844
46845  for (var i = 0; i < len; ++i) {
46846    var x = qs[i].replace(regexp, '%20'),
46847        idx = x.indexOf(eq),
46848        kstr, vstr, k, v;
46849
46850    if (idx >= 0) {
46851      kstr = x.substr(0, idx);
46852      vstr = x.substr(idx + 1);
46853    } else {
46854      kstr = x;
46855      vstr = '';
46856    }
46857
46858    k = decodeURIComponent(kstr);
46859    v = decodeURIComponent(vstr);
46860
46861    if (!hasOwnProperty(obj, k)) {
46862      obj[k] = v;
46863    } else if (isArray(obj[k])) {
46864      obj[k].push(v);
46865    } else {
46866      obj[k] = [obj[k], v];
46867    }
46868  }
46869
46870  return obj;
46871};
46872
46873var isArray = Array.isArray || function (xs) {
46874  return Object.prototype.toString.call(xs) === '[object Array]';
46875};
46876
46877
46878/***/ }),
46879/* 922 */
46880/***/ (function(module, exports, __webpack_require__) {
46881
46882"use strict";
vendor: 28,324 bytes, lines 46883-47807
46883// Copyright Joyent, Inc. and other Node contributors.
46884//
46885// Permission is hereby granted, free of charge, to any person obtaining a
46886// copy of this software and associated documentation files (the
46887// "Software"), to deal in the Software without restriction, including
46888// without limitation the rights to use, copy, modify, merge, publish,
46889// distribute, sublicense, and/or sell copies of the Software, and to permit
46890// persons to whom the Software is furnished to do so, subject to the
46891// following conditions:
46892//
46893// The above copyright notice and this permission notice shall be included
46894// in all copies or substantial portions of the Software.
46895//
46896// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
46897// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
46898// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
46899// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
46900// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
46901// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
46902// USE OR OTHER DEALINGS IN THE SOFTWARE.
46903
46904
46905
46906var stringifyPrimitive = function(v) {
46907  switch (typeof v) {
46908    case 'string':
46909      return v;
46910
46911    case 'boolean':
46912      return v ? 'true' : 'false';
46913
46914    case 'number':
46915      return isFinite(v) ? v : '';
46916
46917    default:
46918      return '';
46919  }
46920};
46921
46922module.exports = function(obj, sep, eq, name) {
46923  sep = sep || '&';
46924  eq = eq || '=';
46925  if (obj === null) {
46926    obj = undefined;
46927  }
46928
46929  if (typeof obj === 'object') {
46930    return map(objectKeys(obj), function(k) {
46931      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
46932      if (isArray(obj[k])) {
46933        return map(obj[k], function(v) {
46934          return ks + encodeURIComponent(stringifyPrimitive(v));
46935        }).join(sep);
46936      } else {
46937        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
46938      }
46939    }).join(sep);
46940
46941  }
46942
46943  if (!name) return '';
46944  return encodeURIComponent(stringifyPrimitive(name)) + eq +
46945         encodeURIComponent(stringifyPrimitive(obj));
46946};
46947
46948var isArray = Array.isArray || function (xs) {
46949  return Object.prototype.toString.call(xs) === '[object Array]';
46950};
46951
46952function map (xs, f) {
46953  if (xs.map) return xs.map(f);
46954  var res = [];
46955  for (var i = 0; i < xs.length; i++) {
46956    res.push(f(xs[i], i));
46957  }
46958  return res;
46959}
46960
46961var objectKeys = Object.keys || function (obj) {
46962  var res = [];
46963  for (var key in obj) {
46964    if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
46965  }
46966  return res;
46967};
46968
46969
46970/***/ }),
46971/* 923 */
46972/***/ (function(module, exports, __webpack_require__) {
46973
46974"use strict";
46975
46976
46977const conversions = __webpack_require__(924);
46978const utils = __webpack_require__(925);
46979const Impl = __webpack_require__(926);
46980
46981const impl = utils.implSymbol;
46982
46983function URL(url) {
46984  if (!this || this[impl] || !(this instanceof URL)) {
46985    throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");
46986  }
46987  if (arguments.length < 1) {
46988    throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present.");
46989  }
46990  const args = [];
46991  for (let i = 0; i < arguments.length && i < 2; ++i) {
46992    args[i] = arguments[i];
46993  }
46994  args[0] = conversions["USVString"](args[0]);
46995  if (args[1] !== undefined) {
46996  args[1] = conversions["USVString"](args[1]);
46997  }
46998
46999  module.exports.setup(this, args);
47000}
47001
47002URL.prototype.toJSON = function toJSON() {
47003  if (!this || !module.exports.is(this)) {
47004    throw new TypeError("Illegal invocation");
47005  }
47006  const args = [];
47007  for (let i = 0; i < arguments.length && i < 0; ++i) {
47008    args[i] = arguments[i];
47009  }
47010  return this[impl].toJSON.apply(this[impl], args);
47011};
47012Object.defineProperty(URL.prototype, "href", {
47013  get() {
47014    return this[impl].href;
47015  },
47016  set(V) {
47017    V = conversions["USVString"](V);
47018    this[impl].href = V;
47019  },
47020  enumerable: true,
47021  configurable: true
47022});
47023
47024URL.prototype.toString = function () {
47025  if (!this || !module.exports.is(this)) {
47026    throw new TypeError("Illegal invocation");
47027  }
47028  return this.href;
47029};
47030
47031Object.defineProperty(URL.prototype, "origin", {
47032  get() {
47033    return this[impl].origin;
47034  },
47035  enumerable: true,
47036  configurable: true
47037});
47038
47039Object.defineProperty(URL.prototype, "protocol", {
47040  get() {
47041    return this[impl].protocol;
47042  },
47043  set(V) {
47044    V = conversions["USVString"](V);
47045    this[impl].protocol = V;
47046  },
47047  enumerable: true,
47048  configurable: true
47049});
47050
47051Object.defineProperty(URL.prototype, "username", {
47052  get() {
47053    return this[impl].username;
47054  },
47055  set(V) {
47056    V = conversions["USVString"](V);
47057    this[impl].username = V;
47058  },
47059  enumerable: true,
47060  configurable: true
47061});
47062
47063Object.defineProperty(URL.prototype, "password", {
47064  get() {
47065    return this[impl].password;
47066  },
47067  set(V) {
47068    V = conversions["USVString"](V);
47069    this[impl].password = V;
47070  },
47071  enumerable: true,
47072  configurable: true
47073});
47074
47075Object.defineProperty(URL.prototype, "host", {
47076  get() {
47077    return this[impl].host;
47078  },
47079  set(V) {
47080    V = conversions["USVString"](V);
47081    this[impl].host = V;
47082  },
47083  enumerable: true,
47084  configurable: true
47085});
47086
47087Object.defineProperty(URL.prototype, "hostname", {
47088  get() {
47089    return this[impl].hostname;
47090  },
47091  set(V) {
47092    V = conversions["USVString"](V);
47093    this[impl].hostname = V;
47094  },
47095  enumerable: true,
47096  configurable: true
47097});
47098
47099Object.defineProperty(URL.prototype, "port", {
47100  get() {
47101    return this[impl].port;
47102  },
47103  set(V) {
47104    V = conversions["USVString"](V);
47105    this[impl].port = V;
47106  },
47107  enumerable: true,
47108  configurable: true
47109});
47110
47111Object.defineProperty(URL.prototype, "pathname", {
47112  get() {
47113    return this[impl].pathname;
47114  },
47115  set(V) {
47116    V = conversions["USVString"](V);
47117    this[impl].pathname = V;
47118  },
47119  enumerable: true,
47120  configurable: true
47121});
47122
47123Object.defineProperty(URL.prototype, "search", {
47124  get() {
47125    return this[impl].search;
47126  },
47127  set(V) {
47128    V = conversions["USVString"](V);
47129    this[impl].search = V;
47130  },
47131  enumerable: true,
47132  configurable: true
47133});
47134
47135Object.defineProperty(URL.prototype, "hash", {
47136  get() {
47137    return this[impl].hash;
47138  },
47139  set(V) {
47140    V = conversions["USVString"](V);
47141    this[impl].hash = V;
47142  },
47143  enumerable: true,
47144  configurable: true
47145});
47146
47147
47148module.exports = {
47149  is(obj) {
47150    return !!obj && obj[impl] instanceof Impl.implementation;
47151  },
47152  create(constructorArgs, privateData) {
47153    let obj = Object.create(URL.prototype);
47154    this.setup(obj, constructorArgs, privateData);
47155    return obj;
47156  },
47157  setup(obj, constructorArgs, privateData) {
47158    if (!privateData) privateData = {};
47159    privateData.wrapper = obj;
47160
47161    obj[impl] = new Impl.implementation(constructorArgs, privateData);
47162    obj[impl][utils.wrapperSymbol] = obj;
47163  },
47164  interface: URL,
47165  expose: {
47166    Window: { URL: URL },
47167    Worker: { URL: URL }
47168  }
47169};
47170
47171
47172
47173/***/ }),
47174/* 924 */
47175/***/ (function(module, exports, __webpack_require__) {
47176
47177"use strict";
47178
47179
47180var conversions = {};
47181module.exports = conversions;
47182
47183function sign(x) {
47184    return x < 0 ? -1 : 1;
47185}
47186
47187function evenRound(x) {
47188    // Round x to the nearest integer, choosing the even integer if it lies halfway between two.
47189    if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor)
47190        return Math.floor(x);
47191    } else {
47192        return Math.round(x);
47193    }
47194}
47195
47196function createNumberConversion(bitLength, typeOpts) {
47197    if (!typeOpts.unsigned) {
47198        --bitLength;
47199    }
47200    const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);
47201    const upperBound = Math.pow(2, bitLength) - 1;
47202
47203    const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);
47204    const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);
47205
47206    return function(V, opts) {
47207        if (!opts) opts = {};
47208
47209        let x = +V;
47210
47211        if (opts.enforceRange) {
47212            if (!Number.isFinite(x)) {
47213                throw new TypeError("Argument is not a finite number");
47214            }
47215
47216            x = sign(x) * Math.floor(Math.abs(x));
47217            if (x < lowerBound || x > upperBound) {
47218                throw new TypeError("Argument is not in byte range");
47219            }
47220
47221            return x;
47222        }
47223
47224        if (!isNaN(x) && opts.clamp) {
47225            x = evenRound(x);
47226
47227            if (x < lowerBound) x = lowerBound;
47228            if (x > upperBound) x = upperBound;
47229            return x;
47230        }
47231
47232        if (!Number.isFinite(x) || x === 0) {
47233            return 0;
47234        }
47235
47236        x = sign(x) * Math.floor(Math.abs(x));
47237        x = x % moduloVal;
47238
47239        if (!typeOpts.unsigned && x >= moduloBound) {
47240            return x - moduloVal;
47241        } else if (typeOpts.unsigned) {
47242            if (x < 0) {
47243              x += moduloVal;
47244            } else if (x === -0) { // don't return negative zero
47245              return 0;
47246            }
47247        }
47248
47249        return x;
47250    }
47251}
47252
47253conversions["void"] = function () {
47254    return undefined;
47255};
47256
47257conversions["boolean"] = function (val) {
47258    return !!val;
47259};
47260
47261conversions["byte"] = createNumberConversion(8, { unsigned: false });
47262conversions["octet"] = createNumberConversion(8, { unsigned: true });
47263
47264conversions["short"] = createNumberConversion(16, { unsigned: false });
47265conversions["unsigned short"] = createNumberConversion(16, { unsigned: true });
47266
47267conversions["long"] = createNumberConversion(32, { unsigned: false });
47268conversions["unsigned long"] = createNumberConversion(32, { unsigned: true });
47269
47270conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });
47271conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });
47272
47273conversions["double"] = function (V) {
47274    const x = +V;
47275
47276    if (!Number.isFinite(x)) {
47277        throw new TypeError("Argument is not a finite floating-point value");
47278    }
47279
47280    return x;
47281};
47282
47283conversions["unrestricted double"] = function (V) {
47284    const x = +V;
47285
47286    if (isNaN(x)) {
47287        throw new TypeError("Argument is NaN");
47288    }
47289
47290    return x;
47291};
47292
47293// not quite valid, but good enough for JS
47294conversions["float"] = conversions["double"];
47295conversions["unrestricted float"] = conversions["unrestricted double"];
47296
47297conversions["DOMString"] = function (V, opts) {
47298    if (!opts) opts = {};
47299
47300    if (opts.treatNullAsEmptyString && V === null) {
47301        return "";
47302    }
47303
47304    return String(V);
47305};
47306
47307conversions["ByteString"] = function (V, opts) {
47308    const x = String(V);
47309    let c = undefined;
47310    for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) {
47311        if (c > 255) {
47312            throw new TypeError("Argument is not a valid bytestring");
47313        }
47314    }
47315
47316    return x;
47317};
47318
47319conversions["USVString"] = function (V) {
47320    const S = String(V);
47321    const n = S.length;
47322    const U = [];
47323    for (let i = 0; i < n; ++i) {
47324        const c = S.charCodeAt(i);
47325        if (c < 0xD800 || c > 0xDFFF) {
47326            U.push(String.fromCodePoint(c));
47327        } else if (0xDC00 <= c && c <= 0xDFFF) {
47328            U.push(String.fromCodePoint(0xFFFD));
47329        } else {
47330            if (i === n - 1) {
47331                U.push(String.fromCodePoint(0xFFFD));
47332            } else {
47333                const d = S.charCodeAt(i + 1);
47334                if (0xDC00 <= d && d <= 0xDFFF) {
47335                    const a = c & 0x3FF;
47336                    const b = d & 0x3FF;
47337                    U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));
47338                    ++i;
47339                } else {
47340                    U.push(String.fromCodePoint(0xFFFD));
47341                }
47342            }
47343        }
47344    }
47345
47346    return U.join('');
47347};
47348
47349conversions["Date"] = function (V, opts) {
47350    if (!(V instanceof Date)) {
47351        throw new TypeError("Argument is not a Date object");
47352    }
47353    if (isNaN(V)) {
47354        return undefined;
47355    }
47356
47357    return V;
47358};
47359
47360conversions["RegExp"] = function (V, opts) {
47361    if (!(V instanceof RegExp)) {
47362        V = new RegExp(V);
47363    }
47364
47365    return V;
47366};
47367
47368
47369/***/ }),
47370/* 925 */
47371/***/ (function(module, exports, __webpack_require__) {
47372
47373"use strict";
47374
47375
47376module.exports.mixin = function mixin(target, source) {
47377  const keys = Object.getOwnPropertyNames(source);
47378  for (let i = 0; i < keys.length; ++i) {
47379    Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));
47380  }
47381};
47382
47383module.exports.wrapperSymbol = Symbol("wrapper");
47384module.exports.implSymbol = Symbol("impl");
47385
47386module.exports.wrapperForImpl = function (impl) {
47387  return impl[module.exports.wrapperSymbol];
47388};
47389
47390module.exports.implForWrapper = function (wrapper) {
47391  return wrapper[module.exports.implSymbol];
47392};
47393
47394
47395
47396/***/ }),
47397/* 926 */
47398/***/ (function(module, exports, __webpack_require__) {
47399
47400"use strict";
47401
47402const usm = __webpack_require__(180);
47403
47404exports.implementation = class URLImpl {
47405  constructor(constructorArgs) {
47406    const url = constructorArgs[0];
47407    const base = constructorArgs[1];
47408
47409    let parsedBase = null;
47410    if (base !== undefined) {
47411      parsedBase = usm.basicURLParse(base);
47412      if (parsedBase === "failure") {
47413        throw new TypeError("Invalid base URL");
47414      }
47415    }
47416
47417    const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });
47418    if (parsedURL === "failure") {
47419      throw new TypeError("Invalid URL");
47420    }
47421
47422    this._url = parsedURL;
47423
47424    // TODO: query stuff
47425  }
47426
47427  get href() {
47428    return usm.serializeURL(this._url);
47429  }
47430
47431  set href(v) {
47432    const parsedURL = usm.basicURLParse(v);
47433    if (parsedURL === "failure") {
47434      throw new TypeError("Invalid URL");
47435    }
47436
47437    this._url = parsedURL;
47438  }
47439
47440  get origin() {
47441    return usm.serializeURLOrigin(this._url);
47442  }
47443
47444  get protocol() {
47445    return this._url.scheme + ":";
47446  }
47447
47448  set protocol(v) {
47449    usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" });
47450  }
47451
47452  get username() {
47453    return this._url.username;
47454  }
47455
47456  set username(v) {
47457    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
47458      return;
47459    }
47460
47461    usm.setTheUsername(this._url, v);
47462  }
47463
47464  get password() {
47465    return this._url.password;
47466  }
47467
47468  set password(v) {
47469    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
47470      return;
47471    }
47472
47473    usm.setThePassword(this._url, v);
47474  }
47475
47476  get host() {
47477    const url = this._url;
47478
47479    if (url.host === null) {
47480      return "";
47481    }
47482
47483    if (url.port === null) {
47484      return usm.serializeHost(url.host);
47485    }
47486
47487    return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port);
47488  }
47489
47490  set host(v) {
47491    if (this._url.cannotBeABaseURL) {
47492      return;
47493    }
47494
47495    usm.basicURLParse(v, { url: this._url, stateOverride: "host" });
47496  }
47497
47498  get hostname() {
47499    if (this._url.host === null) {
47500      return "";
47501    }
47502
47503    return usm.serializeHost(this._url.host);
47504  }
47505
47506  set hostname(v) {
47507    if (this._url.cannotBeABaseURL) {
47508      return;
47509    }
47510
47511    usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" });
47512  }
47513
47514  get port() {
47515    if (this._url.port === null) {
47516      return "";
47517    }
47518
47519    return usm.serializeInteger(this._url.port);
47520  }
47521
47522  set port(v) {
47523    if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
47524      return;
47525    }
47526
47527    if (v === "") {
47528      this._url.port = null;
47529    } else {
47530      usm.basicURLParse(v, { url: this._url, stateOverride: "port" });
47531    }
47532  }
47533
47534  get pathname() {
47535    if (this._url.cannotBeABaseURL) {
47536      return this._url.path[0];
47537    }
47538
47539    if (this._url.path.length === 0) {
47540      return "";
47541    }
47542
47543    return "/" + this._url.path.join("/");
47544  }
47545
47546  set pathname(v) {
47547    if (this._url.cannotBeABaseURL) {
47548      return;
47549    }
47550
47551    this._url.path = [];
47552    usm.basicURLParse(v, { url: this._url, stateOverride: "path start" });
47553  }
47554
47555  get search() {
47556    if (this._url.query === null || this._url.query === "") {
47557      return "";
47558    }
47559
47560    return "?" + this._url.query;
47561  }
47562
47563  set search(v) {
47564    // TODO: query stuff
47565
47566    const url = this._url;
47567
47568    if (v === "") {
47569      url.query = null;
47570      return;
47571    }
47572
47573    const input = v[0] === "?" ? v.substring(1) : v;
47574    url.query = "";
47575    usm.basicURLParse(input, { url, stateOverride: "query" });
47576  }
47577
47578  get hash() {
47579    if (this._url.fragment === null || this._url.fragment === "") {
47580      return "";
47581    }
47582
47583    return "#" + this._url.fragment;
47584  }
47585
47586  set hash(v) {
47587    if (v === "") {
47588      this._url.fragment = null;
47589      return;
47590    }
47591
47592    const input = v[0] === "#" ? v.substring(1) : v;
47593    this._url.fragment = "";
47594    usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" });
47595  }
47596
47597  toJSON() {
47598    return this.href;
47599  }
47600};
47601
47602
47603/***/ }),
47604/* 927 */
47605/***/ (function(module, exports, __webpack_require__) {
47606
47607"use strict";
47608
47609
47610var punycode = __webpack_require__(472);
47611var mappingTable = __webpack_require__(928);
47612
47613var PROCESSING_OPTIONS = {
47614  TRANSITIONAL: 0,
47615  NONTRANSITIONAL: 1
47616};
47617
47618function normalize(str) { // fix bug in v8
47619  return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000');
47620}
47621
47622function findStatus(val) {
47623  var start = 0;
47624  var end = mappingTable.length - 1;
47625
47626  while (start <= end) {
47627    var mid = Math.floor((start + end) / 2);
47628
47629    var target = mappingTable[mid];
47630    if (target[0][0] <= val && target[0][1] >= val) {
47631      return target;
47632    } else if (target[0][0] > val) {
47633      end = mid - 1;
47634    } else {
47635      start = mid + 1;
47636    }
47637  }
47638
47639  return null;
47640}
47641
47642var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
47643
47644function countSymbols(string) {
47645  return string
47646    // replace every surrogate pair with a BMP symbol
47647    .replace(regexAstralSymbols, '_')
47648    // then get the length
47649    .length;
47650}
47651
47652function mapChars(domain_name, useSTD3, processing_option) {
47653  var hasError = false;
47654  var processed = "";
47655
47656  var len = countSymbols(domain_name);
47657  for (var i = 0; i < len; ++i) {
47658    var codePoint = domain_name.codePointAt(i);
47659    var status = findStatus(codePoint);
47660
47661    switch (status[1]) {
47662      case "disallowed":
47663        hasError = true;
47664        processed += String.fromCodePoint(codePoint);
47665        break;
47666      case "ignored":
47667        break;
47668      case "mapped":
47669        processed += String.fromCodePoint.apply(String, status[2]);
47670        break;
47671      case "deviation":
47672        if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {
47673          processed += String.fromCodePoint.apply(String, status[2]);
47674        } else {
47675          processed += String.fromCodePoint(codePoint);
47676        }
47677        break;
47678      case "valid":
47679        processed += String.fromCodePoint(codePoint);
47680        break;
47681      case "disallowed_STD3_mapped":
47682        if (useSTD3) {
47683          hasError = true;
47684          processed += String.fromCodePoint(codePoint);
47685        } else {
47686          processed += String.fromCodePoint.apply(String, status[2]);
47687        }
47688        break;
47689      case "disallowed_STD3_valid":
47690        if (useSTD3) {
47691          hasError = true;
47692        }
47693
47694        processed += String.fromCodePoint(codePoint);
47695        break;
47696    }
47697  }
47698
47699  return {
47700    string: processed,
47701    error: hasError
47702  };
47703}
47704
47705var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;
47706
47707function validateLabel(label, processing_option) {
47708  if (label.substr(0, 4) === "xn--") {
47709    label = punycode.toUnicode(label);
47710    processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;
47711  }
47712
47713  var error = false;
47714
47715  if (normalize(label) !== label ||
47716      (label[3] === "-" && label[4] === "-") ||
47717      label[0] === "-" || label[label.length - 1] === "-" ||
47718      label.indexOf(".") !== -1 ||
47719      label.search(combiningMarksRegex) === 0) {
47720    error = true;
47721  }
47722
47723  var len = countSymbols(label);
47724  for (var i = 0; i < len; ++i) {
47725    var status = findStatus(label.codePointAt(i));
47726    if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") ||
47727        (processing === PROCESSING_OPTIONS.NONTRANSITIONAL &&
47728         status[1] !== "valid" && status[1] !== "deviation")) {
47729      error = true;
47730      break;
47731    }
47732  }
47733
47734  return {
47735    label: label,
47736    error: error
47737  };
47738}
47739
47740function processing(domain_name, useSTD3, processing_option) {
47741  var result = mapChars(domain_name, useSTD3, processing_option);
47742  result.string = normalize(result.string);
47743
47744  var labels = result.string.split(".");
47745  for (var i = 0; i < labels.length; ++i) {
47746    try {
47747      var validation = validateLabel(labels[i]);
47748      labels[i] = validation.label;
47749      result.error = result.error || validation.error;
47750    } catch(e) {
47751      result.error = true;
47752    }
47753  }
47754
47755  return {
47756    string: labels.join("."),
47757    error: result.error
47758  };
47759}
47760
47761module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {
47762  var result = processing(domain_name, useSTD3, processing_option);
47763  var labels = result.string.split(".");
47764  labels = labels.map(function(l) {
47765    try {
47766      return punycode.toASCII(l);
47767    } catch(e) {
47768      result.error = true;
47769      return l;
47770    }
47771  });
47772
47773  if (verifyDnsLength) {
47774    var total = labels.slice(0, labels.length - 1).join(".").length;
47775    if (total.length > 253 || total.length === 0) {
47776      result.error = true;
47777    }
47778
47779    for (var i=0; i < labels.length; ++i) {
47780      if (labels.length > 63 || labels.length === 0) {
47781        result.error = true;
47782        break;
47783      }
47784    }
47785  }
47786
47787  if (result.error) return null;
47788  return labels.join(".");
47789};
47790
47791module.exports.toUnicode = function(domain_name, useSTD3) {
47792  var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);
47793
47794  return {
47795    domain: result.string,
47796    error: result.error
47797  };
47798};
47799
47800module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;
47801
47802
47803/***/ }),
47804/* 928 */
47805/***/ (function(module) {
47806
47807module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"valid\"],[[47,47],\"disallowed_STD3_valid\"],[[48,57],\"valid\"],[[58,64],\"disallowed_STD3_valid\"],[[65,65],\"mapped\",[97]],[[66,66],\"mapped\",[98]],[[67,67],\"mapped\",[99]],[[68,68],\"mapped\",[100]],[[69,69],\"mapped\",[101]],[[70,70],\"mapped\",[102]],[[71,71],\"mapped\",[103]],[[72,72],\"mapped\",[104]],[[73,73],\"mapped\",[105]],[[74,74],\"mapped\",[106]],[[75,75],\"mapped\",[107]],[[76,76],\"mapped\",[108]],[[77,77],\"mapped\",[109]],[[78,78],\"mapped\",[110]],[[79,79],\"mapped\",[111]],[[80,80],\"mapped\",[112]],[[81,81],\"mapped\",[113]],[[82,82],\"mapped\",[114]],[[83,83],\"mapped\",[115]],[[84,84],\"mapped\",[116]],[[85,85],\"mapped\",[117]],[[86,86],\"mapped\",[118]],[[87,87],\"mapped\",[119]],[[88,88],\"mapped\",[120]],[[89,89],\"mapped\",[121]],[[90,90],\"mapped\",[122]],[[91,96],\"disallowed_STD3_valid\"],[[97,122],\"valid\"],[[123,127],\"disallowed_STD3_valid\"],[[128,159],\"disallowed\"],[[160,160],\"disallowed_STD3_mapped\",[32]],[[161,167],\"valid\",[],\"NV8\"],[[168,168],\"disallowed_STD3_mapped\",[32,776]],[[169,169],\"valid\",[],\"NV8\"],[[170,170],\"mapped\",[97]],[[171,172],\"valid\",[],\"NV8\"],[[173,173],\"ignored\"],[[174,174],\"valid\",[],\"NV8\"],[[175,175],\"disallowed_STD3_mapped\",[32,772]],[[176,177],\"valid\",[],\"NV8\"],[[178,178],\"mapped\",[50]],[[179,179],\"mapped\",[51]],[[180,180],\"disallowed_STD3_mapped\",[32,769]],[[181,181],\"mapped\",[956]],[[182,182],\"valid\",[],\"NV8\"],[[183,183],\"valid\"],[[184,184],\"disallowed_STD3_mapped\",[32,807]],[[185,185],\"mapped\",[49]],[[186,186],\"mapped\",[111]],[[187,187],\"valid\",[],\"NV8\"],[[188,188],\"mapped\",[49,8260,52]],[[189,189],\"mapped\",[49,8260,50]],[[190,190],\"mapped\",[51,8260,52]],[[191,191],\"valid\",[],\"NV8\"],[[192,192],\"mapped\",[224]],[[193,193],\"mapped\",[225]],[[194,194],\"mapped\",[226]],[[195,195],\"mapped\",[227]],[[196,196],\"mapped\",[228]],[[197,197],\"mapped\",[229]],[[198,198],\"mapped\",[230]],[[199,199],\"mapped\",[231]],[[200,200],\"mapped\",[232]],[[201,201],\"mapped\",[233]],[[202,202],\"mapped\",[234]],[[203,203],\"mapped\",[235]],[[204,204],\"mapped\",[236]],[[205,205],\"mapped\",[237]],[[206,206],\"mapped\",[238]],[[207,207],\"mapped\",[239]],[[208,208],\"mapped\",[240]],[[209,209],\"mapped\",[241]],[[210,210],\"mapped\",[242]],[[211,211],\"mapped\",[243]],[[212,212],\"mapped\",[244]],[[213,213],\"mapped\",[245]],[[214,214],\"mapped\",[246]],[[215,215],\"valid\",[],\"NV8\"],[[216,216],\"mapped\",[248]],[[217,217],\"mapped\",[249]],[[218,218],\"mapped\",[250]],[[219,219],\"mapped\",[251]],[[220,220],\"mapped\",[252]],[[221,221],\"mapped\",[253]],[[222,222],\"mapped\",[254]],[[223,223],\"deviation\",[115,115]],[[224,246],\"valid\"],[[247,247],\"valid\",[],\"NV8\"],[[248,255],\"valid\"],[[256,256],\"mapped\",[257]],[[257,257],\"valid\"],[[258,258],\"mapped\",[259]],[[259,259],\"valid\"],[[260,260],\"mapped\",[261]],[[261,261],\"valid\"],[[262,262],\"mapped\",[263]],[[263,263],\"valid\"],[[264,264],\"mapped\",[265]],[[265,265],\"valid\"],[[266,266],\"mapped\",[267]],[[267,267],\"valid\"],[[268,268],\"mapped\",[269]],[[269,269],\"valid\"],[[270,270],\"mapped\",[271]],[[271,271],\"valid\"],[[272,272],\"mapped\",[273]],[[273,273],\"valid\"],[[274,274],\"mapped\",[275]],[[275,275],\"valid\"],[[276,276],\"mapped\",[277]],[[277,277],\"valid\"],[[278,278],\"mapped\",[279]],[[279,279],\"valid\"],[[280,280],\"mapped\",[281]],[[281,281],\"valid\"],[[282,282],\"mapped\",[283]],[[283,283],\"valid\"],[[284,284],\"mapped\",[285]],[[285,285],\"valid\"],[[286,286],\"mapped\",[287]],[[287,287],\"valid\"],[[288,288],\"mapped\",[289]],[[289,289],\"valid\"],[[290,290],\"mapped\",[291]],[[291,291],\"valid\"],[[292,292],\"mapped\",[293]],[[293,293],\"valid\"],[[294,294],\"mapped\",[295]],[[295,295],\"valid\"],[[296,296],\"mapped\",[297]],[[297,297],\"valid\"],[[298,298],\"mapped\",[299]],[[299,299],\"valid\"],[[300,300],\"mapped\",[301]],[[301,301],\"valid\"],[[302,302],\"mapped\",[303]],[[303,303],\"valid\"],[[304,304],\"mapped\",[105,775]],[[305,305],\"valid\"],[[306,307],\"mapped\",[105,106]],[[308,3
4780708],\"mapped\",[309]],[[309,309],\"valid\"],[[310,310],\"mapped\",[311]],[[311,312],\"valid\"],[[313,313],\"mapped\",[314]],[[314,314],\"valid\"],[[315,315],\"mapped\",[316]],[[316,316],\"valid\"],[[317,317],\"mapped\",[318]],[[318,318],\"valid\"],[[319,320],\"mapped\",[108,183]],[[321,321],\"mapped\",[322]],[[322,322],\"valid\"],[[323,323],\"mapped\",[324]],[[324,324],\"valid\"],[[325,325],\"mapped\",[326]],[[326,326],\"valid\"],[[327,327],\"mapped\",[328]],[[328,328],\"valid\"],[[329,329],\"mapped\",[700,110]],[[330,330],\"mapped\",[331]],[[331,331],\"valid\"],[[332,332],\"mapped\",[333]],[[333,333],\"valid\"],[[334,334],\"mapped\",[335]],[[335,335],\"valid\"],[[336,336],\"mapped\",[337]],[[337,337],\"valid\"],[[338,338],\"mapped\",[339]],[[339,339],\"valid\"],[[340,340],\"mapped\",[341]],[[341,341],\"valid\"],[[342,342],\"mapped\",[343]],[[343,343],\"valid\"],[[344,344],\"mapped\",[345]],[[345,345],\"valid\"],[[346,346],\"mapped\",[347]],[[347,347],\"valid\"],[[348,348],\"mapped\",[349]],[[349,349],\"valid\"],[[350,350],\"mapped\",[351]],[[351,351],\"valid\"],[[352,352],\"mapped\",[353]],[[353,353],\"valid\"],[[354,354],\"mapped\",[355]],[[355,355],\"valid\"],[[356,356],\"mapped\",[357]],[[357,357],\"valid\"],[[358,358],\"mapped\",[359]],[[359,359],\"valid\"],[[360,360],\"mapped\",[361]],[[361,361],\"valid\"],[[362,362],\"mapped\",[363]],[[363,363],\"valid\"],[[364,364],\"mapped\",[365]],[[365,365],\"valid\"],[[366,366],\"mapped\",[367]],[[367,367],\"valid\"],[[368,368],\"mapped\",[369]],[[369,369],\"valid\"],[[370,370],\"mapped\",[371]],[[371,371],\"valid\"],[[372,372],\"mapped\",[373]],[[373,373],\"valid\"],[[374,374],\"mapped\",[375]],[[375,375],\"valid\"],[[376,376],\"mapped\",[255]],[[377,377],\"mapped\",[378]],[[378,378],\"valid\"],[[379,379],\"mapped\",[380]],[[380,380],\"valid\"],[[381,381],\"mapped\",[382]],[[382,382],\"valid\"],[[383,383],\"mapped\",[115]],[[384,384],\"valid\"],[[385,385],\"mapped\",[595]],[[386,386],\"mapped\",[387]],[[387,387],\"valid\"],[[388,388],\"mapped\",[389]],[[389,389],\"valid\"],[[390,390],\"mapped\",[596]],[[391,391],\"mapped\",[392]],[[392,392],\"valid\"],[[393,393],\"mapped\",[598]],[[394,394],\"mapped\",[599]],[[395,395],\"mapped\",[396]],[[396,397],\"valid\"],[[398,398],\"mapped\",[477]],[[399,399],\"mapped\",[601]],[[400,400],\"mapped\",[603]],[[401,401],\"mapped\",[402]],[[402,402],\"valid\"],[[403,403],\"mapped\",[608]],[[404,404],\"mapped\",[611]],[[405,405],\"valid\"],[[406,406],\"mapped\",[617]],[[407,407],\"mapped\",[616]],[[408,408],\"mapped\",[409]],[[409,411],\"valid\"],[[412,412],\"mapped\",[623]],[[413,413],\"mapped\",[626]],[[414,414],\"valid\"],[[415,415],\"mapped\",[629]],[[416,416],\"mapped\",[417]],[[417,417],\"valid\"],[[418,418],\"mapped\",[419]],[[419,419],\"valid\"],[[420,420],\"mapped\",[421]],[[421,421],\"valid\"],[[422,422],\"mapped\",[640]],[[423,423],\"mapped\",[424]],[[424,424],\"valid\"],[[425,425],\"mapped\",[643]],[[426,427],\"valid\"],[[428,428],\"mapped\",[429]],[[429,429],\"valid\"],[[430,430],\"mapped\",[648]],[[431,431],\"mapped\",[432]],[[432,432],\"valid\"],[[433,433],\"mapped\",[650]],[[434,434],\"mapped\",[651]],[[435,435],\"mapped\",[436]],[[436,436],\"valid\"],[[437,437],\"mapped\",[438]],[[438,438],\"valid\"],[[439,439],\"mapped\",[658]],[[440,440],\"mapped\",[441]],[[441,443],\"valid\"],[[444,444],\"mapped\",[445]],[[445,451],\"valid\"],[[452,454],\"mapped\",[100,382]],[[455,457],\"mapped\",[108,106]],[[458,460],\"mapped\",[110,106]],[[461,461],\"mapped\",[462]],[[462,462],\"valid\"],[[463,463],\"mapped\",[464]],[[464,464],\"valid\"],[[465,465],\"mapped\",[466]],[[466,466],\"valid\"],[[467,467],\"mapped\",[468]],[[468,468],\"valid\"],[[469,469],\"mapped\",[470]],[[470,470],\"valid\"],[[471,471],\"mapped\",[472]],[[472,472],\"valid\"],[[473,473],\"mapped\",[474]],[[474,474],\"valid\"],[[475,475],\"mapped\",[476]],[[476,477],\"valid\"],[[478,478],\"mapped\",[479]],[[479,479],\"valid\"],[[480,480],\"mapped\",[481]],[[481,481],\"valid\"],[[482,482],\"mapped\",[483]],[[483,483],\"valid\"],[[484,484],\"mapped\",[485]],[[485,485],\"valid\"],[[486,486],\"mapped\",[487]],[[487,487],\"valid\"],[[488,488],\"mapped\",[489]],[[489,489],\"valid\"],[[490,490],\"mapped\",[491]],[[491,491],\"valid\"],[[492,492],\"mapped\",[493]],[[493,493],\"valid\"],[[494,494],\"mapped\",[495]],[[495,496],\"valid\"],[[497,499],\"mapped\",[100,122]],[[500,500],\"mapped\",[501]],[[501,501],\"valid\"],[[502,502],\"mapped\",[405]],[[503,503],\"mapped\",[447]],[[504,504],\"mapped\",[505]],[[505,505],\"valid\"],[[506,506],\"mapped\",[507]],[[507,507],\"valid\"],[[508,508],\"mapped\",[509]],[[509,509],\"valid\"],[[510,510],\"mapped\",[511]],[[511,511],\"valid\"],[[512,512],\"mapped\",[513]],[[513,513],\"valid\"],[[514,514],\"mapped\",[515]],[[515,515],\"valid\"],[[516,516],\"mapped\",[517]],[[517,517],\"valid\"],[[518,518],\"mapped\",[519]],[[519,519],\"valid\"],[[520,520],\"mapped\",[521]],[[521,521],\"valid\"],[[522,522],\"mapped\",[523]],[[523,523],\"valid\"],[[524,524],\"mapped\",[525]],[[525,525],\"valid\"],[[526,526],\"mapped\",[527]],[[527,527],\"valid\"],[[528,528],\"mapped\",[529]],[[529,529],\"valid\"],[[530,530],\"mapped\",[531]],[[531,531],\"valid\"],[[532,532],\"mapped\",[533]],[[533,533],\"valid\"],[[534,534],\"mapped\",[535]],[[535,535],\"valid\"],[[536,536],\"mapped\",[537]],[[537,537],\"valid\"],[[538,538],\"mapped\",[539]],[[539,539],\"valid\"],[[540,540],\"mapped\",[541]],[[541,541],\"valid\"],[[542,542],\"mapped\",[543]],[[543,543],\"valid\"],[[544,544],\"mapped\",[414]],[[545,545],\"valid\"],[[546,546],\"mapped\",[547]],[[547,547],\"valid\"],[[548,548],\"mapped\",[549]],[[549,549],\"valid\"],[[550,550],\"mapped\",[551]],[[551,551],\"valid\"],[[552,552],\"mapped\",[553]],[[553,553],\"valid\"],[[554,554],\"mapped\",[555]],[[555,555],\"valid\"],[[556,556],\"mapped\",[557]],[[557,557],\"valid\"],[[558,558],\"mapped\",[559]],[[559,559],\"valid\"],[[560,560],\"mapped\",[561]],[[561,561],\"valid\"],[[562,562],\"mapped\",[563]],[[563,563],\"valid\"],[[564,566],\"valid\"],[[567,569],\"valid\"],[[570,570],\"mapped\",[11365]],[[571,571],\"mapped\",[572]],[[572,572],\"valid\"],[[573,573],\"mapped\",[410]],[[574,574],\"mapped\",[11366]],[[575,576],\"valid\"],[[577,577],\"mapped\",[578]],[[578,578],\"valid\"],[[579,579],\"mapped\",[384]],[[580,580],\"mapped\",[649]
47807],[[581,581],\"mapped\",[652]],[[582,582],\"mapped\",[583]],[[583,583],\"valid\"],[[584,584],\"mapped\",[585]],[[585,585],\"valid\"],[[586,586],\"mapped\",[587]],[[587,587],\"valid\"],[[588,588],\"mapped\",[589]],[[589,589],\"valid\"],[[590,590],\"mapped\",[591]],[[591,591],\"valid\"],[[592,680],\"valid\"],[[681,685],\"valid\"],[[686,687],\"valid\"],[[688,688],\"mapped\",[104]],[[689,689],\"mapped\",[614]],[[690,690],\"mapped\",[106]],[[691,691],\"mapped\",[114]],[[692,692],\"mapped\",[633]],[[693,693],\"mapped\",[635]],[[694,694],\"mapped\",[641]],[[695,695],\"mapped\",[119]],[[696,696],\"mapped\",[121]],[[697,705],\"valid\"],[[706,709],\"valid\",[],\"NV8\"],[[710,721],\"valid\"],[[722,727],\"valid\",[],\"NV8\"],[[728,728],\"disallowed_STD3_mapped\",[32,774]],[[729,729],\"disallowed_STD3_mapped\",[32,775]],[[730,730],\"disallowed_STD3_mapped\",[32,778]],[[731,731],\"disallowed_STD3_mapped\",[32,808]],[[732,732],\"disallowed_STD3_mapped\",[32,771]],[[733,733],\"disallowed_STD3_mapped\",[32,779]],[[734,734],\"valid\",[],\"NV8\"],[[735,735],\"valid\",[],\"NV8\"],[[736,736],\"mapped\",[611]],[[737,737],\"mapped\",[108]],[[738,738],\"mapped\",[115]],[[739,739],\"mapped\",[120]],[[740,740],\"mapped\",[661]],[[741,745],\"valid\",[],\"NV8\"],[[746,747],\"valid\",[],\"NV8\"],[[748,748],\"valid\"],[[749,749],\"valid\",[],\"NV8\"],[[750,750],\"valid\"],[[751,767],\"valid\",[],\"NV8\"],[[768,831],\"valid\"],[[832,832],\"mapped\",[768]],[[833,833],\"mapped\",[769]],[[834,834],\"valid\"],[[835,835],\"mapped\",[787]],[[836,836],\"mapped\",[776,769]],[[837,837],\"mapped\",[953]],[[838,846],\"valid\"],[[847,847],\"ignored\"],[[848,855],\"valid\"],[[856,860],\"valid\"],[[861,863],\"valid\"],[[864,865],\"valid\"],[[866,866],\"valid\"],[[867,879],\"valid\"],[[880,880],\"mapped\",[881]],[[881,881],\"valid\"],[[882,882],\"mapped\",[883]],[[883,883],\"valid\"],[[884,884],\"mapped\",[697]],[[885,885],\"valid\"],[[886,886],\"mapped\",[887]],[[887,887],\"valid\"],[[888,889],\"disallowed\"],[[890,890],\"disallowed_STD3_mapped\",[32,953]],[[891,893],\"valid\"],[[894,894],\"disallowed_STD3_mapped\",[59]],[[895,895],\"mapped\",[1011]],[[896,899],\"disallowed\"],[[900,900],\"disallowed_STD3_mapped\",[32,769]],[[901,901],\"disallowed_STD3_mapped\",[32,776,769]],[[902,902],\"mapped\",[940]],[[903,903],\"mapped\",[183]],[[904,904],\"mapped\",[941]],[[905,905],\"mapped\",[942]],[[906,906],\"mapped\",[943]],[[907,907],\"disallowed\"],[[908,908],\"mapped\",[972]],[[909,909],\"disallowed\"],[[910,910],\"mapped\",[973]],[[911,911],\"mapped\",[974]],[[912,912],\"valid\"],[[913,913],\"mapped\",[945]],[[914,914],\"mapped\",[946]],[[915,915],\"mapped\",[947]],[[916,916],\"mapped\",[948]],[[917,917],\"mapped\",[949]],[[918,918],\"mapped\",[950]],[[919,919],\"mapped\",[951]],[[920,920],\"mapped\",[952]],[[921,921],\"mapped\",[953]],[[922,922],\"mapped\",[954]],[[923,923],\"mapped\",[955]],[[924,924],\"mapped\",[956]],[[925,925],\"mapped\",[957]],[[926,926],\"mapped\",[958]],[[927,927],\"mapped\",[959]],[[928,928],\"mapped\",[960]],[[929,929],\"mapped\",[961]],[[930,930],\"disallowed\"],[[931,931],\"mapped\",[963]],[[932,932],\"mapped\",[964]],[[933,933],\"mapped\",[965]],[[934,934],\"mapped\",[966]],[[935,935],\"mapped\",[967]],[[936,936],\"mapped\",[968]],[[937,937],\"mapped\",[969]],[[938,938],\"mapped\",[970]],[[939,939],\"mapped\",[971]],[[940,961],\"valid\"],[[962,962],\"deviation\",[963]],[[963,974],\"valid\"],[[975,975],\"mapped\",[983]],[[976,976],\"mapped\",[946]],[[977,977],\"mapped\",[952]],[[978,978],\"mapped\",[965]],[[979,979],\"mapped\",[973]],[[980,980],\"mapped\",[971]],[[981,981],\"mapped\",[966]],[[982,982],\"mapped\",[960]],[[983,983],\"valid\"],[[984,984],\"mapped\",[985]],[[985,985],\"valid\"],[[986,986],\"mapped\",[987]],[[987,987],\"valid\"],[[988,988],\"mapped\",[989]],[[989,989],\"valid\"],[[990,990],\"mapped\",[991]],[[991,991],\"valid\"],[[992,992],\"mapped\",[993]],[[993,993],\"valid\"],[[994,994],\"mapped\",[995]],[[995,995],\"valid\"],[[996,996],\"mapped\",[997]],[[997,997],\"valid\"],[[998,998],\"mapped\",[999]],[[999,999],\"valid\"],[[1000,1000],\"mapped\",[1001]],[[1001,1001],\"valid\"],[[1002,1002],\"mapped\",[1003]],[[1003,1003],\"valid\"],[[1004,1004],\"mapped\",[1005]],[[1005,1005],\"valid\"],[[1006,1006],\"mapped\",[1007]],[[1007,1007],\"valid\"],[[1008,1008],\"mapped\",[954]],[[1009,1009],\"mapped\",[961]],[[1010,1010],\"mapped\",[963]],[[1011,1011],\"valid\"],[[1012,1012],\"mapped\",[952]],[[1013,1013],\"mapped\",[949]],[[1014,1014],\"valid\",[],\"NV8\"],[[1015,1015],\"mapped\",[1016]],[[1016,1016],\"valid\"],[[1017,1017],\"mapped\",[963]],[[1018,1018],\"mapped\",[1019]],[[1019,1019],\"valid\"],[[1020,1020],\"valid\"],[[1021,1021],\"mapped\",[891]],[[1022,1022],\"mapped\",[892]],[[1023,1023],\"mapped\",[893]],[[1024,1024],\"mapped\",[1104]],[[1025,1025],\"mapped\",[1105]],[[1026,1026],\"mapped\",[1106]],[[1027,1027],\"mapped\",[1107]],[[1028,1028],\"mapped\",[1108]],[[1029,1029],\"mapped\",[1109]],[[1030,1030],\"mapped\",[1110]],[[1031,1031],\"mapped\",[1111]],[[1032,1032],\"mapped\",[1112]],[[1033,1033],\"mapped\",[1113]],[[1034,1034],\"mapped\",[1114]],[[1035,1035],\"mapped\",[111
478075]],[[1036,1036],\"mapped\",[1116]],[[1037,1037],\"mapped\",[1117]],[[1038,1038],\"mapped\",[1118]],[[1039,1039],\"mapped\",[1119]],[[1040,1040],\"mapped\",[1072]],[[1041,1041],\"mapped\",[1073]],[[1042,1042],\"mapped\",[1074]],[[1043,1043],\"mapped\",[1075]],[[1044,1044],\"mapped\",[1076]],[[1045,1045],\"mapped\",[1077]],[[1046,1046],\"mapped\",[1078]],[[1047,1047],\"mapped\",[1079]],[[1048,1048],\"mapped\",[1080]],[[1049,1049],\"mapped\",[1081]],[[1050,1050],\"mapped\",[1082]],[[1051,1051],\"mapped\",[1083]],[[1052,1052],\"mapped\",[1084]],[[1053,1053],\"mapped\",[1085]],[[1054,1054],\"mapped\",[1086]],[[1055,1055],\"mapped\",[1087]],[[1056,1056],\"mapped\",[1088]],[[1057,1057],\"mapped\",[1089]],[[1058,1058],\"mapped\",[1090]],[[1059,1059],\"mapped\",[1091]],[[1060,1060],\"mapped\",[1092]],[[1061,1061],\"mapped\",[1093]],[[1062,1062],\"mapped\",[1094]],[[1063,1063],\"mapped\",[1095]],[[1064,1064],\"mapped\",[1096]],[[1065,1065],\"mapped\",[1097]],[[1066,1066],\"mapped\",[1098]],[[1067,1067],\"mapped\",[1099]],[[1068,1068],\"mapped\",[1100]],[[1069,1069],\"mapped\",[1101]],[[1070,1070],\"mapped\",[1102]],[[1071,1071],\"mapped\",[1103]],[[1072,1103],\"valid\"],[[1104,1104],\"valid\"],[[1105,1116],\"valid\"],[[1117,1117],\"valid\"],[[1118,1119],\"valid\"],[[1120,1120],\"mapped\",[1121]],[[1121,1121],\"valid\"],[[1122,1122],\"mapped\",[1123]],[[1123,1123],\"valid\"],[[1124,1124],\"mapped\",[1125]],[[1125,1125],\"valid\"],[[1126,1126],\"mapped\",[1127]],[[1127,1127],\"valid\"],[[1128,1128],\"mapped\",[1129]],[[1129,1129],\"valid\"],[[1130,1130],\"mapped\",[1131]],[[1131,1131],\"valid\"],[[1132,1132],\"mapped\",[1133]],[[1133,1133],\"valid\"],[[1134,1134],\"mapped\",[1135]],[[1135,1135],\"valid\"],[[1136,1136],\"mapped\",[1137]],[[1137,1137],\"valid\"],[[1138,1138],\"mapped\",[1139]],[[1139,1139],\"valid\"],[[1140,1140],\"mapped\",[1141]],[[1141,1141],\"valid\"],[[1142,1142],\"mapped\",[1143]],[[1143,1143],\"valid\"],[[1144,1144],\"mapped\",[1145]],[[1145,1145],\"valid\"],[[1146,1146],\"mapped\",[1147]],[[1147,1147],\"valid\"],[[1148,1148],\"mapped\",[1149]],[[1149,1149],\"valid\"],[[1150,1150],\"mapped\",[1151]],[[1151,1151],\"valid\"],[[1152,1152],\"mapped\",[1153]],[[1153,1153],\"valid\"],[[1154,1154],\"valid\",[],\"NV8\"],[[1155,1158],\"valid\"],[[1159,1159],\"valid\"],[[1160,1161],\"valid\",[],\"NV8\"],[[1162,1162],\"mapped\",[1163]],[[1163,1163],\"valid\"],[[1164,1164],\"mapped\",[1165]],[[1165,1165],\"valid\"],[[1166,1166],\"mapped\",[1167]],[[1167,1167],\"valid\"],[[1168,1168],\"mapped\",[1169]],[[1169,1169],\"valid\"],[[1170,1170],\"mapped\",[1171]],[[1171,1171],\"valid\"],[[1172,1172],\"mapped\",[1173]],[[1173,1173],\"valid\"],[[1174,1174],\"mapped\",[1175]],[[1175,1175],\"valid\"],[[1176,1176],\"mapped\",[1177]],[[1177,1177],\"valid\"],[[1178,1178],\"mapped\",[1179]],[[1179,1179],\"valid\"],[[1180,1180],\"mapped\",[1181]],[[1181,1181],\"valid\"],[[1182,1182],\"mapped\",[1183]],[[1183,1183],\"valid\"],[[1184,1184],\"mapped\",[1185]],[[1185,1185],\"valid\"],[[1186,1186],\"mapped\",[1187]],[[1187,1187],\"valid\"],[[1188,1188],\"mapped\",[1189]],[[1189,1189],\"valid\"],[[1190,1190],\"mapped\",[1191]],[[1191,1191],\"valid\"],[[1192,1192],\"mapped\",[1193]],[[1193,1193],\"valid\"],[[1194,1194],\"mapped\",[1195]],[[1195,1195],\"valid\"],[[1196,1196],\"mapped\",[1197]],[[1197,1197],\"valid\"],[[1198,1198],\"mapped\",[1199]],[[1199,1199],\"valid\"],[[1200,1200],\"mapped\",[1201]],[[1201,1201],\"valid\"],[[1202,1202],\"mapped\",[1203]],[[1203,1203],\"valid\"],[[1204,1204],\"mapped\",[1205]],[[1205,1205],\"valid\"],[[1206,1206],\"mapped\",[1207]],[[1207,1207],\"valid\"],[[1208,1208],\"mapped\",[1209]],[[1209,1209],\"valid\"],[[1210,1210],\"mapped\",[1211]],[[1211,1211],\"valid\"],[[1212,1212],\"mapped\",[1213]],[[1213,1213],\"valid\"],[[1214,1214],\"mapped\",[1215]],[[1215,1215],\"valid\"],[[1216,1216],\"disallowed\"],[[1217,1217],\"mapped\",[1218]],[[1218,1218],\"valid\"],[[1219,1219],\"mapped\",[1220]],[[1220,1220],\"valid\"],[[1221,1221],\"mapped\",[1222]],[[1222,1222],\"valid\"],[[1223,1223],\"mapped\",[1224]],[[1224,1224],\"valid\"],[[1225,1225],\"mapped\",[1226]],[[1226,1226],\"valid\"],[[1227,1227],\"mapped\",[1228]],[[1228,1228],\"valid\"],[[1229,1229],\"mapped\",[1230]],[[1230,1230],\"valid\"],[[1231,1231],\"valid\"],[[1232,1232],\"mapped\",[1233]],[[1233,1233],\"valid\"],[[1234,1234],\"mapped\",[1235]],[[1235,1235],\"valid\"],[[1236,1236],\"mapped\",[1237]],[[1237,1237],\"valid\"],[[1238,1238],\"mapped\",[1239]],[[1239,1239],\"valid\"],[[1240,1240],\"mapped\",[1241]],[[1241,1241],\"valid\"],[[1242,1242],\"mapped\",[1243]],[[1243,1243],\"valid\"],[[1244,1244],\"mapped\",[1245]],[[1245,1245],\"valid\"],[[1246,1246],\"mapped\",[1247]],[[1247,1247],\"valid\"],[[1248,1248],\"mapped\",[1249]],[[1249,1249],\"valid\"],[[1250,1250],\"mapped\",[1251]],[[1251,1251],\"valid\"],[[1252,1252],\"mapped\",[1253]],[[1253,1253],\"valid\"],[[1254,1254],\"mapped\",[1255]],[[1255,1255],\"valid\"],[[1256,1256],\"mapped\",[1257]],[[1257,1257],\"valid\"],[[1258,1258],\"mapped\",[1259]],[[1259,1259],\"valid\"],[[1260,1260],\"mapped\",[1261]],[[1261,1261],\"valid\"],[[1262,1262],\"mapped\",[1263]],[[1263,1263],\"valid\"],[[1264,1264],\"mapped\",[1265]],[[1265,1265],\"valid\"],[[1266,1266],\"mapped\",[1267]],[[1267,1267],\"valid\"],[[1268,1268],\"mapped\",[1269]],[[1269,1269],\"valid\"],[[1270,1270],\"mapped\",[1271]],[[1271,1271],\"valid\"],[[1272,1272],\"mapped\",[1273]],[[1273,1273],\"valid\"],[[1274,1274],\"mapped\",[1275]],[[1275,1275],\"valid\"],[[1276,1276],\"mapped\",[1277]],[[1277,1277],\"valid\"],[[1278,1278],\"mapped\",[1279]],[[1279,1279],\"valid\"],[[1280,1280],\"mapped\",[1281]],[[1281,1281],\"valid\"],[[1282,1282],\"mapped\",[1283]],[[1283,1283],\"valid\"],[[1284,1284],\"mapped\",[1285]],[[1285,1285],\"valid\"],[[1286,1286],\"mapped\",[1287]],[[1287,1287],\"valid\"],[[1288,1288],\"mapped\",[1289]],[[1289,1289],\"valid\"],[[1290,1290],\"mapped\",[1291]],[[1291,1291],\"valid\"],[[1292,1292],\"mapped\",[1293]],[[1293,1293],\"valid\"],[[1294,1294],\"mapped\",[1295]],[[1295,1295],\"valid\"],[[1296,1296],\"mapped\",[1297]],[[1297,1297],\"valid\"],[[1298,1298],\"mapped\",[1299]],[[1299,1299],\"valid\"],[[1300,1300],\"mapped\",[1301]],[[1301,1301],\"valid\"],[[1302,1302],\"mapped\",[1303]],[[1303,1303],\"valid\"],[[1304,1304],\"mapped\",[1305]],[[1305,1305],\"valid\"],[[1306,1306],\"mapped\",[1307]],[[1307,1307],\"valid\"],[[1308,1308],\"mapped\",[1309]],[[1309,1309],\"valid\"],[[1310,1310
47807],\"mapped\",[1311]],[[1311,1311],\"valid\"],[[1312,1312],\"mapped\",[1313]],[[1313,1313],\"valid\"],[[1314,1314],\"mapped\",[1315]],[[1315,1315],\"valid\"],[[1316,1316],\"mapped\",[1317]],[[1317,1317],\"valid\"],[[1318,1318],\"mapped\",[1319]],[[1319,1319],\"valid\"],[[1320,1320],\"mapped\",[1321]],[[1321,1321],\"valid\"],[[1322,1322],\"mapped\",[1323]],[[1323,1323],\"valid\"],[[1324,1324],\"mapped\",[1325]],[[1325,1325],\"valid\"],[[1326,1326],\"mapped\",[1327]],[[1327,1327],\"valid\"],[[1328,1328],\"disallowed\"],[[1329,1329],\"mapped\",[1377]],[[1330,1330],\"mapped\",[1378]],[[1331,1331],\"mapped\",[1379]],[[1332,1332],\"mapped\",[1380]],[[1333,1333],\"mapped\",[1381]],[[1334,1334],\"mapped\",[1382]],[[1335,1335],\"mapped\",[1383]],[[1336,1336],\"mapped\",[1384]],[[1337,1337],\"mapped\",[1385]],[[1338,1338],\"mapped\",[1386]],[[1339,1339],\"mapped\",[1387]],[[1340,1340],\"mapped\",[1388]],[[1341,1341],\"mapped\",[1389]],[[1342,1342],\"mapped\",[1390]],[[1343,1343],\"mapped\",[1391]],[[1344,1344],\"mapped\",[1392]],[[1345,1345],\"mapped\",[1393]],[[1346,1346],\"mapped\",[1394]],[[1347,1347],\"mapped\",[1395]],[[1348,1348],\"mapped\",[1396]],[[1349,1349],\"mapped\",[1397]],[[1350,1350],\"mapped\",[1398]],[[1351,1351],\"mapped\",[1399]],[[1352,1352],\"mapped\",[1400]],[[1353,1353],\"mapped\",[1401]],[[1354,1354],\"mapped\",[1402]],[[1355,1355],\"mapped\",[1403]],[[1356,1356],\"mapped\",[1404]],[[1357,1357],\"mapped\",[1405]],[[1358,1358],\"mapped\",[1406]],[[1359,1359],\"mapped\",[1407]],[[1360,1360],\"mapped\",[1408]],[[1361,1361],\"mapped\",[1409]],[[1362,1362],\"mapped\",[1410]],[[1363,1363],\"mapped\",[1411]],[[1364,1364],\"mapped\",[1412]],[[1365,1365],\"mapped\",[1413]],[[1366,1366],\"mapped\",[1414]],[[1367,1368],\"disallowed\"],[[1369,1369],\"valid\"],[[1370,1375],\"valid\",[],\"NV8\"],[[1376,1376],\"disallowed\"],[[1377,1414],\"valid\"],[[1415,1415],\"mapped\",[1381,1410]],[[1416,1416],\"disallowed\"],[[1417,1417],\"valid\",[],\"NV8\"],[[1418,1418],\"valid\",[],\"NV8\"],[[1419,1420],\"disallowed\"],[[1421,1422],\"valid\",[],\"NV8\"],[[1423,1423],\"valid\",[],\"NV8\"],[[1424,1424],\"disallowed\"],[[1425,1441],\"valid\"],[[1442,1442],\"valid\"],[[1443,1455],\"valid\"],[[1456,1465],\"valid\"],[[1466,1466],\"valid\"],[[1467,1469],\"valid\"],[[1470,1470],\"valid\",[],\"NV8\"],[[1471,1471],\"valid\"],[[1472,1472],\"valid\",[],\"NV8\"],[[1473,1474],\"valid\"],[[1475,1475],\"valid\",[],\"NV8\"],[[1476,1476],\"valid\"],[[1477,1477],\"valid\"],[[1478,1478],\"valid\",[],\"NV8\"],[[1479,1479],\"valid\"],[[1480,1487],\"disallowed\"],[[1488,1514],\"valid\"],[[1515,1519],\"disallowed\"],[[1520,1524],\"valid\"],[[1525,1535],\"disallowed\"],[[1536,1539],\"disallowed\"],[[1540,1540],\"disallowed\"],[[1541,1541],\"disallowed\"],[[1542,1546],\"valid\",[],\"NV8\"],[[1547,1547],\"valid\",[],\"NV8\"],[[1548,1548],\"valid\",[],\"NV8\"],[[1549,1551],\"valid\",[],\"NV8\"],[[1552,1557],\"valid\"],[[1558,1562],\"valid\"],[[1563,1563],\"valid\",[],\"NV8\"],[[1564,1564],\"disallowed\"],[[1565,1565],\"disallowed\"],[[1566,1566],\"valid\",[],\"NV8\"],[[1567,1567],\"valid\",[],\"NV8\"],[[1568,1568],\"valid\"],[[1569,1594],\"valid\"],[[1595,1599],\"valid\"],[[1600,1600],\"valid\",[],\"NV8\"],[[1601,1618],\"valid\"],[[1619,1621],\"valid\"],[[1622,1624],\"valid\"],[[1625,1630],\"valid\"],[[1631,1631],\"valid\"],[[1632,1641],\"valid\"],[[1642,1645],\"valid\",[],\"NV8\"],[[1646,1647],\"valid\"],[[1648,1652],\"valid\"],[[1653,1653],\"mapped\",[1575,1652]],[[1654,1654],\"mapped\",[1608,1652]],[[1655,1655],\"mapped\",[1735,1652]],[[1656,1656],\"mapped\",[1610,1652]],[[1657,1719],\"valid\"],[[1720,1721],\"valid\"],[[1722,1726],\"valid\"],[[1727,1727],\"valid\"],[[1728,1742],\"valid\"],[[1743,1743],\"valid\"],[[1744,1747],\"valid\"],[[1748,1748],\"valid\",[],\"NV8\"],[[1749,1756],\"valid\"],[[1757,1757],\"disallowed\"],[[1758,1758],\"valid\",[],\"NV8\"],[[1759,1768],\"valid\"],[[1769,1769],\"valid\",[],\"NV8\"],[[1770,1773],\"valid\"],[[1774,1775],\"valid\"],[[1776,1785],\"valid\"],[[1786,1790],\"valid\"],[[1791,1791],\"valid\"],[[1792,1805],\"valid\",[],\"NV8\"],[[1806,1806],\"disallowed\"],[[1807,1807],\"disallowed\"],[[1808,1836],\"valid\"],[[1837,1839],\"valid\"],[[1840,1866],\"valid\"],[[1867,1868],\"disallowed\"],[[1869,1871],\"valid\"],[[1872,1901],\"valid\"],[[1902,1919],\"valid\"],[[1920,1968],\"valid\"],[[1969,1969],\"valid\"],[[1970,1983],\"disallowed\"],[[1984,2037],\"valid\"],[[2038,2042],\"valid\",[],\"NV8\"],[[2043,2047],\"disallowed\"],[[2048,2093],\"valid\"],[[2094,2095],\"disallowed\"],[[2096,2110],\"valid\",[],\"NV8\"],[[2111,2111],\"disallowed\"],[[2112,2139],\"valid\"],[[2140,2141],\"disallowed\"],[[2142,2142],\"valid\",[],\"NV8\"],[[2143,2207],\"disallowed\"],[[2208,2208],\"valid\"],[[2209,2209],\"valid\"],[[2210,2220],\"valid\"],[[2221,2226],\"valid\"],[[2227,2228],\"valid\"],[[2229,2274],\"disallowed\"],[[2275,2275],\"valid\"],[[2276,2302],\"valid\"],[[2303,2303],\"valid\"],[[2304,2304],\"valid\"],[[2305,2307],\"valid\"],[[2308,2308],\"valid\"],[[2309,2361],\"valid\"],[[2362,2363],\"valid\"],[[2364,2381],\"valid\"],[[2382,2382],\"valid\"],[[2383,2383],\"valid\"],[[2384,2388],\"valid\"],[[2389,2389],\"valid\"],[[2390,2391],\"valid\"],[[2392,2392],\"mapped\",[2325,2364]],[[2393,2393],\"mapped\",[2326,2364]],[[2394,2394],\"mapped\",[2327,2364]],[[2395,2395],\"mapped\",[2332,2364]],[[2396,2396],\"mapped\",[2337,2364]],[[2397,2397],\"mapped\",[2338,2364]],[[2398,2398],\"mapped\",[2347,2364]],[[2399,2399],\"mapped\",[2351,2364]],[[2400,2403],\"valid\"],[[2404,2405],\"valid\",[],\"NV8\"],[[2406,2415],\"valid\"],[[2416,2416],\"valid\",[],\"NV8\"],[[2417,2418],\"valid\"],[[2419,2423],\"valid\"],[[2424,2424],\"valid\"],[[2425,2426],\"valid\"],[[2427,2428],\"valid\"],[[2429,2429],\"valid\"],[[2430,2431],\"valid\"],[[2432,2432],\"valid\"],[[2433,2435],\"valid\"],[[2436,2436],\"disallowed\"],[[2437,2444],\"valid\"],[[2445,2446],\"disallowed\"],[[2447,2448],\"valid\"],[[2449,2450],\"disallowed\"],[[2451,2472],\"valid\"],[[2473,2473],\"disallowed\"],[[2474,2480],\"valid\"],[[2481,2481],\"disallowed\"],[[2482,2482],\"valid\"],[[2483,2485],\"disallowed\"],[[2486,2489],\"valid\"],[[2490,2491],\"disallowed\"],[[2492,2492],\"valid\"],[[2493,2493],\"valid\"],[[2494,2500],\"valid\"],[[2501,2502],\"disallowed\"],[[2503,2504],\"valid\"],[[2505,2506],\"disallowed\"],[[2507,2509],\"valid\"],[[2510,2510],\"valid\"],[[2511,2518],\"disallowed\"],[[2519,2519],\"valid\"],[[2520,2523],\"disallowed\"],[[2524,2524],\"mapped\",[2465,2492]],[[2525,2525],\"mapped\",[2466,2492]],[[2526,2526],\"disallowed\"],[[2527,2527],\"mapped\",[2479,2492]],[[2528,2531],\"valid\"],[[2532,2533],\"disallowed\"],[[2534,2545],\"valid\"],[[2546,2554],\"valid\",[],\"NV8\"],[[25
4780755,2555],\"valid\",[],\"NV8\"],[[2556,2560],\"disallowed\"],[[2561,2561],\"valid\"],[[2562,2562],\"valid\"],[[2563,2563],\"valid\"],[[2564,2564],\"disallowed\"],[[2565,2570],\"valid\"],[[2571,2574],\"disallowed\"],[[2575,2576],\"valid\"],[[2577,2578],\"disallowed\"],[[2579,2600],\"valid\"],[[2601,2601],\"disallowed\"],[[2602,2608],\"valid\"],[[2609,2609],\"disallowed\"],[[2610,2610],\"valid\"],[[2611,2611],\"mapped\",[2610,2620]],[[2612,2612],\"disallowed\"],[[2613,2613],\"valid\"],[[2614,2614],\"mapped\",[2616,2620]],[[2615,2615],\"disallowed\"],[[2616,2617],\"valid\"],[[2618,2619],\"disallowed\"],[[2620,2620],\"valid\"],[[2621,2621],\"disallowed\"],[[2622,2626],\"valid\"],[[2627,2630],\"disallowed\"],[[2631,2632],\"valid\"],[[2633,2634],\"disallowed\"],[[2635,2637],\"valid\"],[[2638,2640],\"disallowed\"],[[2641,2641],\"valid\"],[[2642,2648],\"disallowed\"],[[2649,2649],\"mapped\",[2582,2620]],[[2650,2650],\"mapped\",[2583,2620]],[[2651,2651],\"mapped\",[2588,2620]],[[2652,2652],\"valid\"],[[2653,2653],\"disallowed\"],[[2654,2654],\"mapped\",[2603,2620]],[[2655,2661],\"disallowed\"],[[2662,2676],\"valid\"],[[2677,2677],\"valid\"],[[2678,2688],\"disallowed\"],[[2689,2691],\"valid\"],[[2692,2692],\"disallowed\"],[[2693,2699],\"valid\"],[[2700,2700],\"valid\"],[[2701,2701],\"valid\"],[[2702,2702],\"disallowed\"],[[2703,2705],\"valid\"],[[2706,2706],\"disallowed\"],[[2707,2728],\"valid\"],[[2729,2729],\"disallowed\"],[[2730,2736],\"valid\"],[[2737,2737],\"disallowed\"],[[2738,2739],\"valid\"],[[2740,2740],\"disallowed\"],[[2741,2745],\"valid\"],[[2746,2747],\"disallowed\"],[[2748,2757],\"valid\"],[[2758,2758],\"disallowed\"],[[2759,2761],\"valid\"],[[2762,2762],\"disallowed\"],[[2763,2765],\"valid\"],[[2766,2767],\"disallowed\"],[[2768,2768],\"valid\"],[[2769,2783],\"disallowed\"],[[2784,2784],\"valid\"],[[2785,2787],\"valid\"],[[2788,2789],\"disallowed\"],[[2790,2799],\"valid\"],[[2800,2800],\"valid\",[],\"NV8\"],[[2801,2801],\"valid\",[],\"NV8\"],[[2802,2808],\"disallowed\"],[[2809,2809],\"valid\"],[[2810,2816],\"disallowed\"],[[2817,2819],\"valid\"],[[2820,2820],\"disallowed\"],[[2821,2828],\"valid\"],[[2829,2830],\"disallowed\"],[[2831,2832],\"valid\"],[[2833,2834],\"disallowed\"],[[2835,2856],\"valid\"],[[2857,2857],\"disallowed\"],[[2858,2864],\"valid\"],[[2865,2865],\"disallowed\"],[[2866,2867],\"valid\"],[[2868,2868],\"disallowed\"],[[2869,2869],\"valid\"],[[2870,2873],\"valid\"],[[2874,2875],\"disallowed\"],[[2876,2883],\"valid\"],[[2884,2884],\"valid\"],[[2885,2886],\"disallowed\"],[[2887,2888],\"valid\"],[[2889,2890],\"disallowed\"],[[2891,2893],\"valid\"],[[2894,2901],\"disallowed\"],[[2902,2903],\"valid\"],[[2904,2907],\"disallowed\"],[[2908,2908],\"mapped\",[2849,2876]],[[2909,2909],\"mapped\",[2850,2876]],[[2910,2910],\"disallowed\"],[[2911,2913],\"valid\"],[[2914,2915],\"valid\"],[[2916,2917],\"disallowed\"],[[2918,2927],\"valid\"],[[2928,2928],\"valid\",[],\"NV8\"],[[2929,2929],\"valid\"],[[2930,2935],\"valid\",[],\"NV8\"],[[2936,2945],\"disallowed\"],[[2946,2947],\"valid\"],[[2948,2948],\"disallowed\"],[[2949,2954],\"valid\"],[[2955,2957],\"disallowed\"],[[2958,2960],\"valid\"],[[2961,2961],\"disallowed\"],[[2962,2965],\"valid\"],[[2966,2968],\"disallowed\"],[[2969,2970],\"valid\"],[[2971,2971],\"disallowed\"],[[2972,2972],\"valid\"],[[2973,2973],\"disallowed\"],[[2974,2975],\"valid\"],[[2976,2978],\"disallowed\"],[[2979,2980],\"valid\"],[[2981,2983],\"disallowed\"],[[2984,2986],\"valid\"],[[2987,2989],\"disallowed\"],[[2990,2997],\"valid\"],[[2998,2998],\"valid\"],[[2999,3001],\"valid\"],[[3002,3005],\"disallowed\"],[[3006,3010],\"valid\"],[[3011,3013],\"disallowed\"],[[3014,3016],\"valid\"],[[3017,3017],\"disallowed\"],[[3018,3021],\"valid\"],[[3022,3023],\"disallowed\"],[[3024,3024],\"valid\"],[[3025,3030],\"disallowed\"],[[3031,3031],\"valid\"],[[3032,3045],\"disallowed\"],[[3046,3046],\"valid\"],[[3047,3055],\"valid\"],[[3056,3058],\"valid\",[],\"NV8\"],[[3059,3066],\"valid\",[],\"NV8\"],[[3067,3071],\"disallowed\"],[[3072,3072],\"valid\"],[[3073,3075],\"valid\"],[[3076,3076],\"disallowed\"],[[3077,3084],\"valid\"],[[3085,3085],\"disallowed\"],[[3086,3088],\"valid\"],[[3089,3089],\"disallowed\"],[[3090,3112],\"valid\"],[[3113,3113],\"disallowed\"],[[3114,3123],\"valid\"],[[3124,3124],\"valid\"],[[3125,3129],\"valid\"],[[3130,3132],\"disallowed\"],[[3133,3133],\"valid\"],[[3134,3140],\"valid\"],[[3141,3141],\"disallowed\"],[[3142,3144],\"valid\"],[[3145,3145],\"disallowed\"],[[3146,3149],\"valid\"],[[3150,3156],\"disallowed\"],[[3157,3158],\"valid\"],[[3159,3159],\"disallowed\"],[[3160,3161],\"valid\"],[[3162,3162],\"valid\"],[[3163,3167],\"disallowed\"],[[3168,3169],\"valid\"],[[3170,3171],\"valid\"],[[3172,3173],\"disallowed\"],[[3174,3183],\"valid\"],[[3184,3191],\"disallowed\"],[[3192,3199],\"valid\",[],\"NV8\"],[[3200,3200],\"disallowed\"],[[3201,3201],\"valid\"],[[3202,3203],\"valid\"],[[3204,3204],\"disallowed\"],[[3205,3212],\"valid\"],[[3213,3213],\"disallowed\"],[[3214,3216],\"valid\"],[[3217,3217],\"disallowed\"],[[3218,3240],\"valid\"],[[3241,3241],\"disallowed\"],[[3242,3251],\"valid\"],[[3252,3252],\"disallowed\"],[[3253,3257],\"valid\"],[[3258,3259],\"disallowed\"],[[3260,3261],\"valid\"],[[3262,3268],\"valid\"],[[3269,3269],\"disallowed\"],[[3270,3272],\"valid\"],[[3273,3273],\"disallowed\"],[[3274,3277],\"valid\"],[[3278,3284],\"disallowed\"],[[3285,3286],\"valid\"],[[3287,3293],\"disallowed\"],[[3294,3294],\"valid\"],[[3295,3295],\"disallowed\"],[[3296,3297],\"valid\"],[[3298,3299],\"valid\"],[[3300,3301],\"disallowed\"],[[3302,3311],\"valid\"],[[3312,3312],\"disallowed\"],[[3313,3314],\"valid\"],[[3315,3328],\"disallowed\"],[[3329,3329],\"valid\"],[[3330,3331],\"valid\"],[[3332,3332],\"disallowed\"],[[3333,3340],\"valid\"],[[3341,3341],\"disallowed\"],[[3342,3344],\"valid\"],[[3345,3345],\"disallowed\"],[[3346,3368],\"valid\"],[[3369,3369],\"valid\"],[[3370,3385],\"valid\"],[[3386,3386],\"valid\"],[[3387,3388],\"disallowed\"],[[3389,3389],\"valid\"],[[3390,3395],\"valid\"],[[339
478076,3396],\"valid\"],[[3397,3397],\"disallowed\"],[[3398,3400],\"valid\"],[[3401,3401],\"disallowed\"],[[3402,3405],\"valid\"],[[3406,3406],\"valid\"],[[3407,3414],\"disallowed\"],[[3415,3415],\"valid\"],[[3416,3422],\"disallowed\"],[[3423,3423],\"valid\"],[[3424,3425],\"valid\"],[[3426,3427],\"valid\"],[[3428,3429],\"disallowed\"],[[3430,3439],\"valid\"],[[3440,3445],\"valid\",[],\"NV8\"],[[3446,3448],\"disallowed\"],[[3449,3449],\"valid\",[],\"NV8\"],[[3450,3455],\"valid\"],[[3456,3457],\"disallowed\"],[[3458,3459],\"valid\"],[[3460,3460],\"disallowed\"],[[3461,3478],\"valid\"],[[3479,3481],\"disallowed\"],[[3482,3505],\"valid\"],[[3506,3506],\"disallowed\"],[[3507,3515],\"valid\"],[[3516,3516],\"disallowed\"],[[3517,3517],\"valid\"],[[3518,3519],\"disallowed\"],[[3520,3526],\"valid\"],[[3527,3529],\"disallowed\"],[[3530,3530],\"valid\"],[[3531,3534],\"disallowed\"],[[3535,3540],\"valid\"],[[3541,3541],\"disallowed\"],[[3542,3542],\"valid\"],[[3543,3543],\"disallowed\"],[[3544,3551],\"valid\"],[[3552,3557],\"disallowed\"],[[3558,3567],\"valid\"],[[3568,3569],\"disallowed\"],[[3570,3571],\"valid\"],[[3572,3572],\"valid\",[],\"NV8\"],[[3573,3584],\"disallowed\"],[[3585,3634],\"valid\"],[[3635,3635],\"mapped\",[3661,3634]],[[3636,3642],\"valid\"],[[3643,3646],\"disallowed\"],[[3647,3647],\"valid\",[],\"NV8\"],[[3648,3662],\"valid\"],[[3663,3663],\"valid\",[],\"NV8\"],[[3664,3673],\"valid\"],[[3674,3675],\"valid\",[],\"NV8\"],[[3676,3712],\"disallowed\"],[[3713,3714],\"valid\"],[[3715,3715],\"disallowed\"],[[3716,3716],\"valid\"],[[3717,3718],\"disallowed\"],[[3719,3720],\"valid\"],[[3721,3721],\"disallowed\"],[[3722,3722],\"valid\"],[[3723,3724],\"disallowed\"],[[3725,3725],\"valid\"],[[3726,3731],\"disallowed\"],[[3732,3735],\"valid\"],[[3736,3736],\"disallowed\"],[[3737,3743],\"valid\"],[[3744,3744],\"disallowed\"],[[3745,3747],\"valid\"],[[3748,3748],\"disallowed\"],[[3749,3749],\"valid\"],[[3750,3750],\"disallowed\"],[[3751,3751],\"valid\"],[[3752,3753],\"disallowed\"],[[3754,3755],\"valid\"],[[3756,3756],\"disallowed\"],[[3757,3762],\"valid\"],[[3763,3763],\"mapped\",[3789,3762]],[[3764,3769],\"valid\"],[[3770,3770],\"disallowed\"],[[3771,3773],\"valid\"],[[3774,3775],\"disallowed\"],[[3776,3780],\"valid\"],[[3781,3781],\"disallowed\"],[[3782,3782],\"valid\"],[[3783,3783],\"disallowed\"],[[3784,3789],\"valid\"],[[3790,3791],\"disallowed\"],[[3792,3801],\"valid\"],[[3802,3803],\"disallowed\"],[[3804,3804],\"mapped\",[3755,3737]],[[3805,3805],\"mapped\",[3755,3745]],[[3806,3807],\"valid\"],[[3808,3839],\"disallowed\"],[[3840,3840],\"valid\"],[[3841,3850],\"valid\",[],\"NV8\"],[[3851,3851],\"valid\"],[[3852,3852],\"mapped\",[3851]],[[3853,3863],\"valid\",[],\"NV8\"],[[3864,3865],\"valid\"],[[3866,3871],\"valid\",[],\"NV8\"],[[3872,3881],\"valid\"],[[3882,3892],\"valid\",[],\"NV8\"],[[3893,3893],\"valid\"],[[3894,3894],\"valid\",[],\"NV8\"],[[3895,3895],\"valid\"],[[3896,3896],\"valid\",[],\"NV8\"],[[3897,3897],\"valid\"],[[3898,3901],\"valid\",[],\"NV8\"],[[3902,3906],\"valid\"],[[3907,3907],\"mapped\",[3906,4023]],[[3908,3911],\"valid\"],[[3912,3912],\"disallowed\"],[[3913,3916],\"valid\"],[[3917,3917],\"mapped\",[3916,4023]],[[3918,3921],\"valid\"],[[3922,3922],\"mapped\",[3921,4023]],[[3923,3926],\"valid\"],[[3927,3927],\"mapped\",[3926,4023]],[[3928,3931],\"valid\"],[[3932,3932],\"mapped\",[3931,4023]],[[3933,3944],\"valid\"],[[3945,3945],\"mapped\",[3904,4021]],[[3946,3946],\"valid\"],[[3947,3948],\"valid\"],[[3949,3952],\"disallowed\"],[[3953,3954],\"valid\"],[[3955,3955],\"mapped\",[3953,3954]],[[3956,3956],\"valid\"],[[3957,3957],\"mapped\",[3953,3956]],[[3958,3958],\"mapped\",[4018,3968]],[[3959,3959],\"mapped\",[4018,3953,3968]],[[3960,3960],\"mapped\",[4019,3968]],[[3961,3961],\"mapped\",[4019,3953,3968]],[[3962,3968],\"valid\"],[[3969,3969],\"mapped\",[3953,3968]],[[3970,3972],\"valid\"],[[3973,3973],\"valid\",[],\"NV8\"],[[3974,3979],\"valid\"],[[3980,3983],\"valid\"],[[3984,3986],\"valid\"],[[3987,3987],\"mapped\",[3986,4023]],[[3988,3989],\"valid\"],[[3990,3990],\"valid\"],[[3991,3991],\"valid\"],[[3992,3992],\"disallowed\"],[[3993,3996],\"valid\"],[[3997,3997],\"mapped\",[3996,4023]],[[3998,4001],\"valid\"],[[4002,4002],\"mapped\",[4001,4023]],[[4003,4006],\"valid\"],[[4007,4007],\"mapped\",[4006,4023]],[[4008,4011],\"valid\"],[[4012,4012],\"mapped\",[4011,4023]],[[4013,4013],\"valid\"],[[4014,4016],\"valid\"],[[4017,4023],\"valid\"],[[4024,4024],\"valid\"],[[4025,4025],\"mapped\",[3984,4021]],[[4026,4028],\"valid\"],[[4029,4029],\"disallowed\"],[[4030,4037],\"valid\",[],\"NV8\"],[[4038,4038],\"valid\"],[[4039,4044],\"valid\",[],\"NV8\"],[[4045,4045],\"disallowed\"],[[4046,4046],\"valid\",[],\"NV8\"],[[4047,4047],\"valid\",[],\"NV8\"],[[4048,4049],\"valid\",[],\"NV8\"],[[4050,4052],\"valid\",[],\"NV8\"],[[4053,4056],\"valid\",[],\"NV8\"],[[4057,4058],\"valid\",[],\"NV8\"],[[4059,4095],\"disallowed\"],[[4096,4129],\"valid\"],[[4130,4130],\"valid\"],[[4131,4135],\"valid\"],[[4136,4136],\"valid\"],[[4137,4138],\"valid\"],[[4139,4139],\"valid\"],[[4140,4146],\"valid\"],[[4147,4149],\"valid\"],[[4150,4153],\"valid\"],[[4154,4159],\"valid\"],[[4160,4169],\"valid\"],[[4170,4175],\"valid\",[],\"NV8\"],[[4176,4185],\"valid\"],[[4186,4249],\"valid\"],[[4250,4253],\"valid\"],[[4254,4255],\"valid\",[],\"NV8\"],[[4256,4293],\"disallowed\"],[[4294,4294],\"disallowed\"],[[4295,4295],\"mapped\",[11559]],[[4296,4300],\"disallowed\"],[[4301,4301],\"mapped\",[11565]],[[4302,4303],\"disallowed\"],[[4304,4342],\"valid\"],[[4343,4344],\"valid\"],[[4345,4346],\"valid\"],[[4347,4347],\"valid\",[],\"NV8\"],[[4348,4348],\"mapped\",[4316]],[[4349,4351],\"valid\"],[[4352,4441],\"valid\",[],\"NV8\"],[[4442,4446],\"valid\",[],\"NV8\"],[[4447,4448],\"disallowed\"],[[4449,4514],\"valid\",[],\"NV8\"],[[4515,4519],\"valid\",[],\"NV8\"],[[4520,4601],\"valid\",[],\"NV8\"],[[4602,4607],\"valid\",[],\"NV8\"],[[4608,4614],\"valid\"],[[4615,4615],\"valid\"],[[4616,4678],\"valid\"],[[4679,4679],\"valid\"],[[4680,4680],\"valid\"],[[4681,4681],\"disallowed\"],[[4682,4685],\"valid\"],[[4686,4687],\"disallowed\"],[[4688,4694],\"valid\"],[[4695,4695],\"disallowed\"],[[4696,4696],\"valid\"],[[4697,4697],\"disallowed\"],[[4698,4701],\"valid\"],[[4702,4703],\"disallowed\"],[[4704,4742],\"valid\"],[[4743,4743],\"valid\"],[[4744,4744],\"valid\"],[[4745,4745],\"disallowed\"],[[4746,4749],\"valid\"],[[4750,4751],\"disallowed\"],[[4752,4782],\"valid\"],[[4783,4783],\"valid\"],[[4784,4784],\"valid\"],[[4785,4785],\"disallowed\"],[[4786,4789],\"valid\"],[[4790,4791],\"disallowed\"],[[4792,4798],\"valid\"],[[4799,4799],\"disallowed\"],[[4800,4800],\"valid\"],[[4801,4801],\"disallowed\"],[[4802,4805],\"valid\"],[[4806,4807],\"disallowed\"],[[4808,4814],\"valid\"],[[4815,48
4780715],\"valid\"],[[4816,4822],\"valid\"],[[4823,4823],\"disallowed\"],[[4824,4846],\"valid\"],[[4847,4847],\"valid\"],[[4848,4878],\"valid\"],[[4879,4879],\"valid\"],[[4880,4880],\"valid\"],[[4881,4881],\"disallowed\"],[[4882,4885],\"valid\"],[[4886,4887],\"disallowed\"],[[4888,4894],\"valid\"],[[4895,4895],\"valid\"],[[4896,4934],\"valid\"],[[4935,4935],\"valid\"],[[4936,4954],\"valid\"],[[4955,4956],\"disallowed\"],[[4957,4958],\"valid\"],[[4959,4959],\"valid\"],[[4960,4960],\"valid\",[],\"NV8\"],[[4961,4988],\"valid\",[],\"NV8\"],[[4989,4991],\"disallowed\"],[[4992,5007],\"valid\"],[[5008,5017],\"valid\",[],\"NV8\"],[[5018,5023],\"disallowed\"],[[5024,5108],\"valid\"],[[5109,5109],\"valid\"],[[5110,5111],\"disallowed\"],[[5112,5112],\"mapped\",[5104]],[[5113,5113],\"mapped\",[5105]],[[5114,5114],\"mapped\",[5106]],[[5115,5115],\"mapped\",[5107]],[[5116,5116],\"mapped\",[5108]],[[5117,5117],\"mapped\",[5109]],[[5118,5119],\"disallowed\"],[[5120,5120],\"valid\",[],\"NV8\"],[[5121,5740],\"valid\"],[[5741,5742],\"valid\",[],\"NV8\"],[[5743,5750],\"valid\"],[[5751,5759],\"valid\"],[[5760,5760],\"disallowed\"],[[5761,5786],\"valid\"],[[5787,5788],\"valid\",[],\"NV8\"],[[5789,5791],\"disallowed\"],[[5792,5866],\"valid\"],[[5867,5872],\"valid\",[],\"NV8\"],[[5873,5880],\"valid\"],[[5881,5887],\"disallowed\"],[[5888,5900],\"valid\"],[[5901,5901],\"disallowed\"],[[5902,5908],\"valid\"],[[5909,5919],\"disallowed\"],[[5920,5940],\"valid\"],[[5941,5942],\"valid\",[],\"NV8\"],[[5943,5951],\"disallowed\"],[[5952,5971],\"valid\"],[[5972,5983],\"disallowed\"],[[5984,5996],\"valid\"],[[5997,5997],\"disallowed\"],[[5998,6000],\"valid\"],[[6001,6001],\"disallowed\"],[[6002,6003],\"valid\"],[[6004,6015],\"disallowed\"],[[6016,6067],\"valid\"],[[6068,6069],\"disallowed\"],[[6070,6099],\"valid\"],[[6100,6102],\"valid\",[],\"NV8\"],[[6103,6103],\"valid\"],[[6104,6107],\"valid\",[],\"NV8\"],[[6108,6108],\"valid\"],[[6109,6109],\"valid\"],[[6110,6111],\"disallowed\"],[[6112,6121],\"valid\"],[[6122,6127],\"disallowed\"],[[6128,6137],\"valid\",[],\"NV8\"],[[6138,6143],\"disallowed\"],[[6144,6149],\"valid\",[],\"NV8\"],[[6150,6150],\"disallowed\"],[[6151,6154],\"valid\",[],\"NV8\"],[[6155,6157],\"ignored\"],[[6158,6158],\"disallowed\"],[[6159,6159],\"disallowed\"],[[6160,6169],\"valid\"],[[6170,6175],\"disallowed\"],[[6176,6263],\"valid\"],[[6264,6271],\"disallowed\"],[[6272,6313],\"valid\"],[[6314,6314],\"valid\"],[[6315,6319],\"disallowed\"],[[6320,6389],\"valid\"],[[6390,6399],\"disallowed\"],[[6400,6428],\"valid\"],[[6429,6430],\"valid\"],[[6431,6431],\"disallowed\"],[[6432,6443],\"valid\"],[[6444,6447],\"disallowed\"],[[6448,6459],\"valid\"],[[6460,6463],\"disallowed\"],[[6464,6464],\"valid\",[],\"NV8\"],[[6465,6467],\"disallowed\"],[[6468,6469],\"valid\",[],\"NV8\"],[[6470,6509],\"valid\"],[[6510,6511],\"disallowed\"],[[6512,6516],\"valid\"],[[6517,6527],\"disallowed\"],[[6528,6569],\"valid\"],[[6570,6571],\"valid\"],[[6572,6575],\"disallowed\"],[[6576,6601],\"valid\"],[[6602,6607],\"disallowed\"],[[6608,6617],\"valid\"],[[6618,6618],\"valid\",[],\"XV8\"],[[6619,6621],\"disallowed\"],[[6622,6623],\"valid\",[],\"NV8\"],[[6624,6655],\"valid\",[],\"NV8\"],[[6656,6683],\"valid\"],[[6684,6685],\"disallowed\"],[[6686,6687],\"valid\",[],\"NV8\"],[[6688,6750],\"valid\"],[[6751,6751],\"disallowed\"],[[6752,6780],\"valid\"],[[6781,6782],\"disallowed\"],[[6783,6793],\"valid\"],[[6794,6799],\"disallowed\"],[[6800,6809],\"valid\"],[[6810,6815],\"disallowed\"],[[6816,6822],\"valid\",[],\"NV8\"],[[6823,6823],\"valid\"],[[6824,6829],\"valid\",[],\"NV8\"],[[6830,6831],\"disallowed\"],[[6832,6845],\"valid\"],[[6846,6846],\"valid\",[],\"NV8\"],[[6847,6911],\"disallowed\"],[[6912,6987],\"valid\"],[[6988,6991],\"disallowed\"],[[6992,7001],\"valid\"],[[7002,7018],\"valid\",[],\"NV8\"],[[7019,7027],\"valid\"],[[7028,7036],\"valid\",[],\"NV8\"],[[7037,7039],\"disallowed\"],[[7040,7082],\"valid\"],[[7083,7085],\"valid\"],[[7086,7097],\"valid\"],[[7098,7103],\"valid\"],[[7104,7155],\"valid\"],[[7156,7163],\"disallowed\"],[[7164,7167],\"valid\",[],\"NV8\"],[[7168,7223],\"valid\"],[[7224,7226],\"disallowed\"],[[7227,7231],\"valid\",[],\"NV8\"],[[7232,7241],\"valid\"],[[7242,7244],\"disallowed\"],[[7245,7293],\"valid\"],[[7294,7295],\"valid\",[],\"NV8\"],[[7296,7359],\"disallowed\"],[[7360,7367],\"valid\",[],\"NV8\"],[[7368,7375],\"disallowed\"],[[7376,7378],\"valid\"],[[7379,7379],\"valid\",[],\"NV8\"],[[7380,7410],\"valid\"],[[7411,7414],\"valid\"],[[7415,7415],\"disallowed\"],[[7416,7417],\"valid\"],[[7418,7423],\"disallowed\"],[[7424,7467],\"valid\"],[[7468,7468],\"mapped\",[97]],[[7469,7469],\"mapped\",[230]],[[7470,7470],\"mapped\",[98]],[[7471,7471],\"valid\"],[[7472,7472],\"mapped\",[100]],[[7473,7473],\"mapped\",[101]],[[7474,7474],\"mapped\",[477]],[[7475,7475],\"mapped\",[103]],[[7476,7476],\"mapped\",[104]],[[7477,7477],\"mapped\",[105]],[[7478,7478],\"mapped\",[106]],[[7479,7479],\"mapped\",[107]],[[7480,7480],\"mapped\",[108]],[[7481,7481],\"mapped\",[109]],[[7482,7482],\"mapped\",[110]],[[7483,7483],\"valid\"],[[7484,7484],\"mapped\",[111]],[[7485,7485],\"mapped\",[547]],[[7486,7486],\"mapped\",[112]],[[7487,7487],\"mapped\",[114]],[[7488,7488],\"mapped\",[116]],[[7489,7489],\"mapped\",[117]],[[7490,7490],\"mapped\",[119]],[[7491,7491],\"mapped\",[97]],[[7492,7492],\"mapped\",[592]],[[7493,7493],\"mapped\",[593]],[[7494,7494],\"mapped\",[7426]],[[7495,7495],\"mapped\",[98]],[[7496,7496],\"mapped\",[100]],[[7497,7497],\"mapped\",[101]],[[7498,7498],\"mapped\",[601]],[[7499,7499],\"mapped\",[603]],[[7500,7500],\"mapped\",[604]],[[7501,7501],\"mapped\",[103]],[[7502,7502],\"valid\"],[[7503,7503],\"mapped\",[107]],[[7504,7504],\"mapped\",[109]],[[7505,7505],\"mapped\",[331]],[[7506,7506],\"mapped\",[111]],[[7507,7507],\"mapped\",[596]],[[7508,7508],\"mapped\",[7446]],[[7509,7
47807509],\"mapped\",[7447]],[[7510,7510],\"mapped\",[112]],[[7511,7511],\"mapped\",[116]],[[7512,7512],\"mapped\",[117]],[[7513,7513],\"mapped\",[7453]],[[7514,7514],\"mapped\",[623]],[[7515,7515],\"mapped\",[118]],[[7516,7516],\"mapped\",[7461]],[[7517,7517],\"mapped\",[946]],[[7518,7518],\"mapped\",[947]],[[7519,7519],\"mapped\",[948]],[[7520,7520],\"mapped\",[966]],[[7521,7521],\"mapped\",[967]],[[7522,7522],\"mapped\",[105]],[[7523,7523],\"mapped\",[114]],[[7524,7524],\"mapped\",[117]],[[7525,7525],\"mapped\",[118]],[[7526,7526],\"mapped\",[946]],[[7527,7527],\"mapped\",[947]],[[7528,7528],\"mapped\",[961]],[[7529,7529],\"mapped\",[966]],[[7530,7530],\"mapped\",[967]],[[7531,7531],\"valid\"],[[7532,7543],\"valid\"],[[7544,7544],\"mapped\",[1085]],[[7545,7578],\"valid\"],[[7579,7579],\"mapped\",[594]],[[7580,7580],\"mapped\",[99]],[[7581,7581],\"mapped\",[597]],[[7582,7582],\"mapped\",[240]],[[7583,7583],\"mapped\",[604]],[[7584,7584],\"mapped\",[102]],[[7585,7585],\"mapped\",[607]],[[7586,7586],\"mapped\",[609]],[[7587,7587],\"mapped\",[613]],[[7588,7588],\"mapped\",[616]],[[7589,7589],\"mapped\",[617]],[[7590,7590],\"mapped\",[618]],[[7591,7591],\"mapped\",[7547]],[[7592,7592],\"mapped\",[669]],[[7593,7593],\"mapped\",[621]],[[7594,7594],\"mapped\",[7557]],[[7595,7595],\"mapped\",[671]],[[7596,7596],\"mapped\",[625]],[[7597,7597],\"mapped\",[624]],[[7598,7598],\"mapped\",[626]],[[7599,7599],\"mapped\",[627]],[[7600,7600],\"mapped\",[628]],[[7601,7601],\"mapped\",[629]],[[7602,7602],\"mapped\",[632]],[[7603,7603],\"mapped\",[642]],[[7604,7604],\"mapped\",[643]],[[7605,7605],\"mapped\",[427]],[[7606,7606],\"mapped\",[649]],[[7607,7607],\"mapped\",[650]],[[7608,7608],\"mapped\",[7452]],[[7609,7609],\"mapped\",[651]],[[7610,7610],\"mapped\",[652]],[[7611,7611],\"mapped\",[122]],[[7612,7612],\"mapped\",[656]],[[7613,7613],\"mapped\",[657]],[[7614,7614],\"mapped\",[658]],[[7615,7615],\"mapped\",[952]],[[7616,7619],\"valid\"],[[7620,7626],\"valid\"],[[7627,7654],\"valid\"],[[7655,7669],\"valid\"],[[7670,7675],\"disallowed\"],[[7676,7676],\"valid\"],[[7677,7677],\"valid\"],[[7678,7679],\"valid\"],[[7680,7680],\"mapped\",[7681]],[[7681,7681],\"valid\"],[[7682,7682],\"mapped\",[7683]],[[7683,7683],\"valid\"],[[7684,7684],\"mapped\",[7685]],[[7685,7685],\"valid\"],[[7686,7686],\"mapped\",[7687]],[[7687,7687],\"valid\"],[[7688,7688],\"mapped\",[7689]],[[7689,7689],\"valid\"],[[7690,7690],\"mapped\",[7691]],[[7691,7691],\"valid\"],[[7692,7692],\"mapped\",[7693]],[[7693,7693],\"valid\"],[[7694,7694],\"mapped\",[7695]],[[7695,7695],\"valid\"],[[7696,7696],\"mapped\",[7697]],[[7697,7697],\"valid\"],[[7698,7698],\"mapped\",[7699]],[[7699,7699],\"valid\"],[[7700,7700],\"mapped\",[7701]],[[7701,7701],\"valid\"],[[7702,7702],\"mapped\",[7703]],[[7703,7703],\"valid\"],[[7704,7704],\"mapped\",[7705]],[[7705,7705],\"valid\"],[[7706,7706],\"mapped\",[7707]],[[7707,7707],\"valid\"],[[7708,7708],\"mapped\",[7709]],[[7709,7709],\"valid\"],[[7710,7710],\"mapped\",[7711]],[[7711,7711],\"valid\"],[[7712,7712],\"mapped\",[7713]],[[7713,7713],\"valid\"],[[7714,7714],\"mapped\",[7715]],[[7715,7715],\"valid\"],[[7716,7716],\"mapped\",[7717]],[[7717,7717],\"valid\"],[[7718,7718],\"mapped\",[7719]],[[7719,7719],\"valid\"],[[7720,7720],\"mapped\",[7721]],[[7721,7721],\"valid\"],[[7722,7722],\"mapped\",[7723]],[[7723,7723],\"valid\"],[[7724,7724],\"mapped\",[7725]],[[7725,7725],\"valid\"],[[7726,7726],\"mapped\",[7727]],[[7727,7727],\"valid\"],[[7728,7728],\"mapped\",[7729]],[[7729,7729],\"valid\"],[[7730,7730],\"mapped\",[7731]],[[7731,7
47807731],\"valid\"],[[7732,7732],\"mapped\",[7733]],[[7733,7733],\"valid\"],[[7734,7734],\"mapped\",[7735]],[[7735,7735],\"valid\"],[[7736,7736],\"mapped\",[7737]],[[7737,7737],\"valid\"],[[7738,7738],\"mapped\",[7739]],[[7739,7739],\"valid\"],[[7740,7740],\"mapped\",[7741]],[[7741,7741],\"valid\"],[[7742,7742],\"mapped\",[7743]],[[7743,7743],\"valid\"],[[7744,7744],\"mapped\",[7745]],[[7745,7745],\"valid\"],[[7746,7746],\"mapped\",[7747]],[[7747,7747],\"valid\"],[[7748,7748],\"mapped\",[7749]],[[7749,7749],\"valid\"],[[7750,7750],\"mapped\",[7751]],[[7751,7751],\"valid\"],[[7752,7752],\"mapped\",[7753]],[[7753,7753],\"valid\"],[[7754,7754],\"mapped\",[7755]],[[7755,7755],\"valid\"],[[7756,7756],\"mapped\",[7757]],[[7757,7757],\"valid\"],[[7758,7758],\"mapped\",[7759]],[[7759,7759],\"valid\"],[[7760,7760],\"mapped\",[7761]],[[7761,7761],\"valid\"],[[7762,7762],\"mapped\",[7763]],[[7763,7763],\"valid\"],[[7764,7764],\"mapped\",[7765]],[[7765,7765],\"valid\"],[[7766,7766],\"mapped\",[7767]],[[7767,7767],\"valid\"],[[7768,7768],\"mapped\",[7769]],[[7769,7769],\"valid\"],[[7770,7770],\"mapped\",[7771]],[[7771,7771],\"valid\"],[[7772,7772],\"mapped\",[7773]],[[7773,7773],\"valid\"],[[7774,7774],\"mapped\",[7775]],[[7775,7775],\"valid\"],[[7776,7776],\"mapped\",[7777]],[[7777,7777],\"valid\"],[[7778,7778],\"mapped\",[7779]],[[7779,7779],\"valid\"],[[7780,7780],\"mapped\",[7781]],[[7781,7781],\"valid\"],[[7782,7782],\"mapped\",[7783]],[[7783,7783],\"valid\"],[[7784,7784],\"mapped\",[7785]],[[7785,7785],\"valid\"],[[7786,7786],\"mapped\",[7787]],[[7787,7787],\"valid\"],[[7788,7788],\"mapped\",[7789]],[[7789,7789],\"valid\"],[[7790,7790],\"mapped\",[7791]],[[7791,7791],\"valid\"],[[7792,7792],\"mapped\",[7793]],[[7793,7793],\"valid\"],[[7794,7794],\"mapped\",[7795]],[[7795,7795],\"valid\"],[[7796,7796],\"mapped\",[7797]],[[7797,7797],\"valid\"],[[7798,7798],\"mapped\",[7799]],[[7799,7799],\"valid\"],[[7800,7800],\"mapped\",[7801]],[[7801,7801],\"valid\"],[[7802,7802],\"mapped\",[7803]],[[7803,7803],\"valid\"],[[7804,7804],\"mapped\",[7805]],[[7805,7805],\"valid\"],[[7806,7806],\"mapped\",[7807]],[[7807,7807],\"valid\"],[[7808,7808],\"mapped\",[7809]],[[7809,7809],\"valid\"],[[7810,7810],\"mapped\",[7811]],[[7811,7811],\"valid\"],[[7812,7812],\"mapped\",[7813]],[[7813,7813],\"valid\"],[[7814,7814],\"mapped\",[7815]],[[7815,7815],\"valid\"],[[7816,7816],\"mapped\",[7817]],[[7817,7817],\"valid\"],[[7818,7818],\"mapped\",[7819]],[[7819,7819],\"valid\"],[[7820,7820],\"mapped\",[7821]],[[7821,7821],\"valid\"],[[7822,7822],\"mapped\",[7823]],[[7823,7823],\"valid\"],[[7824,7824],\"mapped\",[7825]],[[7825,7825],\"valid\"],[[7826,7826],\"mapped\",[7827]],[[7827,7827],\"valid\"],[[7828,7828],\"mapped\",[7829]],[[7829,7833],\"valid\"],[[7834,7834],\"mapped\",[97,702]],[[7835,7835],\"mapped\",[7777]],[[7836,7837],\"valid\"],[[7838,7838],\"mapped\",[115,115]],[[7839,7839],\"valid\"],[[7840,7840],\"mapped\",[7841]],[[7841,7841],\"valid\"],[[7842,7842],\"mapped\",[7843]],[[7843,7843],\"valid\"],[[7844,7844],\"mapped\",[7845]],[[7845,7845],\"valid\"],[[7846,7846],\"mapped\",[7847]],[[7847,7847],\"valid\"],[[7848,7848],\"mapped\",[7849]],[[7849,7849],\"valid\"],[[7850,7850],\"mapped\",[7851]],[[7851,7851],\"valid\"],[[7852,7852],\"mapped\",[7853]],[[7853,7853],\"valid\"],[[7854,7854],\"mapped\",[7855]],[[7855,7855],\"valid\"],[[7856,7856],\"mapped\",[7857]],[[7857,7857],\"valid\"],[[7858,7858],\"mapped\",[7859]],[[7859,7859],\"valid\"],[[7860,7860],\"mapped\",[7861]],[[7861,7861],\"valid\"],[[7862,7862],\"mapped\",[7863]],[[7863,7863],\"valid\"],[[7864,7864],\"mapped\",[7865]],[[7865,7865],\"valid\"],[[7866,7866],\"mapped\",[7867]],[[7867,7867],\"valid\"],[[7868,7868],\"mapped\",[7869]],[[7869,7869],\"valid\"],[[7870,7870],\"mapped\",[7871]],[[7871,7871],\"valid\"],[[7872,7872],\"mapped\",[7873]],[[7873,7873],\"valid\"],[[7874,7874],\"mapped\",[7875]],[[7875,7875],\"valid\"],[[7876,7876],\"mapped\",[7877]],[[7877,7877],\"valid\"],[[7878,7878],\"mapped\",[7879]],[[7879,7879],\"valid\"],[[7880,7880],\"mapped\",[7881]],[[7881,7881],\"valid\"],[[7882,7882],\"mapped\",[7883]],[[7883,7883],\"valid\"],[[7884,7884],\"mapped\",[7885]],[[7885,7885],\"valid\"],[[7886,7886],\"mapped\",[7887]],[[7887,7887],\"valid\"],[[7888,7888],\"mapped\",[7889]],[[7889,7889],\"valid\"],[[7890,7890],\"mapped\",[7891]],[[7891,7891],\"valid\"],[[7892,7892],\"mapped\",[7893]],[[7893,7893],\"valid\"],[[7894,7894],\"mapped\",[7895]],[[7895,7895],\"valid\"],[[7896,7896],\"mapped\",[7897]],[[7897,7897],\"valid\"],[[7898,7898],\"mapped\",[7899]],[[7899,7899],\"valid\"],[[7900,7900],\"mapped\",[7901
47807]],[[7901,7901],\"valid\"],[[7902,7902],\"mapped\",[7903]],[[7903,7903],\"valid\"],[[7904,7904],\"mapped\",[7905]],[[7905,7905],\"valid\"],[[7906,7906],\"mapped\",[7907]],[[7907,7907],\"valid\"],[[7908,7908],\"mapped\",[7909]],[[7909,7909],\"valid\"],[[7910,7910],\"mapped\",[7911]],[[7911,7911],\"valid\"],[[7912,7912],\"mapped\",[7913]],[[7913,7913],\"valid\"],[[7914,7914],\"mapped\",[7915]],[[7915,7915],\"valid\"],[[7916,7916],\"mapped\",[7917]],[[7917,7917],\"valid\"],[[7918,7918],\"mapped\",[7919]],[[7919,7919],\"valid\"],[[7920,7920],\"mapped\",[7921]],[[7921,7921],\"valid\"],[[7922,7922],\"mapped\",[7923]],[[7923,7923],\"valid\"],[[7924,7924],\"mapped\",[7925]],[[7925,7925],\"valid\"],[[7926,7926],\"mapped\",[7927]],[[7927,7927],\"valid\"],[[7928,7928],\"mapped\",[7929]],[[7929,7929],\"valid\"],[[7930,7930],\"mapped\",[7931]],[[7931,7931],\"valid\"],[[7932,7932],\"mapped\",[7933]],[[7933,7933],\"valid\"],[[7934,7934],\"mapped\",[7935]],[[7935,7935],\"valid\"],[[7936,7943],\"valid\"],[[7944,7944],\"mapped\",[7936]],[[7945,7945],\"mapped\",[7937]],[[7946,7946],\"mapped\",[7938]],[[7947,7947],\"mapped\",[7939]],[[7948,7948],\"mapped\",[7940]],[[7949,7949],\"mapped\",[7941]],[[7950,7950],\"mapped\",[7942]],[[7951,7951],\"mapped\",[7943]],[[7952,7957],\"valid\"],[[7958,7959],\"disallowed\"],[[7960,7960],\"mapped\",[7952]],[[7961,7961],\"mapped\",[7953]],[[7962,7962],\"mapped\",[7954]],[[7963,7963],\"mapped\",[7955]],[[7964,7964],\"mapped\",[7956]],[[7965,7965],\"mapped\",[7957]],[[7966,7967],\"disallowed\"],[[7968,7975],\"valid\"],[[7976,7976],\"mapped\",[7968]],[[7977,7977],\"mapped\",[7969]],[[7978,7978],\"mapped\",[7970]],[[7979,7979],\"mapped\",[7971]],[[7980,7980],\"mapped\",[7972]],[[7981,7981],\"mapped\",[7973]],[[7982,7982],\"mapped\",[7974]],[[7983,7983],\"mapped\",[7975]],[[7984,7991],\"valid\"],[[7992,7992],\"mapped\",[7984]],[[7993,7993],\"mapped\",[7985]],[[7994,7994],\"mapped\",[7986]],[[7995,7995],\"mapped\",[7987]],[[7996,7996],\"mapped\",[7988]],[[7997,7997],\"mapped\",[7989]],[[7998,7998],\"mapped\",[7990]],[[7999,7999],\"mapped\",[7991]],[[8000,8005],\"valid\"],[[8006,8007],\"disallowed\"],[[8008,8008],\"mapped\",[8000]],[[8009,8009],\"mapped\",[8001]],[[8010,8010],\"mapped\",[8002]],[[8011,8011],\"mapped\",[8003]],[[8012,8012],\"mapped\",[8004]],[[8013,8013],\"mapped\",[8005]],[[8014,8015],\"disallowed\"],[[8016,8023],\"valid\"],[[8024,8024],\"disallowed\"],[[8025,8025],\"mapped\",[8017]],[[8026,8026],\"disallowed\"],[[8027,8027],\"mapped\",[8019]],[[8028,8028],\"disallowed\"],[[8029,8029],\"mapped\",[8021]],[[8030,8030],\"disallowed\"],[[8031,8031],\"mapped\",[8023]],[[8032,8039],\"valid\"],[[8040,8040],\"mapped\",[8032]],[[8041,8041],\"mapped\",[8033]],[[8042,8042],\"mapped\",[8034]],[[8043,8043],\"mapped\",[8035]],[[8044,8044],\"mapped\",[8036]],[[8045,8045],\"mapped\",[8037]],[[8046,8046],\"mapped\",[8038]],[[8047,8047],\"mapped\",[8039]],[[8048,8048],\"valid\"],[[8049,8049],\"mapped\",[940]],[[8050,8050],\"valid\"],[[8051,8051],\"mapped\",[941]],[[8052,8052],\"valid\"],[[8053,8053],\"mapped\",[942]],[[8054,8054],\"valid\"],[[8055,8055],\"mapped\",[943]],[[8056,8056],\"valid\"],[[8057,8057],\"mapped\",[972]],[[8058,8058],\"valid\"],[[8059,8059],\"mapped\",[973]],[[8060,8060],\"valid\"],[[8061,8061],\"mapped\",[974]],[[8062,8063],\"disallowed\"],[[8064,8064],\"mapped\",[7936,953]],[[8065,8065],\"mapped\",[7937,953]],[[8066,8066],\"mapped\",[7938,953]],[[8067,8067],\"mapped\",[7939,953]],[[8068,8068],\"mapped\",[7940,953]],[[8069,8069],\"mapped\",[7941,953]],[[8070,8070],\"mapped\",[7942,953]],[[8071,8071],\"mapped\",[7943,953]],[[8072,8072],\"mapped\",[7936,953]],[[8073,8073],\"mapped\",[7937,953]],[[8074,8074],\"mapped\",[7938,953]],[[8075,8075],\"mapped\",[7939,953]],[[8076,8076],\"mapped\",[7940,953]],[[8077,8077],\"mapped\",[7941,953]],[[8078,8078],\"mapped\",[7942,953]],[[8079,8079],\"mapped\",[7943,953]],[[8080,8080],\"mapped\",[7968,953]],[[8081,8081],\"mapped\",[7969,953]],[[8082,8082],\"mapped\",[7970,953]],[[8083,8083],\"mapped\",[7971,953]],[[8084,8084],\"mapped\",[7972,953]],[[8085,8085],\"mapped\",[7973,953]],[[8086,8086],\"mapped\",[7974,953]],[[8087,8087],\"mapped\",[7975,953]],[[8088,8088],\"mapped\",[7968,953]],[[8089,8
47807089],\"mapped\",[7969,953]],[[8090,8090],\"mapped\",[7970,953]],[[8091,8091],\"mapped\",[7971,953]],[[8092,8092],\"mapped\",[7972,953]],[[8093,8093],\"mapped\",[7973,953]],[[8094,8094],\"mapped\",[7974,953]],[[8095,8095],\"mapped\",[7975,953]],[[8096,8096],\"mapped\",[8032,953]],[[8097,8097],\"mapped\",[8033,953]],[[8098,8098],\"mapped\",[8034,953]],[[8099,8099],\"mapped\",[8035,953]],[[8100,8100],\"mapped\",[8036,953]],[[8101,8101],\"mapped\",[8037,953]],[[8102,8102],\"mapped\",[8038,953]],[[8103,8103],\"mapped\",[8039,953]],[[8104,8104],\"mapped\",[8032,953]],[[8105,8105],\"mapped\",[8033,953]],[[8106,8106],\"mapped\",[8034,953]],[[8107,8107],\"mapped\",[8035,953]],[[8108,8108],\"mapped\",[8036,953]],[[8109,8109],\"mapped\",[8037,953]],[[8110,8110],\"mapped\",[8038,953]],[[8111,8111],\"mapped\",[8039,953]],[[8112,8113],\"valid\"],[[8114,8114],\"mapped\",[8048,953]],[[8115,8115],\"mapped\",[945,953]],[[8116,8116],\"mapped\",[940,953]],[[8117,8117],\"disallowed\"],[[8118,8118],\"valid\"],[[8119,8119],\"mapped\",[8118,953]],[[8120,8120],\"mapped\",[8112]],[[8121,8121],\"mapped\",[8113]],[[8122,8122],\"mapped\",[8048]],[[8123,8123],\"mapped\",[940]],[[8124,8124],\"mapped\",[945,953]],[[8125,8125],\"disallowed_STD3_mapped\",[32,787]],[[8126,8126],\"mapped\",[953]],[[8127,8127],\"disallowed_STD3_mapped\",[32,787]],[[8128,8128],\"disallowed_STD3_mapped\",[32,834]],[[8129,8129],\"disallowed_STD3_mapped\",[32,776,834]],[[8130,8130],\"mapped\",[8052,953]],[[8131,8131],\"mapped\",[951,953]],[[8132,8132],\"mapped\",[942,953]],[[8133,8133],\"disallowed\"],[[8134,8134],\"valid\"],[[8135,8135],\"mapped\",[8134,953]],[[8136,8136],\"mapped\",[8050]],[[8137,8137],\"mapped\",[941]],[[8138,8138],\"mapped\",[8052]],[[8139,8139],\"mapped\",[942]],[[8140,8140],\"mapped\",[951,953]],[[8141,8141],\"disallowed_STD3_mapped\",[32,787,768]],[[8142,8142],\"disallowed_STD3_mapped\",[32,787,769]],[[8143,8143],\"disallowed_STD3_mapped\",[32,787,834]],[[8144,8146],\"valid\"],[[8147,8147],\"mapped\",[912]],[[8148,8149],\"disallowed\"],[[8150,8151],\"valid\"],[[8152,8152],\"mapped\",[8144]],[[8153,8153],\"mapped\",[8145]],[[8154,8154],\"mapped\",[8054]],[[8155,8155],\"mapped\",[943]],[[8156,8156],\"disallowed\"],[[8157,8157],\"disallowed_STD3_mapped\",[32,788,768]],[[8158,8158],\"disallowed_STD3_mapped\",[32,788,769]],[[8159,8159],\"disallowed_STD3_mapped\",[32,788,834]],[[8160,8162],\"valid\"],[[8163,8163],\"mapped\",[944]],[[8164,8167],\"valid\"],[[8168,8168],\"mapped\",[8160]],[[8169,8169],\"mapped\",[8161]],[[8170,8170],\"mapped\",[8058]],[[8171,8171],\"mapped\",[973]],[[8172,8172],\"mapped\",[8165]],[[8173,8173],\"disallowed_STD3_mapped\",[32,776,768]],[[8174,8174],\"disallowed_STD3_mapped\",[32,776,769]],[[8175,8175],\"disallowed_STD3_mapped\",[96]],[[8176,8177],\"disallowed\"],[[8178,8178],\"mapped\",[8060,953]],[[8179,8179],\"mapped\",[969,953]],[[8180,8180],\"mapped\",[974,953]],[[8181,8181],\"disallowed\"],[[8182,8182],\"valid\"],[[8183,8183],\"mapped\",[8182,953]],[[8184,8184],\"mapped\",[8056]],[[8185,8185],\"mapped\",[972]],[[8186,8186],\"mapped\",[8060]],[[8187,8187],\"mapped\",[974]],[[8188,8188],\"mapped\",[969,953]],[[8189,8189],\"disallowed_STD3_mapped\",[32,769]],[[8190,8190],\"disallowed_STD3_mapped\",[32,788]],[[8191,8191],\"disallowed\"],[[8192,8202],\"disallowed_STD3_mapped\",[32]],[[8203,8203],\"ignored\"],[[8204,8205],\"deviation\",[]],[[8206,8207],\"disallowed\"],[[8208,8208],\"valid\",[],\"NV8\"],[[8209,8209],\"mapped\",[8208]],[[8210,8214],\"valid\",[],\"NV8\"],[[8215,8215],\"disallowed_STD3_mapped\",[32,819]],[[8216,8227],\"valid\",[],\"NV8\"],[[8228,8230],\"disallowed\"],[[8231,8231],\"valid\",[],\"NV8\"],[[8232,8238],\"disallowed\"],[[8239,8239],\"disallowed_STD3_mapped\",[32]],[[8240,8242],\"valid\",[],\"NV8\"],[[8243,8243],\"mapped\",[8242,8242]],[[8244,8244],\"mapped\",[8242,8242,8242]],[[8245,8245],\"valid\",[],\"NV8\"],[[8246,8246],\"mapped\",[8245,8245]],[[8247,8247],\"mapped\",[8245,8245,8245]],[[8248,8251],\"valid\",[],\"NV8\"],[[8252,8252],\"disallowed_STD3_mapped\",[33,33]],[[8253,8253],\"valid\",[],\"NV8\"],[[8254,8254],\"disallowed_STD3_mapped\",[32,773]],[[8255,8262],\"valid\",[],\"NV8\"],[[8263,8263],\"disallowed_STD3_mapped\",[63,63]],[[8264,8264],\"disallowed_STD3_mapped\",[63,33]],[[8265,8265],\"disallowed_STD3_mapped\",[33,63]],[[8266,8269],\"valid\",[],\"NV8\"],[[8270,8274],\"valid\",[],\"NV8\"],[[8275,8276],\"valid\",[],\"NV8\"],[[8277,8278],\"valid\",[],\"NV8\"],[[8279,8279],\"mapped\",[8242,8242,8242,8242]],[[8280,8286],\"valid\",[],\"NV8\"],[[8287,8287],\"disallowed_STD3_mapped\",[32]],[[8288,8288],\"ignored\"],[[8289,8291],\"disallowed\"],[[8292,8292],\"ignored\"],[[8293,8293],\"disallowed\"],[[8294,8297],\"disallowed\"],[[8298,8303],\"disallowed\"],[[8304,8304],\"mapped\",[48]],[[8305,8305],\"mapped\",[105]],[[8306,8307],\"disallowed\"],[[8308,8308],\"mapped\",[52]],[[8309,8309],\"mapped\",[53]],[[8310,8310],\"mapped\",[54]],[[8311,8311],\"mapped\",[55]],[[8312,8312],\"mapped\",[56]],[[8313,8313],\"mapped\",[57]],[[8314,8314],\"disallowed_STD3_mapped\",[43]],[[8315,8315],\"mapped\",[8722]],[[8316,8316],\"disallowed_STD3_mapped\",[61]],[[8317,8317],\"disallowed_STD3_mapped\",[40]],[[8318,8318],\"disallowed_STD3_mapped\",[41]],[[8319,8319],\"mapped\",[110]],[[8320,8320],\"mapped\",[48]],[[8321,8321],\"mapped\",[49]],[[8322,8322],\"mapped\",[50]],[[8323,8323],\"mapped\",[51]],[[8324,8324],\"mapped\",[52]],[[8325,8325],\"mapped\",[53]],[[8326,8326],\"mapped\",[54]],[[8327,8327],\"mapped\",[55]],[[8328,8328],\"mapped\",[56]],[[8329,8329],\"mapped\",[57]],[[8330,8330],\"disallowed_STD3_mapped\",[43]],[[8331,8331],\"mapped\",[8722]],[[8332,8332],\"disallowed_STD3_mapped\",[61]],[[8333,8333],\"disallowed_STD3_mapped\",[40]],[[8334,8334],\"disallowed_STD3_mapped\",[41]],[[8335,8335],\"disallowed\"],[[8336,8336],\"mapped\",[97]],[[8337,8337],\"mapped\",[101]],[[8338,8338],\"mapped\",[111]],[[8339,8339],\"mapped\",[120]],[[8340,8340],\"mapped\",[601]],[[8341,8341],\"mapped\",[104]],[[8342,8342],\"mapped\",[107]],[[8343,8343],\"mapped\",[108]],[[8344,8344],\"mapped\",[109]],[[8345,8345],\"mapped\",[110]],[[8346,8346],\"mapped\",[112]],[[8347,8347],\"mapped\",[115]],[[8348,8348],\"mapped\",[116]],[[8349,8351],\"disallowed\"],[[8352,8359],\"valid\",[],\"NV8\"],[[8360,8360],\"mapped\",[114,115]],[[8361,8362],\"valid\",[],\"NV8\"],[[8363,8363],\"valid\",[],\"NV8\"],[[8364,8364],\"valid\",[],\"NV8\"],[[8365,8367],\"valid\",[],\"NV8\"],[[8368,8369],\"valid\",[],\"NV8\"],[[8370,8373],\"valid\",[],\"NV8\"],[[8374,8376],\"valid\",[],\"NV8\"],[[8377,8377],\"valid\",[],\"NV8\"],[[8378,8378],\"valid\",[],\"NV8\"],[[8379,8381],\"valid\",[],\"NV8\"],[[8382,8382],\"valid\",[],\"NV8\"],[[8383,8399],\"disallowed\"],[[8400,8417],\"valid\",[],\"NV8\"],[[8418,8419],\"valid\",[],\"NV8\"],[[8420,8426],\"valid\",[],\"NV8\"],[[8427,8427],\"valid\",[],\"NV8\"],[[8428,8431],\"valid\",[],\"NV8\"],[[8432,8432],\"valid\",[],\"NV8\"],[[8433,8447],\"disallowed\"],[[8448,8448],\"disallowed_STD3_mapped\",[97,47,99]],[[8449,8449],\"disallowed_STD3_mapped\",[97,47,115]],[[8450,8450],\"mapped\",[99]
47807],[[8451,8451],\"mapped\",[176,99]],[[8452,8452],\"valid\",[],\"NV8\"],[[8453,8453],\"disallowed_STD3_mapped\",[99,47,111]],[[8454,8454],\"disallowed_STD3_mapped\",[99,47,117]],[[8455,8455],\"mapped\",[603]],[[8456,8456],\"valid\",[],\"NV8\"],[[8457,8457],\"mapped\",[176,102]],[[8458,8458],\"mapped\",[103]],[[8459,8462],\"mapped\",[104]],[[8463,8463],\"mapped\",[295]],[[8464,8465],\"mapped\",[105]],[[8466,8467],\"mapped\",[108]],[[8468,8468],\"valid\",[],\"NV8\"],[[8469,8469],\"mapped\",[110]],[[8470,8470],\"mapped\",[110,111]],[[8471,8472],\"valid\",[],\"NV8\"],[[8473,8473],\"mapped\",[112]],[[8474,8474],\"mapped\",[113]],[[8475,8477],\"mapped\",[114]],[[8478,8479],\"valid\",[],\"NV8\"],[[8480,8480],\"mapped\",[115,109]],[[8481,8481],\"mapped\",[116,101,108]],[[8482,8482],\"mapped\",[116,109]],[[8483,8483],\"valid\",[],\"NV8\"],[[8484,8484],\"mapped\",[122]],[[8485,8485],\"valid\",[],\"NV8\"],[[8486,8486],\"mapped\",[969]],[[8487,8487],\"valid\",[],\"NV8\"],[[8488,8488],\"mapped\",[122]],[[8489,8489],\"valid\",[],\"NV8\"],[[8490,8490],\"mapped\",[107]],[[8491,8491],\"mapped\",[229]],[[8492,8492],\"mapped\",[98]],[[8493,8493],\"mapped\",[99]],[[8494,8494],\"valid\",[],\"NV8\"],[[8495,8496],\"mapped\",[101]],[[8497,8497],\"mapped\",[102]],[[8498,8498],\"disallowed\"],[[8499,8499],\"mapped\",[109]],[[8500,8500],\"mapped\",[111]],[[8501,8501],\"mapped\",[1488]],[[8502,8502],\"mapped\",[1489]],[[8503,8503],\"mapped\",[1490]],[[8504,8504],\"mapped\",[1491]],[[8505,8505],\"mapped\",[105]],[[8506,8506],\"valid\",[],\"NV8\"],[[8507,8507],\"mapped\",[102,97,120]],[[8508,8508],\"mapped\",[960]],[[8509,8510],\"mapped\",[947]],[[8511,8511],\"mapped\",[960]],[[8512,8512],\"mapped\",[8721]],[[8513,8516],\"valid\",[],\"NV8\"],[[8517,8518],\"mapped\",[100]],[[8519,8519],\"mapped\",[101]],[[8520,8520],\"mapped\",[105]],[[8521,8521],\"mapped\",[106]],[[8522,8523],\"valid\",[],\"NV8\"],[[8524,8524],\"valid\",[],\"NV8\"],[[8525,8525],\"valid\",[],\"NV8\"],[[8526,8526],\"valid\"],[[8527,8527],\"valid\",[],\"NV8\"],[[8528,8528],\"mapped\",[49,8260,55]],[[8529,8529],\"mapped\",[49,8260,57]],[[8530,8530],\"mapped\",[49,8260,49,48]],[[8531,8531],\"mapped\",[49,8260,51]],[[8532,8532],\"mapped\",[50,8260,51]],[[8533,8533],\"mapped\",[49,8260,53]],[[8534,8534],\"mapped\",[50,8260,53]],[[8535,8535],\"mapped\",[51,8260,53]],[[8536,8536],\"mapped\",[52,8260,53]],[[8537,8537],\"mapped\",[49,8260,54]],[[8538,8538],\"mapped\",[53,8260,54]],[[8539,8539],\"mapped\",[49,8260,56]],[[8540,8540],\"mapped\",[51,8260,56]],[[8541,8541],\"mapped\",[53,8260,56]],[[8542,8542],\"mapped\",[55,8260,56]],[[8543,8543],\"mapped\",[49,8260]],[[8544,8544],\"mapped\",[105]],[[8545,8545],\"mapped\",[105,105]],[[8546,8546],\"mapped\",[105,105,105]],[[8547,8547],\"mapped\",[105,118]],[[8548,8548],\"mapped\",[118]],[[8549,8549],\"mapped\",[118,105]],[[8550,8550],\"mapped\",[118,105,105]],[[8551,8551],\"mapped\",[118,105,105,105]],[[8552,8552],\"mapped\",[105,120]],[[8553,8553],\"mapped\",[120]],[[8554,8554],\"mapped\",[120,105]],[[8555,8555],\"mapped\",[120,105,105]],[[8556,8556],\"mapped\",[108]],[[8557,8557],\"mapped\",[99]],[[8558,8558],\"mapped\",[100]],[[8559,8559],\"mapped\",[109]],[[8560,8560],\"mapped\",[105]],[[8561,8561],\"mapped\",[105,105]],[[8562,8562],\"mapped\",[105,105,105]],[[8563,8563],\"mapped\",[105,118]],[[8564,8564],\"mapped\",[118]],[[8565,8565],\"mapped\",[118,105]],[[8566,8566],\"mapped\",[118,105,105]],[[8567,8567],\"mapped\",[118,105,105,105]],[[8568,8568],\"mapped\",[105,120]],[[8569,8569],\"mapped\",[120]],[[8570,8570],\"mapped\",[120,105]],[[8571,8571],\"mapped\",[120,105,105]],[[8572,8572],\"mapped\",[108]],[[8573,8573],\"mapped\",[99]],[[8574,8574],\"mapped\",[100]],[[8575,8575],\"mapped\",[109]],[[8576,8578],\"valid\",[],\"NV8\"],[[8579,8579],\"disallowed\"],[[8580,8580],\"valid\"],[[8581,8584],\"valid\",[],\"NV8\"],[[8585,8585],\"mapped\",[48,8260,51]],[[8586,8587],\"valid\",[],\"NV8\"],[[8588,8591],\"disallowed\"],[[8592,8682],\"valid\",[],\"NV8\"],[[8683,8691],\"valid\",[],\"NV8\"],[[8692,8703],\"valid\",[],\"NV8\"],[[8704,8747],\"valid\",[],\"NV8\"],[[8748,8748],\"mapped\",[8747,8747]],[[8749,8749],\"mapped\",[8747,8747,8747]],[[8750,8750],\"valid\",[],\"NV8\"],[[8751,8751],\"mapped\",[8750,8750]],[[8752,8752],\"mapped\",[8750,8750,8750]],[[8753,8799],\"valid\",[],\"NV8\"],[[8800,8800],\"disallowed_STD3_valid\"],[[8801,8813],\"valid\",[],\"NV8\"],[[8814,8815],\"disallowed_STD3_valid\"],[[8816,8945],\"valid\",[],\"NV8\"],[[8946,8959],\"valid\",[],\"NV8\"],[[8960,8960],\"valid\",[],\"NV8\"],[[8961,8961],\"valid\",[],\"NV8\"],[[8962,9000],\"valid\",[],\"NV8\"],[[9001,9001],\"mapped\",[12296]],[[9002,9002],\"mapped\",[12297]],[[9003,9082],\"valid\",[],\"NV8\"],[[9083,9083],\"valid\",[],\"NV8\"],[[9084,9084],\"valid\",[],\"NV8\"],[[9085,9114],\"valid\",[],\"NV8\"],[[9115,9166],\"valid\",[],\"NV8\"],[[9167,9168],\"valid\",[],\"NV8\"],[[9169,9179],\"valid\",[],\"NV8\"],[[9180,9191],\"valid\",[],\"NV8\"],[[9192,9192],\"valid\",[],\"NV8\"],[[9193,9203],\"valid\",[],\"NV8\"],[[9204,9210
47807],\"valid\",[],\"NV8\"],[[9211,9215],\"disallowed\"],[[9216,9252],\"valid\",[],\"NV8\"],[[9253,9254],\"valid\",[],\"NV8\"],[[9255,9279],\"disallowed\"],[[9280,9290],\"valid\",[],\"NV8\"],[[9291,9311],\"disallowed\"],[[9312,9312],\"mapped\",[49]],[[9313,9313],\"mapped\",[50]],[[9314,9314],\"mapped\",[51]],[[9315,9315],\"mapped\",[52]],[[9316,9316],\"mapped\",[53]],[[9317,9317],\"mapped\",[54]],[[9318,9318],\"mapped\",[55]],[[9319,9319],\"mapped\",[56]],[[9320,9320],\"mapped\",[57]],[[9321,9321],\"mapped\",[49,48]],[[9322,9322],\"mapped\",[49,49]],[[9323,9323],\"mapped\",[49,50]],[[9324,9324],\"mapped\",[49,51]],[[9325,9325],\"mapped\",[49,52]],[[9326,9326],\"mapped\",[49,53]],[[9327,9327],\"mapped\",[49,54]],[[9328,9328],\"mapped\",[49,55]],[[9329,9329],\"mapped\",[49,56]],[[9330,9330],\"mapped\",[49,57]],[[9331,9331],\"mapped\",[50,48]],[[9332,9332],\"disallowed_STD3_mapped\",[40,49,41]],[[9333,9333],\"disallowed_STD3_mapped\",[40,50,41]],[[9334,9334],\"disallowed_STD3_mapped\",[40,51,41]],[[9335,9335],\"disallowed_STD3_mapped\",[40,52,41]],[[9336,9336],\"disallowed_STD3_mapped\",[40,53,41]],[[9337,9337],\"disallowed_STD3_mapped\",[40,54,41]],[[9338,9338],\"disallowed_STD3_mapped\",[40,55,41]],[[9339,9339],\"disallowed_STD3_mapped\",[40,56,41]],[[9340,9340],\"disallowed_STD3_mapped\",[40,57,41]],[[9341,9341],\"disallowed_STD3_mapped\",[40,49,48,41]],[[9342,9342],\"disallowed_STD3_mapped\",[40,49,49,41]],[[9343,9343],\"disallowed_STD3_mapped\",[40,49,50,41]],[[9344,9344],\"disallowed_STD3_mapped\",[40,49,51,41]],[[9345,9345],\"disallowed_STD3_mapped\",[40,49,52,41]],[[9346,9346],\"disallowed_STD3_mapped\",[40,49,53,41]],[[9347,9347],\"disallowed_STD3_mapped\",[40,49,54,41]],[[9348,9348],\"disallowed_STD3_mapped\",[40,49,55,41]],[[9349,9349],\"disallowed_STD3_mapped\",[40,49,56,41]],[[9350,9350],\"disallowed_STD3_mapped\",[40,49,57,41]],[[9351,9351],\"disallowed_STD3_mapped\",[40,50,48,41]],[[9352,9371],\"disallowed\"],[[9372,9372],\"disallowed_STD3_mapped\",[40,97,41]],[[9373,9373],\"disallowed_STD3_mapped\",[40,98,41]],[[9374,9374],\"disallowed_STD3_mapped\",[40,99,41]],[[9375,9375],\"disallowed_STD3_mapped\",[40,100,41]],[[9376,9376],\"disallowed_STD3_mapped\",[40,101,41]],[[9377,9377],\"disallowed_STD3_mapped\",[40,102,41]],[[9378,9378],\"disallowed_STD3_mapped\",[40,103,41]],[[9379,9379],\"disallowed_STD3_mapped\",[40,104,41]],[[9380,9380],\"disallowed_STD3_mapped\",[40,105,41]],[[9381,9381],\"disallowed_STD3_mapped\",[40,106,41]],[[9382,9382],\"disallowed_STD3_mapped\",[40,107,41]],[[9383,9383],\"disallowed_STD3_mapped\",[40,108,41]],[[9384,9384],\"disallowed_STD3_mapped\",[40,109,41]],[[9385,9385],\"disallowed_STD3_mapped\",[40,110,41]],[[9386,9386],\"disallowed_STD3_mapped\",[40,111,41]],[[9387,9387],\"disallowed_STD3_mapped\",[40,112,41]],[[9388,9388],\"disallowed_STD3_mapped\",[40,113,41]],[[9389,9389],\"disallowed_STD3_mapped\",[40,114,41]],[[9390,9390],\"disallowed_STD3_mapped\",[40,115,41]],[[9391,9391],\"disallowed_STD3_mapped\",[40,116,41]],[[9392,9392],\"disallowed_STD3_mapped\",[40,117,41]],[[9393,9393],\"disallowed_STD3_mapped\",[40,118,41]],[[9394,9394],\"disallowed_STD3_mapped\",[40,119,41]],[[9395,9395],\"disallowed_STD3_mapped\",[40,120,41]],[[9396,9396],\"disallowed_STD3_mapped\",[40,121,41]],[[9397,9397],\"disallowed_STD3_mapped\",[40,122,41]],[[9398,9398],\"mapped\",[97]],[[9399,9399],\"mapped\",[98]],[[9400,9400],\"mapped\",[99]],[[9401,9401],\"mapped\",[100]],[[9402,9402],\"mapped\",[101]],[[9403,9403],\"mapped\",[102]],[[9404,9404],\"mapped\",[103]],[[9405,9405],\"mapped\",[104]],[[9406,9406],\"mapped\",[105]],[[9407,9407],\"mapped\",[106]],[[9408,9408],\"mapped\",[107]],[[9409,9409],\"mapped\",[108]],[[9410,9410],\"mapped\",[109]],[[9411,9411],\"mapped\",[110]],[[9412,9412],\"mapped\",[111]],[[9413,9413],\"mapped\",[112]],[[9414,9414],\"mapped\",[113]],[[9415,9415],\"mapped\",[114]],[[9416,9416],\"mapped\",[115]],[[9417,9417],\"mapped\",[116]],[[9418,9418],\"mapped\",[117]],[[9419,9419],\"mapped\",[118]],[[9420,9420],\"mapped\",[119]],[[9421,9421],\"mapped\",[120]],[[9422,9422],\"mapped\",[121]],[[9423,9423],\"mapped\",[122]],[[9424,9424],\"mapped\",[97]],[[9425,9425],\"mapped\",[98]],[[9426,9426],\"mapped\",[99]
47807],[[9427,9427],\"mapped\",[100]],[[9428,9428],\"mapped\",[101]],[[9429,9429],\"mapped\",[102]],[[9430,9430],\"mapped\",[103]],[[9431,9431],\"mapped\",[104]],[[9432,9432],\"mapped\",[105]],[[9433,9433],\"mapped\",[106]],[[9434,9434],\"mapped\",[107]],[[9435,9435],\"mapped\",[108]],[[9436,9436],\"mapped\",[109]],[[9437,9437],\"mapped\",[110]],[[9438,9438],\"mapped\",[111]],[[9439,9439],\"mapped\",[112]],[[9440,9440],\"mapped\",[113]],[[9441,9441],\"mapped\",[114]],[[9442,9442],\"mapped\",[115]],[[9443,9443],\"mapped\",[116]],[[9444,9444],\"mapped\",[117]],[[9445,9445],\"mapped\",[118]],[[9446,9446],\"mapped\",[119]],[[9447,9447],\"mapped\",[120]],[[9448,9448],\"mapped\",[121]],[[9449,9449],\"mapped\",[122]],[[9450,9450],\"mapped\",[48]],[[9451,9470],\"valid\",[],\"NV8\"],[[9471,9471],\"valid\",[],\"NV8\"],[[9472,9621],\"valid\",[],\"NV8\"],[[9622,9631],\"valid\",[],\"NV8\"],[[9632,9711],\"valid\",[],\"NV8\"],[[9712,9719],\"valid\",[],\"NV8\"],[[9720,9727],\"valid\",[],\"NV8\"],[[9728,9747],\"valid\",[],\"NV8\"],[[9748,9749],\"valid\",[],\"NV8\"],[[9750,9751],\"valid\",[],\"NV8\"],[[9752,9752],\"valid\",[],\"NV8\"],[[9753,9753],\"valid\",[],\"NV8\"],[[9754,9839],\"valid\",[],\"NV8\"],[[9840,9841],\"valid\",[],\"NV8\"],[[9842,9853],\"valid\",[],\"NV8\"],[[9854,9855],\"valid\",[],\"NV8\"],[[9856,9865],\"valid\",[],\"NV8\"],[[9866,9873],\"valid\",[],\"NV8\"],[[9874,9884],\"valid\",[],\"NV8\"],[[9885,9885],\"valid\",[],\"NV8\"],[[9886,9887],\"valid\",[],\"NV8\"],[[9888,9889],\"valid\",[],\"NV8\"],[[9890,9905],\"valid\",[],\"NV8\"],[[9906,9906],\"valid\",[],\"NV8\"],[[9907,9916],\"valid\",[],\"NV8\"],[[9917,9919],\"valid\",[],\"NV8\"],[[9920,9923],\"valid\",[],\"NV8\"],[[9924,9933],\"valid\",[],\"NV8\"],[[9934,9934],\"valid\",[],\"NV8\"],[[9935,9953],\"valid\",[],\"NV8\"],[[9954,9954],\"valid\",[],\"NV8\"],[[9955,9955],\"valid\",[],\"NV8\"],[[9956,9959],\"valid\",[],\"NV8\"],[[9960,9983],\"valid\",[],\"NV8\"],[[9984,9984],\"valid\",[],\"NV8\"],[[9985,9988],\"valid\",[],\"NV8\"],[[9989,9989],\"valid\",[],\"NV8\"],[[9990,9993],\"valid\",[],\"NV8\"],[[9994,9995],\"valid\",[],\"NV8\"],[[9996,10023],\"valid\",[],\"NV8\"],[[10024,10024],\"valid\",[],\"NV8\"],[[10025,10059],\"valid\",[],\"NV8\"],[[10060,10060],\"valid\",[],\"NV8\"],[[10061,10061],\"valid\",[],\"NV8\"],[[10062,10062],\"valid\",[],\"NV8\"],[[10063,10066],\"valid\",[],\"NV8\"],[[10067,10069],\"valid\",[],\"NV8\"],[[10070,10070],\"valid\",[],\"NV8\"],[[10071,10071],\"valid\",[],\"NV8\"],[[10072,10078],\"valid\",[],\"NV8\"],[[10079,10080],\"valid\",[],\"NV8\"],[[10081,10087],\"valid\",[],\"NV8\"],[[10088,10101],\"valid\",[],\"NV8\"],[[10102,10132],\"valid\",[],\"NV8\"],[[10133,10135],\"valid\",[],\"NV8\"],[[10136,10159],\"valid\",[],\"NV8\"],[[10160,10160],\"valid\",[],\"NV8\"],[[10161,10174],\"valid\",[],\"NV8\"],[[10175,10175],\"valid\",[],\"NV8\"],[[10176,10182],\"valid\",[],\"NV8\"],[[10183,10186],\"valid\",[],\"NV8\"],[[10187,10187],\"valid\",[],\"NV8\"],[[10188,10188],\"valid\",[],\"NV8\"],[[10189,10189],\"valid\",[],\"NV8\"],[[10190,10191],\"valid\",[],\"NV8\"],[[10192,10219],\"valid\",[],\"NV8\"],[[10220,10223],\"valid\",[],\"NV8\"],[[10224,10239],\"valid\",[],\"NV8\"],[[10240,10495],\"valid\",[],\"NV8\"],[[10496,10763],\"valid\",[],\"NV8\"],[[10764,10764],\"mapped\",[8747,8747,8747,8747]],[[10765,10867],\"valid\",[],\"NV8\"],[[10868,10868],\"disallowed_STD3_mapped\",[58,58,61]],[[10869,10869],\"disallowed_STD3_mapped\",[61,61]],[[10870,10870],\"disallowed_STD3_mapped\",[61,61,61]],[[10871,10971],\"valid\",[],\"NV8\"],[[10972,10972],\"mapped\",[10973,824]],[[10973,11007],\"valid\",[],\"NV8\"],[[11008,11021],\"valid\",[],\"NV8\"],[[11022,11027],\"valid\",[],\"NV8\"],[[11028,11034],\"valid\",[],\"NV8\"],[[11035,11039],\"valid\",[],\"NV8\"],[[11040,11043],\"valid\",[],\"NV8\"],[[11044,11084],\"valid\",[],\"NV8\"],[[11085,11087],\"valid\",[],\"NV8\"],[[11088,11092],\"valid\",[],\"NV8\"],[[11093,11097],\"valid\",[],\"NV8\"],[[11098,11123],\"valid\",[],\"NV8\"],[[11124,11125],\"disallowed\"],[[11126,11157],\"valid\",[],\"NV8\"],[[11158,11159],\"disallowed\"],[[11160,11193],\"valid\",[],\"NV8\"],[[11194,11196],\"disallowed\"],[[11197,11208],\"valid\",[],\"NV8\"],[[11209,11209],\"disallowed\"],[[11210,11217],\"valid\",[],\"NV8\"],[[11218,11243],\"disallowed\"],[[11244,11247],\"valid\",[],\"NV8\"],[[11248,11263],\"disallowed\"],[[11264,11264],\"mapped\",[11312]],[[11265,11265],\"mapped\",[11313]],[[11266,11266],\"mapped\",[11314]],[[11267,11267],\"mapped\",[11315]],[[11268,11268],\"mapped\",[11316]],[[11269,11269],\"mapped\",[11317]],[[11270,11270],\"mapped\",[11318]],[[11271,11271],\"mapped\",[11319]],[[11272,11272],\"mapped\",[11320]],[[11273,11273],\"mapped\",[11321]],[[11274,11274],\"mapped\",[11322]],[[11275,11275],\"mapped\",[11323]],[[11276,11276],\"mapped\",[11324]],[[11277,11277],\"mapped\",[11325]],[[11278,11278],\"mapped\",[11326]],[[11279,11279],\"mapped\",[11327]],[[11280,11280],\"mapped\",[11328]],[[11281,11281],\"mapped\",[11329]],[[11282,11282],\"mapped\",[11330]],[[11283,11283],\"mapped\",[11331]],[[11284,11284],\"mapped\",[11332]],[[11285,11285],\"mapped\",[11333]],[[11286,11286],\"mapped\",[11334]],[[11287,11287],\"mapped\",[11335]],[[11288,11288],\"mapped\",[11336]],[[11289,11289],\"mapped\",[11337]],[[11290,11290],\"mapped\",[11338]],[[11291,11291],\"mapped\",[11339]],[[11292,11292],\"mapped\",[11340]],[[11293,11293],\"mapped\",[11341]],[[11294,11294],\"mapped\",[11342]],[[11295,11295],\"mapped\",[11343]],[[11296,11296],\"mapped\",[11344]],[[11297,11297],\"mapped\",[11345]],[[11298,11298],\"mapped\",[11346]],[[11299,11299],\"mapped\",[11347]],[[11300,11300],\"mapped\",[11348]
47807],[[11301,11301],\"mapped\",[11349]],[[11302,11302],\"mapped\",[11350]],[[11303,11303],\"mapped\",[11351]],[[11304,11304],\"mapped\",[11352]],[[11305,11305],\"mapped\",[11353]],[[11306,11306],\"mapped\",[11354]],[[11307,11307],\"mapped\",[11355]],[[11308,11308],\"mapped\",[11356]],[[11309,11309],\"mapped\",[11357]],[[11310,11310],\"mapped\",[11358]],[[11311,11311],\"disallowed\"],[[11312,11358],\"valid\"],[[11359,11359],\"disallowed\"],[[11360,11360],\"mapped\",[11361]],[[11361,11361],\"valid\"],[[11362,11362],\"mapped\",[619]],[[11363,11363],\"mapped\",[7549]],[[11364,11364],\"mapped\",[637]],[[11365,11366],\"valid\"],[[11367,11367],\"mapped\",[11368]],[[11368,11368],\"valid\"],[[11369,11369],\"mapped\",[11370]],[[11370,11370],\"valid\"],[[11371,11371],\"mapped\",[11372]],[[11372,11372],\"valid\"],[[11373,11373],\"mapped\",[593]],[[11374,11374],\"mapped\",[625]],[[11375,11375],\"mapped\",[592]],[[11376,11376],\"mapped\",[594]],[[11377,11377],\"valid\"],[[11378,11378],\"mapped\",[11379]],[[11379,11379],\"valid\"],[[11380,11380],\"valid\"],[[11381,11381],\"mapped\",[11382]],[[11382,11383],\"valid\"],[[11384,11387],\"valid\"],[[11388,11388],\"mapped\",[106]],[[11389,11389],\"mapped\",[118]],[[11390,11390],\"mapped\",[575]],[[11391,11391],\"mapped\",[576]],[[11392,11392],\"mapped\",[11393]],[[11393,11393],\"valid\"],[[11394,11394],\"mapped\",[11395]],[[11395,11395],\"valid\"],[[11396,11396],\"mapped\",[11397]],[[11397,11397],\"valid\"],[[11398,11398],\"mapped\",[11399]],[[11399,11399],\"valid\"],[[11400,11400],\"mapped\",[11401]],[[11401,11401],\"valid\"],[[11402,11402],\"mapped\",[11403]],[[11403,11403],\"valid\"],[[11404,11404],\"mapped\",[11405]],[[11405,11405],\"valid\"],[[11406,11406],\"mapped\",[11407]],[[11407,11407],\"valid\"],[[11408,11408],\"mapped\",[11409]],[[11409,11409],\"valid\"],[[11410,11410],\"mapped\",[11411]],[[11411,11411],\"valid\"],[[11412,11412],\"mapped\",[11413]],[[11413,11413],\"valid\"],[[11414,11414],\"mapped\",[11415]],[[11415,11415],\"valid\"],[[11416,11416],\"mapped\",[11417]],[[11417,11417],\"valid\"],[[11418,11418],\"mapped\",[11419]],[[11419,11419],\"valid\"],[[11420,11420],\"mapped\",[11421]],[[11421,11421],\"valid\"],[[11422,11422],\"mapped\",[11423]],[[11423,11423],\"valid\"],[[11424,11424],\"mapped\",[11425]],[[11425,11425],\"valid\"],[[11426,11426],\"mapped\",[11427]],[[11427,11427],\"valid\"],[[11428,11428],\"mapped\",[11429]],[[11429,11429],\"valid\"],[[11430,11430],\"mapped\",[11431]],[[11431,11431],\"valid\"],[[11432,11432],\"mapped\",[11433]],[[11433,11433],\"valid\"],[[11434,11434],\"mapped\",[11435]],[[11435,11435],\"valid\"],[[11436,11436],\"mapped\",[11437]],[[11437,11437],\"valid\"],[[11438,11438],\"mapped\",[11439]],[[11439,11439],\"valid\"],[[11440,11440],\"mapped\",[11441]],[[11441,11441],\"valid\"],[[11442,11442],\"mapped\",[11443]],[[11443,11443],\"valid\"],[[11444,11444],\"mapped\",[11445]],[[11445,11445],\"valid\"],[[11446,11446],\"mapped\",[11447]],[[11447,11447],\"valid\"],[[11448,11448],\"mapped\",[11449]],[[11449,11449],\"valid\"],[[11450,11450],\"mapped\",[11451]],[[11451,11451],\"valid\"],[[11452,11452],\"mapped\",[11453]],[[11453,11453],\"valid\"],[[11454,11454],\"mapped\",[11455]],[[11455,11455],\"valid\"],[[11456,11456],\"mapped\",[11457]],[[11457,11457],\"valid\"],[[11458,11458],\"mapped\",[11459]],[[11459,11459],\"valid\"],[[11460,11460],\"mapped\",[11461]],[[11461,11461],\"valid\"],[[11462,11462],\"mapped\",[11463]],[[11463,11463],\"valid\"],[[11464,11464],\"mapped\",[11465]],[[11465,11465],\"valid\"],[[11466,11466],\"mapped\",[11467]],[[11467,11467],\"valid\"],[[11468,11468],\"mapped\",[11469]],[[11469,11469],\"valid\"],[[11470,11470],\"mapped\",[11471]],[[11471,11471],\"valid\"],[[11472,11472],\"mapped\",[11473]],[[11473,11473],\"valid\"],[[11474,11474],\"mapped\",[11475]],[[11475,11475],\"valid\"],[[11476,11476],\"mapped\",[11477]],[[11477,11477],\"valid\"],[[11478,11478],\"mapped\",[11479]],[[11479,11479],\"valid\"],[[11480,11480],\"mapped\",[11481]],[[11481,11481],\"valid\"],[[11482,11482],\"mapped\",[11483]],[[11483,11483],\"valid\"],[[11484,11484],\"mapped\",[11485]],[[11485,11485],\"valid\"],[[11486,11486],\"mapped\",[11487]],[[11487,11487],\"valid\"],[[11488,11488],\"mapped\",[11489]],[[11489,11489],\"valid\"],[[11490,11490],\"mapped\",[11491]],[[11491,11492],\"valid\"],[[11493,11498],\"valid\",[],\"NV8\"],[[11499,11499],\"mapped\",[11500]],[[11500,11500],\"valid\"],[[11501,11501],\"mapped\",[11502]],[[11502,11505],\"valid\"],[[11506,11506],\"mapped\",[11507]],[[11507,11507],\"valid\"],[[11508,11512],\"disallowed\"],[[11513,11519],\"valid\",[],\"NV8\"],[[11520,11557],\"valid\"],[[11558,11558],\"disallowed\"],[[11559,11559],\"valid\"],[[11560,11564],\"disallowed\"],[[11565,11565],\"valid\"],[[11566,11567],\"disallowed\"],[[11568,11621],\"valid\"],[[11622,11623],\"valid\"],[[11624,11630],\"disallowed\"],[[11631,11631],\"mapped\",[11617]],[[11632,11632],\"valid\",[],\"NV8\"],[[11633,11646],\"disallowed\"],[[11647,11647],\"valid\"],[[11648,11670],\"valid\"],[[11671,11679],\"disallowed\"],[[11680,11686],\"valid\"],[[11687,11687],\"disallowed\"],[[11688,11694],\"valid\"],[[11695,11695],\"disallowed\"],[[11696,11702],\"valid\"],[[11703,11703],\"disallowed\"],[[11704,11710],\"valid\"],[[11711,
4780711711],\"disallowed\"],[[11712,11718],\"valid\"],[[11719,11719],\"disallowed\"],[[11720,11726],\"valid\"],[[11727,11727],\"disallowed\"],[[11728,11734],\"valid\"],[[11735,11735],\"disallowed\"],[[11736,11742],\"valid\"],[[11743,11743],\"disallowed\"],[[11744,11775],\"valid\"],[[11776,11799],\"valid\",[],\"NV8\"],[[11800,11803],\"valid\",[],\"NV8\"],[[11804,11805],\"valid\",[],\"NV8\"],[[11806,11822],\"valid\",[],\"NV8\"],[[11823,11823],\"valid\"],[[11824,11824],\"valid\",[],\"NV8\"],[[11825,11825],\"valid\",[],\"NV8\"],[[11826,11835],\"valid\",[],\"NV8\"],[[11836,11842],\"valid\",[],\"NV8\"],[[11843,11903],\"disallowed\"],[[11904,11929],\"valid\",[],\"NV8\"],[[11930,11930],\"disallowed\"],[[11931,11934],\"valid\",[],\"NV8\"],[[11935,11935],\"mapped\",[27597]],[[11936,12018],\"valid\",[],\"NV8\"],[[12019,12019],\"mapped\",[40863]],[[12020,12031],\"disallowed\"],[[12032,12032],\"mapped\",[19968]],[[12033,12033],\"mapped\",[20008]],[[12034,12034],\"mapped\",[20022]],[[12035,12035],\"mapped\",[20031]],[[12036,12036],\"mapped\",[20057]],[[12037,12037],\"mapped\",[20101]],[[12038,12038],\"mapped\",[20108]],[[12039,12039],\"mapped\",[20128]],[[12040,12040],\"mapped\",[20154]],[[12041,12041],\"mapped\",[20799]],[[12042,12042],\"mapped\",[20837]],[[12043,12043],\"mapped\",[20843]],[[12044,12044],\"mapped\",[20866]],[[12045,12045],\"mapped\",[20886]],[[12046,12046],\"mapped\",[20907]],[[12047,12047],\"mapped\",[20960]],[[12048,12048],\"mapped\",[20981]],[[12049,12049],\"mapped\",[20992]],[[12050,12050],\"mapped\",[21147]],[[12051,12051],\"mapped\",[21241]],[[12052,12052],\"mapped\",[21269]],[[12053,12053],\"mapped\",[21274]],[[12054,12054],\"mapped\",[21304]],[[12055,12055],\"mapped\",[21313]],[[12056,12056],\"mapped\",[21340]],[[12057,12057],\"mapped\",[21353]],[[12058,12058],\"mapped\",[21378]],[[12059,12059],\"mapped\",[21430]],[[12060,12060],\"mapped\",[21448]],[[12061,12061],\"mapped\",[21475]],[[12062,12062],\"mapped\",[22231]],[[12063,12063],\"mapped\",[22303]],[[12064,12064],\"mapped\",[22763]],[[12065,12065],\"mapped\",[22786]],[[12066,12066],\"mapped\",[22794]],[[12067,12067],\"mapped\",[22805]],[[12068,12068],\"mapped\",[22823]],[[12069,12069],\"mapped\",[22899]],[[12070,12070],\"mapped\",[23376]],[[12071,12071],\"mapped\",[23424]],[[12072,12072],\"mapped\",[23544]],[[12073,12073],\"mapped\",[23567]],[[12074,12074],\"mapped\",[23586]],[[12075,12075],\"mapped\",[23608]],[[12076,12076],\"mapped\",[23662]],[[12077,12077],\"mapped\",[23665]],[[12078,12078],\"mapped\",[24027]],[[12079,12079],\"mapped\",[24037]],[[12080,12080],\"mapped\",[24049]],[[12081,12081],\"mapped\",[24062]],[[12082,12082],\"mapped\",[24178]],[[12083,12083],\"mapped\",[24186]],[[12084,12084],\"mapped\",[24191]],[[12085,12085],\"mapped\",[24308]],[[12086,12086],\"mapped\",[24318]],[[12087,12087],\"mapped\",[24331]],[[12088,12088],\"mapped\",[24339]],[[12089,12089],\"mapped\",[24400]],[[12090,12090],\"mapped\",[24417]],[[12091,12091],\"mapped\",[24435]],[[12092,12092],\"mapped\",[24515]],[[12093,12093],\"mapped\",[25096]],[[12094,12094],\"mapped\",[25142]],[[12095,12095],\"mapped\",[25163]],[[12096,12096],\"mapped\",[25903]],[[12097,12097],\"mapped\",[25908]],[[12098,12098],\"mapped\",[25991]],[[12099,12099],\"mapped\",[26007]],[[12100,12100],\"mapped\",[26020]],[[12101,12101],\"mapped\",[26041]],[[12102,12102],\"mapped\",[26080]],[[12103,12103],\"mapped\",[26085]],[[12104,12104],\"mapped\",[26352]],[[12105,12105],\"mapped\",[26376]],[[12106,12106],\"mapped\",[26408]],[[12107,12107],\"mapped\",[27424]],[[12108,12108],\"mapped\",[27490]],[[12109,12109],\"mapped\",[27513]],[[12110,12110],\"mapped\",[27571]],[[12111,12111],\"mapped\",[27595]],[[12112,12112],\"mapped\",[27604]],[[12113,12113],\"mapped\",[27611]],[[12114,12114],\"mapped\",[27663]],[[12115,12115],\"mapped\",[27668]],[[12116,12116],\"mapped\",[27700]],[[12117,12117],\"mapped\",[28779]],[[12118,12118],\"mapped\",[29226]],[[12119,12119],\"mapped\",[29238]],[[12120,12120],\"mapped\",[29243]],[[12121,12121],\"mapped\",[29247]],[[12122,12122],\"mapped\",[29255]],[[12123,12123],\"mapped\",[29273]],[[12124,12124],\"mapped\",[29275]],[[12125,12125],\"mapped\",[29356]],[[12126,12126],\"mapped\",[29572]],[[12127,12127
47807],\"mapped\",[29577]],[[12128,12128],\"mapped\",[29916]],[[12129,12129],\"mapped\",[29926]],[[12130,12130],\"mapped\",[29976]],[[12131,12131],\"mapped\",[29983]],[[12132,12132],\"mapped\",[29992]],[[12133,12133],\"mapped\",[30000]],[[12134,12134],\"mapped\",[30091]],[[12135,12135],\"mapped\",[30098]],[[12136,12136],\"mapped\",[30326]],[[12137,12137],\"mapped\",[30333]],[[12138,12138],\"mapped\",[30382]],[[12139,12139],\"mapped\",[30399]],[[12140,12140],\"mapped\",[30446]],[[12141,12141],\"mapped\",[30683]],[[12142,12142],\"mapped\",[30690]],[[12143,12143],\"mapped\",[30707]],[[12144,12144],\"mapped\",[31034]],[[12145,12145],\"mapped\",[31160]],[[12146,12146],\"mapped\",[31166]],[[12147,12147],\"mapped\",[31348]],[[12148,12148],\"mapped\",[31435]],[[12149,12149],\"mapped\",[31481]],[[12150,12150],\"mapped\",[31859]],[[12151,12151],\"mapped\",[31992]],[[12152,12152],\"mapped\",[32566]],[[12153,12153],\"mapped\",[32593]],[[12154,12154],\"mapped\",[32650]],[[12155,12155],\"mapped\",[32701]],[[12156,12156],\"mapped\",[32769]],[[12157,12157],\"mapped\",[32780]],[[12158,12158],\"mapped\",[32786]],[[12159,12159],\"mapped\",[32819]],[[12160,12160],\"mapped\",[32895]],[[12161,12161],\"mapped\",[32905]],[[12162,12162],\"mapped\",[33251]],[[12163,12163],\"mapped\",[33258]],[[12164,12164],\"mapped\",[33267]],[[12165,12165],\"mapped\",[33276]],[[12166,12166],\"mapped\",[33292]],[[12167,12167],\"mapped\",[33307]],[[12168,12168],\"mapped\",[33311]],[[12169,12169],\"mapped\",[33390]],[[12170,12170],\"mapped\",[33394]],[[12171,12171],\"mapped\",[33400]],[[12172,12172],\"mapped\",[34381]],[[12173,12173],\"mapped\",[34411]],[[12174,12174],\"mapped\",[34880]],[[12175,12175],\"mapped\",[34892]],[[12176,12176],\"mapped\",[34915]],[[12177,12177],\"mapped\",[35198]],[[12178,12178],\"mapped\",[35211]],[[12179,12179],\"mapped\",[35282]],[[12180,12180],\"mapped\",[35328]],[[12181,12181],\"mapped\",[35895]],[[12182,12182],\"mapped\",[35910]],[[12183,12183],\"mapped\",[35925]],[[12184,12184],\"mapped\",[35960]],[[12185,12185],\"mapped\",[35997]],[[12186,12186],\"mapped\",[36196]],[[12187,12187],\"mapped\",[36208]],[[12188,12188],\"mapped\",[36275]],[[12189,12189],\"mapped\",[36523]],[[12190,12190],\"mapped\",[36554]],[[12191,12191],\"mapped\",[36763]],[[12192,12192],\"mapped\",[36784]],[[12193,12193],\"mapped\",[36789]],[[12194,12194],\"mapped\",[37009]],[[12195,12195],\"mapped\",[37193]],[[12196,12196],\"mapped\",[37318]],[[12197,12197],\"mapped\",[37324]],[[12198,12198],\"mapped\",[37329]],[[12199,12199],\"mapped\",[38263]],[[12200,12200],\"mapped\",[38272]],[[12201,12201],\"mapped\",[38428]],[[12202,12202],\"mapped\",[38582]],[[12203,12203],\"mapped\",[38585]],[[12204,12204],\"mapped\",[38632]],[[12205,12205],\"mapped\",[38737]],[[12206,12206],\"mapped\",[38750]],[[12207,12207],\"mapped\",[38754]],[[12208,12208],\"mapped\",[38761]],[[12209,12209],\"mapped\",[38859]],[[12210,12210],\"mapped\",[38893]],[[12211,12211],\"mapped\",[38899]],[[12212,12212],\"mapped\",[38913]],[[12213,12213],\"mapped\",[39080]],[[12214,12214],\"mapped\",[39131]],[[12215,12215],\"mapped\",[39135]],[[12216,12216],\"mapped\",[39318]],[[12217,12217],\"mapped\",[39321]],[[12218,12218],\"mapped\",[39340]],[[12219,12219],\"mapped\",[39592]],[[12220,12220],\"mapped\",[39640]],[[12221,12221],\"mapped\",[39647]],[[12222,12222],\"mapped\",[39717]],[[12223,12223],\"mapped\",[39727]],[[12224,12224],\"mapped\",[39730]],[[12225,12225],\"mapped\",[39740]],[[12226,12226],\"mapped\",[39770]],[[12227,12227],\"mapped\",[40165]],[[12228,12228],\"mapped\",[40565]],[[12229,12229],\"mapped\",[40575]],[[12230,12230],\"mapped\",[40613]],[[12231,12231],\"mapped\",[40635]],[[12232,12232],\"mapped\",[40643]],[[12233,12233],\"mapped\",[40653]],[[12234,12234],\"mapped\",[40657]],[[12235,12235],\"mapped\",[40697]],[[12236,12236],\"mapped\",[40701]],[[12237,12237],\"mapped\",[40718]],[[12238,12238],\"mapped\",[40723]],[[12239,12239],\"mapped\",[40736]],[[12240,12240],\"mapped\",[40763]],[[12241,12241],\"mapped\",[40778]],[[12242,12242],\"mapped\",[40786]],[[12243,12243],\"mapped\",[40845]],[[12244,12244],\"mapped\",[40860]],[[12245,12245],\"mapped\",[40864]],[[12246,12271],\"disallowed\"],[[12272,12283],\"disallowed\"],[[12284,12287],\"disallowed\"],[[12288,12288],\"disallowed_STD3_mapped\",[32]],[[12289,12289],\"valid\",[],\"NV8\"],[[12290,12290],\"mapped\",[46]],[[12291,12292],\"valid\",[],\"NV8\"],[[12293,12295],\"valid\"],[[12296,12329],\"valid\",[],\"NV8\"],[[12330,12333],\"valid\"],[[12334,12341],\"valid\",[],\"NV8\"],[[12342,12342],\"mapped\",[12306]],[[12343,12343],\"valid\",[],\"NV8\"],[[12344,12344],\"mapped\",[21313]],[[12345,12345],\"mapped\",[21316]],[[12346,12346],\"mapped\",[21317]],[[12347,12347],\"valid\",[],\"NV8\"],[[12348,12348],\"valid\"],[[12349,12349],\"valid\",[],\"NV8\"],[[12350,12350],\"valid\",[],\"NV8\"],[[12351,12351],\"valid\",[],\"NV8\"],[[12352,12352],\"disallowed\"],[[12353,12436],\"valid\"],[[12437,12438],\"valid\"],[[12439,12440],\"disallowed\"],[[12441,12442],\"valid\"],[[12443,12443],\"disallowed_STD3_mapped\",[32,12441]],[[12444,12444],\"disallowed_STD3_mapped\",[32,12442]],[[12445,12446],\"valid\"],[[12447,12447],\"mapped\",[12424,12426]],[[12448,12448],\"valid\",[],\"NV8\"],[[12449,12542],\"valid\"],[[12543,12543],\"mapped\",[12467,12488]],[[12544,12548],\"disallowed\"],[[12549,12588],\"valid\"],[[12589,12589],\"valid\"],[[12590,12592],\"disallowed\"],[[12593,12593],\"mapped\",[4352]],[[12594,12594],\"mapped\",[4353]],[[12595,12595],\"mapped\",[4522]],[[12596,12596],\"mapped\",[4354]],[[12597,12597],\"mapped\",[4524]],[[12598,12598],\"mapped\",[4525]],[[12599,12599],\"mapped\",[4355]],[[12600,12600],\"mapped\",[4356]],[[12601,12601],\"mapped\",[4357]],[[12602,12602],\"mapped\",[4528]],[[12603,12603],\"mapped\",[4529]],[[12604,12
47807604],\"mapped\",[4530]],[[12605,12605],\"mapped\",[4531]],[[12606,12606],\"mapped\",[4532]],[[12607,12607],\"mapped\",[4533]],[[12608,12608],\"mapped\",[4378]],[[12609,12609],\"mapped\",[4358]],[[12610,12610],\"mapped\",[4359]],[[12611,12611],\"mapped\",[4360]],[[12612,12612],\"mapped\",[4385]],[[12613,12613],\"mapped\",[4361]],[[12614,12614],\"mapped\",[4362]],[[12615,12615],\"mapped\",[4363]],[[12616,12616],\"mapped\",[4364]],[[12617,12617],\"mapped\",[4365]],[[12618,12618],\"mapped\",[4366]],[[12619,12619],\"mapped\",[4367]],[[12620,12620],\"mapped\",[4368]],[[12621,12621],\"mapped\",[4369]],[[12622,12622],\"mapped\",[4370]],[[12623,12623],\"mapped\",[4449]],[[12624,12624],\"mapped\",[4450]],[[12625,12625],\"mapped\",[4451]],[[12626,12626],\"mapped\",[4452]],[[12627,12627],\"mapped\",[4453]],[[12628,12628],\"mapped\",[4454]],[[12629,12629],\"mapped\",[4455]],[[12630,12630],\"mapped\",[4456]],[[12631,12631],\"mapped\",[4457]],[[12632,12632],\"mapped\",[4458]],[[12633,12633],\"mapped\",[4459]],[[12634,12634],\"mapped\",[4460]],[[12635,12635],\"mapped\",[4461]],[[12636,12636],\"mapped\",[4462]],[[12637,12637],\"mapped\",[4463]],[[12638,12638],\"mapped\",[4464]],[[12639,12639],\"mapped\",[4465]],[[12640,12640],\"mapped\",[4466]],[[12641,12641],\"mapped\",[4467]],[[12642,12642],\"mapped\",[4468]],[[12643,12643],\"mapped\",[4469]],[[12644,12644],\"disallowed\"],[[12645,12645],\"mapped\",[4372]],[[12646,12646],\"mapped\",[4373]],[[12647,12647],\"mapped\",[4551]],[[12648,12648],\"mapped\",[4552]],[[12649,12649],\"mapped\",[4556]],[[12650,12650],\"mapped\",[4558]],[[12651,12651],\"mapped\",[4563]],[[12652,12652],\"mapped\",[4567]],[[12653,12653],\"mapped\",[4569]],[[12654,12654],\"mapped\",[4380]],[[12655,12655],\"mapped\",[4573]],[[12656,12656],\"mapped\",[4575]],[[12657,12657],\"mapped\",[4381]],[[12658,12658],\"mapped\",[4382]],[[12659,12659],\"mapped\",[4384]],[[12660,12660],\"mapped\",[4386]],[[12661,12661],\"mapped\",[4387]],[[12662,12662],\"mapped\",[4391]],[[12663,12663],\"mapped\",[4393]],[[12664,12664],\"mapped\",[4395]],[[12665,12665],\"mapped\",[4396]],[[12666,12666],\"mapped\",[4397]],[[12667,12667],\"mapped\",[4398]],[[12668,12668],\"mapped\",[4399]],[[12669,12669],\"mapped\",[4402]],[[12670,12670],\"mapped\",[4406]],[[12671,12671],\"mapped\",[4416]],[[12672,12672],\"mapped\",[4423]],[[12673,12673],\"mapped\",[4428]],[[12674,12674],\"mapped\",[4593]],[[12675,12675],\"mapped\",[4594]],[[12676,12676],\"mapped\",[4439]],[[12677,12677],\"mapped\",[4440]],[[12678,12678],\"mapped\",[4441]],[[12679,12679],\"mapped\",[4484]],[[12680,12680],\"mapped\",[4485]],[[12681,12681],\"mapped\",[4488]],[[12682,12682],\"mapped\",[4497]],[[12683,12683],\"mapped\",[4498]],[[12684,12684],\"mapped\",[4500]],[[12685,12685],\"mapped\",[4510]],[[12686,12686],\"mapped\",[4513]],[[12687,12687],\"disallowed\"],[[12688,12689],\"valid\",[],\"NV8\"],[[12690,12690],\"mapped\",[19968]],[[12691,12691],\"mapped\",[20108]],[[12692,12692],\"mapped\",[19977]],[[12693,12693],\"mapped\",[22235]],[[12694,12694],\"mapped\",[19978]],[[12695,12695],\"mapped\",[20013]],[[12696,12696],\"mapped\",[19979]],[[12697,12697],\"mapped\",[30002]],[[12698,12698],\"mapped\",[20057]],[[12699,12699],\"mapped\",[19993]],[[12700,12700],\"mapped\",[19969]],[[12701,12701],\"mapped\",[22825]],[[12702,12702],\"mapped\",[22320]],[[12703,12703],\"mapped\",[20154]],[[12704,12727],\"valid\"],[[12728,12730],\"valid\"],[[12731,12735],\"disallowed\"],[[12736,12751],\"valid\",[],\"NV8\"],[[12752,12771],\"valid\",[],\"NV8\"],[[12772,12783],\"disallowed\"],[[12784,12799],\"valid\"],[[12800,12800],\"disallowed_STD3_mapped\",[40,4352,41]],[[12801,12801],\"disallowed_STD3_mapped\",[40,4354,41]],[[12802,12802],\"disallowed_STD3_mapped\",[40,4355,41]],[[12803,12803],\"disallowed_STD3_mapped\",[40,4357,41]],[[12804,12804],\"disallowed_STD3_mapped\",[40,4358,41]],[[12805,12805],\"disallowed_STD3_mapped\",[40,4359,41]],[[12806,12806],\"disallowed_STD3_mapped\",[40,4361,41]],[[12807,12807],\"disallowed_STD3_mapped\",[40,4363,41]],[[12808,12808],\"disallowed_STD3_mapped\",[40,4364,41]],[[12809,12809],\"disallowed_STD3_mapped\",[40,4366,41]],[[12810,12810],\"disallowed_STD3_mapped\",[40,4367,41]],[[12811,12811],\"disallowed_STD3_mapped\",[40,4368,41]],[[12812,12812],\"disallowed_STD3_mapped\",[40,4369,41]],[[12813,12813],\"disallowed_STD3_mapped\",[40,4370,41]],[[12814,12814],\"disallowed_STD3_mapped\",[40,44032,41]],[[12815,12815],\"disallowed_STD3_mapped\",[40,45208,41]],[[12816,12816],\"disallowed_STD3_mapped\",[40,45796,41]],[[12817,12817],\"disallowed_STD3_mapped\",[40,46972,41]],[[12818,12818],\"disallowed_STD3_mapped\",[40,47560,41]],[[12819,12819],\"disallowed_STD3_mapped\",[40,48148,41]],[[12820,12820],\"disallowed_STD3_mapped\",[40,49324,41]],[[12821,12821],\"disallowed_STD3_mapped\",[40,50500,41]],[[12822,12822],\"disallowed_STD3_mapped\",[40,51088,41]],[[12823,12823],\"disallowed_STD3_mapped\",[40,52264,41]],[[12824,12824],\"disallowed_STD3_mapped\",[40,52852,41]],[[12825,12825],\"disallowed_STD3_mapped\",[40,53440,41]],[[12826,12826],\"disallowed_STD3_mapped\",[40,54028,41]],[[12827,12827],\"disallowed_STD3_mapped\",[40,54616,41]],[[12828,12828],\"disallowed_STD3_mapped\",[40,51452,41]],[[12829,12829],\"disallowed_STD3_mapped\",[40,50724,51204,41]],[[12830,12830],\"disallowed_STD3_mapped\",[40,50724,54980,41]],[[12831,12831],\"disallowed\"],[[12832,12832],\"disallowed_STD3_mapped\",[40,19968,41]],[[12833,12833],\"disallowed_STD3_mapped\",[40,20108,41]],[[12834,12834],\"disallowed_STD3_mapped\",[40,19977,41]],[[12835,12835],\"disallowed_STD3_mapped\",[40,22235,41]],[[12836,12836],\"disallowed_STD3_mapped\",[40,20116,41]],[[12837,12837],\"disallowed_STD3_mapped\",[40,20845,41]],[[12838,12838],\"disallowed_STD3_mapped\",[40,19971,41]],[[12839,12839],\"disallowed_STD3_mapped\",[40,20843,41]],[[12840,12840],\"disallowed_STD3_mapped\",[40,20061,41]],[[12841,12841],\"disallowed_STD3_mapped\",[40,21313,41]],[[12842,12842],\"disallowed_STD3_mapped\",[40,26376,41]],[[12843,12843],\"disallowed_STD3_mapped\",[40,28779,41]],[[12844,12844],\"disallowed_STD3_mapped\",[40,27700,41]],[[12845,12845],\"disallowed_STD3_mapped\",[40,26408,41]],[[12846,12846],\"disallowed_STD3_mapped\",[40,37329,41]],[[12847,12847],\"disallowed_STD3_mapped\",[40,22303,41]],[[12848,12848],\"disallowed_STD3_mapped\",[40,26085,41]],[[12849,12849],\"disallowed_STD3_mapped\",[40,26666,41]],[[12850,12850],\"disallowed_STD3_mapped\",[40,26377,41]],[[12851,12851],\"disallowed_STD3_mapped\",[40,31038,41]],[[12852,12852],\"disallowed_STD3_mapped\",[40,21517,41]],[[12853,12853],\"disallowed_STD3_mapped\",[40,29305,41]],[[12854,12854],\"disallowed_STD3_mapped\",[40,36001,41]],[[12855,12855],\"disallowed_STD3_mapped\",[40,31069,41]],[[12856,12856],\"disallowed_STD3_mapped\",[40,21172,41]],[[12857,12857],\"disallowed_STD3_mapped\",[40,20195,41]],[[12858,12858],\"disallowed_STD3_mapped\",[40,21628,41]],[[12859,12859],\"disallowed_STD3_mapped\",[40,23398,41]],[[12860,12860],\"disallowed_STD3_mapped\",[40,30435,41]],[[12861,12861],\"disallowed_STD3_mapped\",[40,20225,41]],[[12862,12862],\"disallowed_STD3_mapped\",[40,36039,41]],[[12863,12863],\"disallowed_STD3_mapped\",[40,21332,41]],[[12864,12864],\"disallowed_STD3_mapped\",[40,31085,41]],[[12865,12865],\"disallowed_STD3_mapped\",[40,20241,41]],[[12866,12866],\"disallowed_STD3_mapped\",[40,33258,41]],[[12867,12867],\"disallowed_STD3_mapped\",[40,33267,41]],[[12868,12868],\"mapped\",[21839]],[[12869,12869],\"mapped\",[24188]],[[12870,12870],\"mapped\",[25991]],[[12871,12871],\"mapped\",[31631]],[[12872,12879],\"valid\",[],\"NV8\"],[[12880,12880],\"mapped\",[112,116,101]],[[12881,12881],\"mapped\",[50,49]],[[12882,12882],\"mapped\",[50,50]],[[12883,12883],\"mapped\",[50,51]],[[12884,12884],\"mapped\",[50,52]],[[12885,12885
47807],\"mapped\",[50,53]],[[12886,12886],\"mapped\",[50,54]],[[12887,12887],\"mapped\",[50,55]],[[12888,12888],\"mapped\",[50,56]],[[12889,12889],\"mapped\",[50,57]],[[12890,12890],\"mapped\",[51,48]],[[12891,12891],\"mapped\",[51,49]],[[12892,12892],\"mapped\",[51,50]],[[12893,12893],\"mapped\",[51,51]],[[12894,12894],\"mapped\",[51,52]],[[12895,12895],\"mapped\",[51,53]],[[12896,12896],\"mapped\",[4352]],[[12897,12897],\"mapped\",[4354]],[[12898,12898],\"mapped\",[4355]],[[12899,12899],\"mapped\",[4357]],[[12900,12900],\"mapped\",[4358]],[[12901,12901],\"mapped\",[4359]],[[12902,12902],\"mapped\",[4361]],[[12903,12903],\"mapped\",[4363]],[[12904,12904],\"mapped\",[4364]],[[12905,12905],\"mapped\",[4366]],[[12906,12906],\"mapped\",[4367]],[[12907,12907],\"mapped\",[4368]],[[12908,12908],\"mapped\",[4369]],[[12909,12909],\"mapped\",[4370]],[[12910,12910],\"mapped\",[44032]],[[12911,12911],\"mapped\",[45208]],[[12912,12912],\"mapped\",[45796]],[[12913,12913],\"mapped\",[46972]],[[12914,12914],\"mapped\",[47560]],[[12915,12915],\"mapped\",[48148]],[[12916,12916],\"mapped\",[49324]],[[12917,12917],\"mapped\",[50500]],[[12918,12918],\"mapped\",[51088]],[[12919,12919],\"mapped\",[52264]],[[12920,12920],\"mapped\",[52852]],[[12921,12921],\"mapped\",[53440]],[[12922,12922],\"mapped\",[54028]],[[12923,12923],\"mapped\",[54616]],[[12924,12924],\"mapped\",[52280,44256]],[[12925,12925],\"mapped\",[51452,51032]],[[12926,12926],\"mapped\",[50864]],[[12927,12927],\"valid\",[],\"NV8\"],[[12928,12928],\"mapped\",[19968]],[[12929,12929],\"mapped\",[20108]],[[12930,12930],\"mapped\",[19977]],[[12931,12931],\"mapped\",[22235]],[[12932,12932],\"mapped\",[20116]],[[12933,12933],\"mapped\",[20845]],[[12934,12934],\"mapped\",[19971]],[[12935,12935],\"mapped\",[20843]],[[12936,12936],\"mapped\",[20061]],[[12937,12937],\"mapped\",[21313]],[[12938,12938],\"mapped\",[26376]],[[12939,12939],\"mapped\",[28779]],[[12940,12940],\"mapped\",[27700]],[[12941,12941],\"mapped\",[26408]],[[12942,12942],\"mapped\",[37329]],[[12943,12943],\"mapped\",[22303]],[[12944,12944],\"mapped\",[26085]],[[12945,12945],\"mapped\",[26666]],[[12946,12946],\"mapped\",[26377]],[[12947,12947],\"mapped\",[31038]],[[12948,12948],\"mapped\",[21517]],[[12949,12949],\"mapped\",[29305]],[[12950,12950],\"mapped\",[36001]],[[12951,12951],\"mapped\",[31069]],[[12952,12952],\"mapped\",[21172]],[[12953,12953],\"mapped\",[31192]],[[12954,12954],\"mapped\",[30007]],[[12955,12955],\"mapped\",[22899]],[[12956,12956],\"mapped\",[36969]],[[12957,12957],\"mapped\",[20778]],[[12958,12958],\"mapped\",[21360]],[[12959,12959],\"mapped\",[27880]],[[12960,12960],\"mapped\",[38917]],[[12961,12961],\"mapped\",[20241]],[[12962,12962],\"mapped\",[20889]],[[12963,12963],\"mapped\",[27491]],[[12964,12964],\"mapped\",[19978]],[[12965,12965],\"mapped\",[20013]],[[12966,12966],\"mapped\",[19979]],[[12967,12967],\"mapped\",[24038]],[[12968,12968],\"mapped\",[21491]],[[12969,12969],\"mapped\",[21307]],[[12970,12970],\"mapped\",[23447]],[[12971,12971],\"mapped\",[23398]],[[12972,12972],\"mapped\",[30435]],[[12973,12973],\"mapped\",[20225]],[[12974,12974],\"mapped\",[36039]],[[12975,12975],\"mapped\",[21332]],[[12976,12976],\"mapped\",[22812]],[[12977,12977],\"mapped\",[51,54]],[[12978,12978],\"mapped\",[51,55]],[[12979,12979],\"mapped\",[51,56]],[[12980,12980],\"mapped\",[51,57]],[[12981,12981],\"mapped\",[52,48]],[[12982,12982],\"mapped\",[52,49]],[[12983,12983],\"mapped\",[52,50]],[[12984,12984],\"mapped\",[52,51]],[[12985,12985],\"mapped\",[52,52]],[[12986,12986],\"mapped\",[52,53]],[[12987,12987],\"mapped\",[52,54]],[[12988,12988],\"mapped\",[52,55]],[[12989,12989],\"mapped\",[52,56]],[[12990,12990],\"mapped\",[52,57]],[[12991,12991],\"mapped\",[53,48]],[[12992,12992],\"mapped\",[49,26376]],[[12993,12993],\"mapped\",[50,26376]],[[12994,12994],\"mapped\",[51,26376]],[[12995,12995],\"mapped\",[52,26376]],[[12996,12996],\"mapped\",[53,26376]],[[12997,12997],\"mapped\",[54,26376]],[[12998,12998],\"mapped\",[55,26376]],[[12999,12999],\"mapped\",[56,26376]],[[13000,13000],\"mapped\",[57,26376]],[[13001,13001],\"mapped\",[49,48,26376]],[[13002,13002],\"mapped\",[49,49,26376]],[[13003,13003],\"mapped\",[49,50,26376]],[[13004,13004],\"mapped\",[104,103]],[[13005,13005],\"mapped\",[101,114,103]],[[13006,
4780713006],\"mapped\",[101,118]],[[13007,13007],\"mapped\",[108,116,100]],[[13008,13008],\"mapped\",[12450]],[[13009,13009],\"mapped\",[12452]],[[13010,13010],\"mapped\",[12454]],[[13011,13011],\"mapped\",[12456]],[[13012,13012],\"mapped\",[12458]],[[13013,13013],\"mapped\",[12459]],[[13014,13014],\"mapped\",[12461]],[[13015,13015],\"mapped\",[12463]],[[13016,13016],\"mapped\",[12465]],[[13017,13017],\"mapped\",[12467]],[[13018,13018],\"mapped\",[12469]],[[13019,13019],\"mapped\",[12471]],[[13020,13020],\"mapped\",[12473]],[[13021,13021],\"mapped\",[12475]],[[13022,13022],\"mapped\",[12477]],[[13023,13023],\"mapped\",[12479]],[[13024,13024],\"mapped\",[12481]],[[13025,13025],\"mapped\",[12484]],[[13026,13026],\"mapped\",[12486]],[[13027,13027],\"mapped\",[12488]],[[13028,13028],\"mapped\",[12490]],[[13029,13029],\"mapped\",[12491]],[[13030,13030],\"mapped\",[12492]],[[13031,13031],\"mapped\",[12493]],[[13032,13032],\"mapped\",[12494]],[[13033,13033],\"mapped\",[12495]],[[13034,13034],\"mapped\",[12498]],[[13035,13035],\"mapped\",[12501]],[[13036,13036],\"mapped\",[12504]],[[13037,13037],\"mapped\",[12507]],[[13038,13038],\"mapped\",[12510]],[[13039,13039],\"mapped\",[12511]],[[13040,13040],\"mapped\",[12512]],[[13041,13041],\"mapped\",[12513]],[[13042,13042],\"mapped\",[12514]],[[13043,13043],\"mapped\",[12516]],[[13044,13044],\"mapped\",[12518]],[[13045,13045],\"mapped\",[12520]],[[13046,13046],\"mapped\",[12521]],[[13047,13047],\"mapped\",[12522]],[[13048,13048],\"mapped\",[12523]],[[13049,13049],\"mapped\",[12524]],[[13050,13050],\"mapped\",[12525]],[[13051,13051],\"mapped\",[12527]],[[13052,13052],\"mapped\",[12528]],[[13053,13053],\"mapped\",[12529]],[[13054,13054],\"mapped\",[12530]],[[13055,13055],\"disallowed\"],[[13056,13056],\"mapped\",[12450,12497,12540,12488]],[[13057,13057],\"mapped\",[12450,12523,12501,12449]],[[13058,13058],\"mapped\",[12450,12531,12506,12450]],[[13059,13059],\"mapped\",[12450,12540,12523]],[[13060,13060],\"mapped\",[12452,12491,12531,12464]],[[13061,13061],\"mapped\",[12452,12531,12481]],[[13062,13062],\"mapped\",[12454,12457,12531]],[[13063,13063],\"mapped\",[12456,12473,12463,12540,12489]],[[13064,13064],\"mapped\",[12456,12540,12459,12540]],[[13065,13065],\"mapped\",[12458,12531,12473]],[[13066,13066],\"mapped\",[12458,12540,12512]],[[13067,13067],\"mapped\",[12459,12452,12522]],[[13068,13068],\"mapped\",[12459,12521,12483,12488]],[[13069,13069],\"mapped\",[12459,12525,12522,12540]],[[13070,13070],\"mapped\",[12460,12525,12531]],[[13071,13071],\"mapped\",[12460,12531,12510]],[[13072,13072],\"mapped\",[12462,12460]],[[13073,13073],\"mapped\",[12462,12491,12540]],[[13074,13074],\"mapped\",[12461,12517,12522,12540]],[[13075,13075],\"mapped\",[12462,12523,12480,12540]],[[13076,13076],\"mapped\",[12461,12525]],[[13077,13077],\"mapped\",[12461,12525,12464,12521,12512]],[[13078,13078],\"mapped\",[12461,12525,12513,12540,12488,12523]],[[13079,13079],\"mapped\",[12461,12525,12527,12483,12488]],[[13080,13080],\"mapped\",[12464,12521,12512]],[[13081,13081],\"mapped\",[12464,12521,12512,12488,12531]],[[13082,13082],\"mapped\",[12463,12523,12476,12452,12525]],[[13083,13083],\"mapped\",[12463,12525,12540,12493]],[[13084,13084],\"mapped\",[12465,12540,12473]],[[13085,13085],\"mapped\",[12467,12523,12490]],[[13086,13086],\"mapped\",[12467,12540,12509]],[[13087,13087],\"mapped\",[12469,12452,12463,12523]],[[13088,13088],\"mapped\",[12469,12531,12481,12540,12512]],[[13089,13089],\"mapped\",[12471,12522,12531,12464]],[[13090,13090],\"mapped\",[12475,12531,12481]],[[13091,13091],\"mapped\",[12475,12531,12488]],[[13092,13092],\"mapped\",[12480,12540,12473]],[[13093,13093],\"mapped\",[12487,12471]],[[13094,13094],\"mapped\",[12489,12523]],[[13095,13095],\"mapped\",[12488,12531]],[[13096,13096],\"mapped\",[12490,12494]],[[13097,13097],\"mapped\",[12494,12483,12488]],[[13098,13098],\"mapped\",[12495,12452,12484]],[[13099,13099],\"mapped\",[12497,12540,12475,12531,12488]],[[13100,13100],\"mapped\",[12497,12540,12484]],[[13101,13101],\"mapped\",[12496,12540,12524,12523]],[[13102,13102],\"mapped\",[12500,12450,12473,12488,12523]],[[13103,13103],\"mapped\",[12500,12463,12523]],[[13104,13104],\"mapped\",[12500,12467]],[[13105,13105],\"mapped\",[12499,12523]],[[13106,13106],\"mapped\",[12501,12449,12521,12483,12489]],[[13107,13107],\"mapped\",[12501,12451,12540,12488]],[[13108,13108],\"mapped\",[12502,12483,12471,12455,12523]],[[13109,13109],\"mapped\",[12501,12521,12531]],[[13110,13110],\"mapped\",[12504,12463,12479,12540,12523]],[[13111,13111],\"mapped\",[12506,12477]],[[13112,13112],\"mapped\",[12506,12491,12498]],[[13113,13113],\"mapped\",[12504,12523,12484]],[[13114,13114],\"mapped\",[12506,12531,12473]],[[13115,13115],\"mapped\",[12506,12540,12472]],[[13116,13116],\"mapped\",[12505,12540,12479]],[[13117,13117],\"mapped\",[12509,12452,12531,12488]],[[13118,13118],\"mapped\",[12508,12523,12488]],[[13119,13119],\"mapped\",[12507,12531]],[[13120,13120],\"mapped\",[12509,12531,12489]],[[13121,13121],\"mapped\",[12507,12540,12523]],[[13122,13122],\"mapped\",[12507,12540,12531]],[[13123,13123],\"mapped\",[12510,12452,12463,12525]],[[13124,13124],\"mapped\",[12510,12452,12523]],[[13125,13125],\"mapped\",[12510,12483,12495]],[[13126,13126],\"mapped\",[12510,12523,12463]],[[13127,13127],\"mapped\",[12510,12531,12471,12519,12531]],[[13128,13128],\"mapped\",[12511,12463,12525,12531]],[[13129,13129],\"mapped\",[12511,12522]],[[13130,13130],\"mapped\",[12511,12522,12496,12540,12523]],[[13131,13131],\"mapped\",[12513,12460]],[[13132,13132],\"mapped\",[12513,12460,12488,12531]],[[13133,13133],\"mapped\",[12513,12540,12488,12523]],[[13134,13134],\"mapped\",[12516,12540,12489]],[[13135,13135],\"mapped\",[12516,12540,12523]],[[13136,13136],\"mapped\",[12518,12450,12531]],[[13137,13137],\"mapped\",[12522,12483,12488,12523]],[[13138,13138],\"mapped\",[12522,12521]],[[13139,13139],\"mapped\",[12523,12500,12540]],[[13140,13140],\"mapped\",[12523,12540,12502,12523]],[[13141,13141],\"mapped\",[12524,12512]],[[13142,13142],\"mapped\",[12524,12531,12488,12466,12531]],[[13143,13143],\"mapped\",[12527,12483,12488]],[[13144,13144],\"mapped\",[48,28857]],[[13145,13145],\"mapped\",[49,28857]],[[13146,13146],\"mapped\",[50,28857]],[[13147,13147],\"mapped\",[51,28857]],[[13148,13148],\"mapped\",[52,28857]],[[13149,13149],\"mapped\",[53,28857]],[[13150,13150],\"mapped\",[54,28857]],[[13151,13151],\"mapped\",[55,28857]],[[13152,13152],\"mapped\",[56,28857]],[[13153,13153],\"mapped\",[57,28857]],[[13154,13154],\"mapped\",[49,48,28857]],[[13155,13155],\"mapped\",[49,49,28857]],[[13156,13156],\"mapped\",[49,50,28857]],[[13157,13157],\"mapped\",[49,51,28857]],[[13158,13158],\"mapped\",[49,52,28857]],[[13159,13159],\"mapped\",[49,53,28857]],[[13160,13160],\"mapped\",[49,54,28857]],[[13161,13161],\"mapped\",[49,55,28857]],[[13162,13162],\"mapped\",[49,56,28857]],[[13163,13163],\"mapped\",[49,57,28857]],[[13164,13164],\"mapped\",[50,48,28857]],[[13165,13165],\"mapped\",[50,49,28857]],[[13166,13166],\"mapped\",[50,50,28857]],[[13167,13167],\"mapped\",[50,51,28857]],[[13168,13168],\"mapped\",[50,52,28857]],[[13169,13169],\"mapped\",[104,112,97]],[[13170,13170],\"mapped\",[100,97
47807]],[[13171,13171],\"mapped\",[97,117]],[[13172,13172],\"mapped\",[98,97,114]],[[13173,13173],\"mapped\",[111,118]],[[13174,13174],\"mapped\",[112,99]],[[13175,13175],\"mapped\",[100,109]],[[13176,13176],\"mapped\",[100,109,50]],[[13177,13177],\"mapped\",[100,109,51]],[[13178,13178],\"mapped\",[105,117]],[[13179,13179],\"mapped\",[24179,25104]],[[13180,13180],\"mapped\",[26157,21644]],[[13181,13181],\"mapped\",[22823,27491]],[[13182,13182],\"mapped\",[26126,27835]],[[13183,13183],\"mapped\",[26666,24335,20250,31038]],[[13184,13184],\"mapped\",[112,97]],[[13185,13185],\"mapped\",[110,97]],[[13186,13186],\"mapped\",[956,97]],[[13187,13187],\"mapped\",[109,97]],[[13188,13188],\"mapped\",[107,97]],[[13189,13189],\"mapped\",[107,98]],[[13190,13190],\"mapped\",[109,98]],[[13191,13191],\"mapped\",[103,98]],[[13192,13192],\"mapped\",[99,97,108]],[[13193,13193],\"mapped\",[107,99,97,108]],[[13194,13194],\"mapped\",[112,102]],[[13195,13195],\"mapped\",[110,102]],[[13196,13196],\"mapped\",[956,102]],[[13197,13197],\"mapped\",[956,103]],[[13198,13198],\"mapped\",[109,103]],[[13199,13199],\"mapped\",[107,103]],[[13200,13200],\"mapped\",[104,122]],[[13201,13201],\"mapped\",[107,104,122]],[[13202,13202],\"mapped\",[109,104,122]],[[13203,13203],\"mapped\",[103,104,122]],[[13204,13204],\"mapped\",[116,104,122]],[[13205,13205],\"mapped\",[956,108]],[[13206,13206],\"mapped\",[109,108]],[[13207,13207],\"mapped\",[100,108]],[[13208,13208],\"mapped\",[107,108]],[[13209,13209],\"mapped\",[102,109]],[[13210,13210],\"mapped\",[110,109]],[[13211,13211],\"mapped\",[956,109]],[[13212,13212],\"mapped\",[109,109]],[[13213,13213],\"mapped\",[99,109]],[[13214,13214],\"mapped\",[107,109]],[[13215,13215],\"mapped\",[109,109,50]],[[13216,13216],\"mapped\",[99,109,50]],[[13217,13217],\"mapped\",[109,50]],[[13218,13218],\"mapped\",[107,109,50]],[[13219,13219],\"mapped\",[109,109,51]],[[13220,13220],\"mapped\",[99,109,51]],[[13221,13221],\"mapped\",[109,51]],[[13222,13222],\"mapped\",[107,109,51]],[[13223,13223],\"mapped\",[109,8725,115]],[[13224,13224],\"mapped\",[109,8725,115,50]],[[13225,13225],\"mapped\",[112,97]],[[13226,13226],\"mapped\",[107,112,97]],[[13227,13227],\"mapped\",[109,112,97]],[[13228,13228],\"mapped\",[103,112,97]],[[13229,13229],\"mapped\",[114,97,100]],[[13230,13230],\"mapped\",[114,97,100,8725,115]],[[13231,13231],\"mapped\",[114,97,100,8725,115,50]],[[13232,13232],\"mapped\",[112,115]],[[13233,13233],\"mapped\",[110,115]],[[13234,13234],\"mapped\",[956,115]],[[13235,13235],\"mapped\",[109,115]],[[13236,13236],\"mapped\",[112,118]],[[13237,13237],\"mapped\",[110,118]],[[13238,13238],\"mapped\",[956,118]],[[13239,13239],\"mapped\",[109,118]],[[13240,13240],\"mapped\",[107,118]],[[13241,13241],\"mapped\",[109,118]],[[13242,13242],\"mapped\",[112,119]],[[13243,13243],\"mapped\",[110,119]],[[13244,13244],\"mapped\",[956,119]],[[13245,13245],\"mapped\",[109,119]],[[13246,13246],\"mapped\",[107,119]],[[13247,13247],\"mapped\",[109,119]],[[13248,13248],\"mapped\",[107,969]],[[13249,13249],\"mapped\",[109,969]],[[13250,13250],\"disallowed\"],[[13251,13251],\"mapped\",[98,113]],[[13252,13252],\"mapped\",[99,99]],[[13253,13253],\"mapped\",[99,100]],[[13254,13254],\"mapped\",[99,8725,107,103]],[[13255,13255],\"disallowed\"],[[13256,13256],\"mapped\",[100,98]],[[13257,13257],\"mapped\",[103,121]],[[13258,13258],\"mapped\",[104,97]],[[13259,13259],\"mapped\",[104,112]],[[13260,13260],\"mapped\",[105,110]],[[13261,13261],\"mapped\",[107,107]],[[13262,13262],\"mapped\",[107,109]],[[13263,13263],\"mapped\",[107,116]],[[13264,13264],\"mapped\",[108,109]],[[13265,13265],\"mapped\",[108,110]],[[13266,13266],\"mapped\",[108,111,103]],[[13267,13267],\"mapped\",[108,120]],[[13268,13268],\"mapped\",[109,98]],[[13269,13269],\"mapped\",[109,105,108]],[[13270,13270],\"mapped\",[109,111,108]],[[13271,13271],\"mapped\",[112,104]],[[13272,13272],\"disallowed\"],[[13273,13273],\"mapped\",[112,112,109]],[[13274,13274],\"mapped\",[112,114]],[[13275,13275],\"mapped\",[115,114]],[[13276,13276],\"mapped\",[115,118]],[[13277,13277],\"mapped\",[119,98]],[[13278,13278],\"mapped\",[118,8725,109]],[[13279,13279],\"mapped\",[97,8725,109]],[[13280,13280],\"mapped\",[49,26085]],[[13281,13281],\"mapped\",[50,26085]],[[13282,13282],\"mapped\",[51,26085]],[[13283,13283],\"mapped\",[52,26085]],[[13284,13284],\"mapped\",[53,26085]],[[13285,13285],\"mapped\",[54,26085]],[[13286,13286],\"mapped\",[55,26085]],[[13287,13287],\"mapped\",[56,26085]],[[13288,13288],\"mapped\",[57,26085]],[[13289,13289],\"mapped\",[49,48,26085]],[[13290,13290],\"mapped\",[49,49,26085]],[[13291,13291],\"mapped\",[49,50,26085]],[[13292,13292],\"mapped\",[49,51,26085]],[[13293,13293],\"mapped\",[49,52,26085]],[[13294,13294],\"mapped\",[49,53,26085]],[[13295,13295],\"mapped\",[49,54,26085]],[[13296,13296],\"mapped\",[49,55,26085]],[[13297,13297],\"mapped\",[49,56,26085]],[[13298,13298],\"mapped\",[49,57,26085]],[[13299,13299],\"mapped\",[50,48,26085]],[[13300,13300],\"mapped\",[50,49,26085]],[[13301,13301],\"mapped\",[50,50,26085]],[[13302,13302],\"mapped\",[50,51,26085]],[[13303,13303],\"mapped\",[50,52,26085]],[[13304,13304],\"mapped\",[50,53,26085]],[[13305,13305],\"mapped\",[50,54,26085]],[[13306,13306],\"mapped\",[50,55,26085]],[[13307,13307],\"mapped\",[50,56,26085]],[[13308,13308],\"mapped\",[50,57,26085]],[[13309,13309],\"mapped\",[51,48,26085]],[[13310,13310],\"mapped\",[51,49,26085]],[[13311,13311],\"mapped\",[103,97,108]],[[13312,19893],\"valid\"],[[19894,19903],\"disallowed\"],[[19904,19967],\"valid\",[],\"NV8\"],[[19968,40869],\"valid\"],[[40870,40891],\"valid\"],[[40892,40899],\"valid\"],[[40900,40907],\"valid\"],[[40908,40908],\"valid\"],[[40909,40917],\"valid\"],[[40918,40959],\"disallowed\"],[[40960,42124],\"valid\"],[[42125,42127],\"disallowed\"],[[42128,42145],\"valid\",[],\"NV8\"],[[42146,42147],\"valid\",[],\"NV8\"],[[42148,42163],\"valid\",[],\"NV8\"],[[42164,42164],\"valid\",[],\"NV8\"],[[42165,42176],\"valid\",[],\"NV8\"],[[42177,42177],\"valid\",[],\"NV8\"],[[42178,42180],\"valid\",[],\"NV8\"],[[42181,42181],\"valid\",[],\"NV8\"],[[42182,42182],\"valid\",[],\"NV8\"],[[42183,42191],\"disallowed\"],[[42192,42237],\"valid\"],[[42238,42239],\"valid\",[],\"NV8\"],[[42240,42508],\"valid\"],[[42509,42511],\"valid\",[],\"NV8\"],[[42512,42539],\"valid\"],[[42540,42559],\"disallowed\"],[[42560,42560],\"mapped\",[42561]],[[42561,42561],\"valid\"],[[42562,42562],\"mapped\",[42563]],[[42563,42563],\"valid\"],[[42564,42564],\"mapped\",[42565]],[[42565,42565],\"valid\"],[[42566,42566],\"mapped\",[42567]],[[42567,42567],\"valid\"],[[42568,42568],\"mapped\",[42569]],[[42569,42569],\"valid\"],[[42570,42570],\"mapped\",[42571]],[[42571,42571],\"valid\"],[[42572,42572],\"mapped\",[42573]],[[42573,42573],\"valid\"],[[42574,42574],\"mapped\",[42575]],[[42575,42575],\"valid\"],[[42576,42576],\"mapped\",[42577]],[[42577,42577],\"valid\"],[[42578,42578],\"mapped\",[42579]],[[42579,42579],\"valid\"],[[42580,42580],\"mapped\",[42581]],[[42581,42581],\"valid\"],[[42582,42582],\"mapped\",[42583]],[[42583,42583],\"valid\"],[[42584,42584],\"mapped\",[42585]],[[42585,42585],\"valid\"],[[42586,42586],\"mapped\",[42587]],[[42587,42587],\"valid\"],[[42588,42588],\"mapped\",[42589]],[[42589,42589],\"valid\"],[[42590,42590],\"mapped\",[42591]],[[42591,42591],\"valid\"],[[42592,42592],\"mapped\",[42593]],[[42593,42593],\"valid\"],[[42594,42594],\"mapped\",[42595]],[[42595,42595],\"valid\"],[[42596,42596],\"mapped\",[42597]],[[42597,42597],\"valid\"],[[42598,42598],\"mapped\",[42599]],[[42599,42599],\"valid\"],[[42600,42600],\"mapped\",[42601]],[[42601,42601],\"valid\"],[[42602,42602],\"mapped\",[42603]],[[42603,42603],\"valid\"],[[42604,42604],\"mapped\",[42605]],[[42605,42607],\"valid\"],[[42608,42611],\"valid\",[],\"NV8\"],[[42612,42619],\"valid\"],[[42620,42621],\"valid\"],[[42622,42622],\"valid\",[],\"NV8\"],[[42623,42623],\"valid\"],[[42624,42624],\"mapped\",[42625]],[[42625,42625],\"valid\"],[[42626,42626],\"mapped\",[42627]],[[42627,42627],\"valid\"],[[42628,42628],\"mapped\",[42629]],[[42629,42629],\"valid\"],[[42630,42630],\"mapped\",[42631]],[[42631,42631],\"valid\"],[[42632,42632],\"mapped\",[42633]],[[42633,42633],\"valid\"],[[42634,42634],\"mapped\",[42635]],[[42635,42635],\"valid\"],[[42636,42636],\"mapped\",[42637]],[[42637,42637],\"valid\"],[[42638,42638],\"mapped\",[42639]],[[42639,42639],\"valid\"],[[42640,42640],\"mapped\",[42641]],[[42641,42641],\"valid\"],[[42642,42642],\"mapped\",[42643]],[[42643,42643],\"valid\"],[[42644,42644],\"mapped\",[42645]],[[42645,42645],\"valid\"],[[42646,42646],\"mapped\",[42647]],[[42647,42647],\"valid\"],[[42648,42648],\"mapped\",[42649]
47807],[[42649,42649],\"valid\"],[[42650,42650],\"mapped\",[42651]],[[42651,42651],\"valid\"],[[42652,42652],\"mapped\",[1098]],[[42653,42653],\"mapped\",[1100]],[[42654,42654],\"valid\"],[[42655,42655],\"valid\"],[[42656,42725],\"valid\"],[[42726,42735],\"valid\",[],\"NV8\"],[[42736,42737],\"valid\"],[[42738,42743],\"valid\",[],\"NV8\"],[[42744,42751],\"disallowed\"],[[42752,42774],\"valid\",[],\"NV8\"],[[42775,42778],\"valid\"],[[42779,42783],\"valid\"],[[42784,42785],\"valid\",[],\"NV8\"],[[42786,42786],\"mapped\",[42787]],[[42787,42787],\"valid\"],[[42788,42788],\"mapped\",[42789]],[[42789,42789],\"valid\"],[[42790,42790],\"mapped\",[42791]],[[42791,42791],\"valid\"],[[42792,42792],\"mapped\",[42793]],[[42793,42793],\"valid\"],[[42794,42794],\"mapped\",[42795]],[[42795,42795],\"valid\"],[[42796,42796],\"mapped\",[42797]],[[42797,42797],\"valid\"],[[42798,42798],\"mapped\",[42799]],[[42799,42801],\"valid\"],[[42802,42802],\"mapped\",[42803]],[[42803,42803],\"valid\"],[[42804,42804],\"mapped\",[42805]],[[42805,42805],\"valid\"],[[42806,42806],\"mapped\",[42807]],[[42807,42807],\"valid\"],[[42808,42808],\"mapped\",[42809]],[[42809,42809],\"valid\"],[[42810,42810],\"mapped\",[42811]],[[42811,42811],\"valid\"],[[42812,42812],\"mapped\",[42813]],[[42813,42813],\"valid\"],[[42814,42814],\"mapped\",[42815]],[[42815,42815],\"valid\"],[[42816,42816],\"mapped\",[42817]],[[42817,42817],\"valid\"],[[42818,42818],\"mapped\",[42819]],[[42819,42819],\"valid\"],[[42820,42820],\"mapped\",[42821]],[[42821,42821],\"valid\"],[[42822,42822],\"mapped\",[42823]],[[42823,42823],\"valid\"],[[42824,42824],\"mapped\",[42825]],[[42825,42825],\"valid\"],[[42826,42826],\"mapped\",[42827]],[[42827,42827],\"valid\"],[[42828,42828],\"mapped\",[42829]],[[42829,42829],\"valid\"],[[42830,42830],\"mapped\",[42831]],[[42831,42831],\"valid\"],[[42832,42832],\"mapped\",[42833]],[[42833,42833],\"valid\"],[[42834,42834],\"mapped\",[42835]],[[42835,42835],\"valid\"],[[42836,42836],\"mapped\",[42837]],[[42837,42837],\"valid\"],[[42838,42838],\"mapped\",[42839]],[[42839,42839],\"valid\"],[[42840,42840],\"mapped\",[42841]],[[42841,42841],\"valid\"],[[42842,42842],\"mapped\",[42843]],[[42843,42843],\"valid\"],[[42844,42844],\"mapped\",[42845]],[[42845,42845],\"valid\"],[[42846,42846],\"mapped\",[42847]],[[42847,42847],\"valid\"],[[42848,42848],\"mapped\",[42849]],[[42849,42849],\"valid\"],[[42850,42850],\"mapped\",[42851]],[[42851,42851],\"valid\"],[[42852,42852],\"mapped\",[42853]],[[42853,42853],\"valid\"],[[42854,42854],\"mapped\",[42855]],[[42855,42855],\"valid\"],[[42856,42856],\"mapped\",[42857]],[[42857,42857],\"valid\"],[[42858,42858],\"mapped\",[42859]],[[42859,42859],\"valid\"],[[42860,42860],\"mapped\",[42861]],[[42861,42861],\"valid\"],[[42862,42862],\"mapped\",[42863]],[[42863,42863],\"valid\"],[[42864,42864],\"mapped\",[42863]],[[42865,42872],\"valid\"],[[42873,42873],\"mapped\",[42874]],[[42874,42874],\"valid\"],[[42875,42875],\"mapped\",[42876]],[[42876,42876],\"valid\"],[[42877,42877],\"mapped\",[7545]],[[42878,42878],\"mapped\",[42879]],[[42879,42879],\"valid\"],[[42880,42880],\"mapped\",[42881]],[[42881,42881],\"valid\"],[[42882,42882],\"mapped\",[42883]],[[42883,42883],\"valid\"],[[42884,42884],\"mapped\",[42885]],[[42885,42885],\"valid\"],[[42886,42886],\"mapped\",[42887]],[[42887,42888],\"valid\"],[[42889,42890],\"valid\",[],\"NV8\"],[[42891,42891],\"mapped\",[42892]],[[42892,42892],\"valid\"],[[42893,42893],\"mapped\",[613]],[[42894,42894],\"valid\"],[[42895,42895],\"valid\"],[[42896,42896],\"mapped\",[42897]],[[42897,42897],\"valid\"],[[42898,42898],\"mapped\",[42899]],[[42899,42899],\"valid\"],[[42900,42901],\"valid\"],[[42902,42902],\"mapped\",[42903]],[[42903,42903],\"valid\"],[[42904,42904],\"mapped\",[42905]],[[42905,42905],\"valid\"],[[42906,42906],\"mapped\",[42907]],[[42907,42907],\"valid\"],[[42908,42908],\"mapped\",[42909]],[[42909,42909],\"valid\"],[[42910,42910],\"mapped\",[42911]],[[42911,42911],\"valid\"],[[42912,42912],\"mapped\",[42913]],[[42913,42913],\"valid\"],[[42914,42914],\"mapped\",[42915]],[[42915,42915],\"valid\"],[[42916,42916],\"mapped\",[42917]],[[42917,42917],\"valid\"],[[42918,42918],\"mapped\",[42919]],[[42919,42919],\"valid\"],[[42920,42920],\"mapped\",[42921]],[[42921,42921],\"valid\"],[[42922,42922],\"mapped\",[614]],[[42923,42923],\"mapped\",[604]],[[42924,42924],\"mapped\",[609]],[[42925,42925],\"mapped\",[620]],[[42926,42927],\"disallowed\"],[[42928,42928],\"mapped\",[670]],[[42929,42929],\"mapped\",[647]],[[42930,42930],\"mapped\",[669]],[[42931,42931],\"mapped\",[43859]],[[42932,42932],\"mapped\",[42933]],[[42933,42933],\"valid\"],[[42934,42934],\"mapped\",[42935]],[[42935,42935],\"valid\"],[[42936,42998],\"disallowed\"],[[42999,42999],\"valid\"],[[43000,43000],\"mapped\",[295]],[[43001,43001],\"mapped\",[339]],[[43
47807002,43002],\"valid\"],[[43003,43007],\"valid\"],[[43008,43047],\"valid\"],[[43048,43051],\"valid\",[],\"NV8\"],[[43052,43055],\"disallowed\"],[[43056,43065],\"valid\",[],\"NV8\"],[[43066,43071],\"disallowed\"],[[43072,43123],\"valid\"],[[43124,43127],\"valid\",[],\"NV8\"],[[43128,43135],\"disallowed\"],[[43136,43204],\"valid\"],[[43205,43213],\"disallowed\"],[[43214,43215],\"valid\",[],\"NV8\"],[[43216,43225],\"valid\"],[[43226,43231],\"disallowed\"],[[43232,43255],\"valid\"],[[43256,43258],\"valid\",[],\"NV8\"],[[43259,43259],\"valid\"],[[43260,43260],\"valid\",[],\"NV8\"],[[43261,43261],\"valid\"],[[43262,43263],\"disallowed\"],[[43264,43309],\"valid\"],[[43310,43311],\"valid\",[],\"NV8\"],[[43312,43347],\"valid\"],[[43348,43358],\"disallowed\"],[[43359,43359],\"valid\",[],\"NV8\"],[[43360,43388],\"valid\",[],\"NV8\"],[[43389,43391],\"disallowed\"],[[43392,43456],\"valid\"],[[43457,43469],\"valid\",[],\"NV8\"],[[43470,43470],\"disallowed\"],[[43471,43481],\"valid\"],[[43482,43485],\"disallowed\"],[[43486,43487],\"valid\",[],\"NV8\"],[[43488,43518],\"valid\"],[[43519,43519],\"disallowed\"],[[43520,43574],\"valid\"],[[43575,43583],\"disallowed\"],[[43584,43597],\"valid\"],[[43598,43599],\"disallowed\"],[[43600,43609],\"valid\"],[[43610,43611],\"disallowed\"],[[43612,43615],\"valid\",[],\"NV8\"],[[43616,43638],\"valid\"],[[43639,43641],\"valid\",[],\"NV8\"],[[43642,43643],\"valid\"],[[43644,43647],\"valid\"],[[43648,43714],\"valid\"],[[43715,43738],\"disallowed\"],[[43739,43741],\"valid\"],[[43742,43743],\"valid\",[],\"NV8\"],[[43744,43759],\"valid\"],[[43760,43761],\"valid\",[],\"NV8\"],[[43762,43766],\"valid\"],[[43767,43776],\"disallowed\"],[[43777,43782],\"valid\"],[[43783,43784],\"disallowed\"],[[43785,43790],\"valid\"],[[43791,43792],\"disallowed\"],[[43793,43798],\"valid\"],[[43799,43807],\"disallowed\"],[[43808,43814],\"valid\"],[[43815,43815],\"disallowed\"],[[43816,43822],\"valid\"],[[43823,43823],\"disallowed\"],[[43824,43866],\"valid\"],[[43867,43867],\"valid\",[],\"NV8\"],[[43868,43868],\"mapped\",[42791]],[[43869,43869],\"mapped\",[43831]],[[43870,43870],\"mapped\",[619]],[[43871,43871],\"mapped\",[43858]],[[43872,43875],\"valid\"],[[43876,43877],\"valid\"],[[43878,43887],\"disallowed\"],[[43888,43888],\"mapped\",[5024]],[[43889,43889],\"mapped\",[5025]],[[43890,43890],\"mapped\",[5026]],[[43891,43891],\"mapped\",[5027]],[[43892,43892],\"mapped\",[5028]],[[43893,43893],\"mapped\",[5029]],[[43894,43894],\"mapped\",[5030]],[[43895,43895],\"mapped\",[5031]],[[43896,43896],\"mapped\",[5032]],[[43897,43897],\"mapped\",[5033]],[[43898,43898],\"mapped\",[5034]],[[43899,43899],\"mapped\",[5035]],[[43900,43900],\"mapped\",[5036]],[[43901,43901],\"mapped\",[5037]],[[43902,43902],\"mapped\",[5038]],[[43903,43903],\"mapped\",[5039]],[[43904,43904],\"mapped\",[5040]],[[43905,43905],\"mapped\",[5041]],[[43906,43906],\"mapped\",[5042]],[[43907,43907],\"mapped\",[5043]],[[43908,43908],\"mapped\",[5044]],[[43909,43909],\"mapped\",[5045]],[[43910,43910],\"mapped\",[5046]],[[43911,43911],\"mapped\",[5047]],[[43912,43912],\"mapped\",[5048]],[[43913,43913],\"mapped\",[5049]],[[43914,43914],\"mapped\",[5050]],[[43915,43915],\"mapped\",[5051]],[[43916,43916],\"mapped\",[5052]],[[43917,43917],\"mapped\",[5053]],[[43918,43918],\"mapped\",[5054]],[[43919,43919],\"mapped\",[5055]],[[43920,43920],\"mapped\",[5056]],[[43921,43921],\"mapped\",[5057]],[[43922,43922],\"mapped\",[5058]],[[43923,43923],\"mapped\",[5059]],[[43924,43924],\"mapped\",[5060]],[[43925,43925],\"mapped\",[5061]],[[43926,43926],\"mapped\",[5062]],[[43927,43927],\"mapped\",[5063]],[[43928,43928],\"mapped\",[5064]],[[43929,43929],\"mapped\",[5065]],[[43930,43930],\"mapped\",[5066]],[[43931,43931],\"mapped\",[5067]],[[43932,43932],\"mapped\",[5068]],[[43933,43933],\"mapped\",[5069]],[[43934,43934],\"mapped\",[5070]],[[43935,43935],\"mapped\",[5071]],[[43936,43936],\"mapped\",[5072]],[[43937,43937],\"mapped\",[5073]],[[43938,43938],\"mapped\",[5074]],[[43939,43939],\"mapped\",[5075]],[[43940,43940],\"mapped\",[5076]],[[43941,43941],\"mapped\",[5077]],[[43942,43942],\"mapped\",[5078]],[[43943,43943],\"mapped\",[5079]],[[43944,43944],\"mapped\",[5080]],[[43945,43945],\"mapped\",[5081]],[[43946,43946],\"mapped\",[5082]],[[43947,43947],\"mapped\",[5083]],[[43948,43948],\"mapped\",[5084]],[[43949,43949],\"mapped\",[5085]],[[43950,43950],\"mapped\",[5086]],[[43951,43951],\"mapped\",[5087]],[[43952,43952],\"mapped\",[5088]],[[43953,43953],\"mapped\",[5089]],[[43954,43954],\"mapped\",[5090]],[[43955,43955],\"mapped\",[5091]],[[43956,43956],\"mapped\",[5092]],[[43957,43957],\"mapped\",[5093]],[[43958,43958],\"mapped\",[5094]],[[43959,43959],\"mapped\",[5095]],[[43960,43960],\"mapped\",[5096]],[[43961,43961],\"mapped\",[5097]],[[43962,43962],\"mapped\",[5098]],[[43963,43963],\"mapped\",[5099]],[[43964,43964],\"mapped\",[5100]],[[43965,43965],\"mapped\",[5101]],[[43966,43966],\"mapped\",[5102]],[[43967,43967],\"mapped\",[5103]],[[43968,44010],\"valid\"],[[44011,44011],\"valid\",[],\"NV8\"],[[44012,44013],\"valid\"],[[44014,44015],\"disallowed\"],[[44016,44025],\"valid\"],[[44026,44031],\"disallowed\"],[[44032,55203],\"valid\"],[[55204,55215],\"disallowed\"],[[55216,55238],\"valid\",[],\"NV8\"],[[55239,55242],\"disallowed\"],[[55243,5
478075291],\"valid\",[],\"NV8\"],[[55292,55295],\"disallowed\"],[[55296,57343],\"disallowed\"],[[57344,63743],\"disallowed\"],[[63744,63744],\"mapped\",[35912]],[[63745,63745],\"mapped\",[26356]],[[63746,63746],\"mapped\",[36554]],[[63747,63747],\"mapped\",[36040]],[[63748,63748],\"mapped\",[28369]],[[63749,63749],\"mapped\",[20018]],[[63750,63750],\"mapped\",[21477]],[[63751,63752],\"mapped\",[40860]],[[63753,63753],\"mapped\",[22865]],[[63754,63754],\"mapped\",[37329]],[[63755,63755],\"mapped\",[21895]],[[63756,63756],\"mapped\",[22856]],[[63757,63757],\"mapped\",[25078]],[[63758,63758],\"mapped\",[30313]],[[63759,63759],\"mapped\",[32645]],[[63760,63760],\"mapped\",[34367]],[[63761,63761],\"mapped\",[34746]],[[63762,63762],\"mapped\",[35064]],[[63763,63763],\"mapped\",[37007]],[[63764,63764],\"mapped\",[27138]],[[63765,63765],\"mapped\",[27931]],[[63766,63766],\"mapped\",[28889]],[[63767,63767],\"mapped\",[29662]],[[63768,63768],\"mapped\",[33853]],[[63769,63769],\"mapped\",[37226]],[[63770,63770],\"mapped\",[39409]],[[63771,63771],\"mapped\",[20098]],[[63772,63772],\"mapped\",[21365]],[[63773,63773],\"mapped\",[27396]],[[63774,63774],\"mapped\",[29211]],[[63775,63775],\"mapped\",[34349]],[[63776,63776],\"mapped\",[40478]],[[63777,63777],\"mapped\",[23888]],[[63778,63778],\"mapped\",[28651]],[[63779,63779],\"mapped\",[34253]],[[63780,63780],\"mapped\",[35172]],[[63781,63781],\"mapped\",[25289]],[[63782,63782],\"mapped\",[33240]],[[63783,63783],\"mapped\",[34847]],[[63784,63784],\"mapped\",[24266]],[[63785,63785],\"mapped\",[26391]],[[63786,63786],\"mapped\",[28010]],[[63787,63787],\"mapped\",[29436]],[[63788,63788],\"mapped\",[37070]],[[63789,63789],\"mapped\",[20358]],[[63790,63790],\"mapped\",[20919]],[[63791,63791],\"mapped\",[21214]],[[63792,63792],\"mapped\",[25796]],[[63793,63793],\"mapped\",[27347]],[[63794,63794],\"mapped\",[29200]],[[63795,63795],\"mapped\",[30439]],[[63796,63796],\"mapped\",[32769]],[[63797,63797],\"mapped\",[34310]],[[63798,63798],\"mapped\",[34396]],[[63799,63799],\"mapped\",[36335]],[[63800,63800],\"mapped\",[38706]],[[63801,63801],\"mapped\",[39791]],[[63802,63802],\"mapped\",[40442]],[[63803,63803],\"mapped\",[30860]],[[63804,63804],\"mapped\",[31103]],[[63805,63805],\"mapped\",[32160]],[[63806,63806],\"mapped\",[33737]],[[63807,63807],\"mapped\",[37636]],[[63808,63808],\"mapped\",[40575]],[[63809,63809],\"mapped\",[35542]],[[63810,63810],\"mapped\",[22751]],[[63811,63811],\"mapped\",[24324]],[[63812,63812],\"mapped\",[31840]],[[63813,63813],\"mapped\",[32894]],[[63814,63814],\"mapped\",[29282]],[[63815,63815],\"mapped\",[30922]],[[63816,63816],\"mapped\",[36034]],[[63817,63817],\"mapped\",[38647]],[[63818,63818],\"mapped\",[22744]],[[63819,63819],\"mapped\",[23650]],[[63820,63820],\"mapped\",[27155]],[[63821,63821],\"mapped\",[28122]],[[63822,63822],\"mapped\",[28431]],[[63823,63823],\"mapped\",[32047]],[[63824,63824],\"mapped\",[32311]],[[63825,63825],\"mapped\",[38475]],[[63826,63826],\"mapped\",[21202]],[[63827,63827],\"mapped\",[32907]],[[63828,63828],\"mapped\",[20956]],[[63829,63829],\"mapped\",[20940]],[[63830,63830],\"mapped\",[31260]],[[63831,63831],\"mapped\",[32190]],[[63832,63832],\"mapped\",[33777]],[[63833,63833],\"mapped\",[38517]],[[63834,63834],\"mapped\",[35712]],[[63835,63835],\"mapped\",[25295]],[[63836,63836],\"mapped\",[27138]],[[63837,63837],\"mapped\",[35582]],[[63838,63838],\"mapped\",[20025]],[[63839,63839],\"mapped\",[23527]],[[63840,63840],\"mapped\",[24594]],[[63841,63841],\"mapped\",[29575]],[[63842,63842],\"mapped\",[30064]],[[63843,63843],\"mapped\",[21271]],[[63844,63844],\"mapped\",[30971]],[[63845,63845],\"mapped\",[20415]],[[63846,63846],\"mapped\",[24489]],[[63847,63847],\"mapped\",[19981]],[[63848,63848],\"mapped\",[27852]],[[63849,63849],\"mapped\",[25976]],[[63850,63850],\"mapped\",[32034]],[[63851,63851],\"mapped\",[21443]],[[63852,63852],\"mapped\",[22622]],[[63853,63853],\"mapped\",[30465]],[[63854,63854],\"mapped\",[33865]],[[63855,63855],\"mapped\",[35498]],[[63856,63856],\"mapped\",[27578]],[[63857,63857],\"mapped\",[36784]],[[63858,63858],\"mapped\",[27784]],[[63859,63859],\"mapped\",[25342]],[[63860,63860],\"mapped\",[33509]],[[63861,63861],\"mapped\",[25504]],[[63862,63862],\"mapped\",[30053]],[[63863,63863],\"mapped\",[20142]],[[63864,63864],\"mapped\",[20841]],[[63865,63865],\"mapped\",[20937]],[[63866,63866],\"mapped\",[26753]],[[63867,63867],\"mapped\",[31975]],[[63868,638
4780768],\"mapped\",[33391]],[[63869,63869],\"mapped\",[35538]],[[63870,63870],\"mapped\",[37327]],[[63871,63871],\"mapped\",[21237]],[[63872,63872],\"mapped\",[21570]],[[63873,63873],\"mapped\",[22899]],[[63874,63874],\"mapped\",[24300]],[[63875,63875],\"mapped\",[26053]],[[63876,63876],\"mapped\",[28670]],[[63877,63877],\"mapped\",[31018]],[[63878,63878],\"mapped\",[38317]],[[63879,63879],\"mapped\",[39530]],[[63880,63880],\"mapped\",[40599]],[[63881,63881],\"mapped\",[40654]],[[63882,63882],\"mapped\",[21147]],[[63883,63883],\"mapped\",[26310]],[[63884,63884],\"mapped\",[27511]],[[63885,63885],\"mapped\",[36706]],[[63886,63886],\"mapped\",[24180]],[[63887,63887],\"mapped\",[24976]],[[63888,63888],\"mapped\",[25088]],[[63889,63889],\"mapped\",[25754]],[[63890,63890],\"mapped\",[28451]],[[63891,63891],\"mapped\",[29001]],[[63892,63892],\"mapped\",[29833]],[[63893,63893],\"mapped\",[31178]],[[63894,63894],\"mapped\",[32244]],[[63895,63895],\"mapped\",[32879]],[[63896,63896],\"mapped\",[36646]],[[63897,63897],\"mapped\",[34030]],[[63898,63898],\"mapped\",[36899]],[[63899,63899],\"mapped\",[37706]],[[63900,63900],\"mapped\",[21015]],[[63901,63901],\"mapped\",[21155]],[[63902,63902],\"mapped\",[21693]],[[63903,63903],\"mapped\",[28872]],[[63904,63904],\"mapped\",[35010]],[[63905,63905],\"mapped\",[35498]],[[63906,63906],\"mapped\",[24265]],[[63907,63907],\"mapped\",[24565]],[[63908,63908],\"mapped\",[25467]],[[63909,63909],\"mapped\",[27566]],[[63910,63910],\"mapped\",[31806]],[[63911,63911],\"mapped\",[29557]],[[63912,63912],\"mapped\",[20196]],[[63913,63913],\"mapped\",[22265]],[[63914,63914],\"mapped\",[23527]],[[63915,63915],\"mapped\",[23994]],[[63916,63916],\"mapped\",[24604]],[[63917,63917],\"mapped\",[29618]],[[63918,63918],\"mapped\",[29801]],[[63919,63919],\"mapped\",[32666]],[[63920,63920],\"mapped\",[32838]],[[63921,63921],\"mapped\",[37428]],[[63922,63922],\"mapped\",[38646]],[[63923,63923],\"mapped\",[38728]],[[63924,63924],\"mapped\",[38936]],[[63925,63925],\"mapped\",[20363]],[[63926,63926],\"mapped\",[31150]],[[63927,63927],\"mapped\",[37300]],[[63928,63928],\"mapped\",[38584]],[[63929,63929],\"mapped\",[24801]],[[63930,63930],\"mapped\",[20102]],[[63931,63931],\"mapped\",[20698]],[[63932,63932],\"mapped\",[23534]],[[63933,63933],\"mapped\",[23615]],[[63934,63934],\"mapped\",[26009]],[[63935,63935],\"mapped\",[27138]],[[63936,63936],\"mapped\",[29134]],[[63937,63937],\"mapped\",[30274]],[[63938,63938],\"mapped\",[34044]],[[63939,63939],\"mapped\",[36988]],[[63940,63940],\"mapped\",[40845]],[[63941,63941],\"mapped\",[26248]],[[63942,63942],\"mapped\",[38446]],[[63943,63943],\"mapped\",[21129]],[[63944,63944],\"mapped\",[26491]],[[63945,63945],\"mapped\",[26611]],[[63946,63946],\"mapped\",[27969]],[[63947,63947],\"mapped\",[28316]],[[63948,63948],\"mapped\",[29705]],[[63949,63949],\"mapped\",[30041]],[[63950,63950],\"mapped\",[30827]],[[63951,63951],\"mapped\",[32016]],[[63952,63952],\"mapped\",[39006]],[[63953,63953],\"mapped\",[20845]],[[63954,63954],\"mapped\",[25134]],[[63955,63955],\"mapped\",[38520]],[[63956,63956],\"mapped\",[20523]],[[63957,63957],\"mapped\",[23833]],[[63958,63958],\"mapped\",[28138]],[[63959,63959],\"mapped\",[36650]],[[63960,63960],\"mapped\",[24459]],[[63961,63961],\"mapped\",[24900]],[[63962,63962],\"mapped\",[26647]],[[63963,63963],\"mapped\",[29575]],[[63964,63964],\"mapped\",[38534]],[[63965,63965],\"mapped\",[21033]],[[63966,63966],\"mapped\",[21519]],[[63967,63967],\"mapped\",[23653]],[[63968,63968],\"mapped\",[26131]],[[63969,63969],\"mapped\",[26446]],[[63970,63970],\"mapped\",[26792]],[[63971,63971],\"mapped\",[27877]],[[63972,63972],\"mapped\",[29702]],[[63973,63973],\"mapped\",[30178]],[[63974,63974],\"mapped\",[32633]],[[63975,63975],\"mapped\",[35023]],[[63976,63976],\"mapped\",[35041]],[[63977,63977],\"mapped\",[37324]],[[63978,63978],\"mapped\",[38626]],[[63979,63979],\"mapped\",[21311]],[[63980,63980],\"mapped\",[28346]],[[63981,63981],\"mapped\",[21533]],[[63982,63982],\"mapped\",[29136]],[[63983,63983],\"mapped\",[29848]],[[63984,63984],\"mapped\",[34298]],[[63985,63985],\"mapped\",[38563]],[[63986,63986],\"mapped\",[40023]],[[63987,63987],\"mapped\",[40607]],[[63988,63988],\"mapped\",[26519]],[[63989,63989],\"mapped\",[28107]],[[63990,63990],\"mapped\",[33256]],[[63991,63991],\"mapped\",[31435]],[[63992,63992],\"mapped\",[31520]],[[63993,63993],\"mapped\",[31890]],[[63994,63994],\"mapped\",[29376]],[[63995,63995],\"mapped\",[28825]],[[63996,63996],\"mapped\",[35672]],[[63997,63997],\"mapped\",[20160]],[[63998,63998],\"mapped\",[33590]],[[63999,63999],\"mapped\",[21050]],[[64000,64000],\"mapped\",[20999]],[[64001,64001],\"mapped\",[24230]],[[64002,64002],\"mapped\",[25299]],[[64003,64003],\"mapped\",[31958]],[[64004,64004],\"mapped\",[23429]],[[64005,64005],\"mapped\",[27934]],[[64006,64006],\"mapped\",[26292]],[[64007,64007],\"mapped\",[36667]],[[64008,64008],\"mapped\",[34892]],[[64009,64009],\"mapped\",[38477]],[[64010,64010],\"mapped\",[35211]],[[64011,64011],\"mapped\",[24275]],[[64012,64012],\"mapped\",[20800]],[[64013,64013],\"mapped\",[21952]],[[64014,64015],\"valid\"],[[64016,64016],\"mapped\",[22618]],[[64017,64017],\"valid\"],[[64018,64018],\"mapped\",[26228]],[[64019,64020],\"valid\"],[[64021,64021],\"mapped\",[20958]],[[64022,64022],\"mapped\",[29482]],[[64023,64023],\"mapped\",[30410]],[[64024,64024],\"mapped\",[31036]],[[64025,64025],\"mapped\",[31070]],[[64026,64026],\"mapped\",[31077]],[[64027,64027],\"mapped\",[31119]],[[64028,64028],\"mapped\",[38742]],[[64029,64029],\"mapped\",[31934]],[[64030,64030],\"mapped\",[32701]],[[64031,64031],\"valid\"],[[64032,64032],\"mapped\",[34322]],[[64033,64033],\"valid\"],[[64034,64034],\"mapped\",[35576]],[[64035,64036],\"valid\"],[[64037,64037],\"mapped\",[36920]],[[64038,64038],\"mapped\",[37117]],[[64039,64041],\"valid\"],[[64042,64042],\"mapped\",[39151]],[[64043,64043],\"mapped\",[39164]],[[64044,64044],\"mapped\",[39208]],[[64045,64045],\"mapped\",[40372]],[[64046,64046],\"mapped\",[37086]],[[64047,64047],\"mapped\",[38583]
47807],[[64048,64048],\"mapped\",[20398]],[[64049,64049],\"mapped\",[20711]],[[64050,64050],\"mapped\",[20813]],[[64051,64051],\"mapped\",[21193]],[[64052,64052],\"mapped\",[21220]],[[64053,64053],\"mapped\",[21329]],[[64054,64054],\"mapped\",[21917]],[[64055,64055],\"mapped\",[22022]],[[64056,64056],\"mapped\",[22120]],[[64057,64057],\"mapped\",[22592]],[[64058,64058],\"mapped\",[22696]],[[64059,64059],\"mapped\",[23652]],[[64060,64060],\"mapped\",[23662]],[[64061,64061],\"mapped\",[24724]],[[64062,64062],\"mapped\",[24936]],[[64063,64063],\"mapped\",[24974]],[[64064,64064],\"mapped\",[25074]],[[64065,64065],\"mapped\",[25935]],[[64066,64066],\"mapped\",[26082]],[[64067,64067],\"mapped\",[26257]],[[64068,64068],\"mapped\",[26757]],[[64069,64069],\"mapped\",[28023]],[[64070,64070],\"mapped\",[28186]],[[64071,64071],\"mapped\",[28450]],[[64072,64072],\"mapped\",[29038]],[[64073,64073],\"mapped\",[29227]],[[64074,64074],\"mapped\",[29730]],[[64075,64075],\"mapped\",[30865]],[[64076,64076],\"mapped\",[31038]],[[64077,64077],\"mapped\",[31049]],[[64078,64078],\"mapped\",[31048]],[[64079,64079],\"mapped\",[31056]],[[64080,64080],\"mapped\",[31062]],[[64081,64081],\"mapped\",[31069]],[[64082,64082],\"mapped\",[31117]],[[64083,64083],\"mapped\",[31118]],[[64084,64084],\"mapped\",[31296]],[[64085,64085],\"mapped\",[31361]],[[64086,64086],\"mapped\",[31680]],[[64087,64087],\"mapped\",[32244]],[[64088,64088],\"mapped\",[32265]],[[64089,64089],\"mapped\",[32321]],[[64090,64090],\"mapped\",[32626]],[[64091,64091],\"mapped\",[32773]],[[64092,64092],\"mapped\",[33261]],[[64093,64094],\"mapped\",[33401]],[[64095,64095],\"mapped\",[33879]],[[64096,64096],\"mapped\",[35088]],[[64097,64097],\"mapped\",[35222]],[[64098,64098],\"mapped\",[35585]],[[64099,64099],\"mapped\",[35641]],[[64100,64100],\"mapped\",[36051]],[[64101,64101],\"mapped\",[36104]],[[64102,64102],\"mapped\",[36790]],[[64103,64103],\"mapped\",[36920]],[[64104,64104],\"mapped\",[38627]],[[64105,64105],\"mapped\",[38911]],[[64106,64106],\"mapped\",[38971]],[[64107,64107],\"mapped\",[24693]],[[64108,64108],\"mapped\",[148206]],[[64109,64109],\"mapped\",[33304]],[[64110,64111],\"disallowed\"],[[64112,64112],\"mapped\",[20006]],[[64113,64113],\"mapped\",[20917]],[[64114,64114],\"mapped\",[20840]],[[64115,64115],\"mapped\",[20352]],[[64116,64116],\"mapped\",[20805]],[[64117,64117],\"mapped\",[20864]],[[64118,64118],\"mapped\",[21191]],[[64119,64119],\"mapped\",[21242]],[[64120,64120],\"mapped\",[21917]],[[64121,64121],\"mapped\",[21845]],[[64122,64122],\"mapped\",[21913]],[[64123,64123],\"mapped\",[21986]],[[64124,64124],\"mapped\",[22618]],[[64125,64125],\"mapped\",[22707]],[[64126,64126],\"mapped\",[22852]],[[64127,64127],\"mapped\",[22868]],[[64128,64128],\"mapped\",[23138]],[[64129,64129],\"mapped\",[23336]],[[64130,64130],\"mapped\",[24274]],[[64131,64131],\"mapped\",[24281]],[[64132,64132],\"mapped\",[24425]],[[64133,64133],\"mapped\",[24493]],[[64134,64134],\"mapped\",[24792]],[[64135,64135],\"mapped\",[24910]],[[64136,64136],\"mapped\",[24840]],[[64137,64137],\"mapped\",[24974]],[[64138,64138],\"mapped\",[24928]],[[64139,64139],\"mapped\",[25074]],[[64140,64140],\"mapped\",[25140]],[[64141,64141],\"mapped\",[25540]],[[64142,64142],\"mapped\",[25628]],[[64143,64143],\"mapped\",[25682]],[[64144,64144],\"mapped\",[25942]],[[64145,64145],\"mapped\",[26228]],[[64146,64146],\"mapped\",[26391]],[[64147,64147],\"mapped\",[26395]],[[64148,64148],\"mapped\",[26454]],[[64149,64149],\"mapped\",[27513]],[[64150,64150],\"mapped\",[27578]],[[64151,64151],\"mapped\",[27969]],[[64152,64152],\"mapped\",[28379]],[[64153,64153],\"mapped\",[28363]],[[64154,64154],\"mapped\",[28450]],[[64155,64155],\"mapped\",[28702]],[[64156,64156],\"mapped\",[29038]],[[64157,64157],\"mapped\",[30631]],[[64158,64158],\"mapped\",[29237]],[[64159,64159],\"mapped\",[29359]],[[64160,64160],\"mapped\",[29482]],[[64161,64161],\"mapped\",[29809]],[[64162,64162],\"mapped\",[29958]],[[64163,64163],\"mapped\",[30011]],[[64164,64164],\"mapped\",[30237]],[[64165,64165],\"mapped\",[30239]],[[64166,64166],\"mapped\",[30410]],[[64167,64167],\"mapped\",[30427]],[[64168,64168],\"mapped\",[30452]],[[64169,64169],\"mapped\",[30538]],[[64170,64170],\"mapped\",[30528]],[[64171,64171],\"mapped\",[30924]],[[64172,64172],\"mapped\",[31409]],[[64173,64173],\"mapped\",[31680]],[[64174,64174],\"mapped\",[31867]],[[64175,64175],\"mapped\",[32091]],[[64176,64176],\"mapped\",[32244]],[[64177,64177],\"mapped\",[32574]],[[64178,64178],\"mapped\",[32773]],[[64179,64179],\"mapped\",[33618]],[[64180,64180],\"mapped\",[33775]],[[64181,64181],\"mapped\",[34681]],[[64182,64182],\"mapped\",[35137]],[[64183,64183],\"mapped\",[35206]],[[64184,64184],\"mapped\",[35222]],[[64185,64185],\"mapped\",[35519]],[[64186,64186],\"mapped\",[35576]],[[64187,64187],\"mapped\",[35531]],[[64188,64188],\"mapped\",[35585]],[[64189,64189],\"mapped\",[35582]],[[64190,64190],\"mapped\",[35565]],[[64191,64191],\"mapped\",[35641]],[[64192,64192],\"mapped\",[35722]],[[64193,64193],\"mapped\",[36104]],[[64194,64194],\"mapped\",[36664]],[[64195,64195],\"mapped\",[36978]],[[64196,64196],\"mapped\",[37273]],[[64197,64197],\"mapped\",[37494]],[[64198,64198],\"mapped\",[38524]],[[64199,64199],\"mapped\",[38627]],[[64200,64200
47807],\"mapped\",[38742]],[[64201,64201],\"mapped\",[38875]],[[64202,64202],\"mapped\",[38911]],[[64203,64203],\"mapped\",[38923]],[[64204,64204],\"mapped\",[38971]],[[64205,64205],\"mapped\",[39698]],[[64206,64206],\"mapped\",[40860]],[[64207,64207],\"mapped\",[141386]],[[64208,64208],\"mapped\",[141380]],[[64209,64209],\"mapped\",[144341]],[[64210,64210],\"mapped\",[15261]],[[64211,64211],\"mapped\",[16408]],[[64212,64212],\"mapped\",[16441]],[[64213,64213],\"mapped\",[152137]],[[64214,64214],\"mapped\",[154832]],[[64215,64215],\"mapped\",[163539]],[[64216,64216],\"mapped\",[40771]],[[64217,64217],\"mapped\",[40846]],[[64218,64255],\"disallowed\"],[[64256,64256],\"mapped\",[102,102]],[[64257,64257],\"mapped\",[102,105]],[[64258,64258],\"mapped\",[102,108]],[[64259,64259],\"mapped\",[102,102,105]],[[64260,64260],\"mapped\",[102,102,108]],[[64261,64262],\"mapped\",[115,116]],[[64263,64274],\"disallowed\"],[[64275,64275],\"mapped\",[1396,1398]],[[64276,64276],\"mapped\",[1396,1381]],[[64277,64277],\"mapped\",[1396,1387]],[[64278,64278],\"mapped\",[1406,1398]],[[64279,64279],\"mapped\",[1396,1389]],[[64280,64284],\"disallowed\"],[[64285,64285],\"mapped\",[1497,1460]],[[64286,64286],\"valid\"],[[64287,64287],\"mapped\",[1522,1463]],[[64288,64288],\"mapped\",[1506]],[[64289,64289],\"mapped\",[1488]],[[64290,64290],\"mapped\",[1491]],[[64291,64291],\"mapped\",[1492]],[[64292,64292],\"mapped\",[1499]],[[64293,64293],\"mapped\",[1500]],[[64294,64294],\"mapped\",[1501]],[[64295,64295],\"mapped\",[1512]],[[64296,64296],\"mapped\",[1514]],[[64297,64297],\"disallowed_STD3_mapped\",[43]],[[64298,64298],\"mapped\",[1513,1473]],[[64299,64299],\"mapped\",[1513,1474]],[[64300,64300],\"mapped\",[1513,1468,1473]],[[64301,64301],\"mapped\",[1513,1468,1474]],[[64302,64302],\"mapped\",[1488,1463]],[[64303,64303],\"mapped\",[1488,1464]],[[64304,64304],\"mapped\",[1488,1468]],[[64305,64305],\"mapped\",[1489,1468]],[[64306,64306],\"mapped\",[1490,1468]],[[64307,64307],\"mapped\",[1491,1468]],[[64308,64308],\"mapped\",[1492,1468]],[[64309,64309],\"mapped\",[1493,1468]],[[64310,64310],\"mapped\",[1494,1468]],[[64311,64311],\"disallowed\"],[[64312,64312],\"mapped\",[1496,1468]],[[64313,64313],\"mapped\",[1497,1468]],[[64314,64314],\"mapped\",[1498,1468]],[[64315,64315],\"mapped\",[1499,1468]],[[64316,64316],\"mapped\",[1500,1468]],[[64317,64317],\"disallowed\"],[[64318,64318],\"mapped\",[1502,1468]],[[64319,64319],\"disallowed\"],[[64320,64320],\"mapped\",[1504,1468]],[[64321,64321],\"mapped\",[1505,1468]],[[64322,64322],\"disallowed\"],[[64323,64323],\"mapped\",[1507,1468]],[[64324,64324],\"mapped\",[1508,1468]],[[64325,64325],\"disallowed\"],[[64326,64326],\"mapped\",[1510,1468]],[[64327,64327],\"mapped\",[1511,1468]],[[64328,64328],\"mapped\",[1512,1468]],[[64329,64329],\"mapped\",[1513,1468]],[[64330,64330],\"mapped\",[1514,1468]],[[64331,64331],\"mapped\",[1493,1465]],[[64332,64332],\"mapped\",[1489,1471]],[[64333,64333],\"mapped\",[1499,1471]],[[64334,64334],\"mapped\",[1508,1471]],[[64335,64335],\"mapped\",[1488,1500]],[[64336,64337],\"mapped\",[1649]],[[64338,64341],\"mapped\",[1659]],[[64342,64345],\"mapped\",[1662]],[[64346,64349],\"mapped\",[1664]],[[64350,64353],\"mapped\",[1658]],[[64354,64357],\"mapped\",[1663]],[[64358,64361],\"mapped\",[1657]],[[64362,64365],\"mapped\",[1700]],[[64366,64369],\"mapped\",[1702]],[[64370,64373],\"mapped\",[1668]],[[64374,64377],\"mapped\",[1667]],[[64378,64381],\"mapped\",[1670]],[[64382,64385],\"mapped\",[1671]],[[64386,64387],\"mapped\",[1677]],[[64388,64389],\"mapped\",[1676]],[[64390,64391],\"mapped\",[1678]],[[64392,64393],\"mapped\",[1672]],[[64394,64395],\"mapped\",[1688]],[[64396,64397],\"mapped\",[1681]],[[64398,64401],\"mapped\",[1705]],[[64402,64405],\"mapped\",[1711]],[[64406,64409],\"mapped\",[1715]],[[64410,64413],\"mapped\",[1713]],[[64414,64415],\"mapped\",[1722]],[[64416,64419],\"mapped\",[1723]],[[64420,64421],\"mapped\",[1728]],[[64422,64425],\"mapped\",[1729]],[[64426,64429],\"mapped\",[1726]],[[64430,64431],\"mapped\",[1746]],[[64432,64433],\"mapped\",[1747]],[[64434,64449],\"valid\",[],\"NV8\"],[[64450,64466],\"disallowed\"],[[64467,64470],\"mapped\",[1709]],[[64471,64472],\"mapped\",[1735]],[[64473,64474],\"mapped\",[1734]],[[64475,64476],\"mapped\",[1736]],[[64477,64477],\"mapped\",[1735,1652]],[[64478,64479],\"mapped\",[1739]],[[64480,64481],\"mapped\",[1733]],[[64482,64483],\"mapped\",[1737]],[[64484,64487],\"mapped\",[1744]],[[64488,64489],\"mapped\",[1609]],[[64490,64491],\"mapped\",[1574,1575]],[[64492,64493],\"mapped\",[1574,1749]],[[64494,64495],\"mapped\",[1574,1608]],[[64496,64497],\"mapped\",[1574,1735]],[[64498,64499],\"mapped\",[1574,1734]],[[64500,64501],\"mapped\",[1574,1736]],[[64502,64504],\"mapped\",[1574,1744]],[[6450
478075,64507],\"mapped\",[1574,1609]],[[64508,64511],\"mapped\",[1740]],[[64512,64512],\"mapped\",[1574,1580]],[[64513,64513],\"mapped\",[1574,1581]],[[64514,64514],\"mapped\",[1574,1605]],[[64515,64515],\"mapped\",[1574,1609]],[[64516,64516],\"mapped\",[1574,1610]],[[64517,64517],\"mapped\",[1576,1580]],[[64518,64518],\"mapped\",[1576,1581]],[[64519,64519],\"mapped\",[1576,1582]],[[64520,64520],\"mapped\",[1576,1605]],[[64521,64521],\"mapped\",[1576,1609]],[[64522,64522],\"mapped\",[1576,1610]],[[64523,64523],\"mapped\",[1578,1580]],[[64524,64524],\"mapped\",[1578,1581]],[[64525,64525],\"mapped\",[1578,1582]],[[64526,64526],\"mapped\",[1578,1605]],[[64527,64527],\"mapped\",[1578,1609]],[[64528,64528],\"mapped\",[1578,1610]],[[64529,64529],\"mapped\",[1579,1580]],[[64530,64530],\"mapped\",[1579,1605]],[[64531,64531],\"mapped\",[1579,1609]],[[64532,64532],\"mapped\",[1579,1610]],[[64533,64533],\"mapped\",[1580,1581]],[[64534,64534],\"mapped\",[1580,1605]],[[64535,64535],\"mapped\",[1581,1580]],[[64536,64536],\"mapped\",[1581,1605]],[[64537,64537],\"mapped\",[1582,1580]],[[64538,64538],\"mapped\",[1582,1581]],[[64539,64539],\"mapped\",[1582,1605]],[[64540,64540],\"mapped\",[1587,1580]],[[64541,64541],\"mapped\",[1587,1581]],[[64542,64542],\"mapped\",[1587,1582]],[[64543,64543],\"mapped\",[1587,1605]],[[64544,64544],\"mapped\",[1589,1581]],[[64545,64545],\"mapped\",[1589,1605]],[[64546,64546],\"mapped\",[1590,1580]],[[64547,64547],\"mapped\",[1590,1581]],[[64548,64548],\"mapped\",[1590,1582]],[[64549,64549],\"mapped\",[1590,1605]],[[64550,64550],\"mapped\",[1591,1581]],[[64551,64551],\"mapped\",[1591,1605]],[[64552,64552],\"mapped\",[1592,1605]],[[64553,64553],\"mapped\",[1593,1580]],[[64554,64554],\"mapped\",[1593,1605]],[[64555,64555],\"mapped\",[1594,1580]],[[64556,64556],\"mapped\",[1594,1605]],[[64557,64557],\"mapped\",[1601,1580]],[[64558,64558],\"mapped\",[1601,1581]],[[64559,64559],\"mapped\",[1601,1582]],[[64560,64560],\"mapped\",[1601,1605]],[[64561,64561],\"mapped\",[1601,1609]],[[64562,64562],\"mapped\",[1601,1610]],[[64563,64563],\"mapped\",[1602,1581]],[[64564,64564],\"mapped\",[1602,1605]],[[64565,64565],\"mapped\",[1602,1609]],[[64566,64566],\"mapped\",[1602,1610]],[[64567,64567],\"mapped\",[1603,1575]],[[64568,64568],\"mapped\",[1603,1580]],[[64569,64569],\"mapped\",[1603,1581]],[[64570,64570],\"mapped\",[1603,1582]],[[64571,64571],\"mapped\",[1603,1604]],[[64572,64572],\"mapped\",[1603,1605]],[[64573,64573],\"mapped\",[1603,1609]],[[64574,64574],\"mapped\",[1603,1610]],[[64575,64575],\"mapped\",[1604,1580]],[[64576,64576],\"mapped\",[1604,1581]],[[64577,64577],\"mapped\",[1604,1582]],[[64578,64578],\"mapped\",[1604,1605]],[[64579,64579],\"mapped\",[1604,1609]],[[64580,64580],\"mapped\",[1604,1610]],[[64581,64581],\"mapped\",[1605,1580]],[[64582,64582],\"mapped\",[1605,1581]],[[64583,64583],\"mapped\",[1605,1582]],[[64584,64584],\"mapped\",[1605,1605]],[[64585,64585],\"mapped\",[1605,1609]],[[64586,64586],\"mapped\",[1605,1610]],[[64587,64587],\"mapped\",[1606,1580]],[[64588,64588],\"mapped\",[1606,1581]],[[64589,64589],\"mapped\",[1606,1582]],[[64590,64590],\"mapped\",[1606,1605]],[[64591,64591],\"mapped\",[1606,1609]],[[64592,64592],\"mapped\",[1606,1610]],[[64593,64593],\"mapped\",[1607,1580]],[[64594,64594],\"mapped\",[1607,1605]],[[64595,64595],\"mapped\",[1607,1609]],[[64596,64596],\"mapped\",[1607,1610]],[[64597,64597],\"mapped\",[1610,1580]],[[64598,64598],\"mapped\",[1610,1581]],[[64599,64599],\"mapped\",[1610,1582]],[[64600,64600],\"mapped\",[1610,1605]],[[64601,64601],\"mapped\",[1610,1609]],[[64602,64602],\"mapped\",[1610,1610]],[[64603,64603],\"mapped\",[1584,1648]],[[64604,64604],\"mapped\",[1585,1648]],[[64605,64605],\"mapped\",[1609,1648]],[[64606,64606],\"disallowed_STD3_mapped\",[32,1612,1617]],[[64607,64607],\"disallowed_STD3_mapped\",[32,1613,1617]],[[64608,64608],\"disallowed_STD3_mapped\",[32,1614,1617]],[[64609,64609],\"disallowed_STD3_mapped\",[32,1615,1617]],[[64610,64610],\"disallowed_STD3_mapped\",[32,1616,1617]],[[64611,64611],\"disallowed_STD3_mapped\",[32,1617,1648]],[[64612,64612],\"mapped\",[1574,1585]],[[64613,64613],\"mapped\",[1574,1586]],[[64614,64614],\"mapped\",[1574,1605]],[[64615,64615],\"mapped\",[1574,1606]],[[64616,64616],\"mapped\",[1574,1609]],[[64617,64617],\"mapped\",[1574,1610]],[[64618,64618],\"mapped\",[1576,1585]],[[64619,64619],\"mapped\",[1576,1586]],[[64620,64620],\"mapped\",[1576,1605]],[[64621,64621],\"mapped\",[1576,1606]],[[64622,64622],\"mapped\",[1576,1609]],[[64623,64623],\"mapped\",[1576,1610]],[[64624,64624],\"mapped\",[1578,1585]],[[64625,64625],\"mapped\",[1578,1586]],[[64626,64626],\"mapped\",[1578,1605]],[[64627,64627],\"mapped\",[1578,1606]],[[64628,64628],\"mapped\",[1578,1609]],[[64629,64629],\"mapped\",[1578,1610]],[[64630,64630],\"mapped\",[1579,1585]],[[64631,64631],\"mapped\",[1579,1586]],[[64632,64632],\"mapped\",[1579,1605]],[[64633,64633],\"mapped\",[1579,1606]],[[64634,64634],\"mapped\",[1579,1609]],[[64635,64635],\"mapped\",[1579,1610]],[[64636,64636],\"mapped\",[1601,1609]],[[64637,64637],\"mapped\",[1601,1610]],[[64638,64638],\"mapped\",[1602,1609]],[[64639,64639],\"mapped\",[1602,1610]],[[64640,64640],\"mapped\",[1603,1575]],[[64641,64641],\"mapped\",[1603,1604]],[[64642,64642],\"mapped\",[1603,1605]],[[64643,64643],\"mapped\",[1603,1609]],[[64644,64644],\"mapped\",[1603,1610]],[[64645,64645],\"mapped\",[1604,1605]],[[64646,64646],\"mapped\",[1604,1609]],[[64647,64647],\"mapped\",[1604,1610]],[[64648,64648],\"mapped\",[1605,1575]],[[64649,64649],\"mapped\",[1605,1605]],[[64650,64650],\"mapped\",[1606,1585]],[[64651,64651],\"mapped\",[1606,1586]],[[64652,64652],\"mapped\",[1606,1605]],[[64653,64653],\"mapped\",[1606,1606]],[[64654,64654],\"mapped\",[1606,1609]],[[64655,64655],\"mapped\",[1606,1610]],[[64656,64656],\"mapped\",[1609,1648]],[[64657,64657],\"mapped\",[1610,1585]],[[64658,64658],\"mapped\",[1610,1586]],[[64659,64659],\"mapped\",[1610,1605]],[[64660,64660],\"mapped\",[1610,1606]],[[64661,64661],\"mapped\",[1610,1609]],[[64662,64662],\"mapped\",[1610,1610]],[[64663,64663],\"mapped\",[1574,1580]],[[64664,64664],\"mapped\",[1574,1581]],[[64665,64665],\"mapped\",[1574,1582]],[[64666,64666],\"mapped\",[1574,1605]],[[64667,64667],\"mapped\",[1574,1607]],[[64668,64668],\"mapped\",[1576,1580]],[[64669,64669],\"mapped\",[1576,1581]],[[64670,64670],\"mapped\",[1576,1582]],[[64671,64671],\"mapped\",[1576,1605]],[[64672,64672],\"mapped\",[1576,1607]],[[64673,64673],\"mapped\",[1578,1580]],[[64674,64674],\"mapped\",[1578,1581]],[[64675,64675],\"mapped\",[1578,1582]],[[64676,64676],\"mapped\",[1578,1605]],[[64677,64677],\"mapped\",[1578,1607]],[[64678,64678],\"mapped\",[1579,1605]],[[64679,64679],\"mapped\",[1580,1581]],[[64680,64680],\"mapped\",[1580,1605]],[[64681,64681],\"mapped\",[1581,1580]],[[64682,64682],\"mapped\",[1581,1605]],[[64683,64683],\"mapped\",[1582,1580]],[[64684,64684],\"mapped\",[1582,1605]],[[64685,64685],\"mapped\",[1587,
478071580]],[[64686,64686],\"mapped\",[1587,1581]],[[64687,64687],\"mapped\",[1587,1582]],[[64688,64688],\"mapped\",[1587,1605]],[[64689,64689],\"mapped\",[1589,1581]],[[64690,64690],\"mapped\",[1589,1582]],[[64691,64691],\"mapped\",[1589,1605]],[[64692,64692],\"mapped\",[1590,1580]],[[64693,64693],\"mapped\",[1590,1581]],[[64694,64694],\"mapped\",[1590,1582]],[[64695,64695],\"mapped\",[1590,1605]],[[64696,64696],\"mapped\",[1591,1581]],[[64697,64697],\"mapped\",[1592,1605]],[[64698,64698],\"mapped\",[1593,1580]],[[64699,64699],\"mapped\",[1593,1605]],[[64700,64700],\"mapped\",[1594,1580]],[[64701,64701],\"mapped\",[1594,1605]],[[64702,64702],\"mapped\",[1601,1580]],[[64703,64703],\"mapped\",[1601,1581]],[[64704,64704],\"mapped\",[1601,1582]],[[64705,64705],\"mapped\",[1601,1605]],[[64706,64706],\"mapped\",[1602,1581]],[[64707,64707],\"mapped\",[1602,1605]],[[64708,64708],\"mapped\",[1603,1580]],[[64709,64709],\"mapped\",[1603,1581]],[[64710,64710],\"mapped\",[1603,1582]],[[64711,64711],\"mapped\",[1603,1604]],[[64712,64712],\"mapped\",[1603,1605]],[[64713,64713],\"mapped\",[1604,1580]],[[64714,64714],\"mapped\",[1604,1581]],[[64715,64715],\"mapped\",[1604,1582]],[[64716,64716],\"mapped\",[1604,1605]],[[64717,64717],\"mapped\",[1604,1607]],[[64718,64718],\"mapped\",[1605,1580]],[[64719,64719],\"mapped\",[1605,1581]],[[64720,64720],\"mapped\",[1605,1582]],[[64721,64721],\"mapped\",[1605,1605]],[[64722,64722],\"mapped\",[1606,1580]],[[64723,64723],\"mapped\",[1606,1581]],[[64724,64724],\"mapped\",[1606,1582]],[[64725,64725],\"mapped\",[1606,1605]],[[64726,64726],\"mapped\",[1606,1607]],[[64727,64727],\"mapped\",[1607,1580]],[[64728,64728],\"mapped\",[1607,1605]],[[64729,64729],\"mapped\",[1607,1648]],[[64730,64730],\"mapped\",[1610,1580]],[[64731,64731],\"mapped\",[1610,1581]],[[64732,64732],\"mapped\",[1610,1582]],[[64733,64733],\"mapped\",[1610,1605]],[[64734,64734],\"mapped\",[1610,1607]],[[64735,64735],\"mapped\",[1574,1605]],[[64736,64736],\"mapped\",[1574,1607]],[[64737,64737],\"mapped\",[1576,1605]],[[64738,64738],\"mapped\",[1576,1607]],[[64739,64739],\"mapped\",[1578,1605]],[[64740,64740],\"mapped\",[1578,1607]],[[64741,64741],\"mapped\",[1579,1605]],[[64742,64742],\"mapped\",[1579,1607]],[[64743,64743],\"mapped\",[1587,1605]],[[64744,64744],\"mapped\",[1587,1607]],[[64745,64745],\"mapped\",[1588,1605]],[[64746,64746],\"mapped\",[1588,1607]],[[64747,64747],\"mapped\",[1603,1604]],[[64748,64748],\"mapped\",[1603,1605]],[[64749,64749],\"mapped\",[1604,1605]],[[64750,64750],\"mapped\",[1606,1605]],[[64751,64751],\"mapped\",[1606,1607]],[[64752,64752],\"mapped\",[1610,1605]],[[64753,64753],\"mapped\",[1610,1607]],[[64754,64754],\"mapped\",[1600,1614,1617]],[[64755,64755],\"mapped\",[1600,1615,1617]],[[64756,64756],\"mapped\",[1600,1616,1617]],[[64757,64757],\"mapped\",[1591,1609]],[[64758,64758],\"mapped\",[1591,1610]],[[64759,64759],\"mapped\",[1593,1609]],[[64760,64760],\"mapped\",[1593,1610]],[[64761,64761],\"mapped\",[1594,1609]],[[64762,64762],\"mapped\",[1594,1610]],[[64763,64763],\"mapped\",[1587,1609]],[[64764,64764],\"mapped\",[1587,1610]],[[64765,64765],\"mapped\",[1588,1609]],[[64766,64766],\"mapped\",[1588,1610]],[[64767,64767],\"mapped\",[1581,1609]],[[64768,64768],\"mapped\",[1581,1610]],[[64769,64769],\"mapped\",[1580,1609]],[[64770,64770],\"mapped\",[1580,1610]],[[64771,64771],\"mapped\",[1582,1609]],[[64772,64772],\"mapped\",[1582,1610]],[[64773,64773],\"mapped\",[1589,1609]],[[64774,64774],\"mapped\",[1589,1610]],[[64775,64775],\"mapped\",[1590,1609]],[[64776,64776],\"mapped\",[1590,1610]],[[64777,64777],\"mapped\",[1588,1580]],[[64778,64778],\"mapped\",[1588,1581]],[[64779,64779],\"mapped\",[1588,1582]],[[64780,64780],\"mapped\",[1588,1605]],[[64781,64781],\"mapped\",[1588,1585]],[[64782,64782],\"mapped\",[1587,1585]],[[64783,64783],\"mapped\",[1589,1585]],[[64784,64784],\"mapped\",[1590,1585]],[[64785,64785],\"mapped\",[1591,1609]],[[64786,64786],\"mapped\",[1591,1610]],[[64787,64787],\"mapped\",[1593,1609]],[[64788,64788],\"mapped\",[1593,1610]],[[64789,64789],\"mapped\",[1594,1609]],[[64790,64790],\"mapped\",[1594,1610]],[[64791,64791],\"mapped\",[1587,
478071609]],[[64792,64792],\"mapped\",[1587,1610]],[[64793,64793],\"mapped\",[1588,1609]],[[64794,64794],\"mapped\",[1588,1610]],[[64795,64795],\"mapped\",[1581,1609]],[[64796,64796],\"mapped\",[1581,1610]],[[64797,64797],\"mapped\",[1580,1609]],[[64798,64798],\"mapped\",[1580,1610]],[[64799,64799],\"mapped\",[1582,1609]],[[64800,64800],\"mapped\",[1582,1610]],[[64801,64801],\"mapped\",[1589,1609]],[[64802,64802],\"mapped\",[1589,1610]],[[64803,64803],\"mapped\",[1590,1609]],[[64804,64804],\"mapped\",[1590,1610]],[[64805,64805],\"mapped\",[1588,1580]],[[64806,64806],\"mapped\",[1588,1581]],[[64807,64807],\"mapped\",[1588,1582]],[[64808,64808],\"mapped\",[1588,1605]],[[64809,64809],\"mapped\",[1588,1585]],[[64810,64810],\"mapped\",[1587,1585]],[[64811,64811],\"mapped\",[1589,1585]],[[64812,64812],\"mapped\",[1590,1585]],[[64813,64813],\"mapped\",[1588,1580]],[[64814,64814],\"mapped\",[1588,1581]],[[64815,64815],\"mapped\",[1588,1582]],[[64816,64816],\"mapped\",[1588,1605]],[[64817,64817],\"mapped\",[1587,1607]],[[64818,64818],\"mapped\",[1588,1607]],[[64819,64819],\"mapped\",[1591,1605]],[[64820,64820],\"mapped\",[1587,1580]],[[64821,64821],\"mapped\",[1587,1581]],[[64822,64822],\"mapped\",[1587,1582]],[[64823,64823],\"mapped\",[1588,1580]],[[64824,64824],\"mapped\",[1588,1581]],[[64825,64825],\"mapped\",[1588,1582]],[[64826,64826],\"mapped\",[1591,1605]],[[64827,64827],\"mapped\",[1592,1605]],[[64828,64829],\"mapped\",[1575,1611]],[[64830,64831],\"valid\",[],\"NV8\"],[[64832,64847],\"disallowed\"],[[64848,64848],\"mapped\",[1578,1580,1605]],[[64849,64850],\"mapped\",[1578,1581,1580]],[[64851,64851],\"mapped\",[1578,1581,1605]],[[64852,64852],\"mapped\",[1578,1582,1605]],[[64853,64853],\"mapped\",[1578,1605,1580]],[[64854,64854],\"mapped\",[1578,1605,1581]],[[64855,64855],\"mapped\",[1578,1605,1582]],[[64856,64857],\"mapped\",[1580,1605,1581]],[[64858,64858],\"mapped\",[1581,1605,1610]],[[64859,64859],\"mapped\",[1581,1605,1609]],[[64860,64860],\"mapped\",[1587,1581,1580]],[[64861,64861],\"mapped\",[1587,1580,1581]],[[64862,64862],\"mapped\",[1587,1580,1609]],[[64863,64864],\"mapped\",[1587,1605,1581]],[[64865,64865],\"mapped\",[1587,1605,1580]],[[64866,64867],\"mapped\",[1587,1605,1605]],[[64868,64869],\"mapped\",[1589,1581,1581]],[[64870,64870],\"mapped\",[1589,1605,1605]],[[64871,64872],\"mapped\",[1588,1581,1605]],[[64873,64873],\"mapped\",[1588,1580,1610]],[[64874,64875],\"mapped\",[1588,1605,1582]],[[64876,64877],\"mapped\",[1588,1605,1605]],[[64878,64878],\"mapped\",[1590,1581,1609]],[[64879,64880],\"mapped\",[1590,1582,1605]],[[64881,64882],\"mapped\",[1591,1605,1581]],[[64883,64883],\"mapped\",[1591,1605,1605]],[[64884,64884],\"mapped\",[1591,1605,1610]],[[64885,64885],\"mapped\",[1593,1580,1605]],[[64886,64887],\"mapped\",[1593,1605,1605]],[[64888,64888],\"mapped\",[1593,1605,1609]],[[64889,64889],\"mapped\",[1594,1605,1605]],[[64890,64890],\"mapped\",[1594,1605,1610]],[[64891,64891],\"mapped\",[1594,1605,1609]],[[64892,64893],\"mapped\",[1601,1582,1605]],[[64894,64894],\"mapped\",[1602,1605,1581]],[[64895,64895],\"mapped\",[1602,1605,1605]],[[64896,64896],\"mapped\",[1604,1581,1605]],[[64897,64897],\"mapped\",[1604,1581,1610]],[[64898,64898],\"mapped\",[1604,1581,1609]],[[64899,64900],\"mapped\",[1604,1580,1580]],[[64901,64902],\"mapped\",[1604,1582,1605]],[[64903,64904],\"mapped\",[1604,1605,1581]],[[64905,64905],\"mapped\",[1605,1581,1580]],[[64906,64906],\"mapped\",[1605,1581,1605]],[[64907,64907],\"mapped\",[1605,1581,1610]],[[64908,64908],\"mapped\",[1605,1580,1581]],[[64909,64909],\"mapped\",[1605,1580,1605]],[[64910,64910],\"mapped\",[1605,1582,1580]],[[64911,64911],\"mapped\",[1605,1582,1605]],[[64912,64913],\"disallowed\"],[[64914,64914],\"mapped\",[1605,1580,1582]],[[64915,64915],\"mapped\",[1607,1605,1580]],[[64916,64916],\"mapped\",[1607,1605,1605]],[[64917,64917],\"mapped\",[1606,1581,1605]],[[64918,64918],\"mapped\",[1606,1581,1609]],[[64919,64920],\"mapped\",[1606,1580,1605]],[[64921,64921],\"mapped\",[1606,1580,1609]],[[64922,64922],\"mapped\",[1606,1605,1610]],[[64923,64923],\"mapped\",[1606,1605,1609]],[[64924,64925],\"mapped\",[1610,1605,1605]],[[64926,64926],\"mapped\",[1576,1582,1610]],[[64927,64927],\"mapped\",[1578,1580,1610]],[[64928,64928],\"mapped\",[1578,1580,1609]],[[64929,64929],\"mapped\",[1578,1582,1610]],[[64930,64930],\"mapped\",[1578,1582,1609]],[[64931,64931],\"mapped\",[1578,1605,1610]],[[64932,64932],\"mapped\",[1578,1605,1609]],[[64933,64933],\"mapped\",[1580,1605,1610]],[[64934,64934],\"mapped\",[1580,1581,1609]],[[64935,64935],\"mapped\",[1580,1605,1609]],[[64936,64936],\"mapped\",[1587,
478071582,1609]],[[64937,64937],\"mapped\",[1589,1581,1610]],[[64938,64938],\"mapped\",[1588,1581,1610]],[[64939,64939],\"mapped\",[1590,1581,1610]],[[64940,64940],\"mapped\",[1604,1580,1610]],[[64941,64941],\"mapped\",[1604,1605,1610]],[[64942,64942],\"mapped\",[1610,1581,1610]],[[64943,64943],\"mapped\",[1610,1580,1610]],[[64944,64944],\"mapped\",[1610,1605,1610]],[[64945,64945],\"mapped\",[1605,1605,1610]],[[64946,64946],\"mapped\",[1602,1605,1610]],[[64947,64947],\"mapped\",[1606,1581,1610]],[[64948,64948],\"mapped\",[1602,1605,1581]],[[64949,64949],\"mapped\",[1604,1581,1605]],[[64950,64950],\"mapped\",[1593,1605,1610]],[[64951,64951],\"mapped\",[1603,1605,1610]],[[64952,64952],\"mapped\",[1606,1580,1581]],[[64953,64953],\"mapped\",[1605,1582,1610]],[[64954,64954],\"mapped\",[1604,1580,1605]],[[64955,64955],\"mapped\",[1603,1605,1605]],[[64956,64956],\"mapped\",[1604,1580,1605]],[[64957,64957],\"mapped\",[1606,1580,1581]],[[64958,64958],\"mapped\",[1580,1581,1610]],[[64959,64959],\"mapped\",[1581,1580,1610]],[[64960,64960],\"mapped\",[1605,1580,1610]],[[64961,64961],\"mapped\",[1601,1605,1610]],[[64962,64962],\"mapped\",[1576,1581,1610]],[[64963,64963],\"mapped\",[1603,1605,1605]],[[64964,64964],\"mapped\",[1593,1580,1605]],[[64965,64965],\"mapped\",[1589,1605,1605]],[[64966,64966],\"mapped\",[1587,1582,1610]],[[64967,64967],\"mapped\",[1606,1580,1610]],[[64968,64975],\"disallowed\"],[[64976,65007],\"disallowed\"],[[65008,65008],\"mapped\",[1589,1604,1746]],[[65009,65009],\"mapped\",[1602,1604,1746]],[[65010,65010],\"mapped\",[1575,1604,1604,1607]],[[65011,65011],\"mapped\",[1575,1603,1576,1585]],[[65012,65012],\"mapped\",[1605,1581,1605,1583]],[[65013,65013],\"mapped\",[1589,1604,1593,1605]],[[65014,65014],\"mapped\",[1585,1587,1608,1604]],[[65015,65015],\"mapped\",[1593,1604,1610,1607]],[[65016,65016],\"mapped\",[1608,1587,1604,1605]],[[65017,65017],\"mapped\",[1589,1604,1609]],[[65018,65018],\"disallowed_STD3_mapped\",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],\"disallowed_STD3_mapped\",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],\"mapped\",[1585,1740,1575,1604]],[[65021,65021],\"valid\",[],\"NV8\"],[[65022,65023],\"disallowed\"],[[65024,65039],\"ignored\"],[[65040,65040],\"disallowed_STD3_mapped\",[44]],[[65041,65041],\"mapped\",[12289]],[[65042,65042],\"disallowed\"],[[65043,65043],\"disallowed_STD3_mapped\",[58]],[[65044,65044],\"disallowed_STD3_mapped\",[59]],[[65045,65045],\"disallowed_STD3_mapped\",[33]],[[65046,65046],\"disallowed_STD3_mapped\",[63]],[[65047,65047],\"mapped\",[12310]],[[65048,65048],\"mapped\",[12311]],[[65049,65049],\"disallowed\"],[[65050,65055],\"disallowed\"],[[65056,65059],\"valid\"],[[65060,65062],\"valid\"],[[65063,65069],\"valid\"],[[65070,65071],\"valid\"],[[65072,65072],\"disallowed\"],[[65073,65073],\"mapped\",[8212]],[[65074,65074],\"mapped\",[8211]],[[65075,65076],\"disallowed_STD3_mapped\",[95]],[[65077,65077],\"disallowed_STD3_mapped\",[40]],[[65078,65078],\"disallowed_STD3_mapped\",[41]],[[65079,65079],\"disallowed_STD3_mapped\",[123]],[[65080,65080],\"disallowed_STD3_mapped\",[125]],[[65081,65081],\"mapped\",[12308]],[[65082,65082],\"mapped\",[12309]],[[65083,65083],\"mapped\",[12304]],[[65084,65084],\"mapped\",[12305]],[[65085,65085],\"mapped\",[12298]],[[65086,65086],\"mapped\",[12299]],[[65087,65087],\"mapped\",[12296]],[[65088,65088],\"mapped\",[12297]],[[65089,65089],\"mapped\",[12300]],[[65090,65090],\"mapped\",[12301]],[[65091,65091],\"mapped\",[12302]],[[65092,65092],\"mapped\",[12303]],[[65093,65094],\"valid\",[],\"NV8\"],[[65095,65095],\"disallowed_STD3_mapped\",[91]],[[65096,65096],\"disallowed_STD3_mapped\",[93]],[[65097,65100],\"disallowed_STD3_mapped\",[32,773]],[[65101,65103],\"disallowed_STD3_mapped\",[95]],[[65104,65104],\"disallowed_STD3_mapped\",[44]],[[65105,65105],\"mapped\",[12289]],[[65106,65106],\"disallowed\"],[[65107,65107],\"disallowed\"],[[65108,65108],\"disallowed_STD3_mapped\",[59]],[[65109,65109],\"disallowed_STD3_mapped\",[58]],[[65110,65110],\"disallowed_STD3_mapped\",[63]],[[65111,65111],\"disallowed_STD3_mapped\",[33]],[[65112,65112],\"mapped\",[8212]],[[65113,65113],\"disallowed_STD3_mapped\",[40]],[[65114,65114],\"disallowed_STD3_mapped\",[41]],[[65115,65115],\"disallowed_STD3_mapped\",[123]],[[65116,65116],\"disallowed_STD3_mapped\",[125]],[[65117,65117],\"mapped\",[12308]],[[65118,65118],\"mapped\",[12309]],[[65119,65119],\"disallowed_STD3_mapped\",[35]],[[65120,65120],\"disallowed_STD3_mapped\",[38]],[[65121,65121],\"disallowed_STD3_mapped\",[42]],[[65122,65122],\"disallowed_STD3_mapped\",[43]],[[65123,65123],\"mapped\",[45]],[[65124,65124],\"disallowed_STD3_mapped\",[60]],[[65125,65125],\"disallowed_STD3_mapped\",[62]],[[65126,65126],\"disallowed_STD3_mapped\",[61]],[[65127,65127],\"disallowed\"],[[65128,65128],\"disallowed_STD3_mapped\",[92]],[[65129,65129],\"disallowed_STD3_mapped\",[36]],[[65130,65130],\"disallowed_STD3_mapped\",[37]],[[65131,65131],\"disallowed_STD3_mapped\",[64]],[[65132,65135],\"disallowed\"],[[65136,65136],\"disallowed_STD3_mapped\",[32,1611]],[[65137,65137],\"mapped\",[1600,1611]],[[65138,65138],\"disallowed_STD3_mapped\",[32,1612]],[[65139,65139],\"valid\"],[[65140,65140],\"disallowed_STD3_mapped\",[32,1613]],[[65141,65141],\"disallowed\"],[[65142,65142],\"disallowed_STD3_mapped\",[32,1614]],[[65143,65143],\"mapped\",[1600,1614]],[[65144,65144],\"disallowed_STD3_mapped\",[32,1615]],[[65145,65145],\"mapped\",[1600,1615]],[[65146,65146],\"disallowed_STD3_mapped\",[32,1616]],[[65147,65147],\"mapped\",[1600,1616]],[[65148,65148],\"disallowed_STD3_mapped\",[32,1617]],[[65149,65149],\"mapped\",[1600,1617]],[[65150,65150],\"disallowed_STD3_mapped\",[32,1618]],[[65151,65151],\"mapped\",[1600,1618]],[[65152,65152],\"mapped\",[1569]],[[65153,65154],\"mapped\",[1570]],[[65155,65156],\"mapped\",[1571]],[[65157,65158],\"mapped\",[1572]],[[65159,65160],\"mapped\",[1573]],[[65161,65164],\"mapped\",[1574]],[[65165,65166],\"mapped\",[1575]],[[65167,65170],\"mapped\",[1576]],[[65171,65172],\"mapped\",[1577]],[[65173,65176],\"mapped\",[1578]],[[65177,65180],\"mapped\",[1579]],[[65181,65184],\"mapped\",[1580]],[[65185,65188],\"mapped\",[1581]],[[65189,65192],\"mapped\",[1582]],[[65193,65194],\"mapped\",[1583]],[[65195,65196],\"mapped\",[1584]],[[65197,65198],\"mapped\",[1585]],[[65199,65200],\"mapped\",[1586]],[[65201,65204],\"mapped\",[1587]],[[65205,65208],\"mapped\",[1588]],[[65209,65212],\"mapped\",[1589]],[[65213,65216],\"mapped\",[1590]],[[65217,65220],\"mapped\",[1591]],[[65221,65224],\"mapped\",[1592]],[[65225,65228],\"mapped\",[1593]],[[65229,65232],\"mapped\",[1594]],[[65233,65236],\"mapped\",[1601]],[[65237,65240],\"mapped\",[1602]],[[65241,65244],\"mapped\",[1603]],[[65245,65248],\"mapped\",[1604]],[[65249,65252],\"mapped\",[1605]],[[65253,65256],\"mapped\",[1606]],[[65257,65260],\"mapped\",[1607]],[[65261,65262],\"mapped\",[1608]],[[65263,65264],\"mapped\",[1609]],[[65265,652
4780768],\"mapped\",[1610]],[[65269,65270],\"mapped\",[1604,1570]],[[65271,65272],\"mapped\",[1604,1571]],[[65273,65274],\"mapped\",[1604,1573]],[[65275,65276],\"mapped\",[1604,1575]],[[65277,65278],\"disallowed\"],[[65279,65279],\"ignored\"],[[65280,65280],\"disallowed\"],[[65281,65281],\"disallowed_STD3_mapped\",[33]],[[65282,65282],\"disallowed_STD3_mapped\",[34]],[[65283,65283],\"disallowed_STD3_mapped\",[35]],[[65284,65284],\"disallowed_STD3_mapped\",[36]],[[65285,65285],\"disallowed_STD3_mapped\",[37]],[[65286,65286],\"disallowed_STD3_mapped\",[38]],[[65287,65287],\"disallowed_STD3_mapped\",[39]],[[65288,65288],\"disallowed_STD3_mapped\",[40]],[[65289,65289],\"disallowed_STD3_mapped\",[41]],[[65290,65290],\"disallowed_STD3_mapped\",[42]],[[65291,65291],\"disallowed_STD3_mapped\",[43]],[[65292,65292],\"disallowed_STD3_mapped\",[44]],[[65293,65293],\"mapped\",[45]],[[65294,65294],\"mapped\",[46]],[[65295,65295],\"disallowed_STD3_mapped\",[47]],[[65296,65296],\"mapped\",[48]],[[65297,65297],\"mapped\",[49]],[[65298,65298],\"mapped\",[50]],[[65299,65299],\"mapped\",[51]],[[65300,65300],\"mapped\",[52]],[[65301,65301],\"mapped\",[53]],[[65302,65302],\"mapped\",[54]],[[65303,65303],\"mapped\",[55]],[[65304,65304],\"mapped\",[56]],[[65305,65305],\"mapped\",[57]],[[65306,65306],\"disallowed_STD3_mapped\",[58]],[[65307,65307],\"disallowed_STD3_mapped\",[59]],[[65308,65308],\"disallowed_STD3_mapped\",[60]],[[65309,65309],\"disallowed_STD3_mapped\",[61]],[[65310,65310],\"disallowed_STD3_mapped\",[62]],[[65311,65311],\"disallowed_STD3_mapped\",[63]],[[65312,65312],\"disallowed_STD3_mapped\",[64]],[[65313,65313],\"mapped\",[97]],[[65314,65314],\"mapped\",[98]],[[65315,65315],\"mapped\",[99]],[[65316,65316],\"mapped\",[100]],[[65317,65317],\"mapped\",[101]],[[65318,65318],\"mapped\",[102]],[[65319,65319],\"mapped\",[103]],[[65320,65320],\"mapped\",[104]],[[65321,65321],\"mapped\",[105]],[[65322,65322],\"mapped\",[106]],[[65323,65323],\"mapped\",[107]],[[65324,65324],\"mapped\",[108]],[[65325,65325],\"mapped\",[109]],[[65326,65326],\"mapped\",[110]],[[65327,65327],\"mapped\",[111]],[[65328,65328],\"mapped\",[112]],[[65329,65329],\"mapped\",[113]],[[65330,65330],\"mapped\",[114]],[[65331,65331],\"mapped\",[115]],[[65332,65332],\"mapped\",[116]],[[65333,65333],\"mapped\",[117]],[[65334,65334],\"mapped\",[118]],[[65335,65335],\"mapped\",[119]],[[65336,65336],\"mapped\",[120]],[[65337,65337],\"mapped\",[121]],[[65338,65338],\"mapped\",[122]],[[65339,65339],\"disallowed_STD3_mapped\",[91]],[[65340,65340],\"disallowed_STD3_mapped\",[92]],[[65341,65341],\"disallowed_STD3_mapped\",[93]],[[65342,65342],\"disallowed_STD3_mapped\",[94]],[[65343,65343],\"disallowed_STD3_mapped\",[95]],[[65344,65344],\"disallowed_STD3_mapped\",[96]],[[65345,65345],\"mapped\",[97]],[[65346,65346],\"mapped\",[98]],[[65347,65347],\"mapped\",[99]],[[65348,65348],\"mapped\",[100]],[[65349,65349],\"mapped\",[101]],[[65350,65350],\"mapped\",[102]],[[65351,65351],\"mapped\",[103]],[[65352,65352],\"mapped\",[104]],[[65353,65353],\"mapped\",[105]],[[65354,65354],\"mapped\",[106]],[[65355,65355],\"mapped\",[107]],[[65356,65356],\"mapped\",[108]],[[65357,65357],\"mapped\",[109]],[[65358,65358],\"mapped\",[110]],[[65359,65359],\"mapped\",[111]],[[65360,65360],\"mapped\",[112]],[[65361,65361],\"mapped\",[113]],[[65362,65362],\"mapped\",[114]],[[65363,65363],\"mapped\",[115]],[[65364,65364],\"mapped\",[116]],[[65365,65365],\"mapped\",[117]],[[65366,65366],\"mapped\",[118]],[[65367,65367],\"mapped\",[119]],[[65368,65368],\"mapped\",[120]],[[65369,65369],\"mapped\",[121]],[[65370,65370],\"mapped\",[122]],[[65371,65371],\"disallowed_STD3_mapped\",[123]],[[65372,65372],\"disallowed_STD3_mapped\",[124]],[[65373,65373],\"disallowed_STD3_mapped\",[125]],[[65374,65374],\"disallowed_STD3_mapped\",[126]],[[65375,65375],\"mapped\",[10629]],[[65376,65376],\"mapped\",[10630]],[[65377,65377],\"mapped\",[46]],[[65378,65378],\"mapped\",[12300]],[[65379,65379],\"mapped\",[12301]],[[65380,65380],\"mapped\",[12289]],[[65381,65381],\"mapped\",[12539]],[[65382,65382],\"mapped\",[12530]],[[65383,65383],\"mapped\",[12449]],[[65384,65384],\"mapped\",[12451]],[[65385,65385],\"mapped\",[12453]],[[65386,65386],\"mapped\",[12455]],[[65387,65387],\"mapped\",[12457]],[[65388,65388],\"mapped\",[12515]],[[65389,65389],\"mapped\",[12517]],[[65390,65390],\"mapped\",[12519]],[[65391,65391],\"mapped\",[12483]],[[65392,65392],\"mapped\",[12540]],[[65393,65393],\"mapped\",[12450]],[[65394,65394],\"mapped\",[12452]],[[65395,65395],\"mapped\",[12454]],[[65396,65396],\"mapped\",[12456]],[[65397,65397],\"mapped\",[12458]],[[65398,65398],\"mapped\",[12459]],[[65399,65399],\"mapped\",[12461]],[[65400,65400],\"mapped\",[12463]],[[65401,65401],\"mapped\",[12465]],[[65402,65402],\"mapped\",[12467]],[[65403,65403],\"mapped\",[12469]],[[65404,65404],\"mapped\",[12471]],[[65405,65405],\"mapped\",[12473]],[[65406,65406],\"mapped\",[12475]],[[65407,65407],\"mapped\",[12477]],[[65408,65408],\"mapped\",[12479]],[[65409,65409],\"mapped\",[12481]],[[65410,65410],\"mapped\",[12484]],[[65411,65411],\"mapped\",[12486]],[[65412,65412],\"mapped\",[12488]],[[65413,65413],\"mapped\",[12490]],[[65414,65414],\"mapped\",[12491]],[[65415,65415],\"mapped\",[12492]],[[65416,65416],\"mapped\",[12493]],[[65417,65417],\"mapped\",[12494]],[[65418,65418],\"mapped\",[12495]],[[65419,65419],\"mapped\",[12498]],[[65420,65420],\"mapped\",[12501]],[[65421,65421],\"mapped\",[12504]],[[65422,65422],\"mapped\",[12507]],[[65423,65423],\"mapped\",[12510]],[[65424,65424],\"mapped\",[12511]],[[65425,65425],\"mapped\",[12512]],[[65426,65426],\"mapped\",[12513]],[[65427,65427],\"mapped\",[12514]],[[65428,65428],\"mapped\",[12516]],[[65429,65429],\"mapped\",[12518]],[[65430,65430],\"mapped\",[12520]],[[65431,65431],\"mapped\",[12521]],[[65432,65432],\"mapped\",[12522]],[[65433,65433],\"mapped\",[12523]],[[65434,65434],\"mapped\",[12524]],[[65435,65435],\"mapped\",[12525]],[[65436,65436],\"mapped\",[12527]],[[65437,65437],\"mapped\",[12531]],[[65438,65438],\"mapped\",[12441]],[[65439,65439],\"mapped\",[12442]],[[65440,65440],\"disallowed\"],[[65441,65441],\"mapped\",[4352]],[[65442,65442],\"mapped\",[4353]],[[65443,65443],\"mapped\",[4522]],[[65444,65444],\"mapped\",[4354]],[[65445,65445],\"mapped\",[4524]],[[65446,65446],\"mapped\",[4525]],[[65447,65447],\"mapped\",[4355]],[[65448,65448],\"mapped\",[4356]],[[65449,65449],\"mapped\",[4357]],[[65450,65450],\"mapped\",[4528]],[[65451,65451],\"mapped\",[4529]],[[65452,65452],\"mapped\",[4530]],[[65453,65453],\"mapped\",[4531]],[[65454,65454],\"mapped\",[4532]],[[65455,65455],\"mapped\",[4533]],[[65456,65456],\"mapped\",[4378]],[[65457,65457],\"mapped\",[4358]],[[65458,65458],\"mapped\",[4359]],[[65459,65459],\"mapped\",[4360]],[[65460,65460],\"mapped\",[4385]],[[65461,65461],\"mapped\",[4361]],[[65462,65462],\"mapped\",[4362]],[[65463,65463],\"mapped\",[4363]],[[65464,65464],\"mapped\",[4364]],[[65465,65465],\"mapped\",[4365]],[[65466,65466],\"mapped\",[4366]],[[65467,65467],\"mapped\",[4367]],[[65468,65468],\"mapped\",[4368]],[[65469,65469],\"mapped\",[4369]],[[65470,65470],\"mapped\",[4370]],[[65471,65473],\"disallowed\"],[[65474,65474],\"mapped\",[4449]],[[65475,65475],\"mapped\",[4450]],[[65476,65476],\"mapped\",[4451]],[[65477,65477],\"mapped\",[4452]],[[65478,65478],\"mapped\",[4453]],[[65479,65479],\"mapped\",[4454]],[[65480,65481],\"disallowed\"],[[65482,65482],\"mapped\",[4455]],[[65483,65483],\"mapped\",[4456]],[[65484,65484],\"mapped\",[4457]],[[65485,65485],\"mapped\",[4458]],[[65486,65486],\"mapped\",[4459]],[[65487,65487],\"mapped\",[4460]],[[65488,65489],\"disallowed\"],[[65490,65490],\"mapped\",[4461]],[[65491,65491],\"mapped\",[4462]],[[65492,65492],\"mapped\",[4463]],[[65493,65493],\"mapped\",[4464]],[[65494,65494],\"mapped\",[4465]],[[65495,65495],\"mapped\",[4466]],[[65496,65497],\"disallowed\"],[[65498,65498],\"mapped\",[4467]],[[65499,65499],\"mapped\",[4468]],[[65500,65500],\"mapped\",[4469]],[[65501,65503],\"disallowed\"],[[65504,65504],\"mapped\",[162]],[[65505,65505],\"mapped\",[163]],[[65506,65506],\"mapped\",[172]],[[65507,65507],\"disallowed_STD3_mapped\",[32,772]],[[65508,65508],\"mapped\",[166]],[[65509,65509],\"mapped\",[165]],[[65510,65510],\"mapped\",[8361]],[[65511,65511],\"disallowed\"],[[65512,65512],\"mapped\",[9474]
47807],[[65513,65513],\"mapped\",[8592]],[[65514,65514],\"mapped\",[8593]],[[65515,65515],\"mapped\",[8594]],[[65516,65516],\"mapped\",[8595]],[[65517,65517],\"mapped\",[9632]],[[65518,65518],\"mapped\",[9675]],[[65519,65528],\"disallowed\"],[[65529,65531],\"disallowed\"],[[65532,65532],\"disallowed\"],[[65533,65533],\"disallowed\"],[[65534,65535],\"disallowed\"],[[65536,65547],\"valid\"],[[65548,65548],\"disallowed\"],[[65549,65574],\"valid\"],[[65575,65575],\"disallowed\"],[[65576,65594],\"valid\"],[[65595,65595],\"disallowed\"],[[65596,65597],\"valid\"],[[65598,65598],\"disallowed\"],[[65599,65613],\"valid\"],[[65614,65615],\"disallowed\"],[[65616,65629],\"valid\"],[[65630,65663],\"disallowed\"],[[65664,65786],\"valid\"],[[65787,65791],\"disallowed\"],[[65792,65794],\"valid\",[],\"NV8\"],[[65795,65798],\"disallowed\"],[[65799,65843],\"valid\",[],\"NV8\"],[[65844,65846],\"disallowed\"],[[65847,65855],\"valid\",[],\"NV8\"],[[65856,65930],\"valid\",[],\"NV8\"],[[65931,65932],\"valid\",[],\"NV8\"],[[65933,65935],\"disallowed\"],[[65936,65947],\"valid\",[],\"NV8\"],[[65948,65951],\"disallowed\"],[[65952,65952],\"valid\",[],\"NV8\"],[[65953,65999],\"disallowed\"],[[66000,66044],\"valid\",[],\"NV8\"],[[66045,66045],\"valid\"],[[66046,66175],\"disallowed\"],[[66176,66204],\"valid\"],[[66205,66207],\"disallowed\"],[[66208,66256],\"valid\"],[[66257,66271],\"disallowed\"],[[66272,66272],\"valid\"],[[66273,66299],\"valid\",[],\"NV8\"],[[66300,66303],\"disallowed\"],[[66304,66334],\"valid\"],[[66335,66335],\"valid\"],[[66336,66339],\"valid\",[],\"NV8\"],[[66340,66351],\"disallowed\"],[[66352,66368],\"valid\"],[[66369,66369],\"valid\",[],\"NV8\"],[[66370,66377],\"valid\"],[[66378,66378],\"valid\",[],\"NV8\"],[[66379,66383],\"disallowed\"],[[66384,66426],\"valid\"],[[66427,66431],\"disallowed\"],[[66432,66461],\"valid\"],[[66462,66462],\"disallowed\"],[[66463,66463],\"valid\",[],\"NV8\"],[[66464,66499],\"valid\"],[[66500,66503],\"disallowed\"],[[66504,66511],\"valid\"],[[66512,66517],\"valid\",[],\"NV8\"],[[66518,66559],\"disallowed\"],[[66560,66560],\"mapped\",[66600]],[[66561,66561],\"mapped\",[66601]],[[66562,66562],\"mapped\",[66602]],[[66563,66563],\"mapped\",[66603]],[[66564,66564],\"mapped\",[66604]],[[66565,66565],\"mapped\",[66605]],[[66566,66566],\"mapped\",[66606]],[[66567,66567],\"mapped\",[66607]],[[66568,66568],\"mapped\",[66608]],[[66569,66569],\"mapped\",[66609]],[[66570,66570],\"mapped\",[66610]],[[66571,66571],\"mapped\",[66611]],[[66572,66572],\"mapped\",[66612]],[[66573,66573],\"mapped\",[66613]],[[66574,66574],\"mapped\",[66614]],[[66575,66575],\"mapped\",[66615]],[[66576,66576],\"mapped\",[66616]],[[66577,66577],\"mapped\",[66617]],[[66578,66578],\"mapped\",[66618]],[[66579,66579],\"mapped\",[66619]],[[66580,66580],\"mapped\",[66620]],[[66581,66581],\"mapped\",[66621]],[[66582,66582],\"mapped\",[66622]],[[66583,66583],\"mapped\",[66623]],[[66584,66584],\"mapped\",[66624]],[[66585,66585],\"mapped\",[66625]],[[66586,66586],\"mapped\",[66626]],[[66587,66587],\"mapped\",[66627]],[[66588,66588],\"mapped\",[66628]],[[66589,66589],\"mapped\",[66629]],[[66590,66590],\"mapped\",[66630]],[[66591,66591],\"mapped\",[66631]],[[66592,66592],\"mapped\",[66632]],[[66593,66593],\"mapped\",[66633]],[[66594,66594],\"mapped\",[66634]],[[66595,66595],\"mapped\",[66635]],[[66596,66596],\"mapped\",[66636]],[[66597,66597],\"mapped\",[66637]],[[66598,66598],\"mapped\",[66638]],[[66599,66599],\"mapped\",[66639]],[[66600,66637],\"valid\"],[[66638,66717],\"valid\"],[[66718,66719],\"disallowed\"],[[66720,66729],\"valid\"],[[66730,66815],\"disallowed\"],[[66816,66855],\"valid\"],[[66856,66863],\"disallowed\"],[[66864,66915],\"valid\"],[[66916,66926],\"disallowed\"],[[66927,66927],\"valid\",[],\"NV8\"],[[66928,67071],\"disallowed\"],[[67072,67382],\"valid\"],[[67383,67391],\"disallowed\"],[[67392,67413],\"valid\"],[[67414,67423],\"disallowed\"],[[67424,67431],\"valid\"],[[67432,67583],\"disallowed\"],[[67584,67589],\"valid\"],[[67590,67591],\"disallowed\"],[[67592,67592],\"valid\"],[[67593,67593],\"disallowed\"],[[67594,67637],\"valid\"],[[67638,67638],\"disallowed\"],[[67639,67640],\"valid\"],[[67641,67643],\"disallowed\"],[[67644,67644],\"valid\"],[[67645,67646],\"disallowed\"],[[67647,67647],\"valid\"],[[67648,67669],\"valid\"],[[67670,
4780767670],\"disallowed\"],[[67671,67679],\"valid\",[],\"NV8\"],[[67680,67702],\"valid\"],[[67703,67711],\"valid\",[],\"NV8\"],[[67712,67742],\"valid\"],[[67743,67750],\"disallowed\"],[[67751,67759],\"valid\",[],\"NV8\"],[[67760,67807],\"disallowed\"],[[67808,67826],\"valid\"],[[67827,67827],\"disallowed\"],[[67828,67829],\"valid\"],[[67830,67834],\"disallowed\"],[[67835,67839],\"valid\",[],\"NV8\"],[[67840,67861],\"valid\"],[[67862,67865],\"valid\",[],\"NV8\"],[[67866,67867],\"valid\",[],\"NV8\"],[[67868,67870],\"disallowed\"],[[67871,67871],\"valid\",[],\"NV8\"],[[67872,67897],\"valid\"],[[67898,67902],\"disallowed\"],[[67903,67903],\"valid\",[],\"NV8\"],[[67904,67967],\"disallowed\"],[[67968,68023],\"valid\"],[[68024,68027],\"disallowed\"],[[68028,68029],\"valid\",[],\"NV8\"],[[68030,68031],\"valid\"],[[68032,68047],\"valid\",[],\"NV8\"],[[68048,68049],\"disallowed\"],[[68050,68095],\"valid\",[],\"NV8\"],[[68096,68099],\"valid\"],[[68100,68100],\"disallowed\"],[[68101,68102],\"valid\"],[[68103,68107],\"disallowed\"],[[68108,68115],\"valid\"],[[68116,68116],\"disallowed\"],[[68117,68119],\"valid\"],[[68120,68120],\"disallowed\"],[[68121,68147],\"valid\"],[[68148,68151],\"disallowed\"],[[68152,68154],\"valid\"],[[68155,68158],\"disallowed\"],[[68159,68159],\"valid\"],[[68160,68167],\"valid\",[],\"NV8\"],[[68168,68175],\"disallowed\"],[[68176,68184],\"valid\",[],\"NV8\"],[[68185,68191],\"disallowed\"],[[68192,68220],\"valid\"],[[68221,68223],\"valid\",[],\"NV8\"],[[68224,68252],\"valid\"],[[68253,68255],\"valid\",[],\"NV8\"],[[68256,68287],\"disallowed\"],[[68288,68295],\"valid\"],[[68296,68296],\"valid\",[],\"NV8\"],[[68297,68326],\"valid\"],[[68327,68330],\"disallowed\"],[[68331,68342],\"valid\",[],\"NV8\"],[[68343,68351],\"disallowed\"],[[68352,68405],\"valid\"],[[68406,68408],\"disallowed\"],[[68409,68415],\"valid\",[],\"NV8\"],[[68416,68437],\"valid\"],[[68438,68439],\"disallowed\"],[[68440,68447],\"valid\",[],\"NV8\"],[[68448,68466],\"valid\"],[[68467,68471],\"disallowed\"],[[68472,68479],\"valid\",[],\"NV8\"],[[68480,68497],\"valid\"],[[68498,68504],\"disallowed\"],[[68505,68508],\"valid\",[],\"NV8\"],[[68509,68520],\"disallowed\"],[[68521,68527],\"valid\",[],\"NV8\"],[[68528,68607],\"disallowed\"],[[68608,68680],\"valid\"],[[68681,68735],\"disallowed\"],[[68736,68736],\"mapped\",[68800]],[[68737,68737],\"mapped\",[68801]],[[68738,68738],\"mapped\",[68802]],[[68739,68739],\"mapped\",[68803]],[[68740,68740],\"mapped\",[68804]],[[68741,68741],\"mapped\",[68805]],[[68742,68742],\"mapped\",[68806]],[[68743,68743],\"mapped\",[68807]],[[68744,68744],\"mapped\",[68808]],[[68745,68745],\"mapped\",[68809]],[[68746,68746],\"mapped\",[68810]],[[68747,68747],\"mapped\",[68811]],[[68748,68748],\"mapped\",[68812]],[[68749,68749],\"mapped\",[68813]],[[68750,68750],\"mapped\",[68814]],[[68751,68751],\"mapped\",[68815]],[[68752,68752],\"mapped\",[68816]],[[68753,68753],\"mapped\",[68817]],[[68754,68754],\"mapped\",[68818]],[[68755,68755],\"mapped\",[68819]],[[68756,68756],\"mapped\",[68820]],[[68757,68757],\"mapped\",[68821]],[[68758,68758],\"mapped\",[68822]],[[68759,68759],\"mapped\",[68823]],[[68760,68760],\"mapped\",[68824]],[[68761,68761],\"mapped\",[68825]],[[68762,68762],\"mapped\",[68826]],[[68763,68763],\"mapped\",[68827]],[[68764,68764],\"mapped\",[68828]],[[68765,68765],\"mapped\",[68829]],[[68766,68766],\"mapped\",[68830]],[[68767,68767],\"mapped\",[68831]],[[68768,68768],\"mapped\",[68832]],[[68769,68769],\"mapped\",[68833]],[[68770,68770],\"mapped\",[68834]],[[68771,68771],\"mapped\",[68835]],[[68772,68772],\"mapped\",[68836]],[[68773,68773],\"mapped\",[68837]],[[68774,68774],\"mapped\",[68838]],[[68775,68775],\"mapped\",[68839]],[[68776,68776],\"mapped\",[68840]],[[68777,68777],\"mapped\",[68841]],[[68778,68778],\"mapped\",[68842]],[[68779,68779],\"mapped\",[68843]],[[68780,68780],\"mapped\",[68844]],[[68781,68781],\"mapped\",[68845]],[[68782,68782],\"mapped\",[68846]],[[68783,68783],\"mapped\",[68847]],[[68784,68784],\"mapped\",[68848]],[[68785,68785],\"mapped\",[68849]],[[68786,68786],\"mapped\",[68850]],[[68787,68799],\"disallowed\"],[[68800,68850],\"valid\"],[[68851,68857],\"disallowed\"],[[68858,68863],\"valid\",[],\"NV8\"],[[68864,69215],\"disallowed\"],[[69216,69246],\"valid\",[],\"NV8\"],[[69247,69631],\"disallowed\"],[[69632,69702],\"valid\"],[[69703,69709],\"valid\",[],\"NV8\"],[[69710,69713],\"disallowed\"],[[69714,69733],\"valid\",[],\"NV8\"],[[69734,69743],\"valid\"],[[69744,69758],\"disallowed\"],[[69759,69759],\"valid\"],[[69760,69818],\"valid\"],[[69819,69820],\"valid\",[],\"NV8\"],[[69821,69821],\"disallowed\"],[[69822,69825],\"valid\",[],\"NV8\"],[[69826,69839],\"disallowed\"],[[69840,69864],\"valid\"],[[69865,69871],\"disallowed\"],[[69872,69881],\"valid\"],[[69882,69887],\"disallowed\"],[[69888,69940],\"valid\"],[[69941,69941],\"disallowed\"],[[69942,69951],\"valid\"],[[69952,69955],\"valid\",[],\"NV8\"],[[69956,69967],\"disallowed\"],[[69968,70003],\"valid\"],[[70004,70005],\"valid\",[],\"NV8\"],[[70006,70006],\"valid\"],[[70007,70015],\"disallowed\"],[[70016,70084],\"valid\"],[[70085,70088],\"valid\",[],\"NV8\"],[[70089,70089],\"valid\",[],\"NV8\"],[[70090,70092],\"valid\"],[[70093,70093],\"valid\",[],\"NV8\"],[[70094,70095],\"disallowed\"],[[70096,70105],\"valid\"],[[70106,70106],\"valid\"],[[70107,70107],\"valid\",[],\"NV8\"],[[70108,70108],\"valid\"],[[70109,70111],\"valid\",[],\"NV8\"],[[70112,70112],\"disallowed\"],[[70113,70132],\"valid\",[],\"NV8\"],[[70133,70143],\"disallowed\"],[[70144,70161],\"valid\"],[[70162,70162],\"disallowed\"],[[70163,70199],\"valid\"],[[70200,70205],\"valid\",[],\"NV8\"],[[70206,70271],\"disallowed\"],[[70272,70278],\"valid\"],[[70279,70279],\"disallowed\"],[[70280,70280],\"valid\"],[[70281,70281],\"disallowed\"],[[70282,70285],\"valid\"],[[70286,70286],\"disallowed\"],[[70287,70301],\"valid\"],[[70302,70302],\"disallowed\"],[[70303,70312],\"valid\"],[[70313,70313],\"valid\",[],\"NV8\"],[[70314,70319],\"disallowed\"],[[70320,70378],\"valid\"],[[70379,70383],\"disallowed\"],[[70384,70393],\"valid\"],[[70394,70399],\"disallowed\"],[[70400,70400],\"valid\"],[[70401,70403],\"valid\"],[[70404,70404],\"disallowed\"],[[70405,70412],\"valid\"],[[70413,70414],\"disallowed\"],[[70415,70416],\"valid\"],[[70417,70418],\"disallowed\"],[[70419,70440],\"valid\"],[[70441,70441],\"disallowed\"],[[70442,70448],\"valid\"],[[70449,70449],\"disallowed\"],[[70450,70451],\"valid\"],[[70452,70452],\"disallowed\"],[[70453,70457],\"valid\"],[[70458,70459],\"disallowed\"],[[70460,70468],\"valid\"],[[70469,70470],\"disallowed\"],[[70471,70472],\"valid\"],[[70473,70474],\"disallowed\"],[[70475,70477],\"valid\"],[[70478,70479],\"disallowed\"],[[70480,70480],\"valid\"],[[70481,70486],\"disallowed\"],[[70487,70487],\"valid\"],[[70488,70492],\"disallowed\"],[[70493,70499],\"valid\"],[[70500,70501],\"disallowed\"],[[70502,70508],\"valid\"],[[70509,70511],\"disallowed\"],[[70512,70516],\"valid\"],[[70517,70783],\"disallowed\"],[[70784,70853],\"valid\"],[[70854,70854],\"valid\",[],\"NV8\"],[[70855,70855],\"valid\"],[[70856,70863],\"disallowed\"],[[70864,70873],\"valid\"],[[70874,71039],\"disallowed\"],[[71040,71093],\"valid\"],[[71094,71095],\"disallowed\"],[[71096,71104],\"valid\"],[[71105,71113],\"valid\",[],\"NV8\"],[[71114,71127],\"valid\",[],\"NV8\"],[[71128,71133],\"valid\"],[[71134,71167],\"disallowed\"],[[71168,71232],\"valid\"],[[71233,71235],\"valid\",[],\"NV8\"],[[71236,71236],\"valid\"],[[71237,71247],\"disallowed\"],[[71248,71257],\"valid\"],[[71258,71295],\"disallowed\"],[[71296,71351],\"valid\"],[[71352,71359],\"disallowed\"],[[71360,71369],\"valid\"],[[71370,71423],\"disallowed\"],[[71424,71449],\"valid\"],[[71450,71452],\"disallowed\"],[[71453,71467],\"valid\"],[[71468,71471],\"disallowed\"],[[71472,71481],\"valid\"],[[71482,71487],\"valid\",[],\"NV8\"],[[71488,71839],\"disallowed\"],[[71840,71840],\"mapped\",[71872]],[[71841,71841],\"mapped\",[71873]],[[71842,71842],\"mapped\",[71874]],[[71843,71843],\"mapped\",[71875]],[[71844,71844],\"mapped\",[71876]],[[71845,71845],\"mapped\",[71877]],[[71846,71846],\"mapped\",[71878]],[[71847,71847],\"mapped\",[71879]],[[71848,71848],\"mapped\",[71880]],[[71849,71849],\"mapped\",[71881]],[[71850,71850],\"mapped\",[71882]],[[71851,71851],\"mapped\",[71883]],[[71852,71852],\"mapped\",[71884]],[[71853,71853],\"mapped\",[71885]],[[71854,71854],\"mapped\",[71886]],[[71855,71855],\"mapped\",[71887]],[[71856,71856],\"mapped\",[71888]],[[71857,71857],\"mapped\",[71889]],[[71858,71858],\"mapped\",[71890]],[[71859,71859],\"mapped\",[71891]],[[71860,71860],\"mapped\",[71892]],[[71861,71861],\"mapped\",[71893]],[[71862,71862],\"mapped\",[71894]],[[71863,71863],\"mapped\",[71895]],[[71864,71864],\"mapped\",[71896]],[[71865,71865],\"mapped\",[71897]],[[71866,71866],\"mapped\",[71898]],[[71867,71867],\"mapped\",[71899]],[[71868,71868],\"mapped\",[71900]],[[71869,71869],\"mapped\",[71901]],[[71870,71870],\"mapped\",[71902]],[[71871,71871],\"mapped\",[71903]],[[71872,71913],\"valid\"],[[71914,71922],\"valid\",[],\"NV8\"],[[71923,71934],\"disallowed\"],[[71935,71935],\"valid\"],[[71936,72383],\"disallowed\"],[[72384,72440],\"valid\"],[[72441,73727],\"disallowed\"],[[73728,74606],\"valid\"],[[74607,74648],\"valid\"],[[74649,74649],\"valid\"],[[74650,74751],\"disallowed\"],[[74752,74850],\"valid\",[],\"NV8\"],[[74851,74862],\"valid\",[],\"NV8\"],[[74863,74863],\"disallowed\"],[[74864,74867],\"valid\",[],\"NV8\"],[[74868,74868],\"valid\",[],\"NV8\"],[[74869,74879],\"disallowed\"],[[74880,75075],\"valid\"],[[75076,77823],\"disallowed\"],[[77824,78894],\"valid\"],[[78895,82943],\"disallowed\"],[[82944,83526],\"valid\"],[[83527,92159],\"disallowed\"],[[92160,92728],\"valid\"],[[92729,92735],\"disallowed\"],[[92736,92766],\"valid\"],[[92767,92767],\"disallowed\"],[[92768,92777],\"valid\"],[[92778,92781],\"disallowed\"],[[92782,92783],\"valid\",[],\"NV8\"],[[92784,92879],\"disallowed\"],[[92880,92909],\"valid\"],[[92910,92911],\"disallowed\"],[[92912,92916],\"valid\"],[[92917,92917],\"valid\",[],\"NV8\"],[[92918,92927],\"disallowed\"],[[92928,92982],\"valid\"],[[92983,92991],\"valid\",[],\"NV8\"],[[92992,92995],\"valid\"],[[92996,92997],\"valid\",[],\"NV8\"],[[92998,93007],\"disallowed\"],[[93008,93017],\"valid\"],[[93018,93018],\"disallowed\"],[[93019,93025],\"valid\",[],\"NV8\"],[[93026,93026],\"disallowed\"],[[93027,93047],\"valid\"],[[93048,93052],\"disallowed\"],[[93053,93071],\"valid\"],[[93072,93951],\"disallowed\"],[[93952,94020],\"valid\"],[[94021,94031],\"disallowed\"],[[94032,94078],\"valid\"],[[94079,94094],\"disallowed\"],[[94095,94111],\"valid\"],[[94112,110591],\"disallowed\"],[[110592,110
47807593],\"valid\"],[[110594,113663],\"disallowed\"],[[113664,113770],\"valid\"],[[113771,113775],\"disallowed\"],[[113776,113788],\"valid\"],[[113789,113791],\"disallowed\"],[[113792,113800],\"valid\"],[[113801,113807],\"disallowed\"],[[113808,113817],\"valid\"],[[113818,113819],\"disallowed\"],[[113820,113820],\"valid\",[],\"NV8\"],[[113821,113822],\"valid\"],[[113823,113823],\"valid\",[],\"NV8\"],[[113824,113827],\"ignored\"],[[113828,118783],\"disallowed\"],[[118784,119029],\"valid\",[],\"NV8\"],[[119030,119039],\"disallowed\"],[[119040,119078],\"valid\",[],\"NV8\"],[[119079,119080],\"disallowed\"],[[119081,119081],\"valid\",[],\"NV8\"],[[119082,119133],\"valid\",[],\"NV8\"],[[119134,119134],\"mapped\",[119127,119141]],[[119135,119135],\"mapped\",[119128,119141]],[[119136,119136],\"mapped\",[119128,119141,119150]],[[119137,119137],\"mapped\",[119128,119141,119151]],[[119138,119138],\"mapped\",[119128,119141,119152]],[[119139,119139],\"mapped\",[119128,119141,119153]],[[119140,119140],\"mapped\",[119128,119141,119154]],[[119141,119154],\"valid\",[],\"NV8\"],[[119155,119162],\"disallowed\"],[[119163,119226],\"valid\",[],\"NV8\"],[[119227,119227],\"mapped\",[119225,119141]],[[119228,119228],\"mapped\",[119226,119141]],[[119229,119229],\"mapped\",[119225,119141,119150]],[[119230,119230],\"mapped\",[119226,119141,119150]],[[119231,119231],\"mapped\",[119225,119141,119151]],[[119232,119232],\"mapped\",[119226,119141,119151]],[[119233,119261],\"valid\",[],\"NV8\"],[[119262,119272],\"valid\",[],\"NV8\"],[[119273,119295],\"disallowed\"],[[119296,119365],\"valid\",[],\"NV8\"],[[119366,119551],\"disallowed\"],[[119552,119638],\"valid\",[],\"NV8\"],[[119639,119647],\"disallowed\"],[[119648,119665],\"valid\",[],\"NV8\"],[[119666,119807],\"disallowed\"],[[119808,119808],\"mapped\",[97]],[[119809,119809],\"mapped\",[98]],[[119810,119810],\"mapped\",[99]],[[119811,119811],\"mapped\",[100]],[[119812,119812],\"mapped\",[101]],[[119813,119813],\"mapped\",[102]],[[119814,119814],\"mapped\",[103]],[[119815,119815],\"mapped\",[104]],[[119816,119816],\"mapped\",[105]],[[119817,119817],\"mapped\",[106]],[[119818,119818],\"mapped\",[107]],[[119819,119819],\"mapped\",[108]],[[119820,119820],\"mapped\",[109]],[[119821,119821],\"mapped\",[110]],[[119822,119822],\"mapped\",[111]],[[119823,119823],\"mapped\",[112]],[[119824,119824],\"mapped\",[113]],[[119825,119825],\"mapped\",[114]],[[119826,119826],\"mapped\",[115]],[[119827,119827],\"mapped\",[116]],[[119828,119828],\"mapped\",[117]],[[119829,119829],\"mapped\",[118]],[[119830,119830],\"mapped\",[119]],[[119831,119831],\"mapped\",[120]],[[119832,119832],\"mapped\",[121]],[[119833,119833],\"mapped\",[122]],[[119834,119834],\"mapped\",[97]],[[119835,119835],\"mapped\",[98]],[[119836,119836],\"mapped\",[99]],[[119837,119837],\"mapped\",[100]],[[119838,119838],\"mapped\",[101]],[[119839,119839],\"mapped\",[102]],[[119840,119840],\"mapped\",[103]],[[119841,119841],\"mapped\",[104]],[[119842,119842],\"mapped\",[105]],[[119843,119843],\"mapped\",[106]],[[119844,119844],\"mapped\",[107]],[[119845,119845],\"mapped\",[108]],[[119846,119846],\"mapped\",[109]],[[119847,119847],\"mapped\",[110]],[[119848,119848],\"mapped\",[111]],[[119849,119849],\"mapped\",[112]],[[119850,119850],\"mapped\",[113]],[[119851,119851],\"mapped\",[114]],[[119852,119852],\"mapped\",[115]],[[119853,119853],\"mapped\",[116]],[[119854,119854],\"mapped\",[117]],[[119855,119855],\"mapped\",[118]],[[119856,119856],\"mapped\",[119]],[[119857,119857],\"mapped\",[120]],[[119858,119858],\"mapped\",[121]],[[119859,119859],\"mapped\",[122]],[[119860,119860],\"mapped\",[97]],[[119861,119861],\"mapped\",[98]],[[119862,119862],\"mapped\",[99]],[[119863,119863],\"mapped\",[100]],[[119864,119864],\"mapped\",[101]],[[119865,119865],\"mapped\",[102]],[[119866,119866],\"mapped\",[103]],[[119867,119867],\"mapped\",[104]],[[119868,119868],\"mapped\",[105]],[[119869,119869],\"mapped\",[106]],[[119870,119870],\"mapped\",[107]],[[119871,119871],\"mapped\",[108]],[[119872,119872],\"mapped\",[109]],[[119873,119873],\"mapped\",[110]],[[119874,119874],\"mapped\",[111]],[[119875,119875],\"mapped\",[112]],[[119876,119876],\"mapped\",[113]],[[119877,119877],\"mapped\",[114]],[[119878,119878],\"mapped\",[115]],[[119879,119879],\"mapped\",[116]],[[119880,119880],\"mapped\",[117]],[[119881,119881],\"mapped\",[118]],[[119882,119882],\"mapped\",[119]],[[119883,119883],\"mapped\",[120]],[[119884,119884],\"mapped\",[121]],[[119885,119885],\"mapped\",[122]],[[119886,119886],\"mapped\",[97]],[[119887,119887],\"mapped\",[98]],[[119888,119888],\"mapped\",[99]
47807],[[119889,119889],\"mapped\",[100]],[[119890,119890],\"mapped\",[101]],[[119891,119891],\"mapped\",[102]],[[119892,119892],\"mapped\",[103]],[[119893,119893],\"disallowed\"],[[119894,119894],\"mapped\",[105]],[[119895,119895],\"mapped\",[106]],[[119896,119896],\"mapped\",[107]],[[119897,119897],\"mapped\",[108]],[[119898,119898],\"mapped\",[109]],[[119899,119899],\"mapped\",[110]],[[119900,119900],\"mapped\",[111]],[[119901,119901],\"mapped\",[112]],[[119902,119902],\"mapped\",[113]],[[119903,119903],\"mapped\",[114]],[[119904,119904],\"mapped\",[115]],[[119905,119905],\"mapped\",[116]],[[119906,119906],\"mapped\",[117]],[[119907,119907],\"mapped\",[118]],[[119908,119908],\"mapped\",[119]],[[119909,119909],\"mapped\",[120]],[[119910,119910],\"mapped\",[121]],[[119911,119911],\"mapped\",[122]],[[119912,119912],\"mapped\",[97]],[[119913,119913],\"mapped\",[98]],[[119914,119914],\"mapped\",[99]],[[119915,119915],\"mapped\",[100]],[[119916,119916],\"mapped\",[101]],[[119917,119917],\"mapped\",[102]],[[119918,119918],\"mapped\",[103]],[[119919,119919],\"mapped\",[104]],[[119920,119920],\"mapped\",[105]],[[119921,119921],\"mapped\",[106]],[[119922,119922],\"mapped\",[107]],[[119923,119923],\"mapped\",[108]],[[119924,119924],\"mapped\",[109]],[[119925,119925],\"mapped\",[110]],[[119926,119926],\"mapped\",[111]],[[119927,119927],\"mapped\",[112]],[[119928,119928],\"mapped\",[113]],[[119929,119929],\"mapped\",[114]],[[119930,119930],\"mapped\",[115]],[[119931,119931],\"mapped\",[116]],[[119932,119932],\"mapped\",[117]],[[119933,119933],\"mapped\",[118]],[[119934,119934],\"mapped\",[119]],[[119935,119935],\"mapped\",[120]],[[119936,119936],\"mapped\",[121]],[[119937,119937],\"mapped\",[122]],[[119938,119938],\"mapped\",[97]],[[119939,119939],\"mapped\",[98]],[[119940,119940],\"mapped\",[99]],[[119941,119941],\"mapped\",[100]],[[119942,119942],\"mapped\",[101]],[[119943,119943],\"mapped\",[102]],[[119944,119944],\"mapped\",[103]],[[119945,119945],\"mapped\",[104]],[[119946,119946],\"mapped\",[105]],[[119947,119947],\"mapped\",[106]],[[119948,119948],\"mapped\",[107]],[[119949,119949],\"mapped\",[108]],[[119950,119950],\"mapped\",[109]],[[119951,119951],\"mapped\",[110]],[[119952,119952],\"mapped\",[111]],[[119953,119953],\"mapped\",[112]],[[119954,119954],\"mapped\",[113]],[[119955,119955],\"mapped\",[114]],[[119956,119956],\"mapped\",[115]],[[119957,119957],\"mapped\",[116]],[[119958,119958],\"mapped\",[117]],[[119959,119959],\"mapped\",[118]],[[119960,119960],\"mapped\",[119]],[[119961,119961],\"mapped\",[120]],[[119962,119962],\"mapped\",[121]],[[119963,119963],\"mapped\",[122]],[[119964,119964],\"mapped\",[97]],[[119965,119965],\"disallowed\"],[[119966,119966],\"mapped\",[99]],[[119967,119967],\"mapped\",[100]],[[119968,119969],\"disallowed\"],[[119970,119970],\"mapped\",[103]],[[119971,119972],\"disallowed\"],[[119973,119973],\"mapped\",[106]],[[119974,119974],\"mapped\",[107]],[[119975,119976],\"disallowed\"],[[119977,119977],\"mapped\",[110]],[[119978,119978],\"mapped\",[111]],[[119979,119979],\"mapped\",[112]],[[119980,119980],\"mapped\",[113]],[[119981,119981],\"disallowed\"],[[119982,119982],\"mapped\",[115]],[[119983,119983],\"mapped\",[116]],[[119984,119984],\"mapped\",[117]],[[119985,119985],\"mapped\",[118]],[[119986,119986],\"mapped\",[119]],[[119987,119987],\"mapped\",[120]],[[119988,119988],\"mapped\",[121]],[[119989,119989],\"mapped\",[122]],[[119990,119990],\"mapped\",[97]],[[119991,119991],\"mapped\",[98]],[[119992,119992],\"mapped\",[99]],[[119993,119993],\"mapped\",[100]],[[119994,119994],\"disallowed\"],[[119995,119995],\"mapped\",[102]],[[119996,119996],\"disallowed\"],[[119997,119997],\"mapped\",[104]],[[119998,119998],\"mapped\",[105]],[[119999,119999],\"mapped\",[106]],[[120000,120000],\"mapped\",[107]],[[120001,120001],\"mapped\",[108]],[[120002,120002],\"mapped\",[109]],[[120003,120003],\"mapped\",[110]],[[120004,120004],\"disallowed\"],[[120005,120005],\"mapped\",[112]],[[120006,120006],\"mapped\",[113]],[[120007,120007],\"mapped\",[114]],[[120008,120008],\"mapped\",[115]],[[120009,120009],\"mapped\",[116]],[[120010,120010],\"mapped\",[117]],[[120011,120011],\"mapped\",[118]],[[120012,120012],\"mapped\",[119]],[[120013,120013],\"mapped\",[120]],[[120014,120014],\"mapped\",[121]],[[120015,120015],\"mapped\",[122]],[[120016,120016],\"mapped\",[97]],[[120017,120017],\"mapped\",[98]],[[120018,120018],\"mapped\",[99]
47807],[[120019,120019],\"mapped\",[100]],[[120020,120020],\"mapped\",[101]],[[120021,120021],\"mapped\",[102]],[[120022,120022],\"mapped\",[103]],[[120023,120023],\"mapped\",[104]],[[120024,120024],\"mapped\",[105]],[[120025,120025],\"mapped\",[106]],[[120026,120026],\"mapped\",[107]],[[120027,120027],\"mapped\",[108]],[[120028,120028],\"mapped\",[109]],[[120029,120029],\"mapped\",[110]],[[120030,120030],\"mapped\",[111]],[[120031,120031],\"mapped\",[112]],[[120032,120032],\"mapped\",[113]],[[120033,120033],\"mapped\",[114]],[[120034,120034],\"mapped\",[115]],[[120035,120035],\"mapped\",[116]],[[120036,120036],\"mapped\",[117]],[[120037,120037],\"mapped\",[118]],[[120038,120038],\"mapped\",[119]],[[120039,120039],\"mapped\",[120]],[[120040,120040],\"mapped\",[121]],[[120041,120041],\"mapped\",[122]],[[120042,120042],\"mapped\",[97]],[[120043,120043],\"mapped\",[98]],[[120044,120044],\"mapped\",[99]],[[120045,120045],\"mapped\",[100]],[[120046,120046],\"mapped\",[101]],[[120047,120047],\"mapped\",[102]],[[120048,120048],\"mapped\",[103]],[[120049,120049],\"mapped\",[104]],[[120050,120050],\"mapped\",[105]],[[120051,120051],\"mapped\",[106]],[[120052,120052],\"mapped\",[107]],[[120053,120053],\"mapped\",[108]],[[120054,120054],\"mapped\",[109]],[[120055,120055],\"mapped\",[110]],[[120056,120056],\"mapped\",[111]],[[120057,120057],\"mapped\",[112]],[[120058,120058],\"mapped\",[113]],[[120059,120059],\"mapped\",[114]],[[120060,120060],\"mapped\",[115]],[[120061,120061],\"mapped\",[116]],[[120062,120062],\"mapped\",[117]],[[120063,120063],\"mapped\",[118]],[[120064,120064],\"mapped\",[119]],[[120065,120065],\"mapped\",[120]],[[120066,120066],\"mapped\",[121]],[[120067,120067],\"mapped\",[122]],[[120068,120068],\"mapped\",[97]],[[120069,120069],\"mapped\",[98]],[[120070,120070],\"disallowed\"],[[120071,120071],\"mapped\",[100]],[[120072,120072],\"mapped\",[101]],[[120073,120073],\"mapped\",[102]],[[120074,120074],\"mapped\",[103]],[[120075,120076],\"disallowed\"],[[120077,120077],\"mapped\",[106]],[[120078,120078],\"mapped\",[107]],[[120079,120079],\"mapped\",[108]],[[120080,120080],\"mapped\",[109]],[[120081,120081],\"mapped\",[110]],[[120082,120082],\"mapped\",[111]],[[120083,120083],\"mapped\",[112]],[[120084,120084],\"mapped\",[113]],[[120085,120085],\"disallowed\"],[[120086,120086],\"mapped\",[115]],[[120087,120087],\"mapped\",[116]],[[120088,120088],\"mapped\",[117]],[[120089,120089],\"mapped\",[118]],[[120090,120090],\"mapped\",[119]],[[120091,120091],\"mapped\",[120]],[[120092,120092],\"mapped\",[121]],[[120093,120093],\"disallowed\"],[[120094,120094],\"mapped\",[97]],[[120095,120095],\"mapped\",[98]],[[120096,120096],\"mapped\",[99]],[[120097,120097],\"mapped\",[100]],[[120098,120098],\"mapped\",[101]],[[120099,120099],\"mapped\",[102]],[[120100,120100],\"mapped\",[103]],[[120101,120101],\"mapped\",[104]],[[120102,120102],\"mapped\",[105]],[[120103,120103],\"mapped\",[106]],[[120104,120104],\"mapped\",[107]],[[120105,120105],\"mapped\",[108]],[[120106,120106],\"mapped\",[109]],[[120107,120107],\"mapped\",[110]],[[120108,120108],\"mapped\",[111]],[[120109,120109],\"mapped\",[112]],[[120110,120110],\"mapped\",[113]],[[120111,120111],\"mapped\",[114]],[[120112,120112],\"mapped\",[115]],[[120113,120113],\"mapped\",[116]],[[120114,120114],\"mapped\",[117]],[[120115,120115],\"mapped\",[118]],[[120116,120116],\"mapped\",[119]],[[120117,120117],\"mapped\",[120]],[[120118,120118],\"mapped\",[121]],[[120119,120119],\"mapped\",[122]],[[120120,120120],\"mapped\",[97]],[[120121,120121],\"mapped\",[98]],[[120122,120122],\"disallowed\"],[[120123,120123],\"mapped\",[100]],[[120124,120124],\"mapped\",[101]],[[120125,120125],\"mapped\",[102]],[[120126,120126],\"mapped\",[103]],[[120127,120127],\"disallowed\"],[[120128,120128],\"mapped\",[105]],[[120129,120129],\"mapped\",[106]],[[120130,120130],\"mapped\",[107]],[[120131,120131],\"mapped\",[108]],[[120132,120132],\"mapped\",[109]],[[120133,120133],\"disallowed\"],[[120134,120134],\"mapped\",[111]],[[120135,120137],\"disallowed\"],[[120138,120138],\"mapped\",[115]],[[120139,120139],\"mapped\",[116]],[[120140,120140],\"mapped\",[117]],[[120141,120141],\"mapped\",[118]],[[120142,120142],\"mapped\",[119]],[[120143,120143],\"mapped\",[120]],[[120144,120144],\"mapped\",[121]],[[120145,120145],\"disallowed\"],[[120146,120146],\"mapped\",[97]],[[120147,120147],\"mapped\",[98]],[[120148,120148],\"mapped\",[99]
47807],[[120149,120149],\"mapped\",[100]],[[120150,120150],\"mapped\",[101]],[[120151,120151],\"mapped\",[102]],[[120152,120152],\"mapped\",[103]],[[120153,120153],\"mapped\",[104]],[[120154,120154],\"mapped\",[105]],[[120155,120155],\"mapped\",[106]],[[120156,120156],\"mapped\",[107]],[[120157,120157],\"mapped\",[108]],[[120158,120158],\"mapped\",[109]],[[120159,120159],\"mapped\",[110]],[[120160,120160],\"mapped\",[111]],[[120161,120161],\"mapped\",[112]],[[120162,120162],\"mapped\",[113]],[[120163,120163],\"mapped\",[114]],[[120164,120164],\"mapped\",[115]],[[120165,120165],\"mapped\",[116]],[[120166,120166],\"mapped\",[117]],[[120167,120167],\"mapped\",[118]],[[120168,120168],\"mapped\",[119]],[[120169,120169],\"mapped\",[120]],[[120170,120170],\"mapped\",[121]],[[120171,120171],\"mapped\",[122]],[[120172,120172],\"mapped\",[97]],[[120173,120173],\"mapped\",[98]],[[120174,120174],\"mapped\",[99]],[[120175,120175],\"mapped\",[100]],[[120176,120176],\"mapped\",[101]],[[120177,120177],\"mapped\",[102]],[[120178,120178],\"mapped\",[103]],[[120179,120179],\"mapped\",[104]],[[120180,120180],\"mapped\",[105]],[[120181,120181],\"mapped\",[106]],[[120182,120182],\"mapped\",[107]],[[120183,120183],\"mapped\",[108]],[[120184,120184],\"mapped\",[109]],[[120185,120185],\"mapped\",[110]],[[120186,120186],\"mapped\",[111]],[[120187,120187],\"mapped\",[112]],[[120188,120188],\"mapped\",[113]],[[120189,120189],\"mapped\",[114]],[[120190,120190],\"mapped\",[115]],[[120191,120191],\"mapped\",[116]],[[120192,120192],\"mapped\",[117]],[[120193,120193],\"mapped\",[118]],[[120194,120194],\"mapped\",[119]],[[120195,120195],\"mapped\",[120]],[[120196,120196],\"mapped\",[121]],[[120197,120197],\"mapped\",[122]],[[120198,120198],\"mapped\",[97]],[[120199,120199],\"mapped\",[98]],[[120200,120200],\"mapped\",[99]],[[120201,120201],\"mapped\",[100]],[[120202,120202],\"mapped\",[101]],[[120203,120203],\"mapped\",[102]],[[120204,120204],\"mapped\",[103]],[[120205,120205],\"mapped\",[104]],[[120206,120206],\"mapped\",[105]],[[120207,120207],\"mapped\",[106]],[[120208,120208],\"mapped\",[107]],[[120209,120209],\"mapped\",[108]],[[120210,120210],\"mapped\",[109]],[[120211,120211],\"mapped\",[110]],[[120212,120212],\"mapped\",[111]],[[120213,120213],\"mapped\",[112]],[[120214,120214],\"mapped\",[113]],[[120215,120215],\"mapped\",[114]],[[120216,120216],\"mapped\",[115]],[[120217,120217],\"mapped\",[116]],[[120218,120218],\"mapped\",[117]],[[120219,120219],\"mapped\",[118]],[[120220,120220],\"mapped\",[119]],[[120221,120221],\"mapped\",[120]],[[120222,120222],\"mapped\",[121]],[[120223,120223],\"mapped\",[122]],[[120224,120224],\"mapped\",[97]],[[120225,120225],\"mapped\",[98]],[[120226,120226],\"mapped\",[99]],[[120227,120227],\"mapped\",[100]],[[120228,120228],\"mapped\",[101]],[[120229,120229],\"mapped\",[102]],[[120230,120230],\"mapped\",[103]],[[120231,120231],\"mapped\",[104]],[[120232,120232],\"mapped\",[105]],[[120233,120233],\"mapped\",[106]],[[120234,120234],\"mapped\",[107]],[[120235,120235],\"mapped\",[108]],[[120236,120236],\"mapped\",[109]],[[120237,120237],\"mapped\",[110]],[[120238,120238],\"mapped\",[111]],[[120239,120239],\"mapped\",[112]],[[120240,120240],\"mapped\",[113]],[[120241,120241],\"mapped\",[114]],[[120242,120242],\"mapped\",[115]],[[120243,120243],\"mapped\",[116]],[[120244,120244],\"mapped\",[117]],[[120245,120245],\"mapped\",[118]],[[120246,120246],\"mapped\",[119]],[[120247,120247],\"mapped\",[120]],[[120248,120248],\"mapped\",[121]],[[120249,120249],\"mapped\",[122]],[[120250,120250],\"mapped\",[97]],[[120251,120251],\"mapped\",[98]],[[120252,120252],\"mapped\",[99]],[[120253,120253],\"mapped\",[100]],[[120254,120254],\"mapped\",[101]],[[120255,120255],\"mapped\",[102]],[[120256,120256],\"mapped\",[103]],[[120257,120257],\"mapped\",[104]],[[120258,120258],\"mapped\",[105]],[[120259,120259],\"mapped\",[106]],[[120260,120260],\"mapped\",[107]],[[120261,120261],\"mapped\",[108]],[[120262,120262],\"mapped\",[109]],[[120263,120263],\"mapped\",[110]],[[120264,120264],\"mapped\",[111]],[[120265,120265],\"mapped\",[112]],[[120266,120266],\"mapped\",[113]],[[120267,120267],\"mapped\",[114]],[[120268,120268],\"mapped\",[115]],[[120269,120269],\"mapped\",[116]],[[120270,120270],\"mapped\",[117]],[[120271,120271],\"mapped\",[118]],[[120272,120272],\"mapped\",[119]],[[120273,120273],\"mapped\",[120]],[[120274,120274],\"mapped\",[121]],[[120275,120275],\"mapped\",[122]],[[120276,12
478070276],\"mapped\",[97]],[[120277,120277],\"mapped\",[98]],[[120278,120278],\"mapped\",[99]],[[120279,120279],\"mapped\",[100]],[[120280,120280],\"mapped\",[101]],[[120281,120281],\"mapped\",[102]],[[120282,120282],\"mapped\",[103]],[[120283,120283],\"mapped\",[104]],[[120284,120284],\"mapped\",[105]],[[120285,120285],\"mapped\",[106]],[[120286,120286],\"mapped\",[107]],[[120287,120287],\"mapped\",[108]],[[120288,120288],\"mapped\",[109]],[[120289,120289],\"mapped\",[110]],[[120290,120290],\"mapped\",[111]],[[120291,120291],\"mapped\",[112]],[[120292,120292],\"mapped\",[113]],[[120293,120293],\"mapped\",[114]],[[120294,120294],\"mapped\",[115]],[[120295,120295],\"mapped\",[116]],[[120296,120296],\"mapped\",[117]],[[120297,120297],\"mapped\",[118]],[[120298,120298],\"mapped\",[119]],[[120299,120299],\"mapped\",[120]],[[120300,120300],\"mapped\",[121]],[[120301,120301],\"mapped\",[122]],[[120302,120302],\"mapped\",[97]],[[120303,120303],\"mapped\",[98]],[[120304,120304],\"mapped\",[99]],[[120305,120305],\"mapped\",[100]],[[120306,120306],\"mapped\",[101]],[[120307,120307],\"mapped\",[102]],[[120308,120308],\"mapped\",[103]],[[120309,120309],\"mapped\",[104]],[[120310,120310],\"mapped\",[105]],[[120311,120311],\"mapped\",[106]],[[120312,120312],\"mapped\",[107]],[[120313,120313],\"mapped\",[108]],[[120314,120314],\"mapped\",[109]],[[120315,120315],\"mapped\",[110]],[[120316,120316],\"mapped\",[111]],[[120317,120317],\"mapped\",[112]],[[120318,120318],\"mapped\",[113]],[[120319,120319],\"mapped\",[114]],[[120320,120320],\"mapped\",[115]],[[120321,120321],\"mapped\",[116]],[[120322,120322],\"mapped\",[117]],[[120323,120323],\"mapped\",[118]],[[120324,120324],\"mapped\",[119]],[[120325,120325],\"mapped\",[120]],[[120326,120326],\"mapped\",[121]],[[120327,120327],\"mapped\",[122]],[[120328,120328],\"mapped\",[97]],[[120329,120329],\"mapped\",[98]],[[120330,120330],\"mapped\",[99]],[[120331,120331],\"mapped\",[100]],[[120332,120332],\"mapped\",[101]],[[120333,120333],\"mapped\",[102]],[[120334,120334],\"mapped\",[103]],[[120335,120335],\"mapped\",[104]],[[120336,120336],\"mapped\",[105]],[[120337,120337],\"mapped\",[106]],[[120338,120338],\"mapped\",[107]],[[120339,120339],\"mapped\",[108]],[[120340,120340],\"mapped\",[109]],[[120341,120341],\"mapped\",[110]],[[120342,120342],\"mapped\",[111]],[[120343,120343],\"mapped\",[112]],[[120344,120344],\"mapped\",[113]],[[120345,120345],\"mapped\",[114]],[[120346,120346],\"mapped\",[115]],[[120347,120347],\"mapped\",[116]],[[120348,120348],\"mapped\",[117]],[[120349,120349],\"mapped\",[118]],[[120350,120350],\"mapped\",[119]],[[120351,120351],\"mapped\",[120]],[[120352,120352],\"mapped\",[121]],[[120353,120353],\"mapped\",[122]],[[120354,120354],\"mapped\",[97]],[[120355,120355],\"mapped\",[98]],[[120356,120356],\"mapped\",[99]],[[120357,120357],\"mapped\",[100]],[[120358,120358],\"mapped\",[101]],[[120359,120359],\"mapped\",[102]],[[120360,120360],\"mapped\",[103]],[[120361,120361],\"mapped\",[104]],[[120362,120362],\"mapped\",[105]],[[120363,120363],\"mapped\",[106]],[[120364,120364],\"mapped\",[107]],[[120365,120365],\"mapped\",[108]],[[120366,120366],\"mapped\",[109]],[[120367,120367],\"mapped\",[110]],[[120368,120368],\"mapped\",[111]],[[120369,120369],\"mapped\",[112]],[[120370,120370],\"mapped\",[113]],[[120371,120371],\"mapped\",[114]],[[120372,120372],\"mapped\",[115]],[[120373,120373],\"mapped\",[116]],[[120374,120374],\"mapped\",[117]],[[120375,120375],\"mapped\",[118]],[[120376,120376],\"mapped\",[119]],[[120377,120377],\"mapped\",[120]],[[120378,120378],\"mapped\",[121]],[[120379,120379],\"mapped\",[122]],[[120380,120380],\"mapped\",[97]],[[120381,120381],\"mapped\",[98]],[[120382,120382],\"mapped\",[99]],[[120383,120383],\"mapped\",[100]],[[120384,120384],\"mapped\",[101]],[[120385,120385],\"mapped\",[102]],[[120386,120386],\"mapped\",[103]],[[120387,120387],\"mapped\",[104]],[[120388,120388],\"mapped\",[105]],[[120389,120389],\"mapped\",[106]],[[120390,120390],\"mapped\",[107]],[[120391,120391],\"mapped\",[108]],[[120392,120392],\"mapped\",[109]],[[120393,120393],\"mapped\",[110]],[[120394,120394],\"mapped\",[111]],[[120395,120395],\"mapped\",[112]],[[120396,120396],\"mapped\",[113]],[[120397,120397],\"mapped\",[114]],[[120398,120398],\"mapped\",[115]],[[120399,120399],\"mapped\",[116]],[[120400,120400],\"mapped\",[117]],[[120401,120401],\"mapped\",[118]],[[120402,120402],\"mapped\",[119]],[[120403,120403],\"mapped\",[120]],[[120404,120404],\"mapped\",[121]],[[120405,120405],\"mapped\",[122]],[[120406,120406],\"mapped\",[97]],[[120407,120407],\"mapped\",[98]],[[120408,120408],\"mapped\",[99]
47807],[[120409,120409],\"mapped\",[100]],[[120410,120410],\"mapped\",[101]],[[120411,120411],\"mapped\",[102]],[[120412,120412],\"mapped\",[103]],[[120413,120413],\"mapped\",[104]],[[120414,120414],\"mapped\",[105]],[[120415,120415],\"mapped\",[106]],[[120416,120416],\"mapped\",[107]],[[120417,120417],\"mapped\",[108]],[[120418,120418],\"mapped\",[109]],[[120419,120419],\"mapped\",[110]],[[120420,120420],\"mapped\",[111]],[[120421,120421],\"mapped\",[112]],[[120422,120422],\"mapped\",[113]],[[120423,120423],\"mapped\",[114]],[[120424,120424],\"mapped\",[115]],[[120425,120425],\"mapped\",[116]],[[120426,120426],\"mapped\",[117]],[[120427,120427],\"mapped\",[118]],[[120428,120428],\"mapped\",[119]],[[120429,120429],\"mapped\",[120]],[[120430,120430],\"mapped\",[121]],[[120431,120431],\"mapped\",[122]],[[120432,120432],\"mapped\",[97]],[[120433,120433],\"mapped\",[98]],[[120434,120434],\"mapped\",[99]],[[120435,120435],\"mapped\",[100]],[[120436,120436],\"mapped\",[101]],[[120437,120437],\"mapped\",[102]],[[120438,120438],\"mapped\",[103]],[[120439,120439],\"mapped\",[104]],[[120440,120440],\"mapped\",[105]],[[120441,120441],\"mapped\",[106]],[[120442,120442],\"mapped\",[107]],[[120443,120443],\"mapped\",[108]],[[120444,120444],\"mapped\",[109]],[[120445,120445],\"mapped\",[110]],[[120446,120446],\"mapped\",[111]],[[120447,120447],\"mapped\",[112]],[[120448,120448],\"mapped\",[113]],[[120449,120449],\"mapped\",[114]],[[120450,120450],\"mapped\",[115]],[[120451,120451],\"mapped\",[116]],[[120452,120452],\"mapped\",[117]],[[120453,120453],\"mapped\",[118]],[[120454,120454],\"mapped\",[119]],[[120455,120455],\"mapped\",[120]],[[120456,120456],\"mapped\",[121]],[[120457,120457],\"mapped\",[122]],[[120458,120458],\"mapped\",[97]],[[120459,120459],\"mapped\",[98]],[[120460,120460],\"mapped\",[99]],[[120461,120461],\"mapped\",[100]],[[120462,120462],\"mapped\",[101]],[[120463,120463],\"mapped\",[102]],[[120464,120464],\"mapped\",[103]],[[120465,120465],\"mapped\",[104]],[[120466,120466],\"mapped\",[105]],[[120467,120467],\"mapped\",[106]],[[120468,120468],\"mapped\",[107]],[[120469,120469],\"mapped\",[108]],[[120470,120470],\"mapped\",[109]],[[120471,120471],\"mapped\",[110]],[[120472,120472],\"mapped\",[111]],[[120473,120473],\"mapped\",[112]],[[120474,120474],\"mapped\",[113]],[[120475,120475],\"mapped\",[114]],[[120476,120476],\"mapped\",[115]],[[120477,120477],\"mapped\",[116]],[[120478,120478],\"mapped\",[117]],[[120479,120479],\"mapped\",[118]],[[120480,120480],\"mapped\",[119]],[[120481,120481],\"mapped\",[120]],[[120482,120482],\"mapped\",[121]],[[120483,120483],\"mapped\",[122]],[[120484,120484],\"mapped\",[305]],[[120485,120485],\"mapped\",[567]],[[120486,120487],\"disallowed\"],[[120488,120488],\"mapped\",[945]],[[120489,120489],\"mapped\",[946]],[[120490,120490],\"mapped\",[947]],[[120491,120491],\"mapped\",[948]],[[120492,120492],\"mapped\",[949]],[[120493,120493],\"mapped\",[950]],[[120494,120494],\"mapped\",[951]],[[120495,120495],\"mapped\",[952]],[[120496,120496],\"mapped\",[953]],[[120497,120497],\"mapped\",[954]],[[120498,120498],\"mapped\",[955]],[[120499,120499],\"mapped\",[956]],[[120500,120500],\"mapped\",[957]],[[120501,120501],\"mapped\",[958]],[[120502,120502],\"mapped\",[959]],[[120503,120503],\"mapped\",[960]],[[120504,120504],\"mapped\",[961]],[[120505,120505],\"mapped\",[952]],[[120506,120506],\"mapped\",[963]],[[120507,120507],\"mapped\",[964]],[[120508,120508],\"mapped\",[965]],[[120509,120509],\"mapped\",[966]],[[120510,120510],\"mapped\",[967]],[[120511,120511],\"mapped\",[968]],[[120512,120512],\"mapped\",[969]],[[120513,120513],\"mapped\",[8711]],[[120514,120514],\"mapped\",[945]],[[120515,120515],\"mapped\",[946]],[[120516,120516],\"mapped\",[947]],[[120517,120517],\"mapped\",[948]],[[120518,120518],\"mapped\",[949]],[[120519,120519],\"mapped\",[950]],[[120520,120520],\"mapped\",[951]],[[120521,120521],\"mapped\",[952]],[[120522,120522],\"mapped\",[953]],[[120523,120523],\"mapped\",[954]],[[120524,120524],\"mapped\",[955]],[[120525,120525],\"mapped\",[956]],[[120526,120526],\"mapped\",[957]],[[120527,120527],\"mapped\",[958]],[[120528,120528],\"mapped\",[959]],[[120529,120529],\"mapped\",[960]],[[120530,120530],\"mapped\",[961]],[[120531,120532],\"mapped\",[963]],[[120533,120533],\"mapped\",[964]],[[120534,120534],\"mapped\",[965]],[[120535,120535],\"mapped\",[966]],[[120536,120536],\"mapped\",[967]],[[120537,120537],\"mapped\",[968]],[[120538,120538],\"mapped\",[969]],[[120539,120539],\"mapped\",[8706]],[[120540,120540],\"mapped\",[949]],[[120541,120541],\"mapped\",[952]],[[120542,120542],\"mapped\",[954]],[[120543,120543],\"mapped\",[966]],[[120544,120544],\"mapped\",[961]],[[120545,120545],\"mapped\",[960]],[[120546,120546],\"mapped\",[945]],[[120547,120547],\"mapped\",[946]],[[120548,120548],\"mapped\",[947]],[[120549,120549],\"mapped\",[948]],[[120550,120550],\"mapped\",[949]],[[120551,120551],\"mapped\",[950]],[[120552,120552],\"mapped\",[951]],[[120553,120553],\"mapped\",[952]],[[120554,120554],\"mapped\",[953]],[[120555,120555],\"mapped\",[954]],[[120556,120556],\"mapped\",[955]],[[120557,120557],\"mapped\",[956]],[[120558,120558],\"mapped\",[957]],[[120559,120559],\"mapped\",[958]],[[120560,120560],\"mapped\",[959]],[[120561,120561],\"mapped\",[960]],[[120562,120562],\"mapped\",[961]],[[120563,120563],\"mapped\",[952]],[[120564,120564],\"mapped\",[963]],[[120565,120565],\"mapped\",[964]],[[120566,12
478070566],\"mapped\",[965]],[[120567,120567],\"mapped\",[966]],[[120568,120568],\"mapped\",[967]],[[120569,120569],\"mapped\",[968]],[[120570,120570],\"mapped\",[969]],[[120571,120571],\"mapped\",[8711]],[[120572,120572],\"mapped\",[945]],[[120573,120573],\"mapped\",[946]],[[120574,120574],\"mapped\",[947]],[[120575,120575],\"mapped\",[948]],[[120576,120576],\"mapped\",[949]],[[120577,120577],\"mapped\",[950]],[[120578,120578],\"mapped\",[951]],[[120579,120579],\"mapped\",[952]],[[120580,120580],\"mapped\",[953]],[[120581,120581],\"mapped\",[954]],[[120582,120582],\"mapped\",[955]],[[120583,120583],\"mapped\",[956]],[[120584,120584],\"mapped\",[957]],[[120585,120585],\"mapped\",[958]],[[120586,120586],\"mapped\",[959]],[[120587,120587],\"mapped\",[960]],[[120588,120588],\"mapped\",[961]],[[120589,120590],\"mapped\",[963]],[[120591,120591],\"mapped\",[964]],[[120592,120592],\"mapped\",[965]],[[120593,120593],\"mapped\",[966]],[[120594,120594],\"mapped\",[967]],[[120595,120595],\"mapped\",[968]],[[120596,120596],\"mapped\",[969]],[[120597,120597],\"mapped\",[8706]],[[120598,120598],\"mapped\",[949]],[[120599,120599],\"mapped\",[952]],[[120600,120600],\"mapped\",[954]],[[120601,120601],\"mapped\",[966]],[[120602,120602],\"mapped\",[961]],[[120603,120603],\"mapped\",[960]],[[120604,120604],\"mapped\",[945]],[[120605,120605],\"mapped\",[946]],[[120606,120606],\"mapped\",[947]],[[120607,120607],\"mapped\",[948]],[[120608,120608],\"mapped\",[949]],[[120609,120609],\"mapped\",[950]],[[120610,120610],\"mapped\",[951]],[[120611,120611],\"mapped\",[952]],[[120612,120612],\"mapped\",[953]],[[120613,120613],\"mapped\",[954]],[[120614,120614],\"mapped\",[955]],[[120615,120615],\"mapped\",[956]],[[120616,120616],\"mapped\",[957]],[[120617,120617],\"mapped\",[958]],[[120618,120618],\"mapped\",[959]],[[120619,120619],\"mapped\",[960]],[[120620,120620],\"mapped\",[961]],[[120621,120621],\"mapped\",[952]],[[120622,120622],\"mapped\",[963]],[[120623,120623],\"mapped\",[964]],[[120624,120624],\"mapped\",[965]],[[120625,120625],\"mapped\",[966]],[[120626,120626],\"mapped\",[967]],[[120627,120627],\"mapped\",[968]],[[120628,120628],\"mapped\",[969]],[[120629,120629],\"mapped\",[8711]],[[120630,120630],\"mapped\",[945]],[[120631,120631],\"mapped\",[946]],[[120632,120632],\"mapped\",[947]],[[120633,120633],\"mapped\",[948]],[[120634,120634],\"mapped\",[949]],[[120635,120635],\"mapped\",[950]],[[120636,120636],\"mapped\",[951]],[[120637,120637],\"mapped\",[952]],[[120638,120638],\"mapped\",[953]],[[120639,120639],\"mapped\",[954]],[[120640,120640],\"mapped\",[955]],[[120641,120641],\"mapped\",[956]],[[120642,120642],\"mapped\",[957]],[[120643,120643],\"mapped\",[958]],[[120644,120644],\"mapped\",[959]],[[120645,120645],\"mapped\",[960]],[[120646,120646],\"mapped\",[961]],[[120647,120648],\"mapped\",[963]],[[120649,120649],\"mapped\",[964]],[[120650,120650],\"mapped\",[965]],[[120651,120651],\"mapped\",[966]],[[120652,120652],\"mapped\",[967]],[[120653,120653],\"mapped\",[968]],[[120654,120654],\"mapped\",[969]],[[120655,120655],\"mapped\",[8706]],[[120656,120656],\"mapped\",[949]],[[120657,120657],\"mapped\",[952]],[[120658,120658],\"mapped\",[954]],[[120659,120659],\"mapped\",[966]],[[120660,120660],\"mapped\",[961]],[[120661,120661],\"mapped\",[960]],[[120662,120662],\"mapped\",[945]],[[120663,120663],\"mapped\",[946]],[[120664,120664],\"mapped\",[947]],[[120665,120665],\"mapped\",[948]],[[120666,120666],\"mapped\",[949]],[[120667,120667],\"mapped\",[950]],[[120668,120668],\"mapped\",[951]],[[120669,120669],\"mapped\",[952]],[[120670,120670],\"mapped\",[953]],[[120671,120671],\"mapped\",[954]],[[120672,120672],\"mapped\",[955]],[[120673,120673],\"mapped\",[956]],[[120674,120674],\"mapped\",[957]],[[120675,120675],\"mapped\",[958]],[[120676,120676],\"mapped\",[959]],[[120677,120677],\"mapped\",[960]],[[120678,120678],\"mapped\",[961]],[[120679,120679],\"mapped\",[952]],[[120680,120680],\"mapped\",[963]],[[120681,120681],\"mapped\",[964]],[[120682,120682],\"mapped\",[965]],[[120683,120683],\"mapped\",[966]],[[120684,120684],\"mapped\",[967]],[[120685,120685],\"mapped\",[968]],[[120686,120686],\"mapped\",[969]],[[120687,120687],\"mapped\",[8711]],[[120688,120688],\"mapped\",[945]],[[120689,120689],\"mapped\",[946]],[[120690,120690],\"mapped\",[947]],[[120691,120691],\"mapped\",[948]],[[120692,120692],\"mapped\",[949]],[[120693,120693],\"mapped\",[950]],[[120694,120694],\"mapped\",[951]],[[120695,120695],\"mapped\",[952]],[[120696,120696],\"mapped\",[953]],[[120697,
47807120697],\"mapped\",[954]],[[120698,120698],\"mapped\",[955]],[[120699,120699],\"mapped\",[956]],[[120700,120700],\"mapped\",[957]],[[120701,120701],\"mapped\",[958]],[[120702,120702],\"mapped\",[959]],[[120703,120703],\"mapped\",[960]],[[120704,120704],\"mapped\",[961]],[[120705,120706],\"mapped\",[963]],[[120707,120707],\"mapped\",[964]],[[120708,120708],\"mapped\",[965]],[[120709,120709],\"mapped\",[966]],[[120710,120710],\"mapped\",[967]],[[120711,120711],\"mapped\",[968]],[[120712,120712],\"mapped\",[969]],[[120713,120713],\"mapped\",[8706]],[[120714,120714],\"mapped\",[949]],[[120715,120715],\"mapped\",[952]],[[120716,120716],\"mapped\",[954]],[[120717,120717],\"mapped\",[966]],[[120718,120718],\"mapped\",[961]],[[120719,120719],\"mapped\",[960]],[[120720,120720],\"mapped\",[945]],[[120721,120721],\"mapped\",[946]],[[120722,120722],\"mapped\",[947]],[[120723,120723],\"mapped\",[948]],[[120724,120724],\"mapped\",[949]],[[120725,120725],\"mapped\",[950]],[[120726,120726],\"mapped\",[951]],[[120727,120727],\"mapped\",[952]],[[120728,120728],\"mapped\",[953]],[[120729,120729],\"mapped\",[954]],[[120730,120730],\"mapped\",[955]],[[120731,120731],\"mapped\",[956]],[[120732,120732],\"mapped\",[957]],[[120733,120733],\"mapped\",[958]],[[120734,120734],\"mapped\",[959]],[[120735,120735],\"mapped\",[960]],[[120736,120736],\"mapped\",[961]],[[120737,120737],\"mapped\",[952]],[[120738,120738],\"mapped\",[963]],[[120739,120739],\"mapped\",[964]],[[120740,120740],\"mapped\",[965]],[[120741,120741],\"mapped\",[966]],[[120742,120742],\"mapped\",[967]],[[120743,120743],\"mapped\",[968]],[[120744,120744],\"mapped\",[969]],[[120745,120745],\"mapped\",[8711]],[[120746,120746],\"mapped\",[945]],[[120747,120747],\"mapped\",[946]],[[120748,120748],\"mapped\",[947]],[[120749,120749],\"mapped\",[948]],[[120750,120750],\"mapped\",[949]],[[120751,120751],\"mapped\",[950]],[[120752,120752],\"mapped\",[951]],[[120753,120753],\"mapped\",[952]],[[120754,120754],\"mapped\",[953]],[[120755,120755],\"mapped\",[954]],[[120756,120756],\"mapped\",[955]],[[120757,120757],\"mapped\",[956]],[[120758,120758],\"mapped\",[957]],[[120759,120759],\"mapped\",[958]],[[120760,120760],\"mapped\",[959]],[[120761,120761],\"mapped\",[960]],[[120762,120762],\"mapped\",[961]],[[120763,120764],\"mapped\",[963]],[[120765,120765],\"mapped\",[964]],[[120766,120766],\"mapped\",[965]],[[120767,120767],\"mapped\",[966]],[[120768,120768],\"mapped\",[967]],[[120769,120769],\"mapped\",[968]],[[120770,120770],\"mapped\",[969]],[[120771,120771],\"mapped\",[8706]],[[120772,120772],\"mapped\",[949]],[[120773,120773],\"mapped\",[952]],[[120774,120774],\"mapped\",[954]],[[120775,120775],\"mapped\",[966]],[[120776,120776],\"mapped\",[961]],[[120777,120777],\"mapped\",[960]],[[120778,120779],\"mapped\",[989]],[[120780,120781],\"disallowed\"],[[120782,120782],\"mapped\",[48]],[[120783,120783],\"mapped\",[49]],[[120784,120784],\"mapped\",[50]],[[120785,120785],\"mapped\",[51]],[[120786,120786],\"mapped\",[52]],[[120787,120787],\"mapped\",[53]],[[120788,120788],\"mapped\",[54]],[[120789,120789],\"mapped\",[55]],[[120790,120790],\"mapped\",[56]],[[120791,120791],\"mapped\",[57]],[[120792,120792],\"mapped\",[48]],[[120793,120793],\"mapped\",[49]],[[120794,120794],\"mapped\",[50]],[[120795,120795],\"mapped\",[51]],[[120796,120796],\"mapped\",[52]],[[120797,120797],\"mapped\",[53]],[[120798,120798],\"mapped\",[54]],[[120799,120799],\"mapped\",[55]],[[120800,120800],\"mapped\",[56]],[[120801,120801],\"mapped\",[57]],[[120802,120802],\"mapped\",[48]],[[120803,120803],\"mapped\",[49]],[[120804,120804],\"mapped\",[50]],[[120805,120805],\"mapped\",[51]],[[120806,120806],\"mapped\",[52]],[[120807,120807],\"mapped\",[53]],[[120808,120808],\"mapped\",[54]],[[120809,120809],\"mapped\",[55]],[[120810,120810],\"mapped\",[56]],[[120811,120811],\"mapped\",[57]],[[120812,120812],\"mapped\",[48]],[[120813,120813],\"mapped\",[49]],[[120814,120814],\"mapped\",[50]],[[120815,120815],\"mapped\",[51]],[[120816,120816],\"mapped\",[52]],[[120817,120817],\"mapped\",[53]],[[120818,120818],\"mapped\",[54]],[[120819,120819],\"mapped\",[55]],[[120820,120820],\"mapped\",[56]],[[120821,120821],\"mapped\",[57]],[[120822,120822],\"mapped\",[48]],[[120823,120823],\"mapped\",[49]],[[120824,120824],\"mapped\",[50]],[[120825,120825],\"mapped\",[51]],[[120826,120826],\"mapped\",[52]],[[120827,120827],\"mapped\",[53]],[[120828,120828],\"mapped\",[54]],[[120829,120829],\"mapped\",[55]],[[120830,120830],\"mapped\",[56]],[[120831,120831],\"mapped\",[57]],[[120832,121343],\"valid\",[],\"NV8\"],[[121344,121398],\"valid\"],[[121399,121402],\"valid\",[],\"NV8\"],[[121403,121452],\"valid\"],[[121453,121460],\"valid\",[],\"NV8\"],[[121461,121461],\"valid\"],[[121462,121475],\"valid\",[],\"NV8\"],[[121476,121476],\"valid\"],[[121477,121483],\"valid\",[],\"NV8\"],[[121484,121498],\"disallowed\"],[[121499,121503],\"valid\"],[[121504,121504],\"disallowed\"],[[121505,121519],\"valid\"],[[121520,124927],\"disallowed\"],[[124928,125124],\"valid\"],[[125125,125126],\"disallowed\"],[[125127,125135],\"valid\",[],\"NV8\"],[[125136,125142],\"valid\"],[[125143,126463],\"disallowed\"],[[126464,126464],\"mapped\",[1575]],[[126465,126465],\"mapped\",[1576]],[[126466,126466],\"mapped\",[1580]],[[126467,126467],\"mapped\",[1583]],[[126468,126468],\"disallowed\"],[[126469,126469],\"mapped\",[1608]],[[126470,
47807126470],\"mapped\",[1586]],[[126471,126471],\"mapped\",[1581]],[[126472,126472],\"mapped\",[1591]],[[126473,126473],\"mapped\",[1610]],[[126474,126474],\"mapped\",[1603]],[[126475,126475],\"mapped\",[1604]],[[126476,126476],\"mapped\",[1605]],[[126477,126477],\"mapped\",[1606]],[[126478,126478],\"mapped\",[1587]],[[126479,126479],\"mapped\",[1593]],[[126480,126480],\"mapped\",[1601]],[[126481,126481],\"mapped\",[1589]],[[126482,126482],\"mapped\",[1602]],[[126483,126483],\"mapped\",[1585]],[[126484,126484],\"mapped\",[1588]],[[126485,126485],\"mapped\",[1578]],[[126486,126486],\"mapped\",[1579]],[[126487,126487],\"mapped\",[1582]],[[126488,126488],\"mapped\",[1584]],[[126489,126489],\"mapped\",[1590]],[[126490,126490],\"mapped\",[1592]],[[126491,126491],\"mapped\",[1594]],[[126492,126492],\"mapped\",[1646]],[[126493,126493],\"mapped\",[1722]],[[126494,126494],\"mapped\",[1697]],[[126495,126495],\"mapped\",[1647]],[[126496,126496],\"disallowed\"],[[126497,126497],\"mapped\",[1576]],[[126498,126498],\"mapped\",[1580]],[[126499,126499],\"disallowed\"],[[126500,126500],\"mapped\",[1607]],[[126501,126502],\"disallowed\"],[[126503,126503],\"mapped\",[1581]],[[126504,126504],\"disallowed\"],[[126505,126505],\"mapped\",[1610]],[[126506,126506],\"mapped\",[1603]],[[126507,126507],\"mapped\",[1604]],[[126508,126508],\"mapped\",[1605]],[[126509,126509],\"mapped\",[1606]],[[126510,126510],\"mapped\",[1587]],[[126511,126511],\"mapped\",[1593]],[[126512,126512],\"mapped\",[1601]],[[126513,126513],\"mapped\",[1589]],[[126514,126514],\"mapped\",[1602]],[[126515,126515],\"disallowed\"],[[126516,126516],\"mapped\",[1588]],[[126517,126517],\"mapped\",[1578]],[[126518,126518],\"mapped\",[1579]],[[126519,126519],\"mapped\",[1582]],[[126520,126520],\"disallowed\"],[[126521,126521],\"mapped\",[1590]],[[126522,126522],\"disallowed\"],[[126523,126523],\"mapped\",[1594]],[[126524,126529],\"disallowed\"],[[126530,126530],\"mapped\",[1580]],[[126531,126534],\"disallowed\"],[[126535,126535],\"mapped\",[1581]],[[126536,126536],\"disallowed\"],[[126537,126537],\"mapped\",[1610]],[[126538,126538],\"disallowed\"],[[126539,126539],\"mapped\",[1604]],[[126540,126540],\"disallowed\"],[[126541,126541],\"mapped\",[1606]],[[126542,126542],\"mapped\",[1587]],[[126543,126543],\"mapped\",[1593]],[[126544,126544],\"disallowed\"],[[126545,126545],\"mapped\",[1589]],[[126546,126546],\"mapped\",[1602]],[[126547,126547],\"disallowed\"],[[126548,126548],\"mapped\",[1588]],[[126549,126550],\"disallowed\"],[[126551,126551],\"mapped\",[1582]],[[126552,126552],\"disallowed\"],[[126553,126553],\"mapped\",[1590]],[[126554,126554],\"disallowed\"],[[126555,126555],\"mapped\",[1594]],[[126556,126556],\"disallowed\"],[[126557,126557],\"mapped\",[1722]],[[126558,126558],\"disallowed\"],[[126559,126559],\"mapped\",[1647
47807]],[[126560,126560],\"disallowed\"],[[126561,126561],\"mapped\",[1576]],[[126562,126562],\"mapped\",[1580]],[[126563,126563],\"disallowed\"],[[126564,126564],\"mapped\",[1607]],[[126565,126566],\"disallowed\"],[[126567,126567],\"mapped\",[1581]],[[126568,126568],\"mapped\",[1591]],[[126569,126569],\"mapped\",[1610]],[[126570,126570],\"mapped\",[1603]],[[126571,126571],\"disallowed\"],[[126572,126572],\"mapped\",[1605]],[[126573,126573],\"mapped\",[1606]],[[126574,126574],\"mapped\",[1587]],[[126575,126575],\"mapped\",[1593]],[[126576,126576],\"mapped\",[1601]],[[126577,126577],\"mapped\",[1589]],[[126578,126578],\"mapped\",[1602]],[[126579,126579],\"disallowed\"],[[126580,126580],\"mapped\",[1588]],[[126581,126581],\"mapped\",[1578]],[[126582,126582],\"mapped\",[1579]],[[126583,126583],\"mapped\",[1582]],[[126584,126584],\"disallowed\"],[[126585,126585],\"mapped\",[1590]],[[126586,126586],\"mapped\",[1592]],[[126587,126587],\"mapped\",[1594]],[[126588,126588],\"mapped\",[1646]],[[126589,126589],\"disallowed\"],[[126590,126590],\"mapped\",[1697]],[[126591,126591],\"disallowed\"],[[126592,126592],\"mapped\",[1575]],[[126593,126593],\"mapped\",[1576]],[[126594,126594],\"mapped\",[1580]],[[126595,126595],\"mapped\",[1583]],[[126596,126596],\"mapped\",[1607]],[[126597,126597],\"mapped\",[1608]],[[126598,126598],\"mapped\",[1586]],[[126599,126599],\"mapped\",[1581]],[[126600,126600],\"mapped\",[1591]],[[126601,126601],\"mapped\",[1610]],[[126602,126602],\"disallowed\"],[[126603,126603],\"mapped\",[1604]],[[126604,126604],\"mapped\",[1605]],[[126605,126605],\"mapped\",[1606]],[[126606,126606],\"mapped\",[1587]],[[126607,126607],\"mapped\",[1593]],[[126608,126608],\"mapped\",[1601]],[[126609,126609],\"mapped\",[1589]],[[126610,126610],\"mapped\",[1602]],[[126611,126611],\"mapped\",[1585]],[[126612,126612],\"mapped\",[1588]],[[126613,126613],\"mapped\",[1578]],[[126614,126614],\"mapped\",[1579]],[[126615,126615],\"mapped\",[1582]],[[126616,126616],\"mapped\",[1584]],[[126617,126617],\"mapped\",[1590]],[[126618,126618],\"mapped\",[1592]],[[126619,126619],\"mapped\",[1594]],[[126620,126624],\"disallowed\"],[[126625,126625],\"mapped\",[1576]],[[126626,126626],\"mapped\",[1580]],[[126627,126627],\"mapped\",[1583]],[[126628,126628],\"disallowed\"],[[126629,126629],\"mapped\",[1608]],[[126630,126630],\"mapped\",[1586]],[[126631,126631],\"mapped\",[1581]],[[126632,126632],\"mapped\",[1591]],[[126633,126633],\"mapped\",[1610]],[[126634,126634],\"disallowed\"],[[126635,126635],\"mapped\",[1604]],[[126636,126636],\"mapped\",[1605]],[[126637,126637],\"mapped\",[1606]],[[126638,126638],\"mapped\",[1587]],[[126639,126639],\"mapped\",[1593]],[[126640,126640],\"mapped\",[1601]],[[126641,126641],\"mapped\",[1589]],[[126642,126642],\"mapped\",[1602]],[[126643,126643],\"mapped\",[1585]],[[126644,126644],\"mapped\",[1588]],[[126645,126645],\"mapped\",[1578]],[[126646,126646],\"mapped\",[1579]],[[126647,126647],\"mapped\",[1582]],[[126648,126648],\"mapped\",[1584]],[[126649,126649],\"mapped\",[1590]],[[126650,126650],\"mapped\",[1592]],[[126651,126651],\"mapped\",[1594]],[[126652,126703],\"disallowed\"],[[126704,126705],\"valid\",[],\"NV8\"],[[126706,126975],\"disallowed\"],[[126976,127019],\"valid\",[],\"NV8\"],[[127020,127023],\"disallowed\"],[[127024,127123],\"valid\",[],\"NV8\"],[[127124,127135],\"disallowed\"],[[127136,127150],\"valid\",[],\"NV8\"],[[127151,127152],\"disallowed\"],[[127153,127166],\"valid\",[],\"NV8\"],[[127167,127167],\"valid\",[],\"NV8\"],[[127168,127168],\"disallowed\"],[[127169,127183],\"valid\",[],\"NV8\"],[[127184,127184],\"disallowed\"],[[127185,127199],\"valid\",[],\"NV8\"],[[127200,127221],\"valid\",[],\"NV8\"],[[127222,127231],\"disallowed\"],[[127232,127232],\"disallowed\"],[[127233,127233],\"disallowed_STD3_mapped\",[48,44]],[[127234,127234],\"disallowed_STD3_mapped\",[49,44]],[[127235,127235],\"disallowed_STD3_mapped\",[50,44]],[[127236,127236],\"disallowed_STD3_mapped\",[51,44]],[[127237,127237],\"disallowed_STD3_mapped\",[52,44]],[[127238,127238],\"disallowed_STD3_mapped\",[53,44]],[[127239,127239],\"disallowed_STD3_mapped\",[54,44]],[[127240,127240],\"disallowed_STD3_mapped\",[55,44]],[[127241,127241],\"disallowed_STD3_mapped\",[56,44]],[[127242,127242],\"disallowed_STD3_mapped\",[57,44]],[[127243,127244],\"valid\",[],\"NV8\"],[[127245,127247],\"disallowed\"],[[127248,127248],\"disallowed_STD3_mapped\",[40,97,41]],[[127249,127249],\"disallowed_STD3_mapped\",[40,98,41]],[[127250,127250],\"disallowed_STD3_mapped\",[40,99,41]],[[127251,127251],\"disallowed_STD3_mapped\",[40,100,41]],[[127252,127252],\"disallowed_STD3_mapped\",[40,101,41]],[[127253,127253],\"disallowed_STD3_mapped\",[40,102,41]],[[127254,127254],\"disallowed_STD3_mapped\",[40,103,41]],[[127255,127255],\"disallowed_STD3_mapped\",[40,104,41]],[[127256,
47807127256],\"disallowed_STD3_mapped\",[40,105,41]],[[127257,127257],\"disallowed_STD3_mapped\",[40,106,41]],[[127258,127258],\"disallowed_STD3_mapped\",[40,107,41]],[[127259,127259],\"disallowed_STD3_mapped\",[40,108,41]],[[127260,127260],\"disallowed_STD3_mapped\",[40,109,41]],[[127261,127261],\"disallowed_STD3_mapped\",[40,110,41]],[[127262,127262],\"disallowed_STD3_mapped\",[40,111,41]],[[127263,127263],\"disallowed_STD3_mapped\",[40,112,41]],[[127264,127264],\"disallowed_STD3_mapped\",[40,113,41]],[[127265,127265],\"disallowed_STD3_mapped\",[40,114,41]],[[127266,127266],\"disallowed_STD3_mapped\",[40,115,41]],[[127267,127267],\"disallowed_STD3_mapped\",[40,116,41]],[[127268,127268],\"disallowed_STD3_mapped\",[40,117,41]],[[127269,127269],\"disallowed_STD3_mapped\",[40,118,41]],[[127270,127270],\"disallowed_STD3_mapped\",[40,119,41]],[[127271,127271],\"disallowed_STD3_mapped\",[40,120,41]],[[127272,127272],\"disallowed_STD3_mapped\",[40,121,41]],[[127273,127273],\"disallowed_STD3_mapped\",[40,122,41]],[[127274,127274],\"mapped\",[12308,115,12309]],[[127275,127275],\"mapped\",[99]],[[127276,127276],\"mapped\",[114]],[[127277,127277],\"mapped\",[99,100]],[[127278,127278],\"mapped\",[119,122]],[[127279,127279],\"disallowed\"],[[127280,127280],\"mapped\",[97]],[[127281,127281],\"mapped\",[98]],[[127282,127282],\"mapped\",[99]],[[127283,127283],\"mapped\",[100]],[[127284,127284],\"mapped\",[101]],[[127285,127285],\"mapped\",[102]],[[127286,127286],\"mapped\",[103]],[[127287,127287],\"mapped\",[104]],[[127288,127288],\"mapped\",[105]],[[127289,127289],\"mapped\",[106]],[[127290,127290],\"mapped\",[107]],[[127291,127291],\"mapped\",[108]],[[127292,127292],\"mapped\",[109]],[[127293,127293],\"mapped\",[110]],[[127294,127294],\"mapped\",[111]],[[127295,127295],\"mapped\",[112]],[[127296,127296],\"mapped\",[113]],[[127297,127297],\"mapped\",[114]],[[127298,127298],\"mapped\",[115]],[[127299,127299],\"mapped\",[116]],[[127300,127300],\"mapped\",[117]],[[127301,127301],\"mapped\",[118]],[[127302,127302],\"mapped\",[119]],[[127303,127303],\"mapped\",[120]],[[127304,127304],\"mapped\",[121]],[[127305,127305],\"mapped\",[122]],[[127306,127306],\"mapped\",[104,118]],[[127307,127307],\"mapped\",[109,118]],[[127308,127308],\"mapped\",[115,100]],[[127309,127309],\"mapped\",[115,115]],[[127310,127310],\"mapped\",[112,112,118]],[[127311,127311],\"mapped\",[119,99]],[[127312,127318],\"valid\",[],\"NV8\"],[[127319,127319],\"valid\",[],\"NV8\"],[[127320,127326],\"valid\",[],\"NV8\"],[[127327,127327],\"valid\",[],\"NV8\"],[[127328,127337],\"valid\",[],\"NV8\"],[[127338,127338],\"mapped\",[109,99]],[[127339,127339],\"mapped\",[109,100]],[[127340,127343],\"disallowed\"],[[127344,127352],\"valid\",[],\"NV8\"],[[127353,127353],\"valid\",[],\"NV8\"],[[127354,127354],\"valid\",[],\"NV8\"],[[127355,127356],\"valid\",[],\"NV8\"],[[127357,127358],\"valid\",[],\"NV8\"],[[127359,127359],\"valid\",[],\"NV8\"],[[127360,127369],\"valid\",[],\"NV8\"],[[127370,127373],\"valid\",[],\"NV8\"],[[127374,127375],\"valid\",[],\"NV8\"],[[127376,127376],\"mapped\",[100,106]],[[127377,127386],\"valid\",[],\"NV8\"],[[127387,127461],\"disallowed\"],[[127462,127487],\"valid\",[],\"NV8\"],[[127488,127488],\"mapped\",[12411,12363]],[[127489,127489],\"mapped\",[12467,12467]],[[127490,127490],\"mapped\",[12469]],[[127491,127503],\"disallowed\"],[[127504,127504],\"mapped\",[25163]],[[127505,127505],\"mapped\",[23383]],[[127506,127506],\"mapped\",[21452]],[[127507,127507],\"mapped\",[12487]],[[127508,127508],\"mapped\",[20108]],[[127509,127509],\"mapped\",[22810]],[[127510,127510],\"mapped\",[35299]],[[127511,127511],\"mapped\",[22825]],[[127512,127512],\"mapped\",[20132]],[[127513,127513],\"mapped\",[26144]],[[127514,127514],\"mapped\",[28961]],[[127515,127515],\"mapped\",[26009]],[[127516,127516],\"mapped\",[21069]],[[127517,127517],\"mapped\",[24460]],[[127518,127518],\"mapped\",[20877]],[[127519,127519],\"mapped\",[26032]],[[127520,127520],\"mapped\",[21021]],[[127521,127521],\"mapped\",[32066]],[[127522,127522],\"mapped\",[29983]],[[127523,127523],\"mapped\",[36009]],[[127524,127524],\"mapped\",[22768]],[[127525,127525],\"mapped\",[21561]],[[127526,127526],\"mapped\",[28436]],[[127527,127527],\"mapped\",[25237]],[[127528,127528],\"mapped\",[25429]],[[127529,127529],\"mapped\",[19968]],[[127530,127530],\"mapped\",[19977]],[[127531,127531],\"mapped\",[36938]],[[127532,127532],\"mapped\",[24038]],[[127533,127533],\"mapped\",[20013]],[[127534,127534],\"mapped\",[21491]],[[127535,127535],\"mapped\",[25351]],[[127536,127536],\"mapped\",[36208]],[[127537,127537],\"mapped\",[25171]],[[127538,127538],\"mapped\",[31105]],[[127539,127539],\"mapped\",[31354]],[[127540,127540],\"mapped\",[21512]],[[127541,127541],\"mapped\",[28288]],[[127542,127542],\"mapped\",[26377]],[[127543,127543],\"mapped\",[26376]],[[127544,127544],\"mapped\",[30003]],[[127545,127545],\"mapped\",[21106]],[[127546,127546],\"mapped\",[21942]],[[127547,127551],\"disallowed\"],[[127552,127552],\"mapped\",[12308,26412,12309]],[[127553,127553],\"mapped\",[12308,19977,12309]],[[127554,127554],\"mapped\",[12308,20108,12309]],[[127555,127555],\"mapped\",[12308,23433,12309]],[[127556,127556],\"mapped\",[12308,28857,12309]],[[127557,127557],\"mapped\",[12308,25171,12309]],[[127558,127558],\"mapped\",[12308,30423,12309]],[[127559,127559],\"mapped\",[12308,21213,12309]],[[127560,127560],\"mapped\",[12308,25943,12309]],[[127561,
47807127567],\"disallowed\"],[[127568,127568],\"mapped\",[24471]],[[127569,127569],\"mapped\",[21487]],[[127570,127743],\"disallowed\"],[[127744,127776],\"valid\",[],\"NV8\"],[[127777,127788],\"valid\",[],\"NV8\"],[[127789,127791],\"valid\",[],\"NV8\"],[[127792,127797],\"valid\",[],\"NV8\"],[[127798,127798],\"valid\",[],\"NV8\"],[[127799,127868],\"valid\",[],\"NV8\"],[[127869,127869],\"valid\",[],\"NV8\"],[[127870,127871],\"valid\",[],\"NV8\"],[[127872,127891],\"valid\",[],\"NV8\"],[[127892,127903],\"valid\",[],\"NV8\"],[[127904,127940],\"valid\",[],\"NV8\"],[[127941,127941],\"valid\",[],\"NV8\"],[[127942,127946],\"valid\",[],\"NV8\"],[[127947,127950],\"valid\",[],\"NV8\"],[[127951,127955],\"valid\",[],\"NV8\"],[[127956,127967],\"valid\",[],\"NV8\"],[[127968,127984],\"valid\",[],\"NV8\"],[[127985,127991],\"valid\",[],\"NV8\"],[[127992,127999],\"valid\",[],\"NV8\"],[[128000,128062],\"valid\",[],\"NV8\"],[[128063,128063],\"valid\",[],\"NV8\"],[[128064,128064],\"valid\",[],\"NV8\"],[[128065,128065],\"valid\",[],\"NV8\"],[[128066,128247],\"valid\",[],\"NV8\"],[[128248,128248],\"valid\",[],\"NV8\"],[[128249,128252],\"valid\",[],\"NV8\"],[[128253,128254],\"valid\",[],\"NV8\"],[[128255,128255],\"valid\",[],\"NV8\"],[[128256,128317],\"valid\",[],\"NV8\"],[[128318,128319],\"valid\",[],\"NV8\"],[[128320,128323],\"valid\",[],\"NV8\"],[[128324,128330],\"valid\",[],\"NV8\"],[[128331,128335],\"valid\",[],\"NV8\"],[[128336,128359],\"valid\",[],\"NV8\"],[[128360,128377],\"valid\",[],\"NV8\"],[[128378,128378],\"disallowed\"],[[128379,128419],\"valid\",[],\"NV8\"],[[128420,128420],\"disallowed\"],[[128421,128506],\"valid\",[],\"NV8\"],[[128507,128511],\"valid\",[],\"NV8\"],[[128512,128512],\"valid\",[],\"NV8\"],[[128513,128528],\"valid\",[],\"NV8\"],[[128529,128529],\"valid\",[],\"NV8\"],[[128530,128532],\"valid\",[],\"NV8\"],[[128533,128533],\"valid\",[],\"NV8\"],[[128534,128534],\"valid\",[],\"NV8\"],[[128535,128535],\"valid\",[],\"NV8\"],[[128536,128536],\"valid\",[],\"NV8\"],[[128537,128537],\"valid\",[],\"NV8\"],[[128538,128538],\"valid\",[],\"NV8\"],[[128539,128539],\"valid\",[],\"NV8\"],[[128540,128542],\"valid\",[],\"NV8\"],[[128543,128543],\"valid\",[],\"NV8\"],[[128544,128549],\"valid\",[],\"NV8\"],[[128550,128551],\"valid\",[],\"NV8\"],[[128552,128555],\"valid\",[],\"NV8\"],[[128556,128556],\"valid\",[],\"NV8\"],[[128557,128557],\"valid\",[],\"NV8\"],[[128558,128559],\"valid\",[],\"NV8\"],[[128560,128563],\"valid\",[],\"NV8\"],[[128564,128564],\"valid\",[],\"NV8\"],[[128565,128576],\"valid\",[],\"NV8\"],[[128577,128578],\"valid\",[],\"NV8\"],[[128579,128580],\"valid\",[],\"NV8\"],[[128581,128591],\"valid\",[],\"NV8\"],[[128592,128639],\"valid\",[],\"NV8\"],[[128640,128709],\"valid\",[],\"NV8\"],[[128710,128719],\"valid\",[],\"NV8\"],[[128720,128720],\"valid\",[],\"NV8\"],[[128721,128735],\"disallowed\"],[[128736,128748],\"valid\",[],\"NV8\"],[[128749,128751],\"disallowed\"],[[128752,128755],\"valid\",[],\"NV8\"],[[128756,128767],\"disallowed\"],[[128768,128883],\"valid\",[],\"NV8\"],[[128884,128895],\"disallowed\"],[[128896,128980],\"valid\",[],\"NV8\"],[[128981,129023],\"disallowed\"],[[129024,129035],\"valid\",[],\"NV8\"],[[129036,129039],\"disallowed\"],[[129040,129095],\"valid\",[],\"NV8\"],[[129096,129103],\"disallowed\"],[[129104,129113],\"valid\",[],\"NV8\"],[[129114,129119],\"disallowed\"],[[129120,129159],\"valid\",[],\"NV8\"],[[129160,129167],\"disallowed\"],[[129168,129197],\"valid\",[],\"NV8\"],[[129198,129295],\"disallowed\"],[[129296,129304],\"valid\",[],\"NV8\"],[[129305,129407],\"disallowed\"],[[129408,129412],\"valid\",[],\"NV8\"],[[129413,129471],\"disallowed\"],[[129472,129472],\"valid\",[],\"NV8\"],[[129473,131069],\"disallowed\"],[[131070,131071],\"disallowed\"],[[131072,173782],\"valid\"],[[173783,173823],\"disallowed\"],[[173824,177972],\"valid\"],[[177973,177983],\"disallowed\"],[[177984,178205],\"valid\"],[[178206,178207],\"disallowed\"],[[178208,183969],\"valid\"],[[183970,194559],\"disallowed\"],[[194560,194560],\"mapped\",[20029]],[[194561,194561],\"mapped\",[20024]],[[194562,194562],\"mapped\",[20033]],[[194563,194563],\"mapped\",[131362]],[[194564,194564],\"mapped\",[20320]],[[194565,194565],\"mapped\",[20398]],[[194566,194566],\"mapped\",[20411]],[[194567,194567],\"mapped\",[20482]],[[194568,194568],\"mapped\",[20602]],[[194569,194569],\"mapped\",[20633]],[[194570,194570],\"mapped\",[20711]],[[194571,194571],\"mapped\",[20687]],[[194572,194572],\"mapped\",[13470]],[[194573,194573],\"mapped\",[132666]],[[194574,194574],\"mapped\",[20813]],[[194575,194575],\"mapped\",[20820]],[[194576,194576],\"mapped\",[20836]],[[194577,194577],\"mapped\",[20855]],[[194578,194578],\"mapped\",[132380]],[[194579,194579],\"mapped\",[13497]],[[194580,194580],\"mapped\",[20839]],[[194581,194581],\"mapped\",[20877]],[[194582,194582],\"mapped\",[132427]],[[194583,194583],\"mapped\",[20887]],[[194584,194584],\"mapped\",[20900]],[[194585,194585],\"mapped\",[20172]],[[194586,194586],\"mapped\",[20908]],[[194587,194587],\"mapped\",[20917]],[[194588,194588],\"mapped\",[168415]],[[194589,194589],\"mapped\",[20981]],[[194590,194590],\"mapped\",[20995]],[[194591,194591],\"mapped\",[13535]],[[194592,194592],\"mapped\",[21051]],[[194593,194593],\"mapped\",[21062]],[[194594,194594],\"mapped\",[21106]],[[194595,194595],\"mapped\",[21111]],[[194596,194596],\"mapped\",[13589]],[[194597,194597],\"mapped\",[21191]],[[194598,194598],\"mapped\",[21193]],[[194599,194599],\"mapped\",[21220]],[[194600,194600],\"mapped\",[21242]],[[194601,194601],\"mapped\",[21253]],[[194602,194602],\"mapped\",[21254]],[[194603,194603],\"mapped\",[21271]],[[194604,194604],\"mapped\",[21321]],[[194605,194605],\"mapped\",[21329]],[[194606,194606],\"mapped\",[21338]],[[194607,194607],\"mapped\",[21363]],[[194608,194608],\"mapped\",[21373]],[[194609,194611],\"mapped\",[21375]],[[194612,194612],\"mapped\",[133676]],[[194613,194613],\"mapped\",[28784]],[[194614,194614],\"mapped\",[21450]],[[194615,194615],\"mapped\",[21471]],[[194616,
47807194616],\"mapped\",[133987]],[[194617,194617],\"mapped\",[21483]],[[194618,194618],\"mapped\",[21489]],[[194619,194619],\"mapped\",[21510]],[[194620,194620],\"mapped\",[21662]],[[194621,194621],\"mapped\",[21560]],[[194622,194622],\"mapped\",[21576]],[[194623,194623],\"mapped\",[21608]],[[194624,194624],\"mapped\",[21666]],[[194625,194625],\"mapped\",[21750]],[[194626,194626],\"mapped\",[21776]],[[194627,194627],\"mapped\",[21843]],[[194628,194628],\"mapped\",[21859]],[[194629,194630],\"mapped\",[21892]],[[194631,194631],\"mapped\",[21913]],[[194632,194632],\"mapped\",[21931]],[[194633,194633],\"mapped\",[21939]],[[194634,194634],\"mapped\",[21954]],[[194635,194635],\"mapped\",[22294]],[[194636,194636],\"mapped\",[22022]],[[194637,194637],\"mapped\",[22295]],[[194638,194638],\"mapped\",[22097]],[[194639,194639],\"mapped\",[22132]],[[194640,194640],\"mapped\",[20999]],[[194641,194641],\"mapped\",[22766]],[[194642,194642],\"mapped\",[22478]],[[194643,194643],\"mapped\",[22516]],[[194644,194644],\"mapped\",[22541]],[[194645,194645],\"mapped\",[22411]],[[194646,194646],\"mapped\",[22578]],[[194647,194647],\"mapped\",[22577]],[[194648,194648],\"mapped\",[22700]],[[194649,194649],\"mapped\",[136420]],[[194650,194650],\"mapped\",[22770]],[[194651,194651],\"mapped\",[22775]],[[194652,194652],\"mapped\",[22790]],[[194653,194653],\"mapped\",[22810]],[[194654,194654],\"mapped\",[22818]],[[194655,194655],\"mapped\",[22882]],[[194656,194656],\"mapped\",[136872]],[[194657,194657],\"mapped\",[136938]],[[194658,194658],\"mapped\",[23020]],[[194659,194659],\"mapped\",[23067]],[[194660,194660],\"mapped\",[23079]],[[194661,194661],\"mapped\",[23000]],[[194662,194662],\"mapped\",[23142]],[[194663,194663],\"mapped\",[14062]],[[194664,194664],\"disallowed\"],[[194665,194665],\"mapped\",[23304]],[[194666,194667],\"mapped\",[23358]],[[194668,194668],\"mapped\",[137672]],[[194669,194669],\"mapped\",[23491]],[[194670,194670],\"mapped\",[23512]],[[194671,194671],\"mapped\",[23527]],[[194672,194672],\"mapped\",[23539]],[[194673,194673],\"mapped\",[138008]],[[194674,194674],\"mapped\",[23551]],[[194675,194675],\"mapped\",[23558]],[[194676,194676],\"disallowed\"],[[194677,194677],\"mapped\",[23586]],[[194678,194678],\"mapped\",[14209]],[[194679,194679],\"mapped\",[23648]],[[194680,194680],\"mapped\",[23662]],[[194681,194681],\"mapped\",[23744]],[[194682,194682],\"mapped\",[23693]],[[194683,194683],\"mapped\",[138724]],[[194684,194684],\"mapped\",[23875]],[[194685,194685],\"mapped\",[138726]],[[194686,194686],\"mapped\",[23918]],[[194687,194687],\"mapped\",[23915]],[[194688,194688],\"mapped\",[23932]],[[194689,194689],\"mapped\",[24033]],[[194690,194690],\"mapped\",[24034]],[[194691,194691],\"mapped\",[14383]],[[194692,194692],\"mapped\",[24061]],[[194693,194693],\"mapped\",[24104]],[[194694,194694],\"mapped\",[24125]],[[194695,194695],\"mapped\",[24169]],[[194696,194696],\"mapped\",[14434]],[[194697,194697],\"mapped\",[139651]],[[194698,194698],\"mapped\",[14460]],[[194699,194699],\"mapped\",[24240]],[[194700,194700],\"mapped\",[24243]],[[194701,194701],\"mapped\",[24246]],[[194702,194702],\"mapped\",[24266]],[[194703,194703],\"mapped\",[172946]],[[194704,194704],\"mapped\",[24318]],[[194705,194706],\"mapped\",[140081]],[[194707,194707],\"mapped\",[33281]],[[194708,194709],\"mapped\",[24354]],[[194710,194710],\"mapped\",[14535]],[[194711,194711],\"mapped\",[144056]],[[194712,194712],\"mapped\",[156122]],[[194713,194713],\"mapped\",[24418]],[[194714,194714],\"mapped\",[24427]],[[194715,194715],\"mapped\",[14563]],[[194716,194716],\"mapped\",[24474]],[[194717,194717],\"mapped\",[24525]],[[194718,194718],\"mapped\",[24535]],[[194719,194719],\"mapped\",[24569]],[[194720,194720],\"mapped\",[24705]],[[194721,194721],\"mapped\",[14650]],[[194722,194722],\"mapped\",[14620]],[[194723,194723],\"mapped\",[24724]],[[194724,194724],\"mapped\",[141012]],[[194725,194725],\"mapped\",[24775]],[[194726,194726],\"mapped\",[24904]],[[194727,194727],\"mapped\",[24908]],[[194728,194728],\"mapped\",[24910]],[[194729,194729],\"mapped\",[24908]],[[194730,194730],\"mapped\",[24954]],[[194731,194731],\"mapped\",[24974]],[[194732,194732],\"mapped\",[25010]],[[194733,194733],\"mapped\",[24996]],[[194734,194734],\"mapped\",[25007]],[[194735,194735],\"mapped\",[25054]],[[194736,194736],\"mapped\",[25074]],[[194737,194737],\"mapped\",[25078]],[[194738,194738],\"mapped\",[25104]],[[194739,194739],\"mapped\",[25115]],[[194740,194740],\"mapped\",[25181]],[[194741,194741],\"mapped\",[25265]],[[194742,194742],\"mapped\",[25300]],[[194743,194743],\"mapped\",[25424]],[[194744,194744],\"mapped\",[142092]],[[194745,194745],\"mapped\",[25405]],[[194746,194746],\"mapped\",[25340]],[[194747,194747],\"mapped\",[25448]],[[194748,194748],\"mapped\",[25475]],[[194749,194749],\"mapped\",[25572]],[[194750,194750],\"mapped\",[142321]],[[194751,194751],\"mapped\",[25634]],[[194752,194752],\"mapped\",[25541]],[[194753,194753],\"mapped\",[25513]],[[194754,194754],\"mapped\",[14894]],[[194755,194755],\"mapped\",[25705]],[[194756,194756],\"mapped\",[25726]],[[194757,194757],\"mapped\",[25757]],[[194758,194758],\"mapped\",[25719]],[[194759,194759],\"mapped\",[14956]],[[194760,194760],\"mapped\",[25935]],[[194761,194761],\"mapped\",[25964]],[[194762,194762],\"mapped\",[143370]],[[194763,194763],\"mapped\",[26083]],[[194764,194764],\"mapped\",[26360]],[[194765,194765],\"mapped\",[26185]],[[194766,194766],\"mapped\",[15129]],[[194767,194767],\"mapped\",[26257]],[[194768,194768],\"mapped\",[15112]],[[194769,194769],\"mapped\",[15076]],[[194770,194770],\"mapped\",[20882]],[[194771,194771],\"mapped\",[20885]],[[194772,194772],\"mapped\",[26368]],[[194773,194773],\"mapped\",[26268]],[[194774,194774],\"mapped\",[32941]],[[194775,194775],\"mapped\",[17369]],[[194776,194776],\"mapped\",[26391]],[[194777,194777],\"mapped\",[26395]],[[194778,194778],\"mapped\",[26401]],[[194779,194779],\"mapped\",[26462]],[[194780,194780],\"mapped\",[26451]],[[194781,194781],\"mapped\",[144323]],[[194782,194782],\"mapped\",[15177]],[[194783,194783],\"mapped\",[26618]],[[194784,194784],\"mapped\",[26501]],[[194785,194785],\"mapped\",[26706]],[[194786,194786],\"mapped\",[26757]],[[194787,194787],\"mapped\",[144493]],[[194788,194788],\"mapped\",[26766]],[[194789,194789],\"mapped\",[26655]],[[194790,194790],\"mapped\",[26900]],[[194791,194791],\"mapped\",[15261]],[[194792,194792],\"mapped\",[26946]],[[194793,194793],\"mapped\",[27043]],[[194794,194794],\"mapped\",[27114]],[[194795,194795],\"mapped\",[27304]],[[194796,194796],\"mapped\",[145059]],[[194797,194797],\"mapped\",[27355]],[[194798,194798],\"mapped\",[15384]],[[194799,194799],\"mapped\",[27425]],[[194800,194800],\"mapped\",[145575]],[[194801,194801],\"mapped\",[27476]],[[194802,194802],\"mapped\",[15438]],[[194803,194803],\"mapped\",[27506]],[[194804,194804],\"mapped\",[27551]],[[194805,194805],\"mapped\",[27578]],[[194806,194806],\"mapped\",[27579]],[[194807,194807],\"mapped\",[146061]],[[194808,194808],\"mapped\",[138507]],[[194809,194809],\"mapped\",[146170]],[[194810,194810],\"mapped\",[27726]],[[194811,194811],\"mapped\",[146620]],[[194812,194812],\"mapped\",[27839]],[[194813,194813],\"mapped\",[27853]],[[194814,194814],\"mapped\",[27751]],[[194815,194815],\"mapped\",[27926]],[[194816,194816],\"mapped\",[27966]],[[194817,194817],\"mapped\",[28023]],[[194818,194818],\"mapped\",[27969]],[[194819,194819],\"mapped\",[28009]],[[194820,194820],\"mapped\",[28024]],[[194821,194821],\"mapped\",[28037]],[[194822,194822],\"mapped\",[146718]],[[194823,194823],\"mapped\",[27956]],[[194824,194824],\"mapped\",[28207]],[[194825,194825],\"mapped\",[28270]],[[194826,194826],\"mapped\",[15667]],[[194827,194827],\"mapped\",[28363]],[[194828,194828],\"mapped\",[28359]],[[194829,194829],\"mapped\",[147153]],[[194830,194830],\"mapped\",[28153]],[[194831,194831],\"mapped\",[28526]],[[194832,194832],\"mapped\",[147294]],[[194833,194833],\"mapped\",[147342]],[[194834,194834],\"mapped\",[28614]],[[194835,194835],\"mapped\",[28729]],[[194836,194836],\"mapped\",[28702]],[[194837,194837],\"mapped\",[28699]],[[194838,194838],\"mapped\",[15766]],[[194839,194839],\"mapped\",[28746]],[[194840,194840],\"mapped\",[28797]],[[194841,194841],\"mapped\",[28791]],[[194842,194842],\"mapped\",[28845]],[[194843,194843],\"mapped\",[132389]],[[194844,194844],\"mapped\",[28997]],[[194845,194845],\"mapped\",[148067]],[[194846,194846],\"mapped\",[29084]],[[194847,194847],\"disallowed\"],[[194848,194848],\"mapped\",[29224]],[[194849,194849],\"mapped\",[29237]],[[194850,194850],\"mapped\",[29264]],[[194851,194851],\"mapped\",[149000]],[[194852,194852],\"mapped\",[29312]],[[194853,194853],\"mapped\",[29333]],[[194854,194854],\"mapped\",[149301]],[[194855,194855],\"mapped\",[149524]],[[194856,194856],\"mapped\",[29562]],[[194857,194857],\"mapped\",[29579]],[[194858,194858],\"mapped\",[16044]],[[194859,194859],\"mapped\",[29605]],[[1948
4780760,194861],\"mapped\",[16056]],[[194862,194862],\"mapped\",[29767]],[[194863,194863],\"mapped\",[29788]],[[194864,194864],\"mapped\",[29809]],[[194865,194865],\"mapped\",[29829]],[[194866,194866],\"mapped\",[29898]],[[194867,194867],\"mapped\",[16155]],[[194868,194868],\"mapped\",[29988]],[[194869,194869],\"mapped\",[150582]],[[194870,194870],\"mapped\",[30014]],[[194871,194871],\"mapped\",[150674]],[[194872,194872],\"mapped\",[30064]],[[194873,194873],\"mapped\",[139679]],[[194874,194874],\"mapped\",[30224]],[[194875,194875],\"mapped\",[151457]],[[194876,194876],\"mapped\",[151480]],[[194877,194877],\"mapped\",[151620]],[[194878,194878],\"mapped\",[16380]],[[194879,194879],\"mapped\",[16392]],[[194880,194880],\"mapped\",[30452]],[[194881,194881],\"mapped\",[151795]],[[194882,194882],\"mapped\",[151794]],[[194883,194883],\"mapped\",[151833]],[[194884,194884],\"mapped\",[151859]],[[194885,194885],\"mapped\",[30494]],[[194886,194887],\"mapped\",[30495]],[[194888,194888],\"mapped\",[30538]],[[194889,194889],\"mapped\",[16441]],[[194890,194890],\"mapped\",[30603]],[[194891,194891],\"mapped\",[16454]],[[194892,194892],\"mapped\",[16534]],[[194893,194893],\"mapped\",[152605]],[[194894,194894],\"mapped\",[30798]],[[194895,194895],\"mapped\",[30860]],[[194896,194896],\"mapped\",[30924]],[[194897,194897],\"mapped\",[16611]],[[194898,194898],\"mapped\",[153126]],[[194899,194899],\"mapped\",[31062]],[[194900,194900],\"mapped\",[153242]],[[194901,194901],\"mapped\",[153285]],[[194902,194902],\"mapped\",[31119]],[[194903,194903],\"mapped\",[31211]],[[194904,194904],\"mapped\",[16687]],[[194905,194905],\"mapped\",[31296]],[[194906,194906],\"mapped\",[31306]],[[194907,194907],\"mapped\",[31311]],[[194908,194908],\"mapped\",[153980]],[[194909,194910],\"mapped\",[154279]],[[194911,194911],\"disallowed\"],[[194912,194912],\"mapped\",[16898]],[[194913,194913],\"mapped\",[154539]],[[194914,194914],\"mapped\",[31686]],[[194915,194915],\"mapped\",[31689]],[[194916,194916],\"mapped\",[16935]],[[194917,194917],\"mapped\",[154752]],[[194918,194918],\"mapped\",[31954]],[[194919,194919],\"mapped\",[17056]],[[194920,194920],\"mapped\",[31976]],[[194921,194921],\"mapped\",[31971]],[[194922,194922],\"mapped\",[32000]],[[194923,194923],\"mapped\",[155526]],[[194924,194924],\"mapped\",[32099]],[[194925,194925],\"mapped\",[17153]],[[194926,194926],\"mapped\",[32199]],[[194927,194927],\"mapped\",[32258]],[[194928,194928],\"mapped\",[32325]],[[194929,194929],\"mapped\",[17204]],[[194930,194930],\"mapped\",[156200]],[[194931,194931],\"mapped\",[156231]],[[194932,194932],\"mapped\",[17241]],[[194933,194933],\"mapped\",[156377]],[[194934,194934],\"mapped\",[32634]],[[194935,194935],\"mapped\",[156478]],[[194936,194936],\"mapped\",[32661]],[[194937,194937],\"mapped\",[32762]],[[194938,194938],\"mapped\",[32773]],[[194939,194939],\"mapped\",[156890]],[[194940,194940],\"mapped\",[156963]],[[194941,194941],\"mapped\",[32864]],[[194942,194942],\"mapped\",[157096]],[[194943,194943],\"mapped\",[32880]],[[194944,194944],\"mapped\",[144223]],[[194945,194945],\"mapped\",[17365]],[[194946,194946],\"mapped\",[32946]],[[194947,194947],\"mapped\",[33027]],[[194948,194948],\"mapped\",[17419]],[[194949,194949],\"mapped\",[33086]],[[194950,194950],\"mapped\",[23221]],[[194951,194951],\"mapped\",[157607]],[[194952,194952],\"mapped\",[157621]],[[194953,194953],\"mapped\",[144275]],[[194954,194954],\"mapped\",[144284]],[[194955,194955],\"mapped\",[33281]],[[194956,194956],\"mapped\",[33284]],[[194957,194957],\"mapped\",[36766]],[[194958,194958],\"mapped\",[17515]],[[194959,194959],\"mapped\",[33425]],[[194960,194960],\"mapped\",[33419]],[[194961,194961],\"mapped\",[33437]],[[194962,194962],\"mapped\",[21171]],[[194963,194963],\"mapped\",[33457]],[[194964,194964],\"mapped\",[33459]],[[194965,194965],\"mapped\",[33469]],[[194966,194966],\"mapped\",[33510]],[[194967,194967],\"mapped\",[158524]],[[194968,194968],\"mapped\",[33509]],[[194969,194969],\"mapped\",[33565]],[[194970,194970],\"mapped\",[33635]],[[194971,194971],\"mapped\",[33709]],[[194972,194972],\"mapped\",[33571]],[[194973,194973],\"mapped\",[33725]],[[194974,194974],\"mapped\",[33767]],[[194975,194975],\"mapped\",[33879]],[[194976,194976],\"mapped\",[33619]],[[194977,194977],\"mapped\",[33738]],[[194978,194978],\"mapped\",[33740]],[[194979,194979],\"mapped\",[33756]],[[194980,194980],\"mapped\",[158774]],[[194981,194981],\"mapped\",[159083]],[[194982,194982],\"mapped\",[158933]],[[194983,194983],\"mapped\",[17707]],[[194984,194984],\"mapped\",[34033]],[[194985,194985],\"mapped\",[34035]],[[194986,194986],\"mapped\",[34070]],[[194987,194987],\"mapped\",[160714]],[[194988,194988],\"mapped\",[34148]],[[194989,194989],\"mapped\",[159532]],[[194990,194990],\"mapped\",[17757]],[[194991,194991],\"mapped\",[17761]],[[194992,194992],\"mapped\",[159665]],[[194993,194993],\"mapped\",[159954]],[[194994,194994],\"mapped\",[17771]],[[194995,194995],\"mapped\",[34384]],[[194996,194996],\"mapped\",[34396]],[[194997,194997],\"mapped\",[34407]],[[194998,194998],\"mapped\",[34409]],[[194999,194999],\"mapped\",[34473]],[[195000,195000],\"mapped\",[34440]],[[195001,195001],\"mapped\",[34574]],[[195002,195002],\"mapped\",[34530]],[[195003,195003],\"mapped\",[34681]],[[195004,195004],\"mapped\",[34600]],[[195005,195005],\"mapped\",[34667]],[[195006,195006],\"mapped\",[34694]],[[195007,195007],\"disallowed\"],[[195008,195008],\"mapped\",[34785]],[[195009,195009],\"mapped\",[34817]],[[195010,195010],\"mapped\",[17913]],[[195011,195011],\"mapped\",[34912]],[[195012,195012],\"mapped\",[34915]],[[195013,195013],\"mapped\",[161383]],[[195014,195014],\"mapped\",[35031]],[[195015,195015],\"mapped\",[35038]],[[195016,195016],\"mapped\",[17973]],[[195017,195017],\"mapped\",[35066]],[[195018,195018],\"mapped\",[13499]],[[195019,195019],\"mapped\",[161966]],[[195020,195020],\"mapped\",[162150]],[[195021,195021],\"mapped\",[18110]],[[195022,195022],\"mapped\",[18119]],[[195023,195023],\"mapped\",[35488]],[[195024,195024],\"mapped\",[35565]],[[195025,195025],\"mapped\",[35722]],[[195026,195026],\"mapped\",[35925]],[[195027,195027],\"mapped\",[162984]],[[195028,195028],\"mapped\",[36011]],[[195029,195029],\"mapped\",[36033]],[[195030,195030],\"mapped\",[36123]],[[195031,195031],\"mapped\",[36215]],[[195032,195032],\"mapped\",[163631]],[[195033,195033],\"mapped\",[133124]],[[195034,195034],\"mapped\",[36299]],[[195035,195035],\"mapped\",[36284]],[[195036,195036],\"mapped\",[36336]],[[195037,195037],\"mapped\",[133342]],[[195038,195038],\"mapped\",[36564]],[[195039,195039],\"mapped\",[36664]],[[195040,195040],\"mapped\",[165330]],[[195041,195041],\"mapped\",[165357]],[[195042,195042],\"mapped\",[37012]],[[195043,195043],\"mapped\",[37105]],[[195044,195044],\"mapped\",[37137]],[[195045,195045],\"mapped\",[165678]],[[195046,195046],\"mapped\",[37147]],[[195047,195047],\"mapped\",[37432]],[[195048,195048],\"mapped\",[37591]],[[195049,195049],\"mapped\",[37592]],[[195050,195050],\"mapped\",[37500]],[[195051,195051],\"mapped\",[37881]],[[195052,195052],\"mapped\",[37909]],[[195053,195053],\"mapped\",[166906]],[[195054,195054],\"mapped\",[38283]],[[195055,195055],\"mapped\",[18837]],[[195056,195056],\"mapped\",[38327]],[[195057,195057],\"mapped\",[167287]],[[195058,195058],\"mapped\",[18918]],[[195059,195059],\"mapped\",[38595]],[[195060,195060],\"mapped\",[23986]],[[195061,195061],\"mapped\",[38691]],[[195062,195062],\"mapped\",[168261]],[[195063,195063],\"mapped\",[168474]],[[195064,195064],\"mapped\",[19054]],[[195065,195065],\"mapped\",[19062]],[[195066,195066],\"mapped\",[38880]],[[195067,195067],\"mapped\",[168970]],[[195068,195068],\"mapped\",[19122]],[[195069,195069],\"mapped\",[169110]],[[195070,195071],\"mapped\",[38923]],[[195072,195072],\"mapped\",[38953]],[[195073,195073],\"mapped\",[169398]],[[195074,195074],\"mapped\",[39138]],[[195075,195075],\"mapped\",[19251]],[[195076,195076],\"mapped\",[39209]],[[195077,195077],\"mapped\",[39335]],[[195078,195078],\"mapped\",[39362]],[[195079,195079],\"mapped\",[39422]],[[195080,195080],\"mapped\",[19406]],[[195081,195081],\"mapped\",[170800]],[[195082,195082],\"mapped\",[39698]],[[195083,195083],\"mapped\",[40000]],[[195084,195084],\"mapped\",[40189]],[[195085,195085],\"mapped\",[19662]],[[195086,195086],\"mapped\",[19693]],[[195087,195087],\"mapped\",[40295]],[[195088,195088],\"mapped\",[172238]],[[195089,195089],\"mapped\",[19704]],[[195090,195090],\"mapped\",[172293]],[[195091,195091],\"mapped\",[172558]],[[195092,195092],\"mapped\",[172689]],[[195093,195093],\"mapped\",[40635]],[[195094,195094],\"mapped\",[19798]
vendor: 12,843 bytes, lines 47807-48233
47807],[[195095,195095],\"mapped\",[40697]],[[195096,195096],\"mapped\",[40702]],[[195097,195097],\"mapped\",[40709]],[[195098,195098],\"mapped\",[40719]],[[195099,195099],\"mapped\",[40726]],[[195100,195100],\"mapped\",[40763]],[[195101,195101],\"mapped\",[173568]],[[195102,196605],\"disallowed\"],[[196606,196607],\"disallowed\"],[[196608,262141],\"disallowed\"],[[262142,262143],\"disallowed\"],[[262144,327677],\"disallowed\"],[[327678,327679],\"disallowed\"],[[327680,393213],\"disallowed\"],[[393214,393215],\"disallowed\"],[[393216,458749],\"disallowed\"],[[458750,458751],\"disallowed\"],[[458752,524285],\"disallowed\"],[[524286,524287],\"disallowed\"],[[524288,589821],\"disallowed\"],[[589822,589823],\"disallowed\"],[[589824,655357],\"disallowed\"],[[655358,655359],\"disallowed\"],[[655360,720893],\"disallowed\"],[[720894,720895],\"disallowed\"],[[720896,786429],\"disallowed\"],[[786430,786431],\"disallowed\"],[[786432,851965],\"disallowed\"],[[851966,851967],\"disallowed\"],[[851968,917501],\"disallowed\"],[[917502,917503],\"disallowed\"],[[917504,917504],\"disallowed\"],[[917505,917505],\"disallowed\"],[[917506,917535],\"disallowed\"],[[917536,917631],\"disallowed\"],[[917632,917759],\"disallowed\"],[[917760,917999],\"ignored\"],[[918000,983037],\"disallowed\"],[[983038,983039],\"disallowed\"],[[983040,1048573],\"disallowed\"],[[1048574,1048575],\"disallowed\"],[[1048576,1114109],\"disallowed\"],[[1114110,1114111],\"disallowed\"]]");
47808
47809/***/ }),
47810/* 929 */
47811/***/ (function(module, exports, __webpack_require__) {
47812
47813"use strict";
47814/* WEBPACK VAR INJECTION */(function(Buffer, process) {
47815/* eslint camelcase: "off" */
47816
47817var assert = __webpack_require__(740);
47818
47819var Zstream = __webpack_require__(931);
47820var zlib_deflate = __webpack_require__(932);
47821var zlib_inflate = __webpack_require__(935);
47822var constants = __webpack_require__(938);
47823
47824for (var key in constants) {
47825  exports[key] = constants[key];
47826}
47827
47828// zlib modes
47829exports.NONE = 0;
47830exports.DEFLATE = 1;
47831exports.INFLATE = 2;
47832exports.GZIP = 3;
47833exports.GUNZIP = 4;
47834exports.DEFLATERAW = 5;
47835exports.INFLATERAW = 6;
47836exports.UNZIP = 7;
47837
47838var GZIP_HEADER_ID1 = 0x1f;
47839var GZIP_HEADER_ID2 = 0x8b;
47840
47841/**
47842 * Emulate Node's zlib C++ layer for use by the JS layer in index.js
47843 */
47844function Zlib(mode) {
47845  if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {
47846    throw new TypeError('Bad argument');
47847  }
47848
47849  this.dictionary = null;
47850  this.err = 0;
47851  this.flush = 0;
47852  this.init_done = false;
47853  this.level = 0;
47854  this.memLevel = 0;
47855  this.mode = mode;
47856  this.strategy = 0;
47857  this.windowBits = 0;
47858  this.write_in_progress = false;
47859  this.pending_close = false;
47860  this.gzip_id_bytes_read = 0;
47861}
47862
47863Zlib.prototype.close = function () {
47864  if (this.write_in_progress) {
47865    this.pending_close = true;
47866    return;
47867  }
47868
47869  this.pending_close = false;
47870
47871  assert(this.init_done, 'close before init');
47872  assert(this.mode <= exports.UNZIP);
47873
47874  if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {
47875    zlib_deflate.deflateEnd(this.strm);
47876  } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {
47877    zlib_inflate.inflateEnd(this.strm);
47878  }
47879
47880  this.mode = exports.NONE;
47881
47882  this.dictionary = null;
47883};
47884
47885Zlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {
47886  return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);
47887};
47888
47889Zlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {
47890  return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);
47891};
47892
47893Zlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {
47894  assert.equal(arguments.length, 8);
47895
47896  assert(this.init_done, 'write before init');
47897  assert(this.mode !== exports.NONE, 'already finalized');
47898  assert.equal(false, this.write_in_progress, 'write already in progress');
47899  assert.equal(false, this.pending_close, 'close is pending');
47900
47901  this.write_in_progress = true;
47902
47903  assert.equal(false, flush === undefined, 'must provide flush value');
47904
47905  this.write_in_progress = true;
47906
47907  if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {
47908    throw new Error('Invalid flush value');
47909  }
47910
47911  if (input == null) {
47912    input = Buffer.alloc(0);
47913    in_len = 0;
47914    in_off = 0;
47915  }
47916
47917  this.strm.avail_in = in_len;
47918  this.strm.input = input;
47919  this.strm.next_in = in_off;
47920  this.strm.avail_out = out_len;
47921  this.strm.output = out;
47922  this.strm.next_out = out_off;
47923  this.flush = flush;
47924
47925  if (!async) {
47926    // sync version
47927    this._process();
47928
47929    if (this._checkError()) {
47930      return this._afterSync();
47931    }
47932    return;
47933  }
47934
47935  // async version
47936  var self = this;
47937  process.nextTick(function () {
47938    self._process();
47939    self._after();
47940  });
47941
47942  return this;
47943};
47944
47945Zlib.prototype._afterSync = function () {
47946  var avail_out = this.strm.avail_out;
47947  var avail_in = this.strm.avail_in;
47948
47949  this.write_in_progress = false;
47950
47951  return [avail_in, avail_out];
47952};
47953
47954Zlib.prototype._process = function () {
47955  var next_expected_header_byte = null;
47956
47957  // If the avail_out is left at 0, then it means that it ran out
47958  // of room.  If there was avail_out left over, then it means
47959  // that all of the input was consumed.
47960  switch (this.mode) {
47961    case exports.DEFLATE:
47962    case exports.GZIP:
47963    case exports.DEFLATERAW:
47964      this.err = zlib_deflate.deflate(this.strm, this.flush);
47965      break;
47966    case exports.UNZIP:
47967      if (this.strm.avail_in > 0) {
47968        next_expected_header_byte = this.strm.next_in;
47969      }
47970
47971      switch (this.gzip_id_bytes_read) {
47972        case 0:
47973          if (next_expected_header_byte === null) {
47974            break;
47975          }
47976
47977          if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {
47978            this.gzip_id_bytes_read = 1;
47979            next_expected_header_byte++;
47980
47981            if (this.strm.avail_in === 1) {
47982              // The only available byte was already read.
47983              break;
47984            }
47985          } else {
47986            this.mode = exports.INFLATE;
47987            break;
47988          }
47989
47990        // fallthrough
47991        case 1:
47992          if (next_expected_header_byte === null) {
47993            break;
47994          }
47995
47996          if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {
47997            this.gzip_id_bytes_read = 2;
47998            this.mode = exports.GUNZIP;
47999          } else {
48000            // There is no actual difference between INFLATE and INFLATERAW
48001            // (after initialization).
48002            this.mode = exports.INFLATE;
48003          }
48004
48005          break;
48006        default:
48007          throw new Error('invalid number of gzip magic number bytes read');
48008      }
48009
48010    // fallthrough
48011    case exports.INFLATE:
48012    case exports.GUNZIP:
48013    case exports.INFLATERAW:
48014      this.err = zlib_inflate.inflate(this.strm, this.flush
48015
48016      // If data was encoded with dictionary
48017      );if (this.err === exports.Z_NEED_DICT && this.dictionary) {
48018        // Load it
48019        this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);
48020        if (this.err === exports.Z_OK) {
48021          // And try to decode again
48022          this.err = zlib_inflate.inflate(this.strm, this.flush);
48023        } else if (this.err === exports.Z_DATA_ERROR) {
48024          // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.
48025          // Make it possible for After() to tell a bad dictionary from bad
48026          // input.
48027          this.err = exports.Z_NEED_DICT;
48028        }
48029      }
48030      while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {
48031        // Bytes remain in input buffer. Perhaps this is another compressed
48032        // member in the same archive, or just trailing garbage.
48033        // Trailing zero bytes are okay, though, since they are frequently
48034        // used for padding.
48035
48036        this.reset();
48037        this.err = zlib_inflate.inflate(this.strm, this.flush);
48038      }
48039      break;
48040    default:
48041      throw new Error('Unknown mode ' + this.mode);
48042  }
48043};
48044
48045Zlib.prototype._checkError = function () {
48046  // Acceptable error states depend on the type of zlib stream.
48047  switch (this.err) {
48048    case exports.Z_OK:
48049    case exports.Z_BUF_ERROR:
48050      if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {
48051        this._error('unexpected end of file');
48052        return false;
48053      }
48054      break;
48055    case exports.Z_STREAM_END:
48056      // normal statuses, not fatal
48057      break;
48058    case exports.Z_NEED_DICT:
48059      if (this.dictionary == null) {
48060        this._error('Missing dictionary');
48061      } else {
48062        this._error('Bad dictionary');
48063      }
48064      return false;
48065    default:
48066      // something else.
48067      this._error('Zlib error');
48068      return false;
48069  }
48070
48071  return true;
48072};
48073
48074Zlib.prototype._after = function () {
48075  if (!this._checkError()) {
48076    return;
48077  }
48078
48079  var avail_out = this.strm.avail_out;
48080  var avail_in = this.strm.avail_in;
48081
48082  this.write_in_progress = false;
48083
48084  // call the write() cb
48085  this.callback(avail_in, avail_out);
48086
48087  if (this.pending_close) {
48088    this.close();
48089  }
48090};
48091
48092Zlib.prototype._error = function (message) {
48093  if (this.strm.msg) {
48094    message = this.strm.msg;
48095  }
48096  this.onerror(message, this.err
48097
48098  // no hope of rescue.
48099  );this.write_in_progress = false;
48100  if (this.pending_close) {
48101    this.close();
48102  }
48103};
48104
48105Zlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {
48106  assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');
48107
48108  assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');
48109  assert(level >= -1 && level <= 9, 'invalid compression level');
48110
48111  assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');
48112
48113  assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');
48114
48115  this._init(level, windowBits, memLevel, strategy, dictionary);
48116  this._setDictionary();
48117};
48118
48119Zlib.prototype.params = function () {
48120  throw new Error('deflateParams Not supported');
48121};
48122
48123Zlib.prototype.reset = function () {
48124  this._reset();
48125  this._setDictionary();
48126};
48127
48128Zlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {
48129  this.level = level;
48130  this.windowBits = windowBits;
48131  this.memLevel = memLevel;
48132  this.strategy = strategy;
48133
48134  this.flush = exports.Z_NO_FLUSH;
48135
48136  this.err = exports.Z_OK;
48137
48138  if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {
48139    this.windowBits += 16;
48140  }
48141
48142  if (this.mode === exports.UNZIP) {
48143    this.windowBits += 32;
48144  }
48145
48146  if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {
48147    this.windowBits = -1 * this.windowBits;
48148  }
48149
48150  this.strm = new Zstream();
48151
48152  switch (this.mode) {
48153    case exports.DEFLATE:
48154    case exports.GZIP:
48155    case exports.DEFLATERAW:
48156      this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);
48157      break;
48158    case exports.INFLATE:
48159    case exports.GUNZIP:
48160    case exports.INFLATERAW:
48161    case exports.UNZIP:
48162      this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);
48163      break;
48164    default:
48165      throw new Error('Unknown mode ' + this.mode);
48166  }
48167
48168  if (this.err !== exports.Z_OK) {
48169    this._error('Init error');
48170  }
48171
48172  this.dictionary = dictionary;
48173
48174  this.write_in_progress = false;
48175  this.init_done = true;
48176};
48177
48178Zlib.prototype._setDictionary = function () {
48179  if (this.dictionary == null) {
48180    return;
48181  }
48182
48183  this.err = exports.Z_OK;
48184
48185  switch (this.mode) {
48186    case exports.DEFLATE:
48187    case exports.DEFLATERAW:
48188      this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);
48189      break;
48190    default:
48191      break;
48192  }
48193
48194  if (this.err !== exports.Z_OK) {
48195    this._error('Failed to set dictionary');
48196  }
48197};
48198
48199Zlib.prototype._reset = function () {
48200  this.err = exports.Z_OK;
48201
48202  switch (this.mode) {
48203    case exports.DEFLATE:
48204    case exports.DEFLATERAW:
48205    case exports.GZIP:
48206      this.err = zlib_deflate.deflateReset(this.strm);
48207      break;
48208    case exports.INFLATE:
48209    case exports.INFLATERAW:
48210    case exports.GUNZIP:
48211      this.err = zlib_inflate.inflateReset(this.strm);
48212      break;
48213    default:
48214      break;
48215  }
48216
48217  if (this.err !== exports.Z_OK) {
48218    this._error('Failed to reset stream');
48219  }
48220};
48221
48222exports.Zlib = Zlib;
48223/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(113).Buffer, __webpack_require__(57)))
48224
48225/***/ }),
48226/* 930 */
48227/***/ (function(module, exports, __webpack_require__) {
48228
48229"use strict";
48230/*
48231object-assign
48232(c) Sindre Sorhus
48233@license MIT
vendor: 5,191 bytes, lines 48234-48406
48234*/
48235
48236
48237/* eslint-disable no-unused-vars */
48238var getOwnPropertySymbols = Object.getOwnPropertySymbols;
48239var hasOwnProperty = Object.prototype.hasOwnProperty;
48240var propIsEnumerable = Object.prototype.propertyIsEnumerable;
48241
48242function toObject(val) {
48243	if (val === null || val === undefined) {
48244		throw new TypeError('Object.assign cannot be called with null or undefined');
48245	}
48246
48247	return Object(val);
48248}
48249
48250function shouldUseNative() {
48251	try {
48252		if (!Object.assign) {
48253			return false;
48254		}
48255
48256		// Detect buggy property enumeration order in older V8 versions.
48257
48258		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
48259		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
48260		test1[5] = 'de';
48261		if (Object.getOwnPropertyNames(test1)[0] === '5') {
48262			return false;
48263		}
48264
48265		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
48266		var test2 = {};
48267		for (var i = 0; i < 10; i++) {
48268			test2['_' + String.fromCharCode(i)] = i;
48269		}
48270		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
48271			return test2[n];
48272		});
48273		if (order2.join('') !== '0123456789') {
48274			return false;
48275		}
48276
48277		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
48278		var test3 = {};
48279		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
48280			test3[letter] = letter;
48281		});
48282		if (Object.keys(Object.assign({}, test3)).join('') !==
48283				'abcdefghijklmnopqrst') {
48284			return false;
48285		}
48286
48287		return true;
48288	} catch (err) {
48289		// We don't expect any of the above to throw, but better to be safe.
48290		return false;
48291	}
48292}
48293
48294module.exports = shouldUseNative() ? Object.assign : function (target, source) {
48295	var from;
48296	var to = toObject(target);
48297	var symbols;
48298
48299	for (var s = 1; s < arguments.length; s++) {
48300		from = Object(arguments[s]);
48301
48302		for (var key in from) {
48303			if (hasOwnProperty.call(from, key)) {
48304				to[key] = from[key];
48305			}
48306		}
48307
48308		if (getOwnPropertySymbols) {
48309			symbols = getOwnPropertySymbols(from);
48310			for (var i = 0; i < symbols.length; i++) {
48311				if (propIsEnumerable.call(from, symbols[i])) {
48312					to[symbols[i]] = from[symbols[i]];
48313				}
48314			}
48315		}
48316	}
48317
48318	return to;
48319};
48320
48321
48322/***/ }),
48323/* 931 */
48324/***/ (function(module, exports, __webpack_require__) {
48325
48326"use strict";
48327
48328
48329// (C) 1995-2013 Jean-loup Gailly and Mark Adler
48330// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
48331//
48332// This software is provided 'as-is', without any express or implied
48333// warranty. In no event will the authors be held liable for any damages
48334// arising from the use of this software.
48335//
48336// Permission is granted to anyone to use this software for any purpose,
48337// including commercial applications, and to alter it and redistribute it
48338// freely, subject to the following restrictions:
48339//
48340// 1. The origin of this software must not be misrepresented; you must not
48341//   claim that you wrote the original software. If you use this software
48342//   in a product, an acknowledgment in the product documentation would be
48343//   appreciated but is not required.
48344// 2. Altered source versions must be plainly marked as such, and must not be
48345//   misrepresented as being the original software.
48346// 3. This notice may not be removed or altered from any source distribution.
48347
48348function ZStream() {
48349  /* next input byte */
48350  this.input = null; // JS specific, because we have no pointers
48351  this.next_in = 0;
48352  /* number of bytes available at input */
48353  this.avail_in = 0;
48354  /* total number of input bytes read so far */
48355  this.total_in = 0;
48356  /* next output byte should be put there */
48357  this.output = null; // JS specific, because we have no pointers
48358  this.next_out = 0;
48359  /* remaining free space at output */
48360  this.avail_out = 0;
48361  /* total number of bytes output so far */
48362  this.total_out = 0;
48363  /* last error message, NULL if no error */
48364  this.msg = ''/*Z_NULL*/;
48365  /* not visible by applications */
48366  this.state = null;
48367  /* best guess about the data type: binary or text */
48368  this.data_type = 2/*Z_UNKNOWN*/;
48369  /* adler32 value of the uncompressed data */
48370  this.adler = 0;
48371}
48372
48373module.exports = ZStream;
48374
48375
48376/***/ }),
48377/* 932 */
48378/***/ (function(module, exports, __webpack_require__) {
48379
48380"use strict";
48381
48382
48383// (C) 1995-2013 Jean-loup Gailly and Mark Adler
48384// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
48385//
48386// This software is provided 'as-is', without any express or implied
48387// warranty. In no event will the authors be held liable for any damages
48388// arising from the use of this software.
48389//
48390// Permission is granted to anyone to use this software for any purpose,
48391// including commercial applications, and to alter it and redistribute it
48392// freely, subject to the following restrictions:
48393//
48394// 1. The origin of this software must not be misrepresented; you must not
48395//   claim that you wrote the original software. If you use this software
48396//   in a product, an acknowledgment in the product documentation would be
48397//   appreciated but is not required.
48398// 2. Altered source versions must be plainly marked as such, and must not be
48399//   misrepresented as being the original software.
48400// 3. This notice may not be removed or altered from any source distribution.
48401
48402var utils   = __webpack_require__(395);
48403var trees   = __webpack_require__(933);
48404var adler32 = __webpack_require__(741);
48405var crc32   = __webpack_require__(742);
48406var msg     = __webpack_require__(934
vendor: 60,037 bytes, lines 48406-50257
48406);
48407
48408/* Public constants ==========================================================*/
48409/* ===========================================================================*/
48410
48411
48412/* Allowed flush values; see deflate() and inflate() below for details */
48413var Z_NO_FLUSH      = 0;
48414var Z_PARTIAL_FLUSH = 1;
48415//var Z_SYNC_FLUSH    = 2;
48416var Z_FULL_FLUSH    = 3;
48417var Z_FINISH        = 4;
48418var Z_BLOCK         = 5;
48419//var Z_TREES         = 6;
48420
48421
48422/* Return codes for the compression/decompression functions. Negative values
48423 * are errors, positive values are used for special but normal events.
48424 */
48425var Z_OK            = 0;
48426var Z_STREAM_END    = 1;
48427//var Z_NEED_DICT     = 2;
48428//var Z_ERRNO         = -1;
48429var Z_STREAM_ERROR  = -2;
48430var Z_DATA_ERROR    = -3;
48431//var Z_MEM_ERROR     = -4;
48432var Z_BUF_ERROR     = -5;
48433//var Z_VERSION_ERROR = -6;
48434
48435
48436/* compression levels */
48437//var Z_NO_COMPRESSION      = 0;
48438//var Z_BEST_SPEED          = 1;
48439//var Z_BEST_COMPRESSION    = 9;
48440var Z_DEFAULT_COMPRESSION = -1;
48441
48442
48443var Z_FILTERED            = 1;
48444var Z_HUFFMAN_ONLY        = 2;
48445var Z_RLE                 = 3;
48446var Z_FIXED               = 4;
48447var Z_DEFAULT_STRATEGY    = 0;
48448
48449/* Possible values of the data_type field (though see inflate()) */
48450//var Z_BINARY              = 0;
48451//var Z_TEXT                = 1;
48452//var Z_ASCII               = 1; // = Z_TEXT
48453var Z_UNKNOWN             = 2;
48454
48455
48456/* The deflate compression method */
48457var Z_DEFLATED  = 8;
48458
48459/*============================================================================*/
48460
48461
48462var MAX_MEM_LEVEL = 9;
48463/* Maximum value for memLevel in deflateInit2 */
48464var MAX_WBITS = 15;
48465/* 32K LZ77 window */
48466var DEF_MEM_LEVEL = 8;
48467
48468
48469var LENGTH_CODES  = 29;
48470/* number of length codes, not counting the special END_BLOCK code */
48471var LITERALS      = 256;
48472/* number of literal bytes 0..255 */
48473var L_CODES       = LITERALS + 1 + LENGTH_CODES;
48474/* number of Literal or Length codes, including the END_BLOCK code */
48475var D_CODES       = 30;
48476/* number of distance codes */
48477var BL_CODES      = 19;
48478/* number of codes used to transfer the bit lengths */
48479var HEAP_SIZE     = 2 * L_CODES + 1;
48480/* maximum heap size */
48481var MAX_BITS  = 15;
48482/* All codes must not exceed MAX_BITS bits */
48483
48484var MIN_MATCH = 3;
48485var MAX_MATCH = 258;
48486var MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);
48487
48488var PRESET_DICT = 0x20;
48489
48490var INIT_STATE = 42;
48491var EXTRA_STATE = 69;
48492var NAME_STATE = 73;
48493var COMMENT_STATE = 91;
48494var HCRC_STATE = 103;
48495var BUSY_STATE = 113;
48496var FINISH_STATE = 666;
48497
48498var BS_NEED_MORE      = 1; /* block not completed, need more input or more output */
48499var BS_BLOCK_DONE     = 2; /* block flush performed */
48500var BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */
48501var BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */
48502
48503var OS_CODE = 0x03; // Unix :) . Don't detect, use this default.
48504
48505function err(strm, errorCode) {
48506  strm.msg = msg[errorCode];
48507  return errorCode;
48508}
48509
48510function rank(f) {
48511  return ((f) << 1) - ((f) > 4 ? 9 : 0);
48512}
48513
48514function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
48515
48516
48517/* =========================================================================
48518 * Flush as much pending output as possible. All deflate() output goes
48519 * through this function so some applications may wish to modify it
48520 * to avoid allocating a large strm->output buffer and copying into it.
48521 * (See also read_buf()).
48522 */
48523function flush_pending(strm) {
48524  var s = strm.state;
48525
48526  //_tr_flush_bits(s);
48527  var len = s.pending;
48528  if (len > strm.avail_out) {
48529    len = strm.avail_out;
48530  }
48531  if (len === 0) { return; }
48532
48533  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
48534  strm.next_out += len;
48535  s.pending_out += len;
48536  strm.total_out += len;
48537  strm.avail_out -= len;
48538  s.pending -= len;
48539  if (s.pending === 0) {
48540    s.pending_out = 0;
48541  }
48542}
48543
48544
48545function flush_block_only(s, last) {
48546  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);
48547  s.block_start = s.strstart;
48548  flush_pending(s.strm);
48549}
48550
48551
48552function put_byte(s, b) {
48553  s.pending_buf[s.pending++] = b;
48554}
48555
48556
48557/* =========================================================================
48558 * Put a short in the pending buffer. The 16-bit value is put in MSB order.
48559 * IN assertion: the stream state is correct and there is enough room in
48560 * pending_buf.
48561 */
48562function putShortMSB(s, b) {
48563//  put_byte(s, (Byte)(b >> 8));
48564//  put_byte(s, (Byte)(b & 0xff));
48565  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;
48566  s.pending_buf[s.pending++] = b & 0xff;
48567}
48568
48569
48570/* ===========================================================================
48571 * Read a new buffer from the current input stream, update the adler32
48572 * and total number of bytes read.  All deflate() input goes through
48573 * this function so some applications may wish to modify it to avoid
48574 * allocating a large strm->input buffer and copying from it.
48575 * (See also flush_pending()).
48576 */
48577function read_buf(strm, buf, start, size) {
48578  var len = strm.avail_in;
48579
48580  if (len > size) { len = size; }
48581  if (len === 0) { return 0; }
48582
48583  strm.avail_in -= len;
48584
48585  // zmemcpy(buf, strm->next_in, len);
48586  utils.arraySet(buf, strm.input, strm.next_in, len, start);
48587  if (strm.state.wrap === 1) {
48588    strm.adler = adler32(strm.adler, buf, len, start);
48589  }
48590
48591  else if (strm.state.wrap === 2) {
48592    strm.adler = crc32(strm.adler, buf, len, start);
48593  }
48594
48595  strm.next_in += len;
48596  strm.total_in += len;
48597
48598  return len;
48599}
48600
48601
48602/* ===========================================================================
48603 * Set match_start to the longest match starting at the given string and
48604 * return its length. Matches shorter or equal to prev_length are discarded,
48605 * in which case the result is equal to prev_length and match_start is
48606 * garbage.
48607 * IN assertions: cur_match is the head of the hash chain for the current
48608 *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
48609 * OUT assertion: the match length is not greater than s->lookahead.
48610 */
48611function longest_match(s, cur_match) {
48612  var chain_length = s.max_chain_length;      /* max hash chain length */
48613  var scan = s.strstart; /* current string */
48614  var match;                       /* matched string */
48615  var len;                           /* length of current match */
48616  var best_len = s.prev_length;              /* best match length so far */
48617  var nice_match = s.nice_match;             /* stop if match long enough */
48618  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?
48619      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;
48620
48621  var _win = s.window; // shortcut
48622
48623  var wmask = s.w_mask;
48624  var prev  = s.prev;
48625
48626  /* Stop when cur_match becomes <= limit. To simplify the code,
48627   * we prevent matches with the string of window index 0.
48628   */
48629
48630  var strend = s.strstart + MAX_MATCH;
48631  var scan_end1  = _win[scan + best_len - 1];
48632  var scan_end   = _win[scan + best_len];
48633
48634  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
48635   * It is easy to get rid of this optimization if necessary.
48636   */
48637  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
48638
48639  /* Do not waste too much time if we already have a good match: */
48640  if (s.prev_length >= s.good_match) {
48641    chain_length >>= 2;
48642  }
48643  /* Do not look for matches beyond the end of the input. This is necessary
48644   * to make deflate deterministic.
48645   */
48646  if (nice_match > s.lookahead) { nice_match = s.lookahead; }
48647
48648  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
48649
48650  do {
48651    // Assert(cur_match < s->strstart, "no future");
48652    match = cur_match;
48653
48654    /* Skip to next match if the match length cannot increase
48655     * or if the match length is less than 2.  Note that the checks below
48656     * for insufficient lookahead only occur occasionally for performance
48657     * reasons.  Therefore uninitialized memory will be accessed, and
48658     * conditional jumps will be made that depend on those values.
48659     * However the length of the match is limited to the lookahead, so
48660     * the output of deflate is not affected by the uninitialized values.
48661     */
48662
48663    if (_win[match + best_len]     !== scan_end  ||
48664        _win[match + best_len - 1] !== scan_end1 ||
48665        _win[match]                !== _win[scan] ||
48666        _win[++match]              !== _win[scan + 1]) {
48667      continue;
48668    }
48669
48670    /* The check at best_len-1 can be removed because it will be made
48671     * again later. (This heuristic is not always a win.)
48672     * It is not necessary to compare scan[2] and match[2] since they
48673     * are always equal when the other bytes match, given that
48674     * the hash keys are equal and that HASH_BITS >= 8.
48675     */
48676    scan += 2;
48677    match++;
48678    // Assert(*scan == *match, "match[2]?");
48679
48680    /* We check for insufficient lookahead only every 8th comparison;
48681     * the 256th check will be made at strstart+258.
48682     */
48683    do {
48684      /*jshint noempty:false*/
48685    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
48686             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
48687             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
48688             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&
48689             scan < strend);
48690
48691    // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
48692
48693    len = MAX_MATCH - (strend - scan);
48694    scan = strend - MAX_MATCH;
48695
48696    if (len > best_len) {
48697      s.match_start = cur_match;
48698      best_len = len;
48699      if (len >= nice_match) {
48700        break;
48701      }
48702      scan_end1  = _win[scan + best_len - 1];
48703      scan_end   = _win[scan + best_len];
48704    }
48705  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
48706
48707  if (best_len <= s.lookahead) {
48708    return best_len;
48709  }
48710  return s.lookahead;
48711}
48712
48713
48714/* ===========================================================================
48715 * Fill the window when the lookahead becomes insufficient.
48716 * Updates strstart and lookahead.
48717 *
48718 * IN assertion: lookahead < MIN_LOOKAHEAD
48719 * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
48720 *    At least one byte has been read, or avail_in == 0; reads are
48721 *    performed for at least two bytes (required for the zip translate_eol
48722 *    option -- not supported here).
48723 */
48724function fill_window(s) {
48725  var _w_size = s.w_size;
48726  var p, n, m, more, str;
48727
48728  //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead");
48729
48730  do {
48731    more = s.window_size - s.lookahead - s.strstart;
48732
48733    // JS ints have 32 bit, block below not needed
48734    /* Deal with !@#$% 64K limit: */
48735    //if (sizeof(int) <= 2) {
48736    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
48737    //        more = wsize;
48738    //
48739    //  } else if (more == (unsigned)(-1)) {
48740    //        /* Very unlikely, but possible on 16 bit machine if
48741    //         * strstart == 0 && lookahead == 1 (input done a byte at time)
48742    //         */
48743    //        more--;
48744    //    }
48745    //}
48746
48747
48748    /* If the window is almost full and there is insufficient lookahead,
48749     * move the upper half to the lower one to make room in the upper half.
48750     */
48751    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
48752
48753      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
48754      s.match_start -= _w_size;
48755      s.strstart -= _w_size;
48756      /* we now have strstart >= MAX_DIST */
48757      s.block_start -= _w_size;
48758
48759      /* Slide the hash table (could be avoided with 32 bit values
48760       at the expense of memory usage). We slide even when level == 0
48761       to keep the hash table consistent if we switch back to level > 0
48762       later. (Using level 0 permanently is not an optimal usage of
48763       zlib, so we don't care about this pathological case.)
48764       */
48765
48766      n = s.hash_size;
48767      p = n;
48768      do {
48769        m = s.head[--p];
48770        s.head[p] = (m >= _w_size ? m - _w_size : 0);
48771      } while (--n);
48772
48773      n = _w_size;
48774      p = n;
48775      do {
48776        m = s.prev[--p];
48777        s.prev[p] = (m >= _w_size ? m - _w_size : 0);
48778        /* If n is not on any hash chain, prev[n] is garbage but
48779         * its value will never be used.
48780         */
48781      } while (--n);
48782
48783      more += _w_size;
48784    }
48785    if (s.strm.avail_in === 0) {
48786      break;
48787    }
48788
48789    /* If there was no sliding:
48790     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
48791     *    more == window_size - lookahead - strstart
48792     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
48793     * => more >= window_size - 2*WSIZE + 2
48794     * In the BIG_MEM or MMAP case (not yet supported),
48795     *   window_size == input_size + MIN_LOOKAHEAD  &&
48796     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
48797     * Otherwise, window_size == 2*WSIZE so more >= 2.
48798     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
48799     */
48800    //Assert(more >= 2, "more < 2");
48801    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
48802    s.lookahead += n;
48803
48804    /* Initialize the hash value now that we have some input: */
48805    if (s.lookahead + s.insert >= MIN_MATCH) {
48806      str = s.strstart - s.insert;
48807      s.ins_h = s.window[str];
48808
48809      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */
48810      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;
48811//#if MIN_MATCH != 3
48812//        Call update_hash() MIN_MATCH-3 more times
48813//#endif
48814      while (s.insert) {
48815        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
48816        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
48817
48818        s.prev[str & s.w_mask] = s.head[s.ins_h];
48819        s.head[s.ins_h] = str;
48820        str++;
48821        s.insert--;
48822        if (s.lookahead + s.insert < MIN_MATCH) {
48823          break;
48824        }
48825      }
48826    }
48827    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
48828     * but this is not important since only literal bytes will be emitted.
48829     */
48830
48831  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
48832
48833  /* If the WIN_INIT bytes after the end of the current data have never been
48834   * written, then zero those bytes in order to avoid memory check reports of
48835   * the use of uninitialized (or uninitialised as Julian writes) bytes by
48836   * the longest match routines.  Update the high water mark for the next
48837   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match
48838   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.
48839   */
48840//  if (s.high_water < s.window_size) {
48841//    var curr = s.strstart + s.lookahead;
48842//    var init = 0;
48843//
48844//    if (s.high_water < curr) {
48845//      /* Previous high water mark below current data -- zero WIN_INIT
48846//       * bytes or up to end of window, whichever is less.
48847//       */
48848//      init = s.window_size - curr;
48849//      if (init > WIN_INIT)
48850//        init = WIN_INIT;
48851//      zmemzero(s->window + curr, (unsigned)init);
48852//      s->high_water = curr + init;
48853//    }
48854//    else if (s->high_water < (ulg)curr + WIN_INIT) {
48855//      /* High water mark at or above current data, but below current data
48856//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up
48857//       * to end of window, whichever is less.
48858//       */
48859//      init = (ulg)curr + WIN_INIT - s->high_water;
48860//      if (init > s->window_size - s->high_water)
48861//        init = s->window_size - s->high_water;
48862//      zmemzero(s->window + s->high_water, (unsigned)init);
48863//      s->high_water += init;
48864//    }
48865//  }
48866//
48867//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,
48868//    "not enough room for search");
48869}
48870
48871/* ===========================================================================
48872 * Copy without compression as much as possible from the input stream, return
48873 * the current block state.
48874 * This function does not insert new strings in the dictionary since
48875 * uncompressible data is probably not useful. This function is used
48876 * only for the level=0 compression option.
48877 * NOTE: this function should be optimized to avoid extra copying from
48878 * window to pending_buf.
48879 */
48880function deflate_stored(s, flush) {
48881  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
48882   * to pending_buf_size, and each stored block has a 5 byte header:
48883   */
48884  var max_block_size = 0xffff;
48885
48886  if (max_block_size > s.pending_buf_size - 5) {
48887    max_block_size = s.pending_buf_size - 5;
48888  }
48889
48890  /* Copy as much as possible from input to output: */
48891  for (;;) {
48892    /* Fill the window as much as possible: */
48893    if (s.lookahead <= 1) {
48894
48895      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||
48896      //  s->block_start >= (long)s->w_size, "slide too late");
48897//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||
48898//        s.block_start >= s.w_size)) {
48899//        throw  new Error("slide too late");
48900//      }
48901
48902      fill_window(s);
48903      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
48904        return BS_NEED_MORE;
48905      }
48906
48907      if (s.lookahead === 0) {
48908        break;
48909      }
48910      /* flush the current block */
48911    }
48912    //Assert(s->block_start >= 0L, "block gone");
48913//    if (s.block_start < 0) throw new Error("block gone");
48914
48915    s.strstart += s.lookahead;
48916    s.lookahead = 0;
48917
48918    /* Emit a stored block if pending_buf will be full: */
48919    var max_start = s.block_start + max_block_size;
48920
48921    if (s.strstart === 0 || s.strstart >= max_start) {
48922      /* strstart == 0 is possible when wraparound on 16-bit machine */
48923      s.lookahead = s.strstart - max_start;
48924      s.strstart = max_start;
48925      /*** FLUSH_BLOCK(s, 0); ***/
48926      flush_block_only(s, false);
48927      if (s.strm.avail_out === 0) {
48928        return BS_NEED_MORE;
48929      }
48930      /***/
48931
48932
48933    }
48934    /* Flush if we may have to slide, otherwise block_start may become
48935     * negative and the data will be gone:
48936     */
48937    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {
48938      /*** FLUSH_BLOCK(s, 0); ***/
48939      flush_block_only(s, false);
48940      if (s.strm.avail_out === 0) {
48941        return BS_NEED_MORE;
48942      }
48943      /***/
48944    }
48945  }
48946
48947  s.insert = 0;
48948
48949  if (flush === Z_FINISH) {
48950    /*** FLUSH_BLOCK(s, 1); ***/
48951    flush_block_only(s, true);
48952    if (s.strm.avail_out === 0) {
48953      return BS_FINISH_STARTED;
48954    }
48955    /***/
48956    return BS_FINISH_DONE;
48957  }
48958
48959  if (s.strstart > s.block_start) {
48960    /*** FLUSH_BLOCK(s, 0); ***/
48961    flush_block_only(s, false);
48962    if (s.strm.avail_out === 0) {
48963      return BS_NEED_MORE;
48964    }
48965    /***/
48966  }
48967
48968  return BS_NEED_MORE;
48969}
48970
48971/* ===========================================================================
48972 * Compress as much as possible from the input stream, return the current
48973 * block state.
48974 * This function does not perform lazy evaluation of matches and inserts
48975 * new strings in the dictionary only for unmatched strings or for short
48976 * matches. It is used only for the fast compression options.
48977 */
48978function deflate_fast(s, flush) {
48979  var hash_head;        /* head of the hash chain */
48980  var bflush;           /* set if current block must be flushed */
48981
48982  for (;;) {
48983    /* Make sure that we always have enough lookahead, except
48984     * at the end of the input file. We need MAX_MATCH bytes
48985     * for the next match, plus MIN_MATCH bytes to insert the
48986     * string following the next match.
48987     */
48988    if (s.lookahead < MIN_LOOKAHEAD) {
48989      fill_window(s);
48990      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
48991        return BS_NEED_MORE;
48992      }
48993      if (s.lookahead === 0) {
48994        break; /* flush the current block */
48995      }
48996    }
48997
48998    /* Insert the string window[strstart .. strstart+2] in the
48999     * dictionary, and set hash_head to the head of the hash chain:
49000     */
49001    hash_head = 0/*NIL*/;
49002    if (s.lookahead >= MIN_MATCH) {
49003      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
49004      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
49005      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
49006      s.head[s.ins_h] = s.strstart;
49007      /***/
49008    }
49009
49010    /* Find the longest match, discarding those <= prev_length.
49011     * At this point we have always match_length < MIN_MATCH
49012     */
49013    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {
49014      /* To simplify the code, we prevent matches with the string
49015       * of window index 0 (in particular we have to avoid a match
49016       * of the string with itself at the start of the input file).
49017       */
49018      s.match_length = longest_match(s, hash_head);
49019      /* longest_match() sets match_start */
49020    }
49021    if (s.match_length >= MIN_MATCH) {
49022      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only
49023
49024      /*** _tr_tally_dist(s, s.strstart - s.match_start,
49025                     s.match_length - MIN_MATCH, bflush); ***/
49026      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
49027
49028      s.lookahead -= s.match_length;
49029
49030      /* Insert new strings in the hash table only if the match length
49031       * is not too large. This saves time but degrades compression.
49032       */
49033      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {
49034        s.match_length--; /* string at strstart already in table */
49035        do {
49036          s.strstart++;
49037          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
49038          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
49039          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
49040          s.head[s.ins_h] = s.strstart;
49041          /***/
49042          /* strstart never exceeds WSIZE-MAX_MATCH, so there are
49043           * always MIN_MATCH bytes ahead.
49044           */
49045        } while (--s.match_length !== 0);
49046        s.strstart++;
49047      } else
49048      {
49049        s.strstart += s.match_length;
49050        s.match_length = 0;
49051        s.ins_h = s.window[s.strstart];
49052        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */
49053        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;
49054
49055//#if MIN_MATCH != 3
49056//                Call UPDATE_HASH() MIN_MATCH-3 more times
49057//#endif
49058        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
49059         * matter since it will be recomputed at next deflate call.
49060         */
49061      }
49062    } else {
49063      /* No match, output a literal byte */
49064      //Tracevv((stderr,"%c", s.window[s.strstart]));
49065      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
49066      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
49067
49068      s.lookahead--;
49069      s.strstart++;
49070    }
49071    if (bflush) {
49072      /*** FLUSH_BLOCK(s, 0); ***/
49073      flush_block_only(s, false);
49074      if (s.strm.avail_out === 0) {
49075        return BS_NEED_MORE;
49076      }
49077      /***/
49078    }
49079  }
49080  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);
49081  if (flush === Z_FINISH) {
49082    /*** FLUSH_BLOCK(s, 1); ***/
49083    flush_block_only(s, true);
49084    if (s.strm.avail_out === 0) {
49085      return BS_FINISH_STARTED;
49086    }
49087    /***/
49088    return BS_FINISH_DONE;
49089  }
49090  if (s.last_lit) {
49091    /*** FLUSH_BLOCK(s, 0); ***/
49092    flush_block_only(s, false);
49093    if (s.strm.avail_out === 0) {
49094      return BS_NEED_MORE;
49095    }
49096    /***/
49097  }
49098  return BS_BLOCK_DONE;
49099}
49100
49101/* ===========================================================================
49102 * Same as above, but achieves better compression. We use a lazy
49103 * evaluation for matches: a match is finally adopted only if there is
49104 * no better match at the next window position.
49105 */
49106function deflate_slow(s, flush) {
49107  var hash_head;          /* head of hash chain */
49108  var bflush;              /* set if current block must be flushed */
49109
49110  var max_insert;
49111
49112  /* Process the input block. */
49113  for (;;) {
49114    /* Make sure that we always have enough lookahead, except
49115     * at the end of the input file. We need MAX_MATCH bytes
49116     * for the next match, plus MIN_MATCH bytes to insert the
49117     * string following the next match.
49118     */
49119    if (s.lookahead < MIN_LOOKAHEAD) {
49120      fill_window(s);
49121      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
49122        return BS_NEED_MORE;
49123      }
49124      if (s.lookahead === 0) { break; } /* flush the current block */
49125    }
49126
49127    /* Insert the string window[strstart .. strstart+2] in the
49128     * dictionary, and set hash_head to the head of the hash chain:
49129     */
49130    hash_head = 0/*NIL*/;
49131    if (s.lookahead >= MIN_MATCH) {
49132      /*** INSERT_STRING(s, s.strstart, hash_head); ***/
49133      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
49134      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
49135      s.head[s.ins_h] = s.strstart;
49136      /***/
49137    }
49138
49139    /* Find the longest match, discarding those <= prev_length.
49140     */
49141    s.prev_length = s.match_length;
49142    s.prev_match = s.match_start;
49143    s.match_length = MIN_MATCH - 1;
49144
49145    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&
49146        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {
49147      /* To simplify the code, we prevent matches with the string
49148       * of window index 0 (in particular we have to avoid a match
49149       * of the string with itself at the start of the input file).
49150       */
49151      s.match_length = longest_match(s, hash_head);
49152      /* longest_match() sets match_start */
49153
49154      if (s.match_length <= 5 &&
49155         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {
49156
49157        /* If prev_match is also MIN_MATCH, match_start is garbage
49158         * but we will ignore the current match anyway.
49159         */
49160        s.match_length = MIN_MATCH - 1;
49161      }
49162    }
49163    /* If there was a match at the previous step and the current
49164     * match is not better, output the previous match:
49165     */
49166    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
49167      max_insert = s.strstart + s.lookahead - MIN_MATCH;
49168      /* Do not insert strings in hash table beyond this. */
49169
49170      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);
49171
49172      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,
49173                     s.prev_length - MIN_MATCH, bflush);***/
49174      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
49175      /* Insert in hash table all strings up to the end of the match.
49176       * strstart-1 and strstart are already inserted. If there is not
49177       * enough lookahead, the last two strings are not inserted in
49178       * the hash table.
49179       */
49180      s.lookahead -= s.prev_length - 1;
49181      s.prev_length -= 2;
49182      do {
49183        if (++s.strstart <= max_insert) {
49184          /*** INSERT_STRING(s, s.strstart, hash_head); ***/
49185          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
49186          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
49187          s.head[s.ins_h] = s.strstart;
49188          /***/
49189        }
49190      } while (--s.prev_length !== 0);
49191      s.match_available = 0;
49192      s.match_length = MIN_MATCH - 1;
49193      s.strstart++;
49194
49195      if (bflush) {
49196        /*** FLUSH_BLOCK(s, 0); ***/
49197        flush_block_only(s, false);
49198        if (s.strm.avail_out === 0) {
49199          return BS_NEED_MORE;
49200        }
49201        /***/
49202      }
49203
49204    } else if (s.match_available) {
49205      /* If there was no match at the previous position, output a
49206       * single literal. If there was a match but the current match
49207       * is longer, truncate the previous match to a single literal.
49208       */
49209      //Tracevv((stderr,"%c", s->window[s->strstart-1]));
49210      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
49211      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
49212
49213      if (bflush) {
49214        /*** FLUSH_BLOCK_ONLY(s, 0) ***/
49215        flush_block_only(s, false);
49216        /***/
49217      }
49218      s.strstart++;
49219      s.lookahead--;
49220      if (s.strm.avail_out === 0) {
49221        return BS_NEED_MORE;
49222      }
49223    } else {
49224      /* There is no previous match to compare with, wait for
49225       * the next step to decide.
49226       */
49227      s.match_available = 1;
49228      s.strstart++;
49229      s.lookahead--;
49230    }
49231  }
49232  //Assert (flush != Z_NO_FLUSH, "no flush?");
49233  if (s.match_available) {
49234    //Tracevv((stderr,"%c", s->window[s->strstart-1]));
49235    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/
49236    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
49237
49238    s.match_available = 0;
49239  }
49240  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
49241  if (flush === Z_FINISH) {
49242    /*** FLUSH_BLOCK(s, 1); ***/
49243    flush_block_only(s, true);
49244    if (s.strm.avail_out === 0) {
49245      return BS_FINISH_STARTED;
49246    }
49247    /***/
49248    return BS_FINISH_DONE;
49249  }
49250  if (s.last_lit) {
49251    /*** FLUSH_BLOCK(s, 0); ***/
49252    flush_block_only(s, false);
49253    if (s.strm.avail_out === 0) {
49254      return BS_NEED_MORE;
49255    }
49256    /***/
49257  }
49258
49259  return BS_BLOCK_DONE;
49260}
49261
49262
49263/* ===========================================================================
49264 * For Z_RLE, simply look for runs of bytes, generate matches only of distance
49265 * one.  Do not maintain a hash table.  (It will be regenerated if this run of
49266 * deflate switches away from Z_RLE.)
49267 */
49268function deflate_rle(s, flush) {
49269  var bflush;            /* set if current block must be flushed */
49270  var prev;              /* byte at distance one to match */
49271  var scan, strend;      /* scan goes up to strend for length of run */
49272
49273  var _win = s.window;
49274
49275  for (;;) {
49276    /* Make sure that we always have enough lookahead, except
49277     * at the end of the input file. We need MAX_MATCH bytes
49278     * for the longest run, plus one for the unrolled loop.
49279     */
49280    if (s.lookahead <= MAX_MATCH) {
49281      fill_window(s);
49282      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
49283        return BS_NEED_MORE;
49284      }
49285      if (s.lookahead === 0) { break; } /* flush the current block */
49286    }
49287
49288    /* See how many times the previous byte repeats */
49289    s.match_length = 0;
49290    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
49291      scan = s.strstart - 1;
49292      prev = _win[scan];
49293      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
49294        strend = s.strstart + MAX_MATCH;
49295        do {
49296          /*jshint noempty:false*/
49297        } while (prev === _win[++scan] && prev === _win[++scan] &&
49298                 prev === _win[++scan] && prev === _win[++scan] &&
49299                 prev === _win[++scan] && prev === _win[++scan] &&
49300                 prev === _win[++scan] && prev === _win[++scan] &&
49301                 scan < strend);
49302        s.match_length = MAX_MATCH - (strend - scan);
49303        if (s.match_length > s.lookahead) {
49304          s.match_length = s.lookahead;
49305        }
49306      }
49307      //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan");
49308    }
49309
49310    /* Emit match if have run of MIN_MATCH or longer, else emit literal */
49311    if (s.match_length >= MIN_MATCH) {
49312      //check_match(s, s.strstart, s.strstart - 1, s.match_length);
49313
49314      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/
49315      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
49316
49317      s.lookahead -= s.match_length;
49318      s.strstart += s.match_length;
49319      s.match_length = 0;
49320    } else {
49321      /* No match, output a literal byte */
49322      //Tracevv((stderr,"%c", s->window[s->strstart]));
49323      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
49324      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
49325
49326      s.lookahead--;
49327      s.strstart++;
49328    }
49329    if (bflush) {
49330      /*** FLUSH_BLOCK(s, 0); ***/
49331      flush_block_only(s, false);
49332      if (s.strm.avail_out === 0) {
49333        return BS_NEED_MORE;
49334      }
49335      /***/
49336    }
49337  }
49338  s.insert = 0;
49339  if (flush === Z_FINISH) {
49340    /*** FLUSH_BLOCK(s, 1); ***/
49341    flush_block_only(s, true);
49342    if (s.strm.avail_out === 0) {
49343      return BS_FINISH_STARTED;
49344    }
49345    /***/
49346    return BS_FINISH_DONE;
49347  }
49348  if (s.last_lit) {
49349    /*** FLUSH_BLOCK(s, 0); ***/
49350    flush_block_only(s, false);
49351    if (s.strm.avail_out === 0) {
49352      return BS_NEED_MORE;
49353    }
49354    /***/
49355  }
49356  return BS_BLOCK_DONE;
49357}
49358
49359/* ===========================================================================
49360 * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.
49361 * (It will be regenerated if this run of deflate switches away from Huffman.)
49362 */
49363function deflate_huff(s, flush) {
49364  var bflush;             /* set if current block must be flushed */
49365
49366  for (;;) {
49367    /* Make sure that we have a literal to write. */
49368    if (s.lookahead === 0) {
49369      fill_window(s);
49370      if (s.lookahead === 0) {
49371        if (flush === Z_NO_FLUSH) {
49372          return BS_NEED_MORE;
49373        }
49374        break;      /* flush the current block */
49375      }
49376    }
49377
49378    /* Output a literal byte */
49379    s.match_length = 0;
49380    //Tracevv((stderr,"%c", s->window[s->strstart]));
49381    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/
49382    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
49383    s.lookahead--;
49384    s.strstart++;
49385    if (bflush) {
49386      /*** FLUSH_BLOCK(s, 0); ***/
49387      flush_block_only(s, false);
49388      if (s.strm.avail_out === 0) {
49389        return BS_NEED_MORE;
49390      }
49391      /***/
49392    }
49393  }
49394  s.insert = 0;
49395  if (flush === Z_FINISH) {
49396    /*** FLUSH_BLOCK(s, 1); ***/
49397    flush_block_only(s, true);
49398    if (s.strm.avail_out === 0) {
49399      return BS_FINISH_STARTED;
49400    }
49401    /***/
49402    return BS_FINISH_DONE;
49403  }
49404  if (s.last_lit) {
49405    /*** FLUSH_BLOCK(s, 0); ***/
49406    flush_block_only(s, false);
49407    if (s.strm.avail_out === 0) {
49408      return BS_NEED_MORE;
49409    }
49410    /***/
49411  }
49412  return BS_BLOCK_DONE;
49413}
49414
49415/* Values for max_lazy_match, good_match and max_chain_length, depending on
49416 * the desired pack level (0..9). The values given below have been tuned to
49417 * exclude worst case performance for pathological files. Better values may be
49418 * found for specific files.
49419 */
49420function Config(good_length, max_lazy, nice_length, max_chain, func) {
49421  this.good_length = good_length;
49422  this.max_lazy = max_lazy;
49423  this.nice_length = nice_length;
49424  this.max_chain = max_chain;
49425  this.func = func;
49426}
49427
49428var configuration_table;
49429
49430configuration_table = [
49431  /*      good lazy nice chain */
49432  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */
49433  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */
49434  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */
49435  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */
49436
49437  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */
49438  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */
49439  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */
49440  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */
49441  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */
49442  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */
49443];
49444
49445
49446/* ===========================================================================
49447 * Initialize the "longest match" routines for a new zlib stream
49448 */
49449function lm_init(s) {
49450  s.window_size = 2 * s.w_size;
49451
49452  /*** CLEAR_HASH(s); ***/
49453  zero(s.head); // Fill with NIL (= 0);
49454
49455  /* Set the default configuration parameters:
49456   */
49457  s.max_lazy_match = configuration_table[s.level].max_lazy;
49458  s.good_match = configuration_table[s.level].good_length;
49459  s.nice_match = configuration_table[s.level].nice_length;
49460  s.max_chain_length = configuration_table[s.level].max_chain;
49461
49462  s.strstart = 0;
49463  s.block_start = 0;
49464  s.lookahead = 0;
49465  s.insert = 0;
49466  s.match_length = s.prev_length = MIN_MATCH - 1;
49467  s.match_available = 0;
49468  s.ins_h = 0;
49469}
49470
49471
49472function DeflateState() {
49473  this.strm = null;            /* pointer back to this zlib stream */
49474  this.status = 0;            /* as the name implies */
49475  this.pending_buf = null;      /* output still pending */
49476  this.pending_buf_size = 0;  /* size of pending_buf */
49477  this.pending_out = 0;       /* next pending byte to output to the stream */
49478  this.pending = 0;           /* nb of bytes in the pending buffer */
49479  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
49480  this.gzhead = null;         /* gzip header information to write */
49481  this.gzindex = 0;           /* where in extra, name, or comment */
49482  this.method = Z_DEFLATED; /* can only be DEFLATED */
49483  this.last_flush = -1;   /* value of flush param for previous deflate call */
49484
49485  this.w_size = 0;  /* LZ77 window size (32K by default) */
49486  this.w_bits = 0;  /* log2(w_size)  (8..16) */
49487  this.w_mask = 0;  /* w_size - 1 */
49488
49489  this.window = null;
49490  /* Sliding window. Input bytes are read into the second half of the window,
49491   * and move to the first half later to keep a dictionary of at least wSize
49492   * bytes. With this organization, matches are limited to a distance of
49493   * wSize-MAX_MATCH bytes, but this ensures that IO is always
49494   * performed with a length multiple of the block size.
49495   */
49496
49497  this.window_size = 0;
49498  /* Actual size of window: 2*wSize, except when the user input buffer
49499   * is directly used as sliding window.
49500   */
49501
49502  this.prev = null;
49503  /* Link to older string with same hash index. To limit the size of this
49504   * array to 64K, this link is maintained only for the last 32K strings.
49505   * An index in this array is thus a window index modulo 32K.
49506   */
49507
49508  this.head = null;   /* Heads of the hash chains or NIL. */
49509
49510  this.ins_h = 0;       /* hash index of string to be inserted */
49511  this.hash_size = 0;   /* number of elements in hash table */
49512  this.hash_bits = 0;   /* log2(hash_size) */
49513  this.hash_mask = 0;   /* hash_size-1 */
49514
49515  this.hash_shift = 0;
49516  /* Number of bits by which ins_h must be shifted at each input
49517   * step. It must be such that after MIN_MATCH steps, the oldest
49518   * byte no longer takes part in the hash key, that is:
49519   *   hash_shift * MIN_MATCH >= hash_bits
49520   */
49521
49522  this.block_start = 0;
49523  /* Window position at the beginning of the current output block. Gets
49524   * negative when the window is moved backwards.
49525   */
49526
49527  this.match_length = 0;      /* length of best match */
49528  this.prev_match = 0;        /* previous match */
49529  this.match_available = 0;   /* set if previous match exists */
49530  this.strstart = 0;          /* start of string to insert */
49531  this.match_start = 0;       /* start of matching string */
49532  this.lookahead = 0;         /* number of valid bytes ahead in window */
49533
49534  this.prev_length = 0;
49535  /* Length of the best match at previous step. Matches not greater than this
49536   * are discarded. This is used in the lazy match evaluation.
49537   */
49538
49539  this.max_chain_length = 0;
49540  /* To speed up deflation, hash chains are never searched beyond this
49541   * length.  A higher limit improves compression ratio but degrades the
49542   * speed.
49543   */
49544
49545  this.max_lazy_match = 0;
49546  /* Attempt to find a better match only when the current match is strictly
49547   * smaller than this value. This mechanism is used only for compression
49548   * levels >= 4.
49549   */
49550  // That's alias to max_lazy_match, don't use directly
49551  //this.max_insert_length = 0;
49552  /* Insert new strings in the hash table only if the match length is not
49553   * greater than this length. This saves time but degrades compression.
49554   * max_insert_length is used only for compression levels <= 3.
49555   */
49556
49557  this.level = 0;     /* compression level (1..9) */
49558  this.strategy = 0;  /* favor or force Huffman coding*/
49559
49560  this.good_match = 0;
49561  /* Use a faster search when the previous match is longer than this */
49562
49563  this.nice_match = 0; /* Stop searching when current match exceeds this */
49564
49565              /* used by trees.c: */
49566
49567  /* Didn't use ct_data typedef below to suppress compiler warning */
49568
49569  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */
49570  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
49571  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */
49572
49573  // Use flat array of DOUBLE size, with interleaved fata,
49574  // because JS does not support effective
49575  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);
49576  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);
49577  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);
49578  zero(this.dyn_ltree);
49579  zero(this.dyn_dtree);
49580  zero(this.bl_tree);
49581
49582  this.l_desc   = null;         /* desc. for literal tree */
49583  this.d_desc   = null;         /* desc. for distance tree */
49584  this.bl_desc  = null;         /* desc. for bit length tree */
49585
49586  //ush bl_count[MAX_BITS+1];
49587  this.bl_count = new utils.Buf16(MAX_BITS + 1);
49588  /* number of codes at each bit length for an optimal tree */
49589
49590  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */
49591  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */
49592  zero(this.heap);
49593
49594  this.heap_len = 0;               /* number of elements in the heap */
49595  this.heap_max = 0;               /* element of largest frequency */
49596  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
49597   * The same heap array is used to build all trees.
49598   */
49599
49600  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];
49601  zero(this.depth);
49602  /* Depth of each subtree used as tie breaker for trees of equal frequency
49603   */
49604
49605  this.l_buf = 0;          /* buffer index for literals or lengths */
49606
49607  this.lit_bufsize = 0;
49608  /* Size of match buffer for literals/lengths.  There are 4 reasons for
49609   * limiting lit_bufsize to 64K:
49610   *   - frequencies can be kept in 16 bit counters
49611   *   - if compression is not successful for the first block, all input
49612   *     data is still in the window so we can still emit a stored block even
49613   *     when input comes from standard input.  (This can also be done for
49614   *     all blocks if lit_bufsize is not greater than 32K.)
49615   *   - if compression is not successful for a file smaller than 64K, we can
49616   *     even emit a stored file instead of a stored block (saving 5 bytes).
49617   *     This is applicable only for zip (not gzip or zlib).
49618   *   - creating new Huffman trees less frequently may not provide fast
49619   *     adaptation to changes in the input data statistics. (Take for
49620   *     example a binary file with poorly compressible code followed by
49621   *     a highly compressible string table.) Smaller buffer sizes give
49622   *     fast adaptation but have of course the overhead of transmitting
49623   *     trees more frequently.
49624   *   - I can't count above 4
49625   */
49626
49627  this.last_lit = 0;      /* running index in l_buf */
49628
49629  this.d_buf = 0;
49630  /* Buffer index for distances. To simplify the code, d_buf and l_buf have
49631   * the same number of elements. To use different lengths, an extra flag
49632   * array would be necessary.
49633   */
49634
49635  this.opt_len = 0;       /* bit length of current block with optimal trees */
49636  this.static_len = 0;    /* bit length of current block with static trees */
49637  this.matches = 0;       /* number of string matches in current block */
49638  this.insert = 0;        /* bytes at end of window left to insert */
49639
49640
49641  this.bi_buf = 0;
49642  /* Output buffer. bits are inserted starting at the bottom (least
49643   * significant bits).
49644   */
49645  this.bi_valid = 0;
49646  /* Number of valid bits in bi_buf.  All bits above the last valid bit
49647   * are always zero.
49648   */
49649
49650  // Used for window memory init. We safely ignore it for JS. That makes
49651  // sense only for pointers and memory check tools.
49652  //this.high_water = 0;
49653  /* High water mark offset in window for initialized bytes -- bytes above
49654   * this are set to zero in order to avoid memory check warnings when
49655   * longest match routines access bytes past the input.  This is then
49656   * updated to the new high water mark.
49657   */
49658}
49659
49660
49661function deflateResetKeep(strm) {
49662  var s;
49663
49664  if (!strm || !strm.state) {
49665    return err(strm, Z_STREAM_ERROR);
49666  }
49667
49668  strm.total_in = strm.total_out = 0;
49669  strm.data_type = Z_UNKNOWN;
49670
49671  s = strm.state;
49672  s.pending = 0;
49673  s.pending_out = 0;
49674
49675  if (s.wrap < 0) {
49676    s.wrap = -s.wrap;
49677    /* was made negative by deflate(..., Z_FINISH); */
49678  }
49679  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);
49680  strm.adler = (s.wrap === 2) ?
49681    0  // crc32(0, Z_NULL, 0)
49682  :
49683    1; // adler32(0, Z_NULL, 0)
49684  s.last_flush = Z_NO_FLUSH;
49685  trees._tr_init(s);
49686  return Z_OK;
49687}
49688
49689
49690function deflateReset(strm) {
49691  var ret = deflateResetKeep(strm);
49692  if (ret === Z_OK) {
49693    lm_init(strm.state);
49694  }
49695  return ret;
49696}
49697
49698
49699function deflateSetHeader(strm, head) {
49700  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
49701  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }
49702  strm.state.gzhead = head;
49703  return Z_OK;
49704}
49705
49706
49707function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
49708  if (!strm) { // === Z_NULL
49709    return Z_STREAM_ERROR;
49710  }
49711  var wrap = 1;
49712
49713  if (level === Z_DEFAULT_COMPRESSION) {
49714    level = 6;
49715  }
49716
49717  if (windowBits < 0) { /* suppress zlib wrapper */
49718    wrap = 0;
49719    windowBits = -windowBits;
49720  }
49721
49722  else if (windowBits > 15) {
49723    wrap = 2;           /* write gzip wrapper instead */
49724    windowBits -= 16;
49725  }
49726
49727
49728  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||
49729    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
49730    strategy < 0 || strategy > Z_FIXED) {
49731    return err(strm, Z_STREAM_ERROR);
49732  }
49733
49734
49735  if (windowBits === 8) {
49736    windowBits = 9;
49737  }
49738  /* until 256-byte window bug fixed */
49739
49740  var s = new DeflateState();
49741
49742  strm.state = s;
49743  s.strm = strm;
49744
49745  s.wrap = wrap;
49746  s.gzhead = null;
49747  s.w_bits = windowBits;
49748  s.w_size = 1 << s.w_bits;
49749  s.w_mask = s.w_size - 1;
49750
49751  s.hash_bits = memLevel + 7;
49752  s.hash_size = 1 << s.hash_bits;
49753  s.hash_mask = s.hash_size - 1;
49754  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
49755
49756  s.window = new utils.Buf8(s.w_size * 2);
49757  s.head = new utils.Buf16(s.hash_size);
49758  s.prev = new utils.Buf16(s.w_size);
49759
49760  // Don't need mem init magic for JS.
49761  //s.high_water = 0;  /* nothing written to s->window yet */
49762
49763  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
49764
49765  s.pending_buf_size = s.lit_bufsize * 4;
49766
49767  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
49768  //s->pending_buf = (uchf *) overlay;
49769  s.pending_buf = new utils.Buf8(s.pending_buf_size);
49770
49771  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)
49772  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
49773  s.d_buf = 1 * s.lit_bufsize;
49774
49775  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
49776  s.l_buf = (1 + 2) * s.lit_bufsize;
49777
49778  s.level = level;
49779  s.strategy = strategy;
49780  s.method = method;
49781
49782  return deflateReset(strm);
49783}
49784
49785function deflateInit(strm, level) {
49786  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
49787}
49788
49789
49790function deflate(strm, flush) {
49791  var old_flush, s;
49792  var beg, val; // for gzip header write only
49793
49794  if (!strm || !strm.state ||
49795    flush > Z_BLOCK || flush < 0) {
49796    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
49797  }
49798
49799  s = strm.state;
49800
49801  if (!strm.output ||
49802      (!strm.input && strm.avail_in !== 0) ||
49803      (s.status === FINISH_STATE && flush !== Z_FINISH)) {
49804    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);
49805  }
49806
49807  s.strm = strm; /* just in case */
49808  old_flush = s.last_flush;
49809  s.last_flush = flush;
49810
49811  /* Write the header */
49812  if (s.status === INIT_STATE) {
49813
49814    if (s.wrap === 2) { // GZIP header
49815      strm.adler = 0;  //crc32(0L, Z_NULL, 0);
49816      put_byte(s, 31);
49817      put_byte(s, 139);
49818      put_byte(s, 8);
49819      if (!s.gzhead) { // s->gzhead == Z_NULL
49820        put_byte(s, 0);
49821        put_byte(s, 0);
49822        put_byte(s, 0);
49823        put_byte(s, 0);
49824        put_byte(s, 0);
49825        put_byte(s, s.level === 9 ? 2 :
49826                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
49827                     4 : 0));
49828        put_byte(s, OS_CODE);
49829        s.status = BUSY_STATE;
49830      }
49831      else {
49832        put_byte(s, (s.gzhead.text ? 1 : 0) +
49833                    (s.gzhead.hcrc ? 2 : 0) +
49834                    (!s.gzhead.extra ? 0 : 4) +
49835                    (!s.gzhead.name ? 0 : 8) +
49836                    (!s.gzhead.comment ? 0 : 16)
49837        );
49838        put_byte(s, s.gzhead.time & 0xff);
49839        put_byte(s, (s.gzhead.time >> 8) & 0xff);
49840        put_byte(s, (s.gzhead.time >> 16) & 0xff);
49841        put_byte(s, (s.gzhead.time >> 24) & 0xff);
49842        put_byte(s, s.level === 9 ? 2 :
49843                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?
49844                     4 : 0));
49845        put_byte(s, s.gzhead.os & 0xff);
49846        if (s.gzhead.extra && s.gzhead.extra.length) {
49847          put_byte(s, s.gzhead.extra.length & 0xff);
49848          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);
49849        }
49850        if (s.gzhead.hcrc) {
49851          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
49852        }
49853        s.gzindex = 0;
49854        s.status = EXTRA_STATE;
49855      }
49856    }
49857    else // DEFLATE header
49858    {
49859      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;
49860      var level_flags = -1;
49861
49862      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
49863        level_flags = 0;
49864      } else if (s.level < 6) {
49865        level_flags = 1;
49866      } else if (s.level === 6) {
49867        level_flags = 2;
49868      } else {
49869        level_flags = 3;
49870      }
49871      header |= (level_flags << 6);
49872      if (s.strstart !== 0) { header |= PRESET_DICT; }
49873      header += 31 - (header % 31);
49874
49875      s.status = BUSY_STATE;
49876      putShortMSB(s, header);
49877
49878      /* Save the adler32 of the preset dictionary: */
49879      if (s.strstart !== 0) {
49880        putShortMSB(s, strm.adler >>> 16);
49881        putShortMSB(s, strm.adler & 0xffff);
49882      }
49883      strm.adler = 1; // adler32(0L, Z_NULL, 0);
49884    }
49885  }
49886
49887//#ifdef GZIP
49888  if (s.status === EXTRA_STATE) {
49889    if (s.gzhead.extra/* != Z_NULL*/) {
49890      beg = s.pending;  /* start of bytes to update crc */
49891
49892      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {
49893        if (s.pending === s.pending_buf_size) {
49894          if (s.gzhead.hcrc && s.pending > beg) {
49895            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49896          }
49897          flush_pending(strm);
49898          beg = s.pending;
49899          if (s.pending === s.pending_buf_size) {
49900            break;
49901          }
49902        }
49903        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);
49904        s.gzindex++;
49905      }
49906      if (s.gzhead.hcrc && s.pending > beg) {
49907        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49908      }
49909      if (s.gzindex === s.gzhead.extra.length) {
49910        s.gzindex = 0;
49911        s.status = NAME_STATE;
49912      }
49913    }
49914    else {
49915      s.status = NAME_STATE;
49916    }
49917  }
49918  if (s.status === NAME_STATE) {
49919    if (s.gzhead.name/* != Z_NULL*/) {
49920      beg = s.pending;  /* start of bytes to update crc */
49921      //int val;
49922
49923      do {
49924        if (s.pending === s.pending_buf_size) {
49925          if (s.gzhead.hcrc && s.pending > beg) {
49926            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49927          }
49928          flush_pending(strm);
49929          beg = s.pending;
49930          if (s.pending === s.pending_buf_size) {
49931            val = 1;
49932            break;
49933          }
49934        }
49935        // JS specific: little magic to add zero terminator to end of string
49936        if (s.gzindex < s.gzhead.name.length) {
49937          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;
49938        } else {
49939          val = 0;
49940        }
49941        put_byte(s, val);
49942      } while (val !== 0);
49943
49944      if (s.gzhead.hcrc && s.pending > beg) {
49945        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49946      }
49947      if (val === 0) {
49948        s.gzindex = 0;
49949        s.status = COMMENT_STATE;
49950      }
49951    }
49952    else {
49953      s.status = COMMENT_STATE;
49954    }
49955  }
49956  if (s.status === COMMENT_STATE) {
49957    if (s.gzhead.comment/* != Z_NULL*/) {
49958      beg = s.pending;  /* start of bytes to update crc */
49959      //int val;
49960
49961      do {
49962        if (s.pending === s.pending_buf_size) {
49963          if (s.gzhead.hcrc && s.pending > beg) {
49964            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49965          }
49966          flush_pending(strm);
49967          beg = s.pending;
49968          if (s.pending === s.pending_buf_size) {
49969            val = 1;
49970            break;
49971          }
49972        }
49973        // JS specific: little magic to add zero terminator to end of string
49974        if (s.gzindex < s.gzhead.comment.length) {
49975          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;
49976        } else {
49977          val = 0;
49978        }
49979        put_byte(s, val);
49980      } while (val !== 0);
49981
49982      if (s.gzhead.hcrc && s.pending > beg) {
49983        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
49984      }
49985      if (val === 0) {
49986        s.status = HCRC_STATE;
49987      }
49988    }
49989    else {
49990      s.status = HCRC_STATE;
49991    }
49992  }
49993  if (s.status === HCRC_STATE) {
49994    if (s.gzhead.hcrc) {
49995      if (s.pending + 2 > s.pending_buf_size) {
49996        flush_pending(strm);
49997      }
49998      if (s.pending + 2 <= s.pending_buf_size) {
49999        put_byte(s, strm.adler & 0xff);
50000        put_byte(s, (strm.adler >> 8) & 0xff);
50001        strm.adler = 0; //crc32(0L, Z_NULL, 0);
50002        s.status = BUSY_STATE;
50003      }
50004    }
50005    else {
50006      s.status = BUSY_STATE;
50007    }
50008  }
50009//#endif
50010
50011  /* Flush as much pending output as possible */
50012  if (s.pending !== 0) {
50013    flush_pending(strm);
50014    if (strm.avail_out === 0) {
50015      /* Since avail_out is 0, deflate will be called again with
50016       * more output space, but possibly with both pending and
50017       * avail_in equal to zero. There won't be anything to do,
50018       * but this is not an error situation so make sure we
50019       * return OK instead of BUF_ERROR at next call of deflate:
50020       */
50021      s.last_flush = -1;
50022      return Z_OK;
50023    }
50024
50025    /* Make sure there is something to do and avoid duplicate consecutive
50026     * flushes. For repeated and useless calls with Z_FINISH, we keep
50027     * returning Z_STREAM_END instead of Z_BUF_ERROR.
50028     */
50029  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&
50030    flush !== Z_FINISH) {
50031    return err(strm, Z_BUF_ERROR);
50032  }
50033
50034  /* User must not provide more input after the first FINISH: */
50035  if (s.status === FINISH_STATE && strm.avail_in !== 0) {
50036    return err(strm, Z_BUF_ERROR);
50037  }
50038
50039  /* Start a new block or continue the current one.
50040   */
50041  if (strm.avail_in !== 0 || s.lookahead !== 0 ||
50042    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {
50043    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :
50044      (s.strategy === Z_RLE ? deflate_rle(s, flush) :
50045        configuration_table[s.level].func(s, flush));
50046
50047    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
50048      s.status = FINISH_STATE;
50049    }
50050    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
50051      if (strm.avail_out === 0) {
50052        s.last_flush = -1;
50053        /* avoid BUF_ERROR next call, see above */
50054      }
50055      return Z_OK;
50056      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
50057       * of deflate should use the same flush parameter to make sure
50058       * that the flush is complete. So we don't have to output an
50059       * empty block here, this will be done at next call. This also
50060       * ensures that for a very small output buffer, we emit at most
50061       * one empty block.
50062       */
50063    }
50064    if (bstate === BS_BLOCK_DONE) {
50065      if (flush === Z_PARTIAL_FLUSH) {
50066        trees._tr_align(s);
50067      }
50068      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */
50069
50070        trees._tr_stored_block(s, 0, 0, false);
50071        /* For a full flush, this empty block will be recognized
50072         * as a special marker by inflate_sync().
50073         */
50074        if (flush === Z_FULL_FLUSH) {
50075          /*** CLEAR_HASH(s); ***/             /* forget history */
50076          zero(s.head); // Fill with NIL (= 0);
50077
50078          if (s.lookahead === 0) {
50079            s.strstart = 0;
50080            s.block_start = 0;
50081            s.insert = 0;
50082          }
50083        }
50084      }
50085      flush_pending(strm);
50086      if (strm.avail_out === 0) {
50087        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */
50088        return Z_OK;
50089      }
50090    }
50091  }
50092  //Assert(strm->avail_out > 0, "bug2");
50093  //if (strm.avail_out <= 0) { throw new Error("bug2");}
50094
50095  if (flush !== Z_FINISH) { return Z_OK; }
50096  if (s.wrap <= 0) { return Z_STREAM_END; }
50097
50098  /* Write the trailer */
50099  if (s.wrap === 2) {
50100    put_byte(s, strm.adler & 0xff);
50101    put_byte(s, (strm.adler >> 8) & 0xff);
50102    put_byte(s, (strm.adler >> 16) & 0xff);
50103    put_byte(s, (strm.adler >> 24) & 0xff);
50104    put_byte(s, strm.total_in & 0xff);
50105    put_byte(s, (strm.total_in >> 8) & 0xff);
50106    put_byte(s, (strm.total_in >> 16) & 0xff);
50107    put_byte(s, (strm.total_in >> 24) & 0xff);
50108  }
50109  else
50110  {
50111    putShortMSB(s, strm.adler >>> 16);
50112    putShortMSB(s, strm.adler & 0xffff);
50113  }
50114
50115  flush_pending(strm);
50116  /* If avail_out is zero, the application will call deflate again
50117   * to flush the rest.
50118   */
50119  if (s.wrap > 0) { s.wrap = -s.wrap; }
50120  /* write the trailer only once! */
50121  return s.pending !== 0 ? Z_OK : Z_STREAM_END;
50122}
50123
50124function deflateEnd(strm) {
50125  var status;
50126
50127  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
50128    return Z_STREAM_ERROR;
50129  }
50130
50131  status = strm.state.status;
50132  if (status !== INIT_STATE &&
50133    status !== EXTRA_STATE &&
50134    status !== NAME_STATE &&
50135    status !== COMMENT_STATE &&
50136    status !== HCRC_STATE &&
50137    status !== BUSY_STATE &&
50138    status !== FINISH_STATE
50139  ) {
50140    return err(strm, Z_STREAM_ERROR);
50141  }
50142
50143  strm.state = null;
50144
50145  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
50146}
50147
50148
50149/* =========================================================================
50150 * Initializes the compression dictionary from the given byte
50151 * sequence without producing any compressed output.
50152 */
50153function deflateSetDictionary(strm, dictionary) {
50154  var dictLength = dictionary.length;
50155
50156  var s;
50157  var str, n;
50158  var wrap;
50159  var avail;
50160  var next;
50161  var input;
50162  var tmpDict;
50163
50164  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {
50165    return Z_STREAM_ERROR;
50166  }
50167
50168  s = strm.state;
50169  wrap = s.wrap;
50170
50171  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {
50172    return Z_STREAM_ERROR;
50173  }
50174
50175  /* when using zlib wrappers, compute Adler-32 for provided dictionary */
50176  if (wrap === 1) {
50177    /* adler32(strm->adler, dictionary, dictLength); */
50178    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
50179  }
50180
50181  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */
50182
50183  /* if dictionary would fill window, just replace the history */
50184  if (dictLength >= s.w_size) {
50185    if (wrap === 0) {            /* already empty otherwise */
50186      /*** CLEAR_HASH(s); ***/
50187      zero(s.head); // Fill with NIL (= 0);
50188      s.strstart = 0;
50189      s.block_start = 0;
50190      s.insert = 0;
50191    }
50192    /* use the tail */
50193    // dictionary = dictionary.slice(dictLength - s.w_size);
50194    tmpDict = new utils.Buf8(s.w_size);
50195    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
50196    dictionary = tmpDict;
50197    dictLength = s.w_size;
50198  }
50199  /* insert dictionary into window and hash */
50200  avail = strm.avail_in;
50201  next = strm.next_in;
50202  input = strm.input;
50203  strm.avail_in = dictLength;
50204  strm.next_in = 0;
50205  strm.input = dictionary;
50206  fill_window(s);
50207  while (s.lookahead >= MIN_MATCH) {
50208    str = s.strstart;
50209    n = s.lookahead - (MIN_MATCH - 1);
50210    do {
50211      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */
50212      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
50213
50214      s.prev[str & s.w_mask] = s.head[s.ins_h];
50215
50216      s.head[s.ins_h] = str;
50217      str++;
50218    } while (--n);
50219    s.strstart = str;
50220    s.lookahead = MIN_MATCH - 1;
50221    fill_window(s);
50222  }
50223  s.strstart += s.lookahead;
50224  s.block_start = s.strstart;
50225  s.insert = s.lookahead;
50226  s.lookahead = 0;
50227  s.match_length = s.prev_length = MIN_MATCH - 1;
50228  s.match_available = 0;
50229  strm.next_in = next;
50230  strm.input = input;
50231  strm.avail_in = avail;
50232  s.wrap = wrap;
50233  return Z_OK;
50234}
50235
50236
50237exports.deflateInit = deflateInit;
50238exports.deflateInit2 = deflateInit2;
50239exports.deflateReset = deflateReset;
50240exports.deflateResetKeep = deflateResetKeep;
50241exports.deflateSetHeader = deflateSetHeader;
50242exports.deflate = deflate;
50243exports.deflateEnd = deflateEnd;
50244exports.deflateSetDictionary = deflateSetDictionary;
50245exports.deflateInfo = 'pako deflate (from Nodeca project)';
50246
50247/* Not implemented
50248exports.deflateBound = deflateBound;
50249exports.deflateCopy = deflateCopy;
50250exports.deflateParams = deflateParams;
50251exports.deflatePending = deflatePending;
50252exports.deflatePrime = deflatePrime;
50253exports.deflateTune = deflateTune;
50254*/
50255
50256
50257/***/ }
50257),
50258/* 933 */
50259/***/ (function(module, exports, __webpack_require__) {
50260
50261"use strict";
50262
50263
50264// (C) 1995-2013 Jean-loup Gailly and Mark Adler
50265// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
50266//
50267// This software is provided 'as-is', without any express or implied
50268// warranty. In no event will the authors be held liable for any damages
50269// arising from the use of this software.
50270//
50271// Permission is granted to anyone to use this software for any purpose,
50272// including commercial applications, and to alter it and redistribute it
50273// freely, subject to the following restrictions:
50274//
50275// 1. The origin of this software must not be misrepresented; you must not
50276//   claim that you wrote the original software. If you use this software
50277//   in a product, an acknowledgment in the product documentation would be
50278//   appreciated but is not required.
50279// 2. Altered source versions must be plainly marked as such, and must not be
50280//   misrepresented as being the original software.
50281// 3. This notice may not be removed or altered from any source distribution.
50282
50283/* eslint-disable space-unary-ops */
50284
50285var utils = __webpack_require__(395);
vendor: 5,572 bytes, lines 50285-50467
50285
50286
50287/* Public constants ==========================================================*/
50288/* ===========================================================================*/
50289
50290
50291//var Z_FILTERED          = 1;
50292//var Z_HUFFMAN_ONLY      = 2;
50293//var Z_RLE               = 3;
50294var Z_FIXED               = 4;
50295//var Z_DEFAULT_STRATEGY  = 0;
50296
50297/* Possible values of the data_type field (though see inflate()) */
50298var Z_BINARY              = 0;
50299var Z_TEXT                = 1;
50300//var Z_ASCII             = 1; // = Z_TEXT
50301var Z_UNKNOWN             = 2;
50302
50303/*============================================================================*/
50304
50305
50306function zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }
50307
50308// From zutil.h
50309
50310var STORED_BLOCK = 0;
50311var STATIC_TREES = 1;
50312var DYN_TREES    = 2;
50313/* The three kinds of block type */
50314
50315var MIN_MATCH    = 3;
50316var MAX_MATCH    = 258;
50317/* The minimum and maximum match lengths */
50318
50319// From deflate.h
50320/* ===========================================================================
50321 * Internal compression state.
50322 */
50323
50324var LENGTH_CODES  = 29;
50325/* number of length codes, not counting the special END_BLOCK code */
50326
50327var LITERALS      = 256;
50328/* number of literal bytes 0..255 */
50329
50330var L_CODES       = LITERALS + 1 + LENGTH_CODES;
50331/* number of Literal or Length codes, including the END_BLOCK code */
50332
50333var D_CODES       = 30;
50334/* number of distance codes */
50335
50336var BL_CODES      = 19;
50337/* number of codes used to transfer the bit lengths */
50338
50339var HEAP_SIZE     = 2 * L_CODES + 1;
50340/* maximum heap size */
50341
50342var MAX_BITS      = 15;
50343/* All codes must not exceed MAX_BITS bits */
50344
50345var Buf_size      = 16;
50346/* size of bit buffer in bi_buf */
50347
50348
50349/* ===========================================================================
50350 * Constants
50351 */
50352
50353var MAX_BL_BITS = 7;
50354/* Bit length codes must not exceed MAX_BL_BITS bits */
50355
50356var END_BLOCK   = 256;
50357/* end of block literal code */
50358
50359var REP_3_6     = 16;
50360/* repeat previous bit length 3-6 times (2 bits of repeat count) */
50361
50362var REPZ_3_10   = 17;
50363/* repeat a zero length 3-10 times  (3 bits of repeat count) */
50364
50365var REPZ_11_138 = 18;
50366/* repeat a zero length 11-138 times  (7 bits of repeat count) */
50367
50368/* eslint-disable comma-spacing,array-bracket-spacing */
50369var extra_lbits =   /* extra bits for each length code */
50370  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];
50371
50372var extra_dbits =   /* extra bits for each distance code */
50373  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];
50374
50375var extra_blbits =  /* extra bits for each bit length code */
50376  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];
50377
50378var bl_order =
50379  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];
50380/* eslint-enable comma-spacing,array-bracket-spacing */
50381
50382/* The lengths of the bit length codes are sent in order of decreasing
50383 * probability, to avoid transmitting the lengths for unused bit length codes.
50384 */
50385
50386/* ===========================================================================
50387 * Local data. These are initialized only once.
50388 */
50389
50390// We pre-fill arrays with 0 to avoid uninitialized gaps
50391
50392var DIST_CODE_LEN = 512; /* see definition of array dist_code below */
50393
50394// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1
50395var static_ltree  = new Array((L_CODES + 2) * 2);
50396zero(static_ltree);
50397/* The static literal tree. Since the bit lengths are imposed, there is no
50398 * need for the L_CODES extra codes used during heap construction. However
50399 * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
50400 * below).
50401 */
50402
50403var static_dtree  = new Array(D_CODES * 2);
50404zero(static_dtree);
50405/* The static distance tree. (Actually a trivial tree since all codes use
50406 * 5 bits.)
50407 */
50408
50409var _dist_code    = new Array(DIST_CODE_LEN);
50410zero(_dist_code);
50411/* Distance codes. The first 256 values correspond to the distances
50412 * 3 .. 258, the last 256 values correspond to the top 8 bits of
50413 * the 15 bit distances.
50414 */
50415
50416var _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);
50417zero(_length_code);
50418/* length code for each normalized match length (0 == MIN_MATCH) */
50419
50420var base_length   = new Array(LENGTH_CODES);
50421zero(base_length);
50422/* First normalized length for each code (0 = MIN_MATCH) */
50423
50424var base_dist     = new Array(D_CODES);
50425zero(base_dist);
50426/* First normalized distance for each code (0 = distance of 1) */
50427
50428
50429function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
50430
50431  this.static_tree  = static_tree;  /* static tree or NULL */
50432  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */
50433  this.extra_base   = extra_base;   /* base index for extra_bits */
50434  this.elems        = elems;        /* max number of elements in the tree */
50435  this.max_length   = max_length;   /* max bit length for the codes */
50436
50437  // show if `static_tree` has data or dummy - needed for monomorphic objects
50438  this.has_stree    = static_tree && static_tree.length;
50439}
50440
50441
50442var static_l_desc;
50443var static_d_desc;
50444var static_bl_desc;
50445
50446
50447function TreeDesc(dyn_tree, stat_desc) {
50448  this.dyn_tree = dyn_tree;     /* the dynamic tree */
50449  this.max_code = 0;            /* largest code with non zero frequency */
50450  this.stat_desc = stat_desc;   /* the corresponding static tree */
50451}
50452
50453
50454
50455function d_code(dist) {
50456  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
50457}
50458
50459
50460/* ===========================================================================
50461 * Output a short LSB first on the stream.
50462 * IN assertion: there is enough room in pendingBuf.
50463 */
50464function put_short(s, w) {
50465//    put_byte(s, (uch)((w) & 0xff));
50466//    put_byte(s, (uch)((ush)(w) >> 8));
50467  s.pending_buf[s.pending++] = (w) & 0xff;
vendor: 33,263 bytes, lines 50468-51486
50468  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;
50469}
50470
50471
50472/* ===========================================================================
50473 * Send a value on a given number of bits.
50474 * IN assertion: length <= 16 and value fits in length bits.
50475 */
50476function send_bits(s, value, length) {
50477  if (s.bi_valid > (Buf_size - length)) {
50478    s.bi_buf |= (value << s.bi_valid) & 0xffff;
50479    put_short(s, s.bi_buf);
50480    s.bi_buf = value >> (Buf_size - s.bi_valid);
50481    s.bi_valid += length - Buf_size;
50482  } else {
50483    s.bi_buf |= (value << s.bi_valid) & 0xffff;
50484    s.bi_valid += length;
50485  }
50486}
50487
50488
50489function send_code(s, c, tree) {
50490  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);
50491}
50492
50493
50494/* ===========================================================================
50495 * Reverse the first len bits of a code, using straightforward code (a faster
50496 * method would use a table)
50497 * IN assertion: 1 <= len <= 15
50498 */
50499function bi_reverse(code, len) {
50500  var res = 0;
50501  do {
50502    res |= code & 1;
50503    code >>>= 1;
50504    res <<= 1;
50505  } while (--len > 0);
50506  return res >>> 1;
50507}
50508
50509
50510/* ===========================================================================
50511 * Flush the bit buffer, keeping at most 7 bits in it.
50512 */
50513function bi_flush(s) {
50514  if (s.bi_valid === 16) {
50515    put_short(s, s.bi_buf);
50516    s.bi_buf = 0;
50517    s.bi_valid = 0;
50518
50519  } else if (s.bi_valid >= 8) {
50520    s.pending_buf[s.pending++] = s.bi_buf & 0xff;
50521    s.bi_buf >>= 8;
50522    s.bi_valid -= 8;
50523  }
50524}
50525
50526
50527/* ===========================================================================
50528 * Compute the optimal bit lengths for a tree and update the total bit length
50529 * for the current block.
50530 * IN assertion: the fields freq and dad are set, heap[heap_max] and
50531 *    above are the tree nodes sorted by increasing frequency.
50532 * OUT assertions: the field len is set to the optimal bit length, the
50533 *     array bl_count contains the frequencies for each bit length.
50534 *     The length opt_len is updated; static_len is also updated if stree is
50535 *     not null.
50536 */
50537function gen_bitlen(s, desc)
50538//    deflate_state *s;
50539//    tree_desc *desc;    /* the tree descriptor */
50540{
50541  var tree            = desc.dyn_tree;
50542  var max_code        = desc.max_code;
50543  var stree           = desc.stat_desc.static_tree;
50544  var has_stree       = desc.stat_desc.has_stree;
50545  var extra           = desc.stat_desc.extra_bits;
50546  var base            = desc.stat_desc.extra_base;
50547  var max_length      = desc.stat_desc.max_length;
50548  var h;              /* heap index */
50549  var n, m;           /* iterate over the tree elements */
50550  var bits;           /* bit length */
50551  var xbits;          /* extra bits */
50552  var f;              /* frequency */
50553  var overflow = 0;   /* number of elements with bit length too large */
50554
50555  for (bits = 0; bits <= MAX_BITS; bits++) {
50556    s.bl_count[bits] = 0;
50557  }
50558
50559  /* In a first pass, compute the optimal bit lengths (which may
50560   * overflow in the case of the bit length tree).
50561   */
50562  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */
50563
50564  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
50565    n = s.heap[h];
50566    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;
50567    if (bits > max_length) {
50568      bits = max_length;
50569      overflow++;
50570    }
50571    tree[n * 2 + 1]/*.Len*/ = bits;
50572    /* We overwrite tree[n].Dad which is no longer needed */
50573
50574    if (n > max_code) { continue; } /* not a leaf node */
50575
50576    s.bl_count[bits]++;
50577    xbits = 0;
50578    if (n >= base) {
50579      xbits = extra[n - base];
50580    }
50581    f = tree[n * 2]/*.Freq*/;
50582    s.opt_len += f * (bits + xbits);
50583    if (has_stree) {
50584      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);
50585    }
50586  }
50587  if (overflow === 0) { return; }
50588
50589  // Trace((stderr,"\nbit length overflow\n"));
50590  /* This happens for example on obj2 and pic of the Calgary corpus */
50591
50592  /* Find the first bit length which could increase: */
50593  do {
50594    bits = max_length - 1;
50595    while (s.bl_count[bits] === 0) { bits--; }
50596    s.bl_count[bits]--;      /* move one leaf down the tree */
50597    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */
50598    s.bl_count[max_length]--;
50599    /* The brother of the overflow item also moves one step up,
50600     * but this does not affect bl_count[max_length]
50601     */
50602    overflow -= 2;
50603  } while (overflow > 0);
50604
50605  /* Now recompute all bit lengths, scanning in increasing frequency.
50606   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
50607   * lengths instead of fixing only the wrong ones. This idea is taken
50608   * from 'ar' written by Haruhiko Okumura.)
50609   */
50610  for (bits = max_length; bits !== 0; bits--) {
50611    n = s.bl_count[bits];
50612    while (n !== 0) {
50613      m = s.heap[--h];
50614      if (m > max_code) { continue; }
50615      if (tree[m * 2 + 1]/*.Len*/ !== bits) {
50616        // Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
50617        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;
50618        tree[m * 2 + 1]/*.Len*/ = bits;
50619      }
50620      n--;
50621    }
50622  }
50623}
50624
50625
50626/* ===========================================================================
50627 * Generate the codes for a given tree and bit counts (which need not be
50628 * optimal).
50629 * IN assertion: the array bl_count contains the bit length statistics for
50630 * the given tree and the field len is set for all tree elements.
50631 * OUT assertion: the field code is set for all tree elements of non
50632 *     zero code length.
50633 */
50634function gen_codes(tree, max_code, bl_count)
50635//    ct_data *tree;             /* the tree to decorate */
50636//    int max_code;              /* largest code with non zero frequency */
50637//    ushf *bl_count;            /* number of codes at each bit length */
50638{
50639  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */
50640  var code = 0;              /* running code value */
50641  var bits;                  /* bit index */
50642  var n;                     /* code index */
50643
50644  /* The distribution counts are first used to generate the code values
50645   * without bit reversal.
50646   */
50647  for (bits = 1; bits <= MAX_BITS; bits++) {
50648    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;
50649  }
50650  /* Check that the bit counts in bl_count are consistent. The last code
50651   * must be all ones.
50652   */
50653  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
50654  //        "inconsistent bit counts");
50655  //Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
50656
50657  for (n = 0;  n <= max_code; n++) {
50658    var len = tree[n * 2 + 1]/*.Len*/;
50659    if (len === 0) { continue; }
50660    /* Now reverse the bits */
50661    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);
50662
50663    //Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
50664    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
50665  }
50666}
50667
50668
50669/* ===========================================================================
50670 * Initialize the various 'constant' tables.
50671 */
50672function tr_static_init() {
50673  var n;        /* iterates over tree elements */
50674  var bits;     /* bit counter */
50675  var length;   /* length value */
50676  var code;     /* code value */
50677  var dist;     /* distance index */
50678  var bl_count = new Array(MAX_BITS + 1);
50679  /* number of codes at each bit length for an optimal tree */
50680
50681  // do check in _tr_init()
50682  //if (static_init_done) return;
50683
50684  /* For some embedded targets, global variables are not initialized: */
50685/*#ifdef NO_INIT_GLOBAL_POINTERS
50686  static_l_desc.static_tree = static_ltree;
50687  static_l_desc.extra_bits = extra_lbits;
50688  static_d_desc.static_tree = static_dtree;
50689  static_d_desc.extra_bits = extra_dbits;
50690  static_bl_desc.extra_bits = extra_blbits;
50691#endif*/
50692
50693  /* Initialize the mapping length (0..255) -> length code (0..28) */
50694  length = 0;
50695  for (code = 0; code < LENGTH_CODES - 1; code++) {
50696    base_length[code] = length;
50697    for (n = 0; n < (1 << extra_lbits[code]); n++) {
50698      _length_code[length++] = code;
50699    }
50700  }
50701  //Assert (length == 256, "tr_static_init: length != 256");
50702  /* Note that the length 255 (match length 258) can be represented
50703   * in two different ways: code 284 + 5 bits or code 285, so we
50704   * overwrite length_code[255] to use the best encoding:
50705   */
50706  _length_code[length - 1] = code;
50707
50708  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
50709  dist = 0;
50710  for (code = 0; code < 16; code++) {
50711    base_dist[code] = dist;
50712    for (n = 0; n < (1 << extra_dbits[code]); n++) {
50713      _dist_code[dist++] = code;
50714    }
50715  }
50716  //Assert (dist == 256, "tr_static_init: dist != 256");
50717  dist >>= 7; /* from now on, all distances are divided by 128 */
50718  for (; code < D_CODES; code++) {
50719    base_dist[code] = dist << 7;
50720    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {
50721      _dist_code[256 + dist++] = code;
50722    }
50723  }
50724  //Assert (dist == 256, "tr_static_init: 256+dist != 512");
50725
50726  /* Construct the codes of the static literal tree */
50727  for (bits = 0; bits <= MAX_BITS; bits++) {
50728    bl_count[bits] = 0;
50729  }
50730
50731  n = 0;
50732  while (n <= 143) {
50733    static_ltree[n * 2 + 1]/*.Len*/ = 8;
50734    n++;
50735    bl_count[8]++;
50736  }
50737  while (n <= 255) {
50738    static_ltree[n * 2 + 1]/*.Len*/ = 9;
50739    n++;
50740    bl_count[9]++;
50741  }
50742  while (n <= 279) {
50743    static_ltree[n * 2 + 1]/*.Len*/ = 7;
50744    n++;
50745    bl_count[7]++;
50746  }
50747  while (n <= 287) {
50748    static_ltree[n * 2 + 1]/*.Len*/ = 8;
50749    n++;
50750    bl_count[8]++;
50751  }
50752  /* Codes 286 and 287 do not exist, but we must include them in the
50753   * tree construction to get a canonical Huffman tree (longest code
50754   * all ones)
50755   */
50756  gen_codes(static_ltree, L_CODES + 1, bl_count);
50757
50758  /* The static distance tree is trivial: */
50759  for (n = 0; n < D_CODES; n++) {
50760    static_dtree[n * 2 + 1]/*.Len*/ = 5;
50761    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);
50762  }
50763
50764  // Now data ready and we can init static trees
50765  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
50766  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);
50767  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);
50768
50769  //static_init_done = true;
50770}
50771
50772
50773/* ===========================================================================
50774 * Initialize a new block.
50775 */
50776function init_block(s) {
50777  var n; /* iterates over tree elements */
50778
50779  /* Initialize the trees. */
50780  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }
50781  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }
50782  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }
50783
50784  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;
50785  s.opt_len = s.static_len = 0;
50786  s.last_lit = s.matches = 0;
50787}
50788
50789
50790/* ===========================================================================
50791 * Flush the bit buffer and align the output on a byte boundary
50792 */
50793function bi_windup(s)
50794{
50795  if (s.bi_valid > 8) {
50796    put_short(s, s.bi_buf);
50797  } else if (s.bi_valid > 0) {
50798    //put_byte(s, (Byte)s->bi_buf);
50799    s.pending_buf[s.pending++] = s.bi_buf;
50800  }
50801  s.bi_buf = 0;
50802  s.bi_valid = 0;
50803}
50804
50805/* ===========================================================================
50806 * Copy a stored block, storing first the length and its
50807 * one's complement if requested.
50808 */
50809function copy_block(s, buf, len, header)
50810//DeflateState *s;
50811//charf    *buf;    /* the input data */
50812//unsigned len;     /* its length */
50813//int      header;  /* true if block header must be written */
50814{
50815  bi_windup(s);        /* align on byte boundary */
50816
50817  if (header) {
50818    put_short(s, len);
50819    put_short(s, ~len);
50820  }
50821//  while (len--) {
50822//    put_byte(s, *buf++);
50823//  }
50824  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
50825  s.pending += len;
50826}
50827
50828/* ===========================================================================
50829 * Compares to subtrees, using the tree depth as tie breaker when
50830 * the subtrees have equal frequency. This minimizes the worst case length.
50831 */
50832function smaller(tree, n, m, depth) {
50833  var _n2 = n * 2;
50834  var _m2 = m * 2;
50835  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||
50836         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));
50837}
50838
50839/* ===========================================================================
50840 * Restore the heap property by moving down the tree starting at node k,
50841 * exchanging a node with the smallest of its two sons if necessary, stopping
50842 * when the heap property is re-established (each father smaller than its
50843 * two sons).
50844 */
50845function pqdownheap(s, tree, k)
50846//    deflate_state *s;
50847//    ct_data *tree;  /* the tree to restore */
50848//    int k;               /* node to move down */
50849{
50850  var v = s.heap[k];
50851  var j = k << 1;  /* left son of k */
50852  while (j <= s.heap_len) {
50853    /* Set j to the smallest of the two sons: */
50854    if (j < s.heap_len &&
50855      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
50856      j++;
50857    }
50858    /* Exit if v is smaller than both sons */
50859    if (smaller(tree, v, s.heap[j], s.depth)) { break; }
50860
50861    /* Exchange v with the smallest son */
50862    s.heap[k] = s.heap[j];
50863    k = j;
50864
50865    /* And continue down the tree, setting j to the left son of k */
50866    j <<= 1;
50867  }
50868  s.heap[k] = v;
50869}
50870
50871
50872// inlined manually
50873// var SMALLEST = 1;
50874
50875/* ===========================================================================
50876 * Send the block data compressed using the given Huffman trees
50877 */
50878function compress_block(s, ltree, dtree)
50879//    deflate_state *s;
50880//    const ct_data *ltree; /* literal tree */
50881//    const ct_data *dtree; /* distance tree */
50882{
50883  var dist;           /* distance of matched string */
50884  var lc;             /* match length or unmatched char (if dist == 0) */
50885  var lx = 0;         /* running index in l_buf */
50886  var code;           /* the code to send */
50887  var extra;          /* number of extra bits to send */
50888
50889  if (s.last_lit !== 0) {
50890    do {
50891      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);
50892      lc = s.pending_buf[s.l_buf + lx];
50893      lx++;
50894
50895      if (dist === 0) {
50896        send_code(s, lc, ltree); /* send a literal byte */
50897        //Tracecv(isgraph(lc), (stderr," '%c' ", lc));
50898      } else {
50899        /* Here, lc is the match length - MIN_MATCH */
50900        code = _length_code[lc];
50901        send_code(s, code + LITERALS + 1, ltree); /* send the length code */
50902        extra = extra_lbits[code];
50903        if (extra !== 0) {
50904          lc -= base_length[code];
50905          send_bits(s, lc, extra);       /* send the extra length bits */
50906        }
50907        dist--; /* dist is now the match distance - 1 */
50908        code = d_code(dist);
50909        //Assert (code < D_CODES, "bad d_code");
50910
50911        send_code(s, code, dtree);       /* send the distance code */
50912        extra = extra_dbits[code];
50913        if (extra !== 0) {
50914          dist -= base_dist[code];
50915          send_bits(s, dist, extra);   /* send the extra distance bits */
50916        }
50917      } /* literal or match pair ? */
50918
50919      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
50920      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
50921      //       "pendingBuf overflow");
50922
50923    } while (lx < s.last_lit);
50924  }
50925
50926  send_code(s, END_BLOCK, ltree);
50927}
50928
50929
50930/* ===========================================================================
50931 * Construct one Huffman tree and assigns the code bit strings and lengths.
50932 * Update the total bit length for the current block.
50933 * IN assertion: the field freq is set for all tree elements.
50934 * OUT assertions: the fields len and code are set to the optimal bit length
50935 *     and corresponding code. The length opt_len is updated; static_len is
50936 *     also updated if stree is not null. The field max_code is set.
50937 */
50938function build_tree(s, desc)
50939//    deflate_state *s;
50940//    tree_desc *desc; /* the tree descriptor */
50941{
50942  var tree     = desc.dyn_tree;
50943  var stree    = desc.stat_desc.static_tree;
50944  var has_stree = desc.stat_desc.has_stree;
50945  var elems    = desc.stat_desc.elems;
50946  var n, m;          /* iterate over heap elements */
50947  var max_code = -1; /* largest code with non zero frequency */
50948  var node;          /* new node being created */
50949
50950  /* Construct the initial heap, with least frequent element in
50951   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
50952   * heap[0] is not used.
50953   */
50954  s.heap_len = 0;
50955  s.heap_max = HEAP_SIZE;
50956
50957  for (n = 0; n < elems; n++) {
50958    if (tree[n * 2]/*.Freq*/ !== 0) {
50959      s.heap[++s.heap_len] = max_code = n;
50960      s.depth[n] = 0;
50961
50962    } else {
50963      tree[n * 2 + 1]/*.Len*/ = 0;
50964    }
50965  }
50966
50967  /* The pkzip format requires that at least one distance code exists,
50968   * and that at least one bit should be sent even if there is only one
50969   * possible code. So to avoid special checks later on we force at least
50970   * two codes of non zero frequency.
50971   */
50972  while (s.heap_len < 2) {
50973    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);
50974    tree[node * 2]/*.Freq*/ = 1;
50975    s.depth[node] = 0;
50976    s.opt_len--;
50977
50978    if (has_stree) {
50979      s.static_len -= stree[node * 2 + 1]/*.Len*/;
50980    }
50981    /* node is 0 or 1 so it does not have extra bits */
50982  }
50983  desc.max_code = max_code;
50984
50985  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
50986   * establish sub-heaps of increasing lengths:
50987   */
50988  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }
50989
50990  /* Construct the Huffman tree by repeatedly combining the least two
50991   * frequent nodes.
50992   */
50993  node = elems;              /* next internal node of the tree */
50994  do {
50995    //pqremove(s, tree, n);  /* n = node of least frequency */
50996    /*** pqremove ***/
50997    n = s.heap[1/*SMALLEST*/];
50998    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];
50999    pqdownheap(s, tree, 1/*SMALLEST*/);
51000    /***/
51001
51002    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */
51003
51004    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */
51005    s.heap[--s.heap_max] = m;
51006
51007    /* Create a new node father of n and m */
51008    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;
51009    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
51010    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;
51011
51012    /* and insert the new node in the heap */
51013    s.heap[1/*SMALLEST*/] = node++;
51014    pqdownheap(s, tree, 1/*SMALLEST*/);
51015
51016  } while (s.heap_len >= 2);
51017
51018  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];
51019
51020  /* At this point, the fields freq and dad are set. We can now
51021   * generate the bit lengths.
51022   */
51023  gen_bitlen(s, desc);
51024
51025  /* The field len is now set, we can generate the bit codes */
51026  gen_codes(tree, max_code, s.bl_count);
51027}
51028
51029
51030/* ===========================================================================
51031 * Scan a literal or distance tree to determine the frequencies of the codes
51032 * in the bit length tree.
51033 */
51034function scan_tree(s, tree, max_code)
51035//    deflate_state *s;
51036//    ct_data *tree;   /* the tree to be scanned */
51037//    int max_code;    /* and its largest code of non zero frequency */
51038{
51039  var n;                     /* iterates over all tree elements */
51040  var prevlen = -1;          /* last emitted length */
51041  var curlen;                /* length of current code */
51042
51043  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
51044
51045  var count = 0;             /* repeat count of the current code */
51046  var max_count = 7;         /* max repeat count */
51047  var min_count = 4;         /* min repeat count */
51048
51049  if (nextlen === 0) {
51050    max_count = 138;
51051    min_count = 3;
51052  }
51053  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
51054
51055  for (n = 0; n <= max_code; n++) {
51056    curlen = nextlen;
51057    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
51058
51059    if (++count < max_count && curlen === nextlen) {
51060      continue;
51061
51062    } else if (count < min_count) {
51063      s.bl_tree[curlen * 2]/*.Freq*/ += count;
51064
51065    } else if (curlen !== 0) {
51066
51067      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
51068      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
51069
51070    } else if (count <= 10) {
51071      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
51072
51073    } else {
51074      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
51075    }
51076
51077    count = 0;
51078    prevlen = curlen;
51079
51080    if (nextlen === 0) {
51081      max_count = 138;
51082      min_count = 3;
51083
51084    } else if (curlen === nextlen) {
51085      max_count = 6;
51086      min_count = 3;
51087
51088    } else {
51089      max_count = 7;
51090      min_count = 4;
51091    }
51092  }
51093}
51094
51095
51096/* ===========================================================================
51097 * Send a literal or distance tree in compressed form, using the codes in
51098 * bl_tree.
51099 */
51100function send_tree(s, tree, max_code)
51101//    deflate_state *s;
51102//    ct_data *tree; /* the tree to be scanned */
51103//    int max_code;       /* and its largest code of non zero frequency */
51104{
51105  var n;                     /* iterates over all tree elements */
51106  var prevlen = -1;          /* last emitted length */
51107  var curlen;                /* length of current code */
51108
51109  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
51110
51111  var count = 0;             /* repeat count of the current code */
51112  var max_count = 7;         /* max repeat count */
51113  var min_count = 4;         /* min repeat count */
51114
51115  /* tree[max_code+1].Len = -1; */  /* guard already set */
51116  if (nextlen === 0) {
51117    max_count = 138;
51118    min_count = 3;
51119  }
51120
51121  for (n = 0; n <= max_code; n++) {
51122    curlen = nextlen;
51123    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
51124
51125    if (++count < max_count && curlen === nextlen) {
51126      continue;
51127
51128    } else if (count < min_count) {
51129      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);
51130
51131    } else if (curlen !== 0) {
51132      if (curlen !== prevlen) {
51133        send_code(s, curlen, s.bl_tree);
51134        count--;
51135      }
51136      //Assert(count >= 3 && count <= 6, " 3_6?");
51137      send_code(s, REP_3_6, s.bl_tree);
51138      send_bits(s, count - 3, 2);
51139
51140    } else if (count <= 10) {
51141      send_code(s, REPZ_3_10, s.bl_tree);
51142      send_bits(s, count - 3, 3);
51143
51144    } else {
51145      send_code(s, REPZ_11_138, s.bl_tree);
51146      send_bits(s, count - 11, 7);
51147    }
51148
51149    count = 0;
51150    prevlen = curlen;
51151    if (nextlen === 0) {
51152      max_count = 138;
51153      min_count = 3;
51154
51155    } else if (curlen === nextlen) {
51156      max_count = 6;
51157      min_count = 3;
51158
51159    } else {
51160      max_count = 7;
51161      min_count = 4;
51162    }
51163  }
51164}
51165
51166
51167/* ===========================================================================
51168 * Construct the Huffman tree for the bit lengths and return the index in
51169 * bl_order of the last bit length code to send.
51170 */
51171function build_bl_tree(s) {
51172  var max_blindex;  /* index of last bit length code of non zero freq */
51173
51174  /* Determine the bit length frequencies for literal and distance trees */
51175  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
51176  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
51177
51178  /* Build the bit length tree: */
51179  build_tree(s, s.bl_desc);
51180  /* opt_len now includes the length of the tree representations, except
51181   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
51182   */
51183
51184  /* Determine the number of bit length codes to send. The pkzip format
51185   * requires that at least 4 bit length codes be sent. (appnote.txt says
51186   * 3 but the actual value used is 4.)
51187   */
51188  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
51189    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {
51190      break;
51191    }
51192  }
51193  /* Update opt_len to include the bit length tree and counts */
51194  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
51195  //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
51196  //        s->opt_len, s->static_len));
51197
51198  return max_blindex;
51199}
51200
51201
51202/* ===========================================================================
51203 * Send the header for a block using dynamic Huffman trees: the counts, the
51204 * lengths of the bit length codes, the literal tree and the distance tree.
51205 * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
51206 */
51207function send_all_trees(s, lcodes, dcodes, blcodes)
51208//    deflate_state *s;
51209//    int lcodes, dcodes, blcodes; /* number of codes for each tree */
51210{
51211  var rank;                    /* index in bl_order */
51212
51213  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
51214  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
51215  //        "too many codes");
51216  //Tracev((stderr, "\nbl counts: "));
51217  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */
51218  send_bits(s, dcodes - 1,   5);
51219  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */
51220  for (rank = 0; rank < blcodes; rank++) {
51221    //Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
51222    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);
51223  }
51224  //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
51225
51226  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */
51227  //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
51228
51229  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */
51230  //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
51231}
51232
51233
51234/* ===========================================================================
51235 * Check if the data type is TEXT or BINARY, using the following algorithm:
51236 * - TEXT if the two conditions below are satisfied:
51237 *    a) There are no non-portable control characters belonging to the
51238 *       "black list" (0..6, 14..25, 28..31).
51239 *    b) There is at least one printable character belonging to the
51240 *       "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).
51241 * - BINARY otherwise.
51242 * - The following partially-portable control characters form a
51243 *   "gray list" that is ignored in this detection algorithm:
51244 *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).
51245 * IN assertion: the fields Freq of dyn_ltree are set.
51246 */
51247function detect_data_type(s) {
51248  /* black_mask is the bit mask of black-listed bytes
51249   * set bits 0..6, 14..25, and 28..31
51250   * 0xf3ffc07f = binary 11110011111111111100000001111111
51251   */
51252  var black_mask = 0xf3ffc07f;
51253  var n;
51254
51255  /* Check for non-textual ("black-listed") bytes. */
51256  for (n = 0; n <= 31; n++, black_mask >>>= 1) {
51257    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {
51258      return Z_BINARY;
51259    }
51260  }
51261
51262  /* Check for textual ("white-listed") bytes. */
51263  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||
51264      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {
51265    return Z_TEXT;
51266  }
51267  for (n = 32; n < LITERALS; n++) {
51268    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {
51269      return Z_TEXT;
51270    }
51271  }
51272
51273  /* There are no "black-listed" or "white-listed" bytes:
51274   * this stream either is empty or has tolerated ("gray-listed") bytes only.
51275   */
51276  return Z_BINARY;
51277}
51278
51279
51280var static_init_done = false;
51281
51282/* ===========================================================================
51283 * Initialize the tree data structures for a new zlib stream.
51284 */
51285function _tr_init(s)
51286{
51287
51288  if (!static_init_done) {
51289    tr_static_init();
51290    static_init_done = true;
51291  }
51292
51293  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);
51294  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);
51295  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
51296
51297  s.bi_buf = 0;
51298  s.bi_valid = 0;
51299
51300  /* Initialize the first block of the first file: */
51301  init_block(s);
51302}
51303
51304
51305/* ===========================================================================
51306 * Send a stored block
51307 */
51308function _tr_stored_block(s, buf, stored_len, last)
51309//DeflateState *s;
51310//charf *buf;       /* input block */
51311//ulg stored_len;   /* length of input block */
51312//int last;         /* one if this is the last block for a file */
51313{
51314  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */
51315  copy_block(s, buf, stored_len, true); /* with header */
51316}
51317
51318
51319/* ===========================================================================
51320 * Send one empty static block to give enough lookahead for inflate.
51321 * This takes 10 bits, of which 7 may remain in the bit buffer.
51322 */
51323function _tr_align(s) {
51324  send_bits(s, STATIC_TREES << 1, 3);
51325  send_code(s, END_BLOCK, static_ltree);
51326  bi_flush(s);
51327}
51328
51329
51330/* ===========================================================================
51331 * Determine the best encoding for the current block: dynamic trees, static
51332 * trees or store, and output the encoded block to the zip file.
51333 */
51334function _tr_flush_block(s, buf, stored_len, last)
51335//DeflateState *s;
51336//charf *buf;       /* input block, or NULL if too old */
51337//ulg stored_len;   /* length of input block */
51338//int last;         /* one if this is the last block for a file */
51339{
51340  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */
51341  var max_blindex = 0;        /* index of last bit length code of non zero freq */
51342
51343  /* Build the Huffman trees unless a stored block is forced */
51344  if (s.level > 0) {
51345
51346    /* Check if the file is binary or text */
51347    if (s.strm.data_type === Z_UNKNOWN) {
51348      s.strm.data_type = detect_data_type(s);
51349    }
51350
51351    /* Construct the literal and distance trees */
51352    build_tree(s, s.l_desc);
51353    // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
51354    //        s->static_len));
51355
51356    build_tree(s, s.d_desc);
51357    // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
51358    //        s->static_len));
51359    /* At this point, opt_len and static_len are the total bit lengths of
51360     * the compressed block data, excluding the tree representations.
51361     */
51362
51363    /* Build the bit length tree for the above two trees, and get the index
51364     * in bl_order of the last bit length code to send.
51365     */
51366    max_blindex = build_bl_tree(s);
51367
51368    /* Determine the best encoding. Compute the block lengths in bytes. */
51369    opt_lenb = (s.opt_len + 3 + 7) >>> 3;
51370    static_lenb = (s.static_len + 3 + 7) >>> 3;
51371
51372    // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
51373    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
51374    //        s->last_lit));
51375
51376    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }
51377
51378  } else {
51379    // Assert(buf != (char*)0, "lost buf");
51380    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
51381  }
51382
51383  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {
51384    /* 4: two words for the lengths */
51385
51386    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
51387     * Otherwise we can't have processed more than WSIZE input bytes since
51388     * the last block flush, because compression would have been
51389     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
51390     * transform a block into a stored block.
51391     */
51392    _tr_stored_block(s, buf, stored_len, last);
51393
51394  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
51395
51396    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
51397    compress_block(s, static_ltree, static_dtree);
51398
51399  } else {
51400    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
51401    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
51402    compress_block(s, s.dyn_ltree, s.dyn_dtree);
51403  }
51404  // Assert (s->compressed_len == s->bits_sent, "bad compressed size");
51405  /* The above check is made mod 2^32, for files larger than 512 MB
51406   * and uLong implemented on 32 bits.
51407   */
51408  init_block(s);
51409
51410  if (last) {
51411    bi_windup(s);
51412  }
51413  // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
51414  //       s->compressed_len-7*last));
51415}
51416
51417/* ===========================================================================
51418 * Save the match info and tally the frequency counts. Return true if
51419 * the current block must be flushed.
51420 */
51421function _tr_tally(s, dist, lc)
51422//    deflate_state *s;
51423//    unsigned dist;  /* distance of matched string */
51424//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */
51425{
51426  //var out_length, in_length, dcode;
51427
51428  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;
51429  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;
51430
51431  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;
51432  s.last_lit++;
51433
51434  if (dist === 0) {
51435    /* lc is the unmatched char */
51436    s.dyn_ltree[lc * 2]/*.Freq*/++;
51437  } else {
51438    s.matches++;
51439    /* Here, lc is the match length - MIN_MATCH */
51440    dist--;             /* dist = match distance - 1 */
51441    //Assert((ush)dist < (ush)MAX_DIST(s) &&
51442    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
51443    //       (ush)d_code(dist) < (ush)D_CODES,  "_tr_tally: bad match");
51444
51445    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;
51446    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;
51447  }
51448
51449// (!) This block is disabled in zlib defaults,
51450// don't enable it for binary compatibility
51451
51452//#ifdef TRUNCATE_BLOCK
51453//  /* Try to guess if it is profitable to stop the current block here */
51454//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {
51455//    /* Compute an upper bound for the compressed length */
51456//    out_length = s.last_lit*8;
51457//    in_length = s.strstart - s.block_start;
51458//
51459//    for (dcode = 0; dcode < D_CODES; dcode++) {
51460//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);
51461//    }
51462//    out_length >>>= 3;
51463//    //Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
51464//    //       s->last_lit, in_length, out_length,
51465//    //       100L - out_length*100L/in_length));
51466//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {
51467//      return true;
51468//    }
51469//  }
51470//#endif
51471
51472  return (s.last_lit === s.lit_bufsize - 1);
51473  /* We avoid equality with lit_bufsize because of wraparound at 64K
51474   * on 16 bit machines and because stored blocks are restricted to
51475   * 64K-1 bytes.
51476   */
51477}
51478
51479exports._tr_init  = _tr_init;
51480exports._tr_stored_block = _tr_stored_block;
51481exports._tr_flush_block  = _tr_flush_block;
51482exports._tr_tally = _tr_tally;
51483exports._tr_align = _tr_align;
51484
51485
51486/***/ }
51486),
51487/* 934 */
51488/***/ (function(module, exports, __webpack_require__) {
51489
51490"use strict";
51491
51492
51493// (C) 1995-2013 Jean-loup Gailly and Mark Adler
51494// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
51495//
51496// This software is provided 'as-is', without any express or implied
51497// warranty. In no event will the authors be held liable for any damages
51498// arising from the use of this software.
51499//
51500// Permission is granted to anyone to use this software for any purpose,
51501// including commercial applications, and to alter it and redistribute it
51502// freely, subject to the following restrictions:
51503//
51504// 1. The origin of this software must not be misrepresented; you must not
51505//   claim that you wrote the original software. If you use this software
51506//   in a product, an acknowledgment in the product documentation would be
51507//   appreciated but is not required.
51508// 2. Altered source versions must be plainly marked as such, and must not be
51509//   misrepresented as being the original software.
51510// 3. This notice may not be removed or altered from any source distribution.
51511
51512module.exports = {
51513  2:      'need dictionary',     /* Z_NEED_DICT       2  */
51514  1:      'stream end',          /* Z_STREAM_END      1  */
51515  0:      '',                    /* Z_OK              0  */
51516  '-1':   'file error',          /* Z_ERRNO         (-1) */
51517  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */
51518  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */
51519  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */
51520  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */
51521  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */
51522};
51523
51524
51525/***/ }),
51526/* 935 */
51527/***/ (function(module, exports, __webpack_require__) {
51528
51529"use strict";
51530
51531
51532// (C) 1995-2013 Jean-loup Gailly and Mark Adler
51533// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
51534//
51535// This software is provided 'as-is', without any express or implied
51536// warranty. In no event will the authors be held liable for any damages
51537// arising from the use of this software.
51538//
51539// Permission is granted to anyone to use this software for any purpose,
51540// including commercial applications, and to alter it and redistribute it
51541// freely, subject to the following restrictions:
51542//
51543// 1. The origin of this software must not be misrepresented; you must not
51544//   claim that you wrote the original software. If you use this software
51545//   in a product, an acknowledgment in the product documentation would be
51546//   appreciated but is not required.
51547// 2. Altered source versions must be plainly marked as such, and must not be
51548//   misrepresented as being the original software.
51549// 3. This notice may not be removed or altered from any source distribution.
51550
51551var utils         = __webpack_require__(395);
51552var adler32       = __webpack_require__(741);
51553var crc32         = __webpack_require__(742);
51554var inflate_fast  = __webpack_require__(936);
51555var inflate_table = __webpack_require__(937
vendor: 49,105 bytes, lines 51555-53088
51555);
51556
51557var CODES = 0;
51558var LENS = 1;
51559var DISTS = 2;
51560
51561/* Public constants ==========================================================*/
51562/* ===========================================================================*/
51563
51564
51565/* Allowed flush values; see deflate() and inflate() below for details */
51566//var Z_NO_FLUSH      = 0;
51567//var Z_PARTIAL_FLUSH = 1;
51568//var Z_SYNC_FLUSH    = 2;
51569//var Z_FULL_FLUSH    = 3;
51570var Z_FINISH        = 4;
51571var Z_BLOCK         = 5;
51572var Z_TREES         = 6;
51573
51574
51575/* Return codes for the compression/decompression functions. Negative values
51576 * are errors, positive values are used for special but normal events.
51577 */
51578var Z_OK            = 0;
51579var Z_STREAM_END    = 1;
51580var Z_NEED_DICT     = 2;
51581//var Z_ERRNO         = -1;
51582var Z_STREAM_ERROR  = -2;
51583var Z_DATA_ERROR    = -3;
51584var Z_MEM_ERROR     = -4;
51585var Z_BUF_ERROR     = -5;
51586//var Z_VERSION_ERROR = -6;
51587
51588/* The deflate compression method */
51589var Z_DEFLATED  = 8;
51590
51591
51592/* STATES ====================================================================*/
51593/* ===========================================================================*/
51594
51595
51596var    HEAD = 1;       /* i: waiting for magic header */
51597var    FLAGS = 2;      /* i: waiting for method and flags (gzip) */
51598var    TIME = 3;       /* i: waiting for modification time (gzip) */
51599var    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */
51600var    EXLEN = 5;      /* i: waiting for extra length (gzip) */
51601var    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */
51602var    NAME = 7;       /* i: waiting for end of file name (gzip) */
51603var    COMMENT = 8;    /* i: waiting for end of comment (gzip) */
51604var    HCRC = 9;       /* i: waiting for header crc (gzip) */
51605var    DICTID = 10;    /* i: waiting for dictionary check value */
51606var    DICT = 11;      /* waiting for inflateSetDictionary() call */
51607var        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
51608var        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */
51609var        STORED = 14;    /* i: waiting for stored size (length and complement) */
51610var        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */
51611var        COPY = 16;      /* i/o: waiting for input or output to copy stored block */
51612var        TABLE = 17;     /* i: waiting for dynamic block table lengths */
51613var        LENLENS = 18;   /* i: waiting for code length code lengths */
51614var        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */
51615var            LEN_ = 20;      /* i: same as LEN below, but only first time in */
51616var            LEN = 21;       /* i: waiting for length/lit/eob code */
51617var            LENEXT = 22;    /* i: waiting for length extra bits */
51618var            DIST = 23;      /* i: waiting for distance code */
51619var            DISTEXT = 24;   /* i: waiting for distance extra bits */
51620var            MATCH = 25;     /* o: waiting for output space to copy string */
51621var            LIT = 26;       /* o: waiting for output space to write literal */
51622var    CHECK = 27;     /* i: waiting for 32-bit check value */
51623var    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */
51624var    DONE = 29;      /* finished check, done -- remain here until reset */
51625var    BAD = 30;       /* got a data error -- remain here until reset */
51626var    MEM = 31;       /* got an inflate() memory error -- remain here until reset */
51627var    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */
51628
51629/* ===========================================================================*/
51630
51631
51632
51633var ENOUGH_LENS = 852;
51634var ENOUGH_DISTS = 592;
51635//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);
51636
51637var MAX_WBITS = 15;
51638/* 32K LZ77 window */
51639var DEF_WBITS = MAX_WBITS;
51640
51641
51642function zswap32(q) {
51643  return  (((q >>> 24) & 0xff) +
51644          ((q >>> 8) & 0xff00) +
51645          ((q & 0xff00) << 8) +
51646          ((q & 0xff) << 24));
51647}
51648
51649
51650function InflateState() {
51651  this.mode = 0;             /* current inflate mode */
51652  this.last = false;          /* true if processing last block */
51653  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */
51654  this.havedict = false;      /* true if dictionary provided */
51655  this.flags = 0;             /* gzip header method and flags (0 if zlib) */
51656  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */
51657  this.check = 0;             /* protected copy of check value */
51658  this.total = 0;             /* protected copy of output count */
51659  // TODO: may be {}
51660  this.head = null;           /* where to save gzip header information */
51661
51662  /* sliding window */
51663  this.wbits = 0;             /* log base 2 of requested window size */
51664  this.wsize = 0;             /* window size or zero if not using window */
51665  this.whave = 0;             /* valid bytes in the window */
51666  this.wnext = 0;             /* window write index */
51667  this.window = null;         /* allocated sliding window, if needed */
51668
51669  /* bit accumulator */
51670  this.hold = 0;              /* input bit accumulator */
51671  this.bits = 0;              /* number of bits in "in" */
51672
51673  /* for string and stored block copying */
51674  this.length = 0;            /* literal or length of data to copy */
51675  this.offset = 0;            /* distance back to copy string from */
51676
51677  /* for table and code decoding */
51678  this.extra = 0;             /* extra bits needed */
51679
51680  /* fixed and dynamic code tables */
51681  this.lencode = null;          /* starting table for length/literal codes */
51682  this.distcode = null;         /* starting table for distance codes */
51683  this.lenbits = 0;           /* index bits for lencode */
51684  this.distbits = 0;          /* index bits for distcode */
51685
51686  /* dynamic table building */
51687  this.ncode = 0;             /* number of code length code lengths */
51688  this.nlen = 0;              /* number of length code lengths */
51689  this.ndist = 0;             /* number of distance code lengths */
51690  this.have = 0;              /* number of code lengths in lens[] */
51691  this.next = null;              /* next available space in codes[] */
51692
51693  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */
51694  this.work = new utils.Buf16(288); /* work area for code table building */
51695
51696  /*
51697   because we don't have pointers in js, we use lencode and distcode directly
51698   as buffers so we don't need codes
51699  */
51700  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */
51701  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */
51702  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */
51703  this.sane = 0;                   /* if false, allow invalid distance too far */
51704  this.back = 0;                   /* bits back of last unprocessed length/lit */
51705  this.was = 0;                    /* initial length of match */
51706}
51707
51708function inflateResetKeep(strm) {
51709  var state;
51710
51711  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
51712  state = strm.state;
51713  strm.total_in = strm.total_out = state.total = 0;
51714  strm.msg = ''; /*Z_NULL*/
51715  if (state.wrap) {       /* to support ill-conceived Java test suite */
51716    strm.adler = state.wrap & 1;
51717  }
51718  state.mode = HEAD;
51719  state.last = 0;
51720  state.havedict = 0;
51721  state.dmax = 32768;
51722  state.head = null/*Z_NULL*/;
51723  state.hold = 0;
51724  state.bits = 0;
51725  //state.lencode = state.distcode = state.next = state.codes;
51726  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
51727  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
51728
51729  state.sane = 1;
51730  state.back = -1;
51731  //Tracev((stderr, "inflate: reset\n"));
51732  return Z_OK;
51733}
51734
51735function inflateReset(strm) {
51736  var state;
51737
51738  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
51739  state = strm.state;
51740  state.wsize = 0;
51741  state.whave = 0;
51742  state.wnext = 0;
51743  return inflateResetKeep(strm);
51744
51745}
51746
51747function inflateReset2(strm, windowBits) {
51748  var wrap;
51749  var state;
51750
51751  /* get the state */
51752  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
51753  state = strm.state;
51754
51755  /* extract wrap request from windowBits parameter */
51756  if (windowBits < 0) {
51757    wrap = 0;
51758    windowBits = -windowBits;
51759  }
51760  else {
51761    wrap = (windowBits >> 4) + 1;
51762    if (windowBits < 48) {
51763      windowBits &= 15;
51764    }
51765  }
51766
51767  /* set number of window bits, free window if different */
51768  if (windowBits && (windowBits < 8 || windowBits > 15)) {
51769    return Z_STREAM_ERROR;
51770  }
51771  if (state.window !== null && state.wbits !== windowBits) {
51772    state.window = null;
51773  }
51774
51775  /* update state and reset the rest of it */
51776  state.wrap = wrap;
51777  state.wbits = windowBits;
51778  return inflateReset(strm);
51779}
51780
51781function inflateInit2(strm, windowBits) {
51782  var ret;
51783  var state;
51784
51785  if (!strm) { return Z_STREAM_ERROR; }
51786  //strm.msg = Z_NULL;                 /* in case we return an error */
51787
51788  state = new InflateState();
51789
51790  //if (state === Z_NULL) return Z_MEM_ERROR;
51791  //Tracev((stderr, "inflate: allocated\n"));
51792  strm.state = state;
51793  state.window = null/*Z_NULL*/;
51794  ret = inflateReset2(strm, windowBits);
51795  if (ret !== Z_OK) {
51796    strm.state = null/*Z_NULL*/;
51797  }
51798  return ret;
51799}
51800
51801function inflateInit(strm) {
51802  return inflateInit2(strm, DEF_WBITS);
51803}
51804
51805
51806/*
51807 Return state with length and distance decoding tables and index sizes set to
51808 fixed code decoding.  Normally this returns fixed tables from inffixed.h.
51809 If BUILDFIXED is defined, then instead this routine builds the tables the
51810 first time it's called, and returns those tables the first time and
51811 thereafter.  This reduces the size of the code by about 2K bytes, in
51812 exchange for a little execution time.  However, BUILDFIXED should not be
51813 used for threaded applications, since the rewriting of the tables and virgin
51814 may not be thread-safe.
51815 */
51816var virgin = true;
51817
51818var lenfix, distfix; // We have no pointers in JS, so keep tables separate
51819
51820function fixedtables(state) {
51821  /* build fixed huffman tables if first call (may not be thread safe) */
51822  if (virgin) {
51823    var sym;
51824
51825    lenfix = new utils.Buf32(512);
51826    distfix = new utils.Buf32(32);
51827
51828    /* literal/length table */
51829    sym = 0;
51830    while (sym < 144) { state.lens[sym++] = 8; }
51831    while (sym < 256) { state.lens[sym++] = 9; }
51832    while (sym < 280) { state.lens[sym++] = 7; }
51833    while (sym < 288) { state.lens[sym++] = 8; }
51834
51835    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });
51836
51837    /* distance table */
51838    sym = 0;
51839    while (sym < 32) { state.lens[sym++] = 5; }
51840
51841    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });
51842
51843    /* do this just once */
51844    virgin = false;
51845  }
51846
51847  state.lencode = lenfix;
51848  state.lenbits = 9;
51849  state.distcode = distfix;
51850  state.distbits = 5;
51851}
51852
51853
51854/*
51855 Update the window with the last wsize (normally 32K) bytes written before
51856 returning.  If window does not exist yet, create it.  This is only called
51857 when a window is already in use, or when output has been written during this
51858 inflate call, but the end of the deflate stream has not been reached yet.
51859 It is also called to create a window for dictionary data when a dictionary
51860 is loaded.
51861
51862 Providing output buffers larger than 32K to inflate() should provide a speed
51863 advantage, since only the last 32K of output is copied to the sliding window
51864 upon return from inflate(), and since all distances after the first 32K of
51865 output will fall in the output data, making match copies simpler and faster.
51866 The advantage may be dependent on the size of the processor's data caches.
51867 */
51868function updatewindow(strm, src, end, copy) {
51869  var dist;
51870  var state = strm.state;
51871
51872  /* if it hasn't been done already, allocate space for the window */
51873  if (state.window === null) {
51874    state.wsize = 1 << state.wbits;
51875    state.wnext = 0;
51876    state.whave = 0;
51877
51878    state.window = new utils.Buf8(state.wsize);
51879  }
51880
51881  /* copy state->wsize or less output bytes into the circular window */
51882  if (copy >= state.wsize) {
51883    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
51884    state.wnext = 0;
51885    state.whave = state.wsize;
51886  }
51887  else {
51888    dist = state.wsize - state.wnext;
51889    if (dist > copy) {
51890      dist = copy;
51891    }
51892    //zmemcpy(state->window + state->wnext, end - copy, dist);
51893    utils.arraySet(state.window, src, end - copy, dist, state.wnext);
51894    copy -= dist;
51895    if (copy) {
51896      //zmemcpy(state->window, end - copy, copy);
51897      utils.arraySet(state.window, src, end - copy, copy, 0);
51898      state.wnext = copy;
51899      state.whave = state.wsize;
51900    }
51901    else {
51902      state.wnext += dist;
51903      if (state.wnext === state.wsize) { state.wnext = 0; }
51904      if (state.whave < state.wsize) { state.whave += dist; }
51905    }
51906  }
51907  return 0;
51908}
51909
51910function inflate(strm, flush) {
51911  var state;
51912  var input, output;          // input/output buffers
51913  var next;                   /* next input INDEX */
51914  var put;                    /* next output INDEX */
51915  var have, left;             /* available input and output */
51916  var hold;                   /* bit buffer */
51917  var bits;                   /* bits in bit buffer */
51918  var _in, _out;              /* save starting available input and output */
51919  var copy;                   /* number of stored or match bytes to copy */
51920  var from;                   /* where to copy match bytes from */
51921  var from_source;
51922  var here = 0;               /* current decoding table entry */
51923  var here_bits, here_op, here_val; // paked "here" denormalized (JS specific)
51924  //var last;                   /* parent table entry */
51925  var last_bits, last_op, last_val; // paked "last" denormalized (JS specific)
51926  var len;                    /* length to copy for repeats, bits to drop */
51927  var ret;                    /* return code */
51928  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */
51929  var opts;
51930
51931  var n; // temporary var for NEED_BITS
51932
51933  var order = /* permutation of code lengths */
51934    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];
51935
51936
51937  if (!strm || !strm.state || !strm.output ||
51938      (!strm.input && strm.avail_in !== 0)) {
51939    return Z_STREAM_ERROR;
51940  }
51941
51942  state = strm.state;
51943  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */
51944
51945
51946  //--- LOAD() ---
51947  put = strm.next_out;
51948  output = strm.output;
51949  left = strm.avail_out;
51950  next = strm.next_in;
51951  input = strm.input;
51952  have = strm.avail_in;
51953  hold = state.hold;
51954  bits = state.bits;
51955  //---
51956
51957  _in = have;
51958  _out = left;
51959  ret = Z_OK;
51960
51961  inf_leave: // goto emulation
51962  for (;;) {
51963    switch (state.mode) {
51964      case HEAD:
51965        if (state.wrap === 0) {
51966          state.mode = TYPEDO;
51967          break;
51968        }
51969        //=== NEEDBITS(16);
51970        while (bits < 16) {
51971          if (have === 0) { break inf_leave; }
51972          have--;
51973          hold += input[next++] << bits;
51974          bits += 8;
51975        }
51976        //===//
51977        if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */
51978          state.check = 0/*crc32(0L, Z_NULL, 0)*/;
51979          //=== CRC2(state.check, hold);
51980          hbuf[0] = hold & 0xff;
51981          hbuf[1] = (hold >>> 8) & 0xff;
51982          state.check = crc32(state.check, hbuf, 2, 0);
51983          //===//
51984
51985          //=== INITBITS();
51986          hold = 0;
51987          bits = 0;
51988          //===//
51989          state.mode = FLAGS;
51990          break;
51991        }
51992        state.flags = 0;           /* expect zlib header */
51993        if (state.head) {
51994          state.head.done = false;
51995        }
51996        if (!(state.wrap & 1) ||   /* check if zlib header allowed */
51997          (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {
51998          strm.msg = 'incorrect header check';
51999          state.mode = BAD;
52000          break;
52001        }
52002        if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {
52003          strm.msg = 'unknown compression method';
52004          state.mode = BAD;
52005          break;
52006        }
52007        //--- DROPBITS(4) ---//
52008        hold >>>= 4;
52009        bits -= 4;
52010        //---//
52011        len = (hold & 0x0f)/*BITS(4)*/ + 8;
52012        if (state.wbits === 0) {
52013          state.wbits = len;
52014        }
52015        else if (len > state.wbits) {
52016          strm.msg = 'invalid window size';
52017          state.mode = BAD;
52018          break;
52019        }
52020        state.dmax = 1 << len;
52021        //Tracev((stderr, "inflate:   zlib header ok\n"));
52022        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
52023        state.mode = hold & 0x200 ? DICTID : TYPE;
52024        //=== INITBITS();
52025        hold = 0;
52026        bits = 0;
52027        //===//
52028        break;
52029      case FLAGS:
52030        //=== NEEDBITS(16); */
52031        while (bits < 16) {
52032          if (have === 0) { break inf_leave; }
52033          have--;
52034          hold += input[next++] << bits;
52035          bits += 8;
52036        }
52037        //===//
52038        state.flags = hold;
52039        if ((state.flags & 0xff) !== Z_DEFLATED) {
52040          strm.msg = 'unknown compression method';
52041          state.mode = BAD;
52042          break;
52043        }
52044        if (state.flags & 0xe000) {
52045          strm.msg = 'unknown header flags set';
52046          state.mode = BAD;
52047          break;
52048        }
52049        if (state.head) {
52050          state.head.text = ((hold >> 8) & 1);
52051        }
52052        if (state.flags & 0x0200) {
52053          //=== CRC2(state.check, hold);
52054          hbuf[0] = hold & 0xff;
52055          hbuf[1] = (hold >>> 8) & 0xff;
52056          state.check = crc32(state.check, hbuf, 2, 0);
52057          //===//
52058        }
52059        //=== INITBITS();
52060        hold = 0;
52061        bits = 0;
52062        //===//
52063        state.mode = TIME;
52064        /* falls through */
52065      case TIME:
52066        //=== NEEDBITS(32); */
52067        while (bits < 32) {
52068          if (have === 0) { break inf_leave; }
52069          have--;
52070          hold += input[next++] << bits;
52071          bits += 8;
52072        }
52073        //===//
52074        if (state.head) {
52075          state.head.time = hold;
52076        }
52077        if (state.flags & 0x0200) {
52078          //=== CRC4(state.check, hold)
52079          hbuf[0] = hold & 0xff;
52080          hbuf[1] = (hold >>> 8) & 0xff;
52081          hbuf[2] = (hold >>> 16) & 0xff;
52082          hbuf[3] = (hold >>> 24) & 0xff;
52083          state.check = crc32(state.check, hbuf, 4, 0);
52084          //===
52085        }
52086        //=== INITBITS();
52087        hold = 0;
52088        bits = 0;
52089        //===//
52090        state.mode = OS;
52091        /* falls through */
52092      case OS:
52093        //=== NEEDBITS(16); */
52094        while (bits < 16) {
52095          if (have === 0) { break inf_leave; }
52096          have--;
52097          hold += input[next++] << bits;
52098          bits += 8;
52099        }
52100        //===//
52101        if (state.head) {
52102          state.head.xflags = (hold & 0xff);
52103          state.head.os = (hold >> 8);
52104        }
52105        if (state.flags & 0x0200) {
52106          //=== CRC2(state.check, hold);
52107          hbuf[0] = hold & 0xff;
52108          hbuf[1] = (hold >>> 8) & 0xff;
52109          state.check = crc32(state.check, hbuf, 2, 0);
52110          //===//
52111        }
52112        //=== INITBITS();
52113        hold = 0;
52114        bits = 0;
52115        //===//
52116        state.mode = EXLEN;
52117        /* falls through */
52118      case EXLEN:
52119        if (state.flags & 0x0400) {
52120          //=== NEEDBITS(16); */
52121          while (bits < 16) {
52122            if (have === 0) { break inf_leave; }
52123            have--;
52124            hold += input[next++] << bits;
52125            bits += 8;
52126          }
52127          //===//
52128          state.length = hold;
52129          if (state.head) {
52130            state.head.extra_len = hold;
52131          }
52132          if (state.flags & 0x0200) {
52133            //=== CRC2(state.check, hold);
52134            hbuf[0] = hold & 0xff;
52135            hbuf[1] = (hold >>> 8) & 0xff;
52136            state.check = crc32(state.check, hbuf, 2, 0);
52137            //===//
52138          }
52139          //=== INITBITS();
52140          hold = 0;
52141          bits = 0;
52142          //===//
52143        }
52144        else if (state.head) {
52145          state.head.extra = null/*Z_NULL*/;
52146        }
52147        state.mode = EXTRA;
52148        /* falls through */
52149      case EXTRA:
52150        if (state.flags & 0x0400) {
52151          copy = state.length;
52152          if (copy > have) { copy = have; }
52153          if (copy) {
52154            if (state.head) {
52155              len = state.head.extra_len - state.length;
52156              if (!state.head.extra) {
52157                // Use untyped array for more convenient processing later
52158                state.head.extra = new Array(state.head.extra_len);
52159              }
52160              utils.arraySet(
52161                state.head.extra,
52162                input,
52163                next,
52164                // extra field is limited to 65536 bytes
52165                // - no need for additional size check
52166                copy,
52167                /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
52168                len
52169              );
52170              //zmemcpy(state.head.extra + len, next,
52171              //        len + copy > state.head.extra_max ?
52172              //        state.head.extra_max - len : copy);
52173            }
52174            if (state.flags & 0x0200) {
52175              state.check = crc32(state.check, input, copy, next);
52176            }
52177            have -= copy;
52178            next += copy;
52179            state.length -= copy;
52180          }
52181          if (state.length) { break inf_leave; }
52182        }
52183        state.length = 0;
52184        state.mode = NAME;
52185        /* falls through */
52186      case NAME:
52187        if (state.flags & 0x0800) {
52188          if (have === 0) { break inf_leave; }
52189          copy = 0;
52190          do {
52191            // TODO: 2 or 1 bytes?
52192            len = input[next + copy++];
52193            /* use constant limit because in js we should not preallocate memory */
52194            if (state.head && len &&
52195                (state.length < 65536 /*state.head.name_max*/)) {
52196              state.head.name += String.fromCharCode(len);
52197            }
52198          } while (len && copy < have);
52199
52200          if (state.flags & 0x0200) {
52201            state.check = crc32(state.check, input, copy, next);
52202          }
52203          have -= copy;
52204          next += copy;
52205          if (len) { break inf_leave; }
52206        }
52207        else if (state.head) {
52208          state.head.name = null;
52209        }
52210        state.length = 0;
52211        state.mode = COMMENT;
52212        /* falls through */
52213      case COMMENT:
52214        if (state.flags & 0x1000) {
52215          if (have === 0) { break inf_leave; }
52216          copy = 0;
52217          do {
52218            len = input[next + copy++];
52219            /* use constant limit because in js we should not preallocate memory */
52220            if (state.head && len &&
52221                (state.length < 65536 /*state.head.comm_max*/)) {
52222              state.head.comment += String.fromCharCode(len);
52223            }
52224          } while (len && copy < have);
52225          if (state.flags & 0x0200) {
52226            state.check = crc32(state.check, input, copy, next);
52227          }
52228          have -= copy;
52229          next += copy;
52230          if (len) { break inf_leave; }
52231        }
52232        else if (state.head) {
52233          state.head.comment = null;
52234        }
52235        state.mode = HCRC;
52236        /* falls through */
52237      case HCRC:
52238        if (state.flags & 0x0200) {
52239          //=== NEEDBITS(16); */
52240          while (bits < 16) {
52241            if (have === 0) { break inf_leave; }
52242            have--;
52243            hold += input[next++] << bits;
52244            bits += 8;
52245          }
52246          //===//
52247          if (hold !== (state.check & 0xffff)) {
52248            strm.msg = 'header crc mismatch';
52249            state.mode = BAD;
52250            break;
52251          }
52252          //=== INITBITS();
52253          hold = 0;
52254          bits = 0;
52255          //===//
52256        }
52257        if (state.head) {
52258          state.head.hcrc = ((state.flags >> 9) & 1);
52259          state.head.done = true;
52260        }
52261        strm.adler = state.check = 0;
52262        state.mode = TYPE;
52263        break;
52264      case DICTID:
52265        //=== NEEDBITS(32); */
52266        while (bits < 32) {
52267          if (have === 0) { break inf_leave; }
52268          have--;
52269          hold += input[next++] << bits;
52270          bits += 8;
52271        }
52272        //===//
52273        strm.adler = state.check = zswap32(hold);
52274        //=== INITBITS();
52275        hold = 0;
52276        bits = 0;
52277        //===//
52278        state.mode = DICT;
52279        /* falls through */
52280      case DICT:
52281        if (state.havedict === 0) {
52282          //--- RESTORE() ---
52283          strm.next_out = put;
52284          strm.avail_out = left;
52285          strm.next_in = next;
52286          strm.avail_in = have;
52287          state.hold = hold;
52288          state.bits = bits;
52289          //---
52290          return Z_NEED_DICT;
52291        }
52292        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;
52293        state.mode = TYPE;
52294        /* falls through */
52295      case TYPE:
52296        if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }
52297        /* falls through */
52298      case TYPEDO:
52299        if (state.last) {
52300          //--- BYTEBITS() ---//
52301          hold >>>= bits & 7;
52302          bits -= bits & 7;
52303          //---//
52304          state.mode = CHECK;
52305          break;
52306        }
52307        //=== NEEDBITS(3); */
52308        while (bits < 3) {
52309          if (have === 0) { break inf_leave; }
52310          have--;
52311          hold += input[next++] << bits;
52312          bits += 8;
52313        }
52314        //===//
52315        state.last = (hold & 0x01)/*BITS(1)*/;
52316        //--- DROPBITS(1) ---//
52317        hold >>>= 1;
52318        bits -= 1;
52319        //---//
52320
52321        switch ((hold & 0x03)/*BITS(2)*/) {
52322          case 0:                             /* stored block */
52323            //Tracev((stderr, "inflate:     stored block%s\n",
52324            //        state.last ? " (last)" : ""));
52325            state.mode = STORED;
52326            break;
52327          case 1:                             /* fixed block */
52328            fixedtables(state);
52329            //Tracev((stderr, "inflate:     fixed codes block%s\n",
52330            //        state.last ? " (last)" : ""));
52331            state.mode = LEN_;             /* decode codes */
52332            if (flush === Z_TREES) {
52333              //--- DROPBITS(2) ---//
52334              hold >>>= 2;
52335              bits -= 2;
52336              //---//
52337              break inf_leave;
52338            }
52339            break;
52340          case 2:                             /* dynamic block */
52341            //Tracev((stderr, "inflate:     dynamic codes block%s\n",
52342            //        state.last ? " (last)" : ""));
52343            state.mode = TABLE;
52344            break;
52345          case 3:
52346            strm.msg = 'invalid block type';
52347            state.mode = BAD;
52348        }
52349        //--- DROPBITS(2) ---//
52350        hold >>>= 2;
52351        bits -= 2;
52352        //---//
52353        break;
52354      case STORED:
52355        //--- BYTEBITS() ---// /* go to byte boundary */
52356        hold >>>= bits & 7;
52357        bits -= bits & 7;
52358        //---//
52359        //=== NEEDBITS(32); */
52360        while (bits < 32) {
52361          if (have === 0) { break inf_leave; }
52362          have--;
52363          hold += input[next++] << bits;
52364          bits += 8;
52365        }
52366        //===//
52367        if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {
52368          strm.msg = 'invalid stored block lengths';
52369          state.mode = BAD;
52370          break;
52371        }
52372        state.length = hold & 0xffff;
52373        //Tracev((stderr, "inflate:       stored length %u\n",
52374        //        state.length));
52375        //=== INITBITS();
52376        hold = 0;
52377        bits = 0;
52378        //===//
52379        state.mode = COPY_;
52380        if (flush === Z_TREES) { break inf_leave; }
52381        /* falls through */
52382      case COPY_:
52383        state.mode = COPY;
52384        /* falls through */
52385      case COPY:
52386        copy = state.length;
52387        if (copy) {
52388          if (copy > have) { copy = have; }
52389          if (copy > left) { copy = left; }
52390          if (copy === 0) { break inf_leave; }
52391          //--- zmemcpy(put, next, copy); ---
52392          utils.arraySet(output, input, next, copy, put);
52393          //---//
52394          have -= copy;
52395          next += copy;
52396          left -= copy;
52397          put += copy;
52398          state.length -= copy;
52399          break;
52400        }
52401        //Tracev((stderr, "inflate:       stored end\n"));
52402        state.mode = TYPE;
52403        break;
52404      case TABLE:
52405        //=== NEEDBITS(14); */
52406        while (bits < 14) {
52407          if (have === 0) { break inf_leave; }
52408          have--;
52409          hold += input[next++] << bits;
52410          bits += 8;
52411        }
52412        //===//
52413        state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;
52414        //--- DROPBITS(5) ---//
52415        hold >>>= 5;
52416        bits -= 5;
52417        //---//
52418        state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;
52419        //--- DROPBITS(5) ---//
52420        hold >>>= 5;
52421        bits -= 5;
52422        //---//
52423        state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;
52424        //--- DROPBITS(4) ---//
52425        hold >>>= 4;
52426        bits -= 4;
52427        //---//
52428//#ifndef PKZIP_BUG_WORKAROUND
52429        if (state.nlen > 286 || state.ndist > 30) {
52430          strm.msg = 'too many length or distance symbols';
52431          state.mode = BAD;
52432          break;
52433        }
52434//#endif
52435        //Tracev((stderr, "inflate:       table sizes ok\n"));
52436        state.have = 0;
52437        state.mode = LENLENS;
52438        /* falls through */
52439      case LENLENS:
52440        while (state.have < state.ncode) {
52441          //=== NEEDBITS(3);
52442          while (bits < 3) {
52443            if (have === 0) { break inf_leave; }
52444            have--;
52445            hold += input[next++] << bits;
52446            bits += 8;
52447          }
52448          //===//
52449          state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);
52450          //--- DROPBITS(3) ---//
52451          hold >>>= 3;
52452          bits -= 3;
52453          //---//
52454        }
52455        while (state.have < 19) {
52456          state.lens[order[state.have++]] = 0;
52457        }
52458        // We have separate tables & no pointers. 2 commented lines below not needed.
52459        //state.next = state.codes;
52460        //state.lencode = state.next;
52461        // Switch to use dynamic table
52462        state.lencode = state.lendyn;
52463        state.lenbits = 7;
52464
52465        opts = { bits: state.lenbits };
52466        ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
52467        state.lenbits = opts.bits;
52468
52469        if (ret) {
52470          strm.msg = 'invalid code lengths set';
52471          state.mode = BAD;
52472          break;
52473        }
52474        //Tracev((stderr, "inflate:       code lengths ok\n"));
52475        state.have = 0;
52476        state.mode = CODELENS;
52477        /* falls through */
52478      case CODELENS:
52479        while (state.have < state.nlen + state.ndist) {
52480          for (;;) {
52481            here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/
52482            here_bits = here >>> 24;
52483            here_op = (here >>> 16) & 0xff;
52484            here_val = here & 0xffff;
52485
52486            if ((here_bits) <= bits) { break; }
52487            //--- PULLBYTE() ---//
52488            if (have === 0) { break inf_leave; }
52489            have--;
52490            hold += input[next++] << bits;
52491            bits += 8;
52492            //---//
52493          }
52494          if (here_val < 16) {
52495            //--- DROPBITS(here.bits) ---//
52496            hold >>>= here_bits;
52497            bits -= here_bits;
52498            //---//
52499            state.lens[state.have++] = here_val;
52500          }
52501          else {
52502            if (here_val === 16) {
52503              //=== NEEDBITS(here.bits + 2);
52504              n = here_bits + 2;
52505              while (bits < n) {
52506                if (have === 0) { break inf_leave; }
52507                have--;
52508                hold += input[next++] << bits;
52509                bits += 8;
52510              }
52511              //===//
52512              //--- DROPBITS(here.bits) ---//
52513              hold >>>= here_bits;
52514              bits -= here_bits;
52515              //---//
52516              if (state.have === 0) {
52517                strm.msg = 'invalid bit length repeat';
52518                state.mode = BAD;
52519                break;
52520              }
52521              len = state.lens[state.have - 1];
52522              copy = 3 + (hold & 0x03);//BITS(2);
52523              //--- DROPBITS(2) ---//
52524              hold >>>= 2;
52525              bits -= 2;
52526              //---//
52527            }
52528            else if (here_val === 17) {
52529              //=== NEEDBITS(here.bits + 3);
52530              n = here_bits + 3;
52531              while (bits < n) {
52532                if (have === 0) { break inf_leave; }
52533                have--;
52534                hold += input[next++] << bits;
52535                bits += 8;
52536              }
52537              //===//
52538              //--- DROPBITS(here.bits) ---//
52539              hold >>>= here_bits;
52540              bits -= here_bits;
52541              //---//
52542              len = 0;
52543              copy = 3 + (hold & 0x07);//BITS(3);
52544              //--- DROPBITS(3) ---//
52545              hold >>>= 3;
52546              bits -= 3;
52547              //---//
52548            }
52549            else {
52550              //=== NEEDBITS(here.bits + 7);
52551              n = here_bits + 7;
52552              while (bits < n) {
52553                if (have === 0) { break inf_leave; }
52554                have--;
52555                hold += input[next++] << bits;
52556                bits += 8;
52557              }
52558              //===//
52559              //--- DROPBITS(here.bits) ---//
52560              hold >>>= here_bits;
52561              bits -= here_bits;
52562              //---//
52563              len = 0;
52564              copy = 11 + (hold & 0x7f);//BITS(7);
52565              //--- DROPBITS(7) ---//
52566              hold >>>= 7;
52567              bits -= 7;
52568              //---//
52569            }
52570            if (state.have + copy > state.nlen + state.ndist) {
52571              strm.msg = 'invalid bit length repeat';
52572              state.mode = BAD;
52573              break;
52574            }
52575            while (copy--) {
52576              state.lens[state.have++] = len;
52577            }
52578          }
52579        }
52580
52581        /* handle error breaks in while */
52582        if (state.mode === BAD) { break; }
52583
52584        /* check for end-of-block code (better have one) */
52585        if (state.lens[256] === 0) {
52586          strm.msg = 'invalid code -- missing end-of-block';
52587          state.mode = BAD;
52588          break;
52589        }
52590
52591        /* build code tables -- note: do not change the lenbits or distbits
52592           values here (9 and 6) without reading the comments in inftrees.h
52593           concerning the ENOUGH constants, which depend on those values */
52594        state.lenbits = 9;
52595
52596        opts = { bits: state.lenbits };
52597        ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
52598        // We have separate tables & no pointers. 2 commented lines below not needed.
52599        // state.next_index = opts.table_index;
52600        state.lenbits = opts.bits;
52601        // state.lencode = state.next;
52602
52603        if (ret) {
52604          strm.msg = 'invalid literal/lengths set';
52605          state.mode = BAD;
52606          break;
52607        }
52608
52609        state.distbits = 6;
52610        //state.distcode.copy(state.codes);
52611        // Switch to use dynamic table
52612        state.distcode = state.distdyn;
52613        opts = { bits: state.distbits };
52614        ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
52615        // We have separate tables & no pointers. 2 commented lines below not needed.
52616        // state.next_index = opts.table_index;
52617        state.distbits = opts.bits;
52618        // state.distcode = state.next;
52619
52620        if (ret) {
52621          strm.msg = 'invalid distances set';
52622          state.mode = BAD;
52623          break;
52624        }
52625        //Tracev((stderr, 'inflate:       codes ok\n'));
52626        state.mode = LEN_;
52627        if (flush === Z_TREES) { break inf_leave; }
52628        /* falls through */
52629      case LEN_:
52630        state.mode = LEN;
52631        /* falls through */
52632      case LEN:
52633        if (have >= 6 && left >= 258) {
52634          //--- RESTORE() ---
52635          strm.next_out = put;
52636          strm.avail_out = left;
52637          strm.next_in = next;
52638          strm.avail_in = have;
52639          state.hold = hold;
52640          state.bits = bits;
52641          //---
52642          inflate_fast(strm, _out);
52643          //--- LOAD() ---
52644          put = strm.next_out;
52645          output = strm.output;
52646          left = strm.avail_out;
52647          next = strm.next_in;
52648          input = strm.input;
52649          have = strm.avail_in;
52650          hold = state.hold;
52651          bits = state.bits;
52652          //---
52653
52654          if (state.mode === TYPE) {
52655            state.back = -1;
52656          }
52657          break;
52658        }
52659        state.back = 0;
52660        for (;;) {
52661          here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/
52662          here_bits = here >>> 24;
52663          here_op = (here >>> 16) & 0xff;
52664          here_val = here & 0xffff;
52665
52666          if (here_bits <= bits) { break; }
52667          //--- PULLBYTE() ---//
52668          if (have === 0) { break inf_leave; }
52669          have--;
52670          hold += input[next++] << bits;
52671          bits += 8;
52672          //---//
52673        }
52674        if (here_op && (here_op & 0xf0) === 0) {
52675          last_bits = here_bits;
52676          last_op = here_op;
52677          last_val = here_val;
52678          for (;;) {
52679            here = state.lencode[last_val +
52680                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
52681            here_bits = here >>> 24;
52682            here_op = (here >>> 16) & 0xff;
52683            here_val = here & 0xffff;
52684
52685            if ((last_bits + here_bits) <= bits) { break; }
52686            //--- PULLBYTE() ---//
52687            if (have === 0) { break inf_leave; }
52688            have--;
52689            hold += input[next++] << bits;
52690            bits += 8;
52691            //---//
52692          }
52693          //--- DROPBITS(last.bits) ---//
52694          hold >>>= last_bits;
52695          bits -= last_bits;
52696          //---//
52697          state.back += last_bits;
52698        }
52699        //--- DROPBITS(here.bits) ---//
52700        hold >>>= here_bits;
52701        bits -= here_bits;
52702        //---//
52703        state.back += here_bits;
52704        state.length = here_val;
52705        if (here_op === 0) {
52706          //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
52707          //        "inflate:         literal '%c'\n" :
52708          //        "inflate:         literal 0x%02x\n", here.val));
52709          state.mode = LIT;
52710          break;
52711        }
52712        if (here_op & 32) {
52713          //Tracevv((stderr, "inflate:         end of block\n"));
52714          state.back = -1;
52715          state.mode = TYPE;
52716          break;
52717        }
52718        if (here_op & 64) {
52719          strm.msg = 'invalid literal/length code';
52720          state.mode = BAD;
52721          break;
52722        }
52723        state.extra = here_op & 15;
52724        state.mode = LENEXT;
52725        /* falls through */
52726      case LENEXT:
52727        if (state.extra) {
52728          //=== NEEDBITS(state.extra);
52729          n = state.extra;
52730          while (bits < n) {
52731            if (have === 0) { break inf_leave; }
52732            have--;
52733            hold += input[next++] << bits;
52734            bits += 8;
52735          }
52736          //===//
52737          state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
52738          //--- DROPBITS(state.extra) ---//
52739          hold >>>= state.extra;
52740          bits -= state.extra;
52741          //---//
52742          state.back += state.extra;
52743        }
52744        //Tracevv((stderr, "inflate:         length %u\n", state.length));
52745        state.was = state.length;
52746        state.mode = DIST;
52747        /* falls through */
52748      case DIST:
52749        for (;;) {
52750          here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/
52751          here_bits = here >>> 24;
52752          here_op = (here >>> 16) & 0xff;
52753          here_val = here & 0xffff;
52754
52755          if ((here_bits) <= bits) { break; }
52756          //--- PULLBYTE() ---//
52757          if (have === 0) { break inf_leave; }
52758          have--;
52759          hold += input[next++] << bits;
52760          bits += 8;
52761          //---//
52762        }
52763        if ((here_op & 0xf0) === 0) {
52764          last_bits = here_bits;
52765          last_op = here_op;
52766          last_val = here_val;
52767          for (;;) {
52768            here = state.distcode[last_val +
52769                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];
52770            here_bits = here >>> 24;
52771            here_op = (here >>> 16) & 0xff;
52772            here_val = here & 0xffff;
52773
52774            if ((last_bits + here_bits) <= bits) { break; }
52775            //--- PULLBYTE() ---//
52776            if (have === 0) { break inf_leave; }
52777            have--;
52778            hold += input[next++] << bits;
52779            bits += 8;
52780            //---//
52781          }
52782          //--- DROPBITS(last.bits) ---//
52783          hold >>>= last_bits;
52784          bits -= last_bits;
52785          //---//
52786          state.back += last_bits;
52787        }
52788        //--- DROPBITS(here.bits) ---//
52789        hold >>>= here_bits;
52790        bits -= here_bits;
52791        //---//
52792        state.back += here_bits;
52793        if (here_op & 64) {
52794          strm.msg = 'invalid distance code';
52795          state.mode = BAD;
52796          break;
52797        }
52798        state.offset = here_val;
52799        state.extra = (here_op) & 15;
52800        state.mode = DISTEXT;
52801        /* falls through */
52802      case DISTEXT:
52803        if (state.extra) {
52804          //=== NEEDBITS(state.extra);
52805          n = state.extra;
52806          while (bits < n) {
52807            if (have === 0) { break inf_leave; }
52808            have--;
52809            hold += input[next++] << bits;
52810            bits += 8;
52811          }
52812          //===//
52813          state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;
52814          //--- DROPBITS(state.extra) ---//
52815          hold >>>= state.extra;
52816          bits -= state.extra;
52817          //---//
52818          state.back += state.extra;
52819        }
52820//#ifdef INFLATE_STRICT
52821        if (state.offset > state.dmax) {
52822          strm.msg = 'invalid distance too far back';
52823          state.mode = BAD;
52824          break;
52825        }
52826//#endif
52827        //Tracevv((stderr, "inflate:         distance %u\n", state.offset));
52828        state.mode = MATCH;
52829        /* falls through */
52830      case MATCH:
52831        if (left === 0) { break inf_leave; }
52832        copy = _out - left;
52833        if (state.offset > copy) {         /* copy from window */
52834          copy = state.offset - copy;
52835          if (copy > state.whave) {
52836            if (state.sane) {
52837              strm.msg = 'invalid distance too far back';
52838              state.mode = BAD;
52839              break;
52840            }
52841// (!) This block is disabled in zlib defaults,
52842// don't enable it for binary compatibility
52843//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
52844//          Trace((stderr, "inflate.c too far\n"));
52845//          copy -= state.whave;
52846//          if (copy > state.length) { copy = state.length; }
52847//          if (copy > left) { copy = left; }
52848//          left -= copy;
52849//          state.length -= copy;
52850//          do {
52851//            output[put++] = 0;
52852//          } while (--copy);
52853//          if (state.length === 0) { state.mode = LEN; }
52854//          break;
52855//#endif
52856          }
52857          if (copy > state.wnext) {
52858            copy -= state.wnext;
52859            from = state.wsize - copy;
52860          }
52861          else {
52862            from = state.wnext - copy;
52863          }
52864          if (copy > state.length) { copy = state.length; }
52865          from_source = state.window;
52866        }
52867        else {                              /* copy from output */
52868          from_source = output;
52869          from = put - state.offset;
52870          copy = state.length;
52871        }
52872        if (copy > left) { copy = left; }
52873        left -= copy;
52874        state.length -= copy;
52875        do {
52876          output[put++] = from_source[from++];
52877        } while (--copy);
52878        if (state.length === 0) { state.mode = LEN; }
52879        break;
52880      case LIT:
52881        if (left === 0) { break inf_leave; }
52882        output[put++] = state.length;
52883        left--;
52884        state.mode = LEN;
52885        break;
52886      case CHECK:
52887        if (state.wrap) {
52888          //=== NEEDBITS(32);
52889          while (bits < 32) {
52890            if (have === 0) { break inf_leave; }
52891            have--;
52892            // Use '|' instead of '+' to make sure that result is signed
52893            hold |= input[next++] << bits;
52894            bits += 8;
52895          }
52896          //===//
52897          _out -= left;
52898          strm.total_out += _out;
52899          state.total += _out;
52900          if (_out) {
52901            strm.adler = state.check =
52902                /*UPDATE(state.check, put - _out, _out);*/
52903                (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));
52904
52905          }
52906          _out = left;
52907          // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too
52908          if ((state.flags ? hold : zswap32(hold)) !== state.check) {
52909            strm.msg = 'incorrect data check';
52910            state.mode = BAD;
52911            break;
52912          }
52913          //=== INITBITS();
52914          hold = 0;
52915          bits = 0;
52916          //===//
52917          //Tracev((stderr, "inflate:   check matches trailer\n"));
52918        }
52919        state.mode = LENGTH;
52920        /* falls through */
52921      case LENGTH:
52922        if (state.wrap && state.flags) {
52923          //=== NEEDBITS(32);
52924          while (bits < 32) {
52925            if (have === 0) { break inf_leave; }
52926            have--;
52927            hold += input[next++] << bits;
52928            bits += 8;
52929          }
52930          //===//
52931          if (hold !== (state.total & 0xffffffff)) {
52932            strm.msg = 'incorrect length check';
52933            state.mode = BAD;
52934            break;
52935          }
52936          //=== INITBITS();
52937          hold = 0;
52938          bits = 0;
52939          //===//
52940          //Tracev((stderr, "inflate:   length matches trailer\n"));
52941        }
52942        state.mode = DONE;
52943        /* falls through */
52944      case DONE:
52945        ret = Z_STREAM_END;
52946        break inf_leave;
52947      case BAD:
52948        ret = Z_DATA_ERROR;
52949        break inf_leave;
52950      case MEM:
52951        return Z_MEM_ERROR;
52952      case SYNC:
52953        /* falls through */
52954      default:
52955        return Z_STREAM_ERROR;
52956    }
52957  }
52958
52959  // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave"
52960
52961  /*
52962     Return from inflate(), updating the total counts and the check value.
52963     If there was no progress during the inflate() call, return a buffer
52964     error.  Call updatewindow() to create and/or update the window state.
52965     Note: a memory error from inflate() is non-recoverable.
52966   */
52967
52968  //--- RESTORE() ---
52969  strm.next_out = put;
52970  strm.avail_out = left;
52971  strm.next_in = next;
52972  strm.avail_in = have;
52973  state.hold = hold;
52974  state.bits = bits;
52975  //---
52976
52977  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&
52978                      (state.mode < CHECK || flush !== Z_FINISH))) {
52979    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
52980      state.mode = MEM;
52981      return Z_MEM_ERROR;
52982    }
52983  }
52984  _in -= strm.avail_in;
52985  _out -= strm.avail_out;
52986  strm.total_in += _in;
52987  strm.total_out += _out;
52988  state.total += _out;
52989  if (state.wrap && _out) {
52990    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
52991      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));
52992  }
52993  strm.data_type = state.bits + (state.last ? 64 : 0) +
52994                    (state.mode === TYPE ? 128 : 0) +
52995                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
52996  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {
52997    ret = Z_BUF_ERROR;
52998  }
52999  return ret;
53000}
53001
53002function inflateEnd(strm) {
53003
53004  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {
53005    return Z_STREAM_ERROR;
53006  }
53007
53008  var state = strm.state;
53009  if (state.window) {
53010    state.window = null;
53011  }
53012  strm.state = null;
53013  return Z_OK;
53014}
53015
53016function inflateGetHeader(strm, head) {
53017  var state;
53018
53019  /* check state */
53020  if (!strm || !strm.state) { return Z_STREAM_ERROR; }
53021  state = strm.state;
53022  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }
53023
53024  /* save header structure */
53025  state.head = head;
53026  head.done = false;
53027  return Z_OK;
53028}
53029
53030function inflateSetDictionary(strm, dictionary) {
53031  var dictLength = dictionary.length;
53032
53033  var state;
53034  var dictid;
53035  var ret;
53036
53037  /* check state */
53038  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }
53039  state = strm.state;
53040
53041  if (state.wrap !== 0 && state.mode !== DICT) {
53042    return Z_STREAM_ERROR;
53043  }
53044
53045  /* check for correct dictionary identifier */
53046  if (state.mode === DICT) {
53047    dictid = 1; /* adler32(0, null, 0)*/
53048    /* dictid = adler32(dictid, dictionary, dictLength); */
53049    dictid = adler32(dictid, dictionary, dictLength, 0);
53050    if (dictid !== state.check) {
53051      return Z_DATA_ERROR;
53052    }
53053  }
53054  /* copy dictionary to window using updatewindow(), which will amend the
53055   existing dictionary if appropriate */
53056  ret = updatewindow(strm, dictionary, dictLength, dictLength);
53057  if (ret) {
53058    state.mode = MEM;
53059    return Z_MEM_ERROR;
53060  }
53061  state.havedict = 1;
53062  // Tracev((stderr, "inflate:   dictionary set\n"));
53063  return Z_OK;
53064}
53065
53066exports.inflateReset = inflateReset;
53067exports.inflateReset2 = inflateReset2;
53068exports.inflateResetKeep = inflateResetKeep;
53069exports.inflateInit = inflateInit;
53070exports.inflateInit2 = inflateInit2;
53071exports.inflate = inflate;
53072exports.inflateEnd = inflateEnd;
53073exports.inflateGetHeader = inflateGetHeader;
53074exports.inflateSetDictionary = inflateSetDictionary;
53075exports.inflateInfo = 'pako inflate (from Nodeca project)';
53076
53077/* Not implemented
53078exports.inflateCopy = inflateCopy;
53079exports.inflateGetDictionary = inflateGetDictionary;
53080exports.inflateMark = inflateMark;
53081exports.inflatePrime = inflatePrime;
53082exports.inflateSync = inflateSync;
53083exports.inflateSyncPoint = inflateSyncPoint;
53084exports.inflateUndermine = inflateUndermine;
53085*/
53086
53087
53088/***/ }
53088),
53089/* 936 */
53090/***/ (function(module, exports, __webpack_require__
vendor: 12,683 bytes, lines 53090-53440
53090) {
53091
53092"use strict";
53093
53094
53095// (C) 1995-2013 Jean-loup Gailly and Mark Adler
53096// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
53097//
53098// This software is provided 'as-is', without any express or implied
53099// warranty. In no event will the authors be held liable for any damages
53100// arising from the use of this software.
53101//
53102// Permission is granted to anyone to use this software for any purpose,
53103// including commercial applications, and to alter it and redistribute it
53104// freely, subject to the following restrictions:
53105//
53106// 1. The origin of this software must not be misrepresented; you must not
53107//   claim that you wrote the original software. If you use this software
53108//   in a product, an acknowledgment in the product documentation would be
53109//   appreciated but is not required.
53110// 2. Altered source versions must be plainly marked as such, and must not be
53111//   misrepresented as being the original software.
53112// 3. This notice may not be removed or altered from any source distribution.
53113
53114// See state defs from inflate.js
53115var BAD = 30;       /* got a data error -- remain here until reset */
53116var TYPE = 12;      /* i: waiting for type bits, including last-flag bit */
53117
53118/*
53119   Decode literal, length, and distance codes and write out the resulting
53120   literal and match bytes until either not enough input or output is
53121   available, an end-of-block is encountered, or a data error is encountered.
53122   When large enough input and output buffers are supplied to inflate(), for
53123   example, a 16K input buffer and a 64K output buffer, more than 95% of the
53124   inflate execution time is spent in this routine.
53125
53126   Entry assumptions:
53127
53128        state.mode === LEN
53129        strm.avail_in >= 6
53130        strm.avail_out >= 258
53131        start >= strm.avail_out
53132        state.bits < 8
53133
53134   On return, state.mode is one of:
53135
53136        LEN -- ran out of enough output space or enough available input
53137        TYPE -- reached end of block code, inflate() to interpret next block
53138        BAD -- error in block data
53139
53140   Notes:
53141
53142    - The maximum input bits used by a length/distance pair is 15 bits for the
53143      length code, 5 bits for the length extra, 15 bits for the distance code,
53144      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.
53145      Therefore if strm.avail_in >= 6, then there is enough input to avoid
53146      checking for available input while decoding.
53147
53148    - The maximum bytes that a single length/distance pair can output is 258
53149      bytes, which is the maximum length that can be coded.  inflate_fast()
53150      requires strm.avail_out >= 258 for each loop to avoid checking for
53151      output space.
53152 */
53153module.exports = function inflate_fast(strm, start) {
53154  var state;
53155  var _in;                    /* local strm.input */
53156  var last;                   /* have enough input while in < last */
53157  var _out;                   /* local strm.output */
53158  var beg;                    /* inflate()'s initial strm.output */
53159  var end;                    /* while out < end, enough space available */
53160//#ifdef INFLATE_STRICT
53161  var dmax;                   /* maximum distance from zlib header */
53162//#endif
53163  var wsize;                  /* window size or zero if not using window */
53164  var whave;                  /* valid bytes in the window */
53165  var wnext;                  /* window write index */
53166  // Use `s_window` instead `window`, avoid conflict with instrumentation tools
53167  var s_window;               /* allocated sliding window, if wsize != 0 */
53168  var hold;                   /* local strm.hold */
53169  var bits;                   /* local strm.bits */
53170  var lcode;                  /* local strm.lencode */
53171  var dcode;                  /* local strm.distcode */
53172  var lmask;                  /* mask for first level of length codes */
53173  var dmask;                  /* mask for first level of distance codes */
53174  var here;                   /* retrieved table entry */
53175  var op;                     /* code bits, operation, extra bits, or */
53176                              /*  window position, window bytes to copy */
53177  var len;                    /* match length, unused bytes */
53178  var dist;                   /* match distance */
53179  var from;                   /* where to copy match from */
53180  var from_source;
53181
53182
53183  var input, output; // JS specific, because we have no pointers
53184
53185  /* copy state to local variables */
53186  state = strm.state;
53187  //here = state.here;
53188  _in = strm.next_in;
53189  input = strm.input;
53190  last = _in + (strm.avail_in - 5);
53191  _out = strm.next_out;
53192  output = strm.output;
53193  beg = _out - (start - strm.avail_out);
53194  end = _out + (strm.avail_out - 257);
53195//#ifdef INFLATE_STRICT
53196  dmax = state.dmax;
53197//#endif
53198  wsize = state.wsize;
53199  whave = state.whave;
53200  wnext = state.wnext;
53201  s_window = state.window;
53202  hold = state.hold;
53203  bits = state.bits;
53204  lcode = state.lencode;
53205  dcode = state.distcode;
53206  lmask = (1 << state.lenbits) - 1;
53207  dmask = (1 << state.distbits) - 1;
53208
53209
53210  /* decode literals and length/distances until end-of-block or not enough
53211     input data or output space */
53212
53213  top:
53214  do {
53215    if (bits < 15) {
53216      hold += input[_in++] << bits;
53217      bits += 8;
53218      hold += input[_in++] << bits;
53219      bits += 8;
53220    }
53221
53222    here = lcode[hold & lmask];
53223
53224    dolen:
53225    for (;;) { // Goto emulation
53226      op = here >>> 24/*here.bits*/;
53227      hold >>>= op;
53228      bits -= op;
53229      op = (here >>> 16) & 0xff/*here.op*/;
53230      if (op === 0) {                          /* literal */
53231        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
53232        //        "inflate:         literal '%c'\n" :
53233        //        "inflate:         literal 0x%02x\n", here.val));
53234        output[_out++] = here & 0xffff/*here.val*/;
53235      }
53236      else if (op & 16) {                     /* length base */
53237        len = here & 0xffff/*here.val*/;
53238        op &= 15;                           /* number of extra bits */
53239        if (op) {
53240          if (bits < op) {
53241            hold += input[_in++] << bits;
53242            bits += 8;
53243          }
53244          len += hold & ((1 << op) - 1);
53245          hold >>>= op;
53246          bits -= op;
53247        }
53248        //Tracevv((stderr, "inflate:         length %u\n", len));
53249        if (bits < 15) {
53250          hold += input[_in++] << bits;
53251          bits += 8;
53252          hold += input[_in++] << bits;
53253          bits += 8;
53254        }
53255        here = dcode[hold & dmask];
53256
53257        dodist:
53258        for (;;) { // goto emulation
53259          op = here >>> 24/*here.bits*/;
53260          hold >>>= op;
53261          bits -= op;
53262          op = (here >>> 16) & 0xff/*here.op*/;
53263
53264          if (op & 16) {                      /* distance base */
53265            dist = here & 0xffff/*here.val*/;
53266            op &= 15;                       /* number of extra bits */
53267            if (bits < op) {
53268              hold += input[_in++] << bits;
53269              bits += 8;
53270              if (bits < op) {
53271                hold += input[_in++] << bits;
53272                bits += 8;
53273              }
53274            }
53275            dist += hold & ((1 << op) - 1);
53276//#ifdef INFLATE_STRICT
53277            if (dist > dmax) {
53278              strm.msg = 'invalid distance too far back';
53279              state.mode = BAD;
53280              break top;
53281            }
53282//#endif
53283            hold >>>= op;
53284            bits -= op;
53285            //Tracevv((stderr, "inflate:         distance %u\n", dist));
53286            op = _out - beg;                /* max distance in output */
53287            if (dist > op) {                /* see if copy from window */
53288              op = dist - op;               /* distance back in window */
53289              if (op > whave) {
53290                if (state.sane) {
53291                  strm.msg = 'invalid distance too far back';
53292                  state.mode = BAD;
53293                  break top;
53294                }
53295
53296// (!) This block is disabled in zlib defaults,
53297// don't enable it for binary compatibility
53298//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR
53299//                if (len <= op - whave) {
53300//                  do {
53301//                    output[_out++] = 0;
53302//                  } while (--len);
53303//                  continue top;
53304//                }
53305//                len -= op - whave;
53306//                do {
53307//                  output[_out++] = 0;
53308//                } while (--op > whave);
53309//                if (op === 0) {
53310//                  from = _out - dist;
53311//                  do {
53312//                    output[_out++] = output[from++];
53313//                  } while (--len);
53314//                  continue top;
53315//                }
53316//#endif
53317              }
53318              from = 0; // window index
53319              from_source = s_window;
53320              if (wnext === 0) {           /* very common case */
53321                from += wsize - op;
53322                if (op < len) {         /* some from window */
53323                  len -= op;
53324                  do {
53325                    output[_out++] = s_window[from++];
53326                  } while (--op);
53327                  from = _out - dist;  /* rest from output */
53328                  from_source = output;
53329                }
53330              }
53331              else if (wnext < op) {      /* wrap around window */
53332                from += wsize + wnext - op;
53333                op -= wnext;
53334                if (op < len) {         /* some from end of window */
53335                  len -= op;
53336                  do {
53337                    output[_out++] = s_window[from++];
53338                  } while (--op);
53339                  from = 0;
53340                  if (wnext < len) {  /* some from start of window */
53341                    op = wnext;
53342                    len -= op;
53343                    do {
53344                      output[_out++] = s_window[from++];
53345                    } while (--op);
53346                    from = _out - dist;      /* rest from output */
53347                    from_source = output;
53348                  }
53349                }
53350              }
53351              else {                      /* contiguous in window */
53352                from += wnext - op;
53353                if (op < len) {         /* some from window */
53354                  len -= op;
53355                  do {
53356                    output[_out++] = s_window[from++];
53357                  } while (--op);
53358                  from = _out - dist;  /* rest from output */
53359                  from_source = output;
53360                }
53361              }
53362              while (len > 2) {
53363                output[_out++] = from_source[from++];
53364                output[_out++] = from_source[from++];
53365                output[_out++] = from_source[from++];
53366                len -= 3;
53367              }
53368              if (len) {
53369                output[_out++] = from_source[from++];
53370                if (len > 1) {
53371                  output[_out++] = from_source[from++];
53372                }
53373              }
53374            }
53375            else {
53376              from = _out - dist;          /* copy direct from output */
53377              do {                        /* minimum length is three */
53378                output[_out++] = output[from++];
53379                output[_out++] = output[from++];
53380                output[_out++] = output[from++];
53381                len -= 3;
53382              } while (len > 2);
53383              if (len) {
53384                output[_out++] = output[from++];
53385                if (len > 1) {
53386                  output[_out++] = output[from++];
53387                }
53388              }
53389            }
53390          }
53391          else if ((op & 64) === 0) {          /* 2nd level distance code */
53392            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
53393            continue dodist;
53394          }
53395          else {
53396            strm.msg = 'invalid distance code';
53397            state.mode = BAD;
53398            break top;
53399          }
53400
53401          break; // need to emulate goto via "continue"
53402        }
53403      }
53404      else if ((op & 64) === 0) {              /* 2nd level length code */
53405        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];
53406        continue dolen;
53407      }
53408      else if (op & 32) {                     /* end-of-block */
53409        //Tracevv((stderr, "inflate:         end of block\n"));
53410        state.mode = TYPE;
53411        break top;
53412      }
53413      else {
53414        strm.msg = 'invalid literal/length code';
53415        state.mode = BAD;
53416        break top;
53417      }
53418
53419      break; // need to emulate goto via "continue"
53420    }
53421  } while (_in < last && _out < end);
53422
53423  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */
53424  len = bits >> 3;
53425  _in -= len;
53426  bits -= len << 3;
53427  hold &= (1 << bits) - 1;
53428
53429  /* update state and return */
53430  strm.next_in = _in;
53431  strm.next_out = _out;
53432  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));
53433  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));
53434  state.hold = hold;
53435  state.bits = bits;
53436  return;
53437};
53438
53439
53440/***/ }
53440),
53441/* 937 */
53442/***/ (function(module, exports, __webpack_require__) {
53443
53444"use strict";
53445
53446
53447// (C) 1995-2013 Jean-loup Gailly and Mark Adler
53448// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
53449//
53450// This software is provided 'as-is', without any express or implied
53451// warranty. In no event will the authors be held liable for any damages
53452// arising from the use of this software.
53453//
53454// Permission is granted to anyone to use this software for any purpose,
53455// including commercial applications, and to alter it and redistribute it
53456// freely, subject to the following restrictions:
53457//
53458// 1. The origin of this software must not be misrepresented; you must not
53459//   claim that you wrote the original software. If you use this software
53460//   in a product, an acknowledgment in the product documentation would be
53461//   appreciated but is not required.
53462// 2. Altered source versions must be plainly marked as such, and must not be
53463//   misrepresented as being the original software.
53464// 3. This notice may not be removed or altered from any source distribution.
53465
53466var utils = __webpack_require__(395
vendor: 11,496 bytes, lines 53466-53790
53466);
53467
53468var MAXBITS = 15;
53469var ENOUGH_LENS = 852;
53470var ENOUGH_DISTS = 592;
53471//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);
53472
53473var CODES = 0;
53474var LENS = 1;
53475var DISTS = 2;
53476
53477var lbase = [ /* Length codes 257..285 base */
53478  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
53479  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
53480];
53481
53482var lext = [ /* Length codes 257..285 extra */
53483  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
53484  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78
53485];
53486
53487var dbase = [ /* Distance codes 0..29 base */
53488  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
53489  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
53490  8193, 12289, 16385, 24577, 0, 0
53491];
53492
53493var dext = [ /* Distance codes 0..29 extra */
53494  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
53495  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,
53496  28, 28, 29, 29, 64, 64
53497];
53498
53499module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)
53500{
53501  var bits = opts.bits;
53502      //here = opts.here; /* table entry for duplication */
53503
53504  var len = 0;               /* a code's length in bits */
53505  var sym = 0;               /* index of code symbols */
53506  var min = 0, max = 0;          /* minimum and maximum code lengths */
53507  var root = 0;              /* number of index bits for root table */
53508  var curr = 0;              /* number of index bits for current table */
53509  var drop = 0;              /* code bits to drop for sub-table */
53510  var left = 0;                   /* number of prefix codes available */
53511  var used = 0;              /* code entries in table used */
53512  var huff = 0;              /* Huffman code */
53513  var incr;              /* for incrementing code, index */
53514  var fill;              /* index for replicating entries */
53515  var low;               /* low bits for current root entry */
53516  var mask;              /* mask for low root bits */
53517  var next;             /* next available space in table */
53518  var base = null;     /* base value table to use */
53519  var base_index = 0;
53520//  var shoextra;    /* extra bits table to use */
53521  var end;                    /* use base and extra for symbol > end */
53522  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */
53523  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */
53524  var extra = null;
53525  var extra_index = 0;
53526
53527  var here_bits, here_op, here_val;
53528
53529  /*
53530   Process a set of code lengths to create a canonical Huffman code.  The
53531   code lengths are lens[0..codes-1].  Each length corresponds to the
53532   symbols 0..codes-1.  The Huffman code is generated by first sorting the
53533   symbols by length from short to long, and retaining the symbol order
53534   for codes with equal lengths.  Then the code starts with all zero bits
53535   for the first code of the shortest length, and the codes are integer
53536   increments for the same length, and zeros are appended as the length
53537   increases.  For the deflate format, these bits are stored backwards
53538   from their more natural integer increment ordering, and so when the
53539   decoding tables are built in the large loop below, the integer codes
53540   are incremented backwards.
53541
53542   This routine assumes, but does not check, that all of the entries in
53543   lens[] are in the range 0..MAXBITS.  The caller must assure this.
53544   1..MAXBITS is interpreted as that code length.  zero means that that
53545   symbol does not occur in this code.
53546
53547   The codes are sorted by computing a count of codes for each length,
53548   creating from that a table of starting indices for each length in the
53549   sorted table, and then entering the symbols in order in the sorted
53550   table.  The sorted table is work[], with that space being provided by
53551   the caller.
53552
53553   The length counts are used for other purposes as well, i.e. finding
53554   the minimum and maximum length codes, determining if there are any
53555   codes at all, checking for a valid set of lengths, and looking ahead
53556   at length counts to determine sub-table sizes when building the
53557   decoding tables.
53558   */
53559
53560  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */
53561  for (len = 0; len <= MAXBITS; len++) {
53562    count[len] = 0;
53563  }
53564  for (sym = 0; sym < codes; sym++) {
53565    count[lens[lens_index + sym]]++;
53566  }
53567
53568  /* bound code lengths, force root to be within code lengths */
53569  root = bits;
53570  for (max = MAXBITS; max >= 1; max--) {
53571    if (count[max] !== 0) { break; }
53572  }
53573  if (root > max) {
53574    root = max;
53575  }
53576  if (max === 0) {                     /* no symbols to code at all */
53577    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */
53578    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;
53579    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;
53580    table[table_index++] = (1 << 24) | (64 << 16) | 0;
53581
53582
53583    //table.op[opts.table_index] = 64;
53584    //table.bits[opts.table_index] = 1;
53585    //table.val[opts.table_index++] = 0;
53586    table[table_index++] = (1 << 24) | (64 << 16) | 0;
53587
53588    opts.bits = 1;
53589    return 0;     /* no symbols, but wait for decoding to report error */
53590  }
53591  for (min = 1; min < max; min++) {
53592    if (count[min] !== 0) { break; }
53593  }
53594  if (root < min) {
53595    root = min;
53596  }
53597
53598  /* check for an over-subscribed or incomplete set of lengths */
53599  left = 1;
53600  for (len = 1; len <= MAXBITS; len++) {
53601    left <<= 1;
53602    left -= count[len];
53603    if (left < 0) {
53604      return -1;
53605    }        /* over-subscribed */
53606  }
53607  if (left > 0 && (type === CODES || max !== 1)) {
53608    return -1;                      /* incomplete set */
53609  }
53610
53611  /* generate offsets into symbol table for each length for sorting */
53612  offs[1] = 0;
53613  for (len = 1; len < MAXBITS; len++) {
53614    offs[len + 1] = offs[len] + count[len];
53615  }
53616
53617  /* sort symbols by length, by symbol order within each length */
53618  for (sym = 0; sym < codes; sym++) {
53619    if (lens[lens_index + sym] !== 0) {
53620      work[offs[lens[lens_index + sym]]++] = sym;
53621    }
53622  }
53623
53624  /*
53625   Create and fill in decoding tables.  In this loop, the table being
53626   filled is at next and has curr index bits.  The code being used is huff
53627   with length len.  That code is converted to an index by dropping drop
53628   bits off of the bottom.  For codes where len is less than drop + curr,
53629   those top drop + curr - len bits are incremented through all values to
53630   fill the table with replicated entries.
53631
53632   root is the number of index bits for the root table.  When len exceeds
53633   root, sub-tables are created pointed to by the root entry with an index
53634   of the low root bits of huff.  This is saved in low to check for when a
53635   new sub-table should be started.  drop is zero when the root table is
53636   being filled, and drop is root when sub-tables are being filled.
53637
53638   When a new sub-table is needed, it is necessary to look ahead in the
53639   code lengths to determine what size sub-table is needed.  The length
53640   counts are used for this, and so count[] is decremented as codes are
53641   entered in the tables.
53642
53643   used keeps track of how many table entries have been allocated from the
53644   provided *table space.  It is checked for LENS and DIST tables against
53645   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in
53646   the initial root table size constants.  See the comments in inftrees.h
53647   for more information.
53648
53649   sym increments through all symbols, and the loop terminates when
53650   all codes of length max, i.e. all codes, have been processed.  This
53651   routine permits incomplete codes, so another loop after this one fills
53652   in the rest of the decoding tables with invalid code markers.
53653   */
53654
53655  /* set up for code type */
53656  // poor man optimization - use if-else instead of switch,
53657  // to avoid deopts in old v8
53658  if (type === CODES) {
53659    base = extra = work;    /* dummy value--not used */
53660    end = 19;
53661
53662  } else if (type === LENS) {
53663    base = lbase;
53664    base_index -= 257;
53665    extra = lext;
53666    extra_index -= 257;
53667    end = 256;
53668
53669  } else {                    /* DISTS */
53670    base = dbase;
53671    extra = dext;
53672    end = -1;
53673  }
53674
53675  /* initialize opts for loop */
53676  huff = 0;                   /* starting code */
53677  sym = 0;                    /* starting code symbol */
53678  len = min;                  /* starting code length */
53679  next = table_index;              /* current table to fill in */
53680  curr = root;                /* current table index bits */
53681  drop = 0;                   /* current bits to drop from code for index */
53682  low = -1;                   /* trigger new sub-table when len > root */
53683  used = 1 << root;          /* use root table entries */
53684  mask = used - 1;            /* mask for comparing low */
53685
53686  /* check available table space */
53687  if ((type === LENS && used > ENOUGH_LENS) ||
53688    (type === DISTS && used > ENOUGH_DISTS)) {
53689    return 1;
53690  }
53691
53692  /* process all codes and make table entries */
53693  for (;;) {
53694    /* create table entry */
53695    here_bits = len - drop;
53696    if (work[sym] < end) {
53697      here_op = 0;
53698      here_val = work[sym];
53699    }
53700    else if (work[sym] > end) {
53701      here_op = extra[extra_index + work[sym]];
53702      here_val = base[base_index + work[sym]];
53703    }
53704    else {
53705      here_op = 32 + 64;         /* end of block */
53706      here_val = 0;
53707    }
53708
53709    /* replicate for those indices with low len bits equal to huff */
53710    incr = 1 << (len - drop);
53711    fill = 1 << curr;
53712    min = fill;                 /* save offset to next table */
53713    do {
53714      fill -= incr;
53715      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;
53716    } while (fill !== 0);
53717
53718    /* backwards increment the len-bit code huff */
53719    incr = 1 << (len - 1);
53720    while (huff & incr) {
53721      incr >>= 1;
53722    }
53723    if (incr !== 0) {
53724      huff &= incr - 1;
53725      huff += incr;
53726    } else {
53727      huff = 0;
53728    }
53729
53730    /* go to next symbol, update count, len */
53731    sym++;
53732    if (--count[len] === 0) {
53733      if (len === max) { break; }
53734      len = lens[lens_index + work[sym]];
53735    }
53736
53737    /* create new sub-table if needed */
53738    if (len > root && (huff & mask) !== low) {
53739      /* if first time, transition to sub-tables */
53740      if (drop === 0) {
53741        drop = root;
53742      }
53743
53744      /* increment past last table */
53745      next += min;            /* here min is 1 << curr */
53746
53747      /* determine length of next table */
53748      curr = len - drop;
53749      left = 1 << curr;
53750      while (curr + drop < max) {
53751        left -= count[curr + drop];
53752        if (left <= 0) { break; }
53753        curr++;
53754        left <<= 1;
53755      }
53756
53757      /* check for enough space */
53758      used += 1 << curr;
53759      if ((type === LENS && used > ENOUGH_LENS) ||
53760        (type === DISTS && used > ENOUGH_DISTS)) {
53761        return 1;
53762      }
53763
53764      /* point entry in root table to sub-table */
53765      low = huff & mask;
53766      /*table.op[low] = curr;
53767      table.bits[low] = root;
53768      table.val[low] = next - opts.table_index;*/
53769      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;
53770    }
53771  }
53772
53773  /* fill in remaining table entry if code is incomplete (guaranteed to have
53774   at most one remaining entry, since if the code is incomplete, the
53775   maximum code length that was allowed to get this far is one bit) */
53776  if (huff !== 0) {
53777    //table.op[next + huff] = 64;            /* invalid code marker */
53778    //table.bits[next + huff] = len - drop;
53779    //table.val[next + huff] = 0;
53780    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;
53781  }
53782
53783  /* set return parameters */
53784  //opts.table_index += used;
53785  opts.bits = root;
53786  return 0;
53787};
53788
53789
53790/***/ }
53790),
53791/* 938 */
53792/***/ (function(module, exports, __webpack_require__) {
53793
53794"use strict";
53795
53796
53797// (C) 1995-2013 Jean-loup Gailly and Mark Adler
53798// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
53799//
53800// This software is provided 'as-is', without any express or implied
53801// warranty. In no event will the authors be held liable for any damages
53802// arising from the use of this software.
53803//
53804// Permission is granted to anyone to use this software for any purpose,
53805// including commercial applications, and to alter it and redistribute it
53806// freely, subject to the following restrictions:
53807//
53808// 1. The origin of this software must not be misrepresented; you must not
53809//   claim that you wrote the original software. If you use this software
53810//   in a product, an acknowledgment in the product documentation would be
53811//   appreciated but is not required.
53812// 2. Altered source versions must be plainly marked as such, and must not be
53813//   misrepresented as being the original software.
53814// 3. This notice may not be removed or altered from any source distribution.
53815
53816module.exports = {
53817
53818  /* Allowed flush values; see deflate() and inflate() below for details */
53819  Z_NO_FLUSH:         0,
53820  Z_PARTIAL_FLUSH:    1,
53821  Z_SYNC_FLUSH:       2,
53822  Z_FULL_FLUSH:       3,
53823  Z_FINISH:           4,
53824  Z_BLOCK:            5,
53825  Z_TREES:            6,
53826
53827  /* Return codes for the compression/decompression functions. Negative values
53828  * are errors, positive values are used for special but normal events.
53829  */
53830  Z_OK:               0,
53831  Z_STREAM_END:       1,
53832  Z_NEED_DICT:        2,
53833  Z_ERRNO:           -1,
53834  Z_STREAM_ERROR:    -2,
53835  Z_DATA_ERROR:      -3,
53836  //Z_MEM_ERROR:     -4,
53837  Z_BUF_ERROR:       -5,
53838  //Z_VERSION_ERROR: -6,
53839
53840  /* compression levels */
53841  Z_NO_COMPRESSION:         0,
53842  Z_BEST_SPEED:             1,
53843  Z_BEST_COMPRESSION:       9,
53844  Z_DEFAULT_COMPRESSION:   -1,
53845
53846
53847  Z_FILTERED:               1,
53848  Z_HUFFMAN_ONLY:           2,
53849  Z_RLE:                    3,
53850  Z_FIXED:                  4,
53851  Z_DEFAULT_STRATEGY:       0,
53852
53853  /* Possible values of the data_type field (though see inflate()) */
53854  Z_BINARY:                 0,
53855  Z_TEXT:                   1,
53856  //Z_ASCII:                1, // = Z_TEXT (deprecated)
53857  Z_UNKNOWN:                2,
53858
53859  /* The deflate compression method */
53860  Z_DEFLATED:               8
53861  //Z_NULL:                 null // Use -1 or null inline, depending on var type
53862};
53863
53864
53865/***/ }),
53866/* 939 */,
53867/* 940 */,
53868/* 941 */,
53869/* 942 */,
53870/* 943 */,
53871/* 944 */
53872/***/ (function(module, __webpack_exports__, __webpack_require__) {
53873
53874"use strict";
53875
53876// EXPORTS
53877__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ AudioEnginebabel_target_legacy_AudioEngine; });
53878
53879// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
53880var es_symbolbabel_target_legacy = __webpack_require__(71);
53881
53882// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
53883var es_array_concatbabel_target_legacy = __webpack_require__(75);
53884
53885// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
53886var es_array_filterbabel_target_legacy = __webpack_require__(70);
53887
53888// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js?babel-target=legacy
53889var es_array_findbabel_target_legacy = __webpack_require__(182);
53890
53891// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
53892var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
53893
53894// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js?babel-target=legacy
53895var es_array_includesbabel_target_legacy = __webpack_require__(124);
53896
53897// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js?babel-target=legacy
53898var es_array_iteratorbabel_target_legacy = __webpack_require__(138);
53899
53900// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
53901var es_array_mapbabel_target_legacy = __webpack_require__(77);
53902
53903// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js?babel-target=legacy
53904var es_array_reducebabel_target_legacy = __webpack_require__(162);
53905
53906// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
53907var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
53908
53909// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
53910var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
53911
53912// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
53913var es_object_keysbabel_target_legacy = __webpack_require__(89);
53914
53915// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
53916var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
53917
53918// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.js?babel-target=legacy
53919var es_promisebabel_target_legacy = __webpack_require__(187);
53920
53921// EXTERNAL MODULE: ./node_modules/core-js/modules/es.reflect.construct.js?babel-target=legacy
53922var es_reflect_constructbabel_target_legacy = __webpack_require__(462);
53923
53924// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js?babel-target=legacy
53925var es_regexp_to_stringbabel_target_legacy = __webpack_require__(156);
53926
53927// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.ends-with.js?babel-target=legacy
53928var es_string_ends_withbabel_target_legacy = __webpack_require__(266);
53929
53930// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js?babel-target=legacy
53931var es_string_iteratorbabel_target_legacy = __webpack_require__(237);
53932
53933// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
53934var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
53935
53936// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js?babel-target=legacy
53937var web_dom_collections_iteratorbabel_target_legacy = __webpack_require__(257);
53938
53939// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
53940var slicedToArraybabel_target_legacy = __webpack_require__(8);
53941var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
53942
53943// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
53944var toConsumableArraybabel_target_legacy = __webpack_require__(37);
53945var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
53946
53947// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
53948var definePropertybabel_target_legacy = __webpack_require__(15);
53949var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
53950
53951// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
53952var regenerator_babel_target_legacy = __webpack_require__(6);
53953var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
53954
53955// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
53956var runtimebabel_target_legacy = __webpack_require__(60);
53957
53958// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
53959var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
53960var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
53961
53962// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js?babel-target=legacy
53963var classCallCheckbabel_target_legacy = __webpack_require__(233);
53964var classCallCheckbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classCallCheckbabel_target_legacy);
53965
53966// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js?babel-target=legacy
53967var createClassbabel_target_legacy = __webpack_require__(234);
53968var createClassbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(createClassbabel_target_legacy);
53969
53970// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inherits.js?babel-target=legacy
53971var inheritsbabel_target_legacy = __webpack_require__(955);
53972var inheritsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(inheritsbabel_target_legacy);
53973
53974// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js?babel-target=legacy
53975var possibleConstructorReturnbabel_target_legacy = __webpack_require__(956);
53976var possibleConstructorReturnbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturnbabel_target_legacy);
53977
53978// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/getPrototypeOf.js?babel-target=legacy
53979var getPrototypeOfbabel_target_legacy = __webpack_require__(791);
53980var getPrototypeOfbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOfbabel_target_legacy);
53981
53982// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
53983var preact_modulebabel_target_legacy = __webpack_require__(1);
53984
53985// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js?babel-target=legacy
53986var es_array_index_ofbabel_target_legacy = __webpack_require__(265);
53987
53988// CONCATENATED MODULE: ./src/lib/capabilities.ts?babel-target=legacy
53989
53990var supportsMSE = function supportsMSE() {
53991  return "MediaSource" in window || "WebKitMediaSource" in window;
53992};
53993var isSafari = function isSafari() {
53994  return navigator.vendor && navigator.vendor.indexOf("Apple") > -1 && navigator.userAgent && navigator.userAgent.indexOf("CriOS") === -1 && navigator.userAgent.indexOf("FxiOS") === -1;
53995};
53996// EXTERNAL MODULE: ./node_modules/@alugha/ima/lib/esm?babel-target=legacy + 2 modules
53997var esm_babel_target_legacy = __webpack_require__(334);
53998
53999// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
54000var loggerbabel_target_legacy = __webpack_require__(10);
54001
54002// CONCATENATED MODULE: ./src/lib/audioEngine.ts?babel-target=legacy
54003
54004
54005
54006
54007
54008
54009
54010
54011
54012
54013
54014
54015
54016function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
54017
54018function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
54018 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54019
54020
54021
54022
54023var getDash = /*#__PURE__*/function () {
54024  var _ref = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
54025    var w;
54026    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
54027      while (1) {
54028        switch (_context.prev = _context.next) {
54029          case 0:
54030            w = window;
54031
54032            if (w.dashjs) {
54033              _context.next = 4;
54034              break;
54035            }
54036
54037            _context.next = 4;
54038            return Object(esm_babel_target_legacy["b" /* loadScript */])("//cdn.dashjs.org/latest/dash.mediaplayer.min.js");
54039
54040          case 4:
54041            if (w.dashjs) {
54042              _context.next = 6;
54043              break;
54044            }
54045
54046            throw new Error("Could not load dash");
54047
54048          case 6:
54049            return _context.abrupt("return", w.dashjs);
54050
54051          case 7:
54052          case "end":
54053            return _context.stop();
54054        }
54055      }
54056    }, _callee);
54057  }));
54058
54059  return function getDash() {
54060    return _ref.apply(this, arguments);
54061  };
54062}();
54063var getHls = /*#__PURE__*/function () {
54064  var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
54065    var w;
54066    return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
54067      while (1) {
54068        switch (_context2.prev = _context2.next) {
54069          case 0:
54070            w = window;
54071
54072            if (w.Hls) {
54073              _context2.next = 4;
54074              break;
54075            }
54076
54077            _context2.next = 4;
54078            return Object(esm_babel_target_legacy["b" /* loadScript */])("//cdn.jsdelivr.net/npm/hls.js@latest/dist/hls.light.js");
54079
54080          case 4:
54081            if (w.Hls) {
54082              _context2.next = 6;
54083              break;
54084            }
54085
54086            throw new Error("Could not load hls");
54087
54088          case 6:
54089            return _context2.abrupt("return", w.Hls);
54090
54091          case 7:
54092          case "end":
54093            return _context2.stop();
54094        }
54095      }
54096    }, _callee2);
54097  }));
54098
54099  return function getHls() {
54100    return _ref2.apply(this, arguments);
54101  };
54102}();
54103var bindDash = /*#__PURE__*/function () {
54104  var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee3(audio, stream, onError) {
54105    var _yield$getDash, MediaPlayer, dash;
54106
54107    return regenerator_babel_target_legacy_default.a.wrap(function _callee3$(_context3) {
54108      while (1) {
54109        switch (_context3.prev = _context3.next) {
54110          case 0:
54111            if (!(!audio || !supportsMSE())) {
54112              _context3.next = 2;
54113              break;
54114            }
54115
54116            return _context3.abrupt("return");
54117
54118          case 2:
54119            _context3.prev = 2;
54120            _context3.next = 5;
54121            return getDash();
54122
54123          case 5:
54124            _yield$getDash = _context3.sent;
54125            MediaPlayer = _yield$getDash.MediaPlayer;
54126            dash = MediaPlayer().create();
54127
54128            if (onError) {
54129              dash.on(MediaPlayer.events.ERROR, onError);
54130            }
54131
54132            dash.initialize(audio, stream.url, false);
54133            return _context3.abrupt("return", dash);
54134
54135          case 13:
54136            _context3.prev = 13;
54137            _context3.t0 = _context3["catch"](2);
54138            Object(loggerbabel_target_legacy["e" /* warn */])("Couldn't load DASH library");
54139            return _context3.abrupt("return");
54140
54141          case 17:
54142          case "end":
54143            return _context3.stop();
54144        }
54145      }
54146    }, _callee3, null, [[2, 13]]);
54147  }));
54148
54149  return function bindDash(_x, _x2, _x3) {
54150    return _ref3.apply(this, arguments);
54151  };
54152}();
54153var justEnabled = function justEnabled(streams) {
54154  return streams.filter(function (stream) {
54155    return !stream.disabled;
54156  });
54157};
54158var reEnableAll = function reEnableAll(streams) {
54159  return streams.map(function (stream) {
54160    return _objectSpread(_objectSpread({}, stream), {}, {
54161      disabled: false
54162    });
54163  });
54164};
54165var audioEnginebabel_target_legacy_canPlayNativeM3U = function canPlayNativeM3U(audio) {
54166  if (!audio) {
54167    return false;
54168  }
54169
54170  try {
54171    var canplay = audio.canPlayType("application/vnd.apple.mpegurl");
54172    return canplay === "probably" || canplay === "maybe";
54173  } catch (err) {
54174    Object(loggerbabel_target_legacy["e" /* warn */])("canplaytype error", err);
54175    return false;
54176  }
54177};
54178var bindHls = /*#__PURE__*/function () {
54179  var _ref4 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee4(audio, stream, onError) {
54180    var Hls, hls;
54181    return regenerator_babel_target_legacy_default.a.wrap(function _callee4$(_context4) {
54182      while (1) {
54183        switch (_context4.prev = _context4.next) {
54184          case 0:
54185            if (audio) {
54186              _context4.next = 2;
54187              break;
54188            }
54189
54190            return _context4.abrupt("return", []);
54191
54192          case 2:
54193            if (!audioEnginebabel_target_legacy_canPlayNativeM3U(audio)) {
54194              _context4.next = 6;
54195              break;
54196            }
54197
54198            Object(loggerbabel_target_legacy["c" /* log */])("can play native m3u");
54199            audio.src = stream.url;
54200            return _context4.abrupt("return", ["nativehls"]);
54201
54202          case 6:
54203            if (supportsMSE()) {
54204              _context4.next = 9;
54205              break;
54206            }
54207
54208            Object(loggerbabel_target_legacy["c" /* log */])("No media source extension support");
54209            return _context4.abrupt("return", []);
54210
54211          case 9:
54212            _context4.prev = 9;
54213            _context4.next = 12;
54214            return getHls();
54215
54216          case 12:
54217            Hls = _context4.sent;
54218            Object(loggerbabel_target_legacy["c" /* log */])(Hls.isSupported() ? "HLS loaded" : "HLS not loaded");
54219            _context4.next = 19;
54220            break;
54221
54222          case 16:
54223            _context4.prev = 16;
54224            _context4.t0 = _context4["catch"](9);
54225            Object(loggerbabel_target_legacy["e" /* warn */])("Couldn't load HLS library");
54226
54227          case 19:
54228            if (!(!Hls || !Hls.isSupported())) {
54229              _context4.next = 21;
54230              break;
54231            }
54232
54233            return _context4.abrupt("return", []);
54234
54235          case 21:
54236            hls = new Hls();
54237            hls.attachMedia(audio);
54238            hls.loadSource(stream.url);
54239            hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
54240              Object(loggerbabel_target_legacy["c" /* log */])("HLS manifest loaded, found ", data);
54241            });
54242
54243            if (onError) {
54244              hls.on(Hls.Events.ERROR, onError);
54245            }
54246
54247            return _context4.abrupt("return", ["hls", hls]);
54248
54249          case 27:
54250          case "end":
54251            return _context4.stop();
54252        }
54253      }
54254    }, _callee4, null, [[9, 16]]);
54255  }));
54256
54257  return function bindHls(_x4, _x5, _x6) {
54258    return _ref4.apply(this, arguments);
54259  };
54260}();
54261// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js?babel-target=legacy
54262var es_regexp_execbabel_target_legacy = __webpack_require__(93);
54263
54264// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js?babel-target=legacy
54265var es_string_matchbabel_target_legacy = __webpack_require__(302);
54266
54267// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js?babel-target=legacy
54268var es_string_replacebabel_target_legacy = __webpack_require__(269);
54269
54270// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.search.js?babel-target=legacy
54271var es_string_searchbabel_target_legacy = __webpack_require__(254);
54272
54273// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js?babel-target=legacy
54274var es_string_splitbabel_target_legacy = __webpack_require__(252);
54275
54276// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js?babel-target=legacy
54277var es_string_trimbabel_target_legacy = __webpack_require__(303);
54278
54279// CONCATENATED MODULE: ./src/lib/Playlist/m3u.js?babel-target=legacy
54280
54281
54282
54283
54284
54285
54286
54287
54288// Generated by CoffeeScript 2.3.2
54289// http://gonze.com/playlists/playlist-format-survey.html#M3U
54290var COMMENT_RE, EXTENDED, comments, empty, extended, m3ubabel_target_legacy_parse, simple;
54291EXTENDED = '#EXTM3U';
54292COMMENT_RE = /:(?:(-?\d+),(.+)\s*-\s*(.+)|(.+))\n(.+)/; // #EXTINF:822,Iron Maiden - Rime of the Ancient Mariner
54293
54294extended = function extended(line) {
54295  var match;
54296  match = line.match(COMMENT_RE);
54297
54298  if (match && match.length === 6) {
54299    return {
54300      length: match[1] || 0,
54301      artist: match[2] || '',
54302      title: match[4] || match[3],
54303      file: match[5].trim()
54304    };
54305  }
54306};
54307
54308simple = function simple(string) {
54309  return {
54310    file: string.trim()
54311  };
54312};
54313
54314empty = function empty(line) {
54315  return !!line.trim().length;
54316};
54317
54318comments = function comments(line) {
54319  return line[0] !== '#';
54320};
54321
54322m3ubabel_target_legacy_parse = function parse(playlist) {
54323  var firstNewline;
54324  playlist = playlist.replace(/\r/g, '');
54325  firstNewline = playlist.search('\n');
54326
54327  if (playlist.substr(0, firstNewline) === EXTENDED) {
54328    return playlist.substr(firstNewline).split('\n#').filter(empty).map(extended);
54329  } else {
54330    return playlist.split('\n').filter(empty).filter(comments).map(simple);
54331  }
54332};
54333
54334var M3U = {
54335  name: 'm3u',
54336  parse: m3ubabel_target_legacy_parse
54337};
54338// CONCATENATED MODULE: ./src/lib/Playlist/pls.js?babel-target=legacy
54339
54340
54341
54342
54343
54344
54345// Generated by CoffeeScript 2.3.2
54346var LISTING_RE, plsbabel_target_legacy_parse;
54347LISTING_RE = /(file|title|length)(\d+)=(.+)\r?/i;
54348
54349plsbabel_target_legacy_parse = function parse(playlist) {
54350  var _, i, index, key, len, line, match, ref, tracks, value;
54351
54352  tracks = [];
54353  ref = playlist.trim().split('\n');
54354
54355  for (i = 0, len = ref.length; i < len; i++) {
54356    line = ref[i];
54357    match = line.match(LISTING_RE);
54358
54359    if (match && match.length === 4) {
54360      var _match = match;
54361
54362      var _match2 = slicedToArraybabel_target_legacy_default()(_match, 4);
54363
54364      _ = _match2[0];
54365      key = _match2[1];
54366      index = _match2[2];
54367      value = _match2[3];
54368
54369      if (!tracks[index]) {
54370        tracks[index] = {};
54371      }
54372
54373      tracks[index][key.toLowerCase()] = value;
54374    }
54375  }
54376
54377  return tracks.filter(function (track) {
54378    return track != null;
54379  });
54380};
54381
54382var PLS = {
54383  name: 'pls',
54384  parse: plsbabel_target_legacy_parse
54385};
54386// CONCATENATED MODULE: ./src/lib/Playlist/index.ts?babel-target=legacy
54387
54388
54389// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
54390var utilsbabel_target_legacy = __webpack_require__(48);
54391
54392// EXTERNAL MODULE: ./src/lib/fetchTimeout.js?babel-target=legacy + 1 modules
54393var fetchTimeoutbabel_target_legacy = __webpack_require__(127);
54394
54395// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
54396var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
54397var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
54398
54399// EXTERNAL MODULE: ./src/components/TransportControls/index.ts?babel-target=legacy + 11 modules
54400var TransportControlsbabel_target_legacy = __webpack_require__(784);
54401
54402// CONCATENATED MODULE: ./src/components/DebugController/DebugController.tsx?babel-target=legacy
54403
54404
54405
54406var DebugControllerbabel_target_legacy_DebugController = function DebugController(_ref) {
54407  var playerType = _ref.playerType,
54408      currentStream = _ref.currentStream,
54409      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["playerType", "currentStream"]);
54410
54411  return Object(preact_modulebabel_target_legacy["h"])("div", null, Object(preact_modulebabel_target_legacy["h"])(TransportControlsbabel_target_legacy["a" /* TransportControls */], props), Object(preact_modulebabel_target_legacy["h"])("p", null, "Player: ", Object(preact_modulebabel_target_legacy["h"])("span", {
54412    id: "playerType"
54413  }, playerType)), currentStream && Object(preact_modulebabel_target_legacy["h"])("p", null, "Stream
54413: ", Object(preact_modulebabel_target_legacy["h"])("span", {
54414    id: "streamUrl"
54415  }, currentStream.url), ". Format:", " ", Object(preact_modulebabel_target_legacy["h"])("span", {
54416    id: "streamFormat"
54417  }, currentStream.format)));
54418};
54419/* harmony default export */ var DebugControllerbabel_target_legacy = (DebugControllerbabel_target_legacy_DebugController);
54420// CONCATENATED MODULE: ./src/components/DebugController/index.ts?babel-target=legacy
54421
54422// EXTERNAL MODULE: ./node_modules/lodash.isequal?babel-target=legacy
54423var lodash_isequal_babel_target_legacy = __webpack_require__(957);
54424var lodash_isequal_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal_babel_target_legacy);
54425
54426// CONCATENATED MODULE: ./src/components/AudioEngine/AudioEngine.tsx?babel-target=legacy
54427
54428
54429
54430
54431
54432
54433
54434
54435
54436
54437
54438
54439
54440
54441
54442
54443
54444
54445
54446
54447
54448
54449
54450
54451
54452
54453
54454
54455
54456
54457
54458
54459function AudioEnginebabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
54460
54461function AudioEnginebabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { AudioEnginebabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { AudioEnginebabel_target_legacy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
54462
54463function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOfbabel_target_legacy_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOfbabel_target_legacy_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturnbabel_target_legacy_default()(this, result); }; }
54464
54465function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
54466
54467
54468
54469
54470
54471
54472
54473
54474
54475var RETRY_COUNT = 4;
54476var BACKOFF = true;
54477var INITIAL_STATE = {
54478  filteredStreams: [],
54479  playlistStreams: [],
54480  playerType: "none"
54481};
54482var specialStreams = ["hls", "dash", "pls", "x-scpls", "m3u"];
54483
54484var isNormal = function isNormal(stream) {
54485  return !specialStreams.includes(stream.format);
54486};
54487
54488var AudioEnginebabel_target_legacy_AudioEngine = /*#__PURE__*/function (_Component) {
54489  inheritsbabel_target_legacy_default()(AudioEngine, _Component);
54490
54491  var _super = _createSuper(AudioEngine);
54492
54493  function AudioEngine() {
54494    var _this;
54495
54496    classCallCheckbabel_target_legacy_default()(this, AudioEngine);
54497
54498    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
54499      args[_key] = arguments[_key];
54500    }
54501
54502    _this = _super.call.apply(_super, [this].concat(args));
54503    _this.audioKey = 0;
54504    _this.state = INITIAL_STATE;
54505    _this.audio = void 0;
54506    _this.hls = void 0;
54507    _this.dash = void 0;
54508    _this.hlsStream = void 0;
54509    _this.dashStream = void 0;
54510    _this.stallTimeout = void 0;
54511    _this.failCount = 0;
54512    _this.tryToPlay = false;
54513    _this.adPlayer = void 0;
54514
54515    _this.seek = function (time) {
54516      if (!_this.audio) {
54517        return;
54518      }
54519
54520      _this.setState({
54521        time: time
54522      });
54523
54524      if (_this.dash && _this.dash.getDVRWindowSize()) {
54525        var live = _this.audio.currentTime - (_this.state.time || 0);
54526        _this.audio.currentTime = live + time;
54527        return;
54528      }
54529
54530      _this.audio.currentTime = time;
54531    };
54532
54533    _this.skipBack = function () {
54534      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
54535
54536      if (!_this.audio) {
54537        return;
54538      }
54539
54540      _this.audio.currentTime = Math.max(_this.audio.currentTime - amount, _this.state.start || 0);
54541    };
54542
54543    _this.skipForward = function () {
54544      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 30;
54545
54546      if (!_this.audio) {
54547        return;
54548      } // if (this.dash) {
54549      //     this.dash.seek(
54550      //         Math.min(
54551      //             this.audio.currentTime + amount,
54552      //             this.dash.duration() - 5
54553      //         )
54554      //     );
54555      //     return;
54556      // }
54557
54558
54559      _this.audio.currentTime = Math.min(_this.audio.currentTime + amount, _this.audio.duration - 5);
54560    };
54561
54562    _this.skipToStart = function () {
54563      if (!_this.audio) {
54564        return;
54565      }
54566
54567      if (_this.dash) {
54568        _this.dash.seek(0);
54569
54570        return;
54571      }
54572
54573      _this.audio.currentTime = 0;
54574    };
54575
54576    _this.skipToEnd = function () {
54577      if (!_this.audio) {
54578        console.log("No audio");
54579        return;
54580      }
54581
54582      if (_this.dash) {
54583        console.log("Dash seek");
54584
54585        _this.dash.seek(_this.dash.duration());
54586      } else if (_this.audio.duration) {
54587        console.log("this.audio.duration", _this.audio.duration);
54588        _this.audio.currentTime = _this.audio.duration;
54589      }
54590    };
54591
54592    _this.toggleAudio = function (play) {
54593      Object(loggerbabel_target_legacy["c" /* log */])("Toggle audio", play);
54594
54595      if (!play) {
54596        if (!_this.props.isOnDemand && !_this.hls && !_this.dash) _this.audioKey += 1; // Force a new audio element to be created so that the stream is reloaded and begins from live
54597
54598        _this.pauseAudio();
54599
54600        return;
54601      }
54602
54603      _this.playAudio();
54604    };
54605
54606    _this.brieflyMute = function () {
54607      if (!_this.audio) {
54608        return;
54609      }
54610
54611      Object(loggerbabel_target_legacy["c" /* log */])("Briefly muting");
54612      _this.audio.muted = true;
54613      window.setTimeout(function () {
54614        Object(loggerbabel_target_legacy["c" /* log */])("Unmuting");
54615
54616        if (_this.audio) {
54617          _this.audio.muted = false;
54618        }
54619      }, 500);
54620    };
54621
54622    _this.pauseAudio = function () {
54623      if (!_this.audio) {
54624        return;
54625      }
54626
54627      Object(loggerbabel_target_legacy["c" /* log */])("pause audio");
54628
54629      _this.audio.pause();
54630    };
54631
54632    _this.playAudio = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
54633      var _this$hls, promise;
54634
54635      return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
54636        while (1) {
54637          switch (_context.prev = _context.next) {
54638            case 0:
54639              if (_this.audio) {
54640                _context.next = 2;
54641                break;
54642              }
54643
54644              return _context.abrupt("return");
54645
54646            case 2:
54647              _context.prev = 2;
54648              Object(loggerbabel_target_legacy["c" /* log */])("play audio");
54649
54650              if (!!_this.hls && _this.props.isOnDemand) {
54651                _this.audio.currentTime = ((_this$hls = _this.hls) === null || _this$hls === void 0 ? void 0 : _this$hls.liveSyncPosition) || 0;
54652              }
54653
54654              promise = _this.audio.play();
54655
54656              if (!promise) {
54657                _context.next = 9;
54658                break;
54659              }
54660
54661              _context.next = 9;
54662              return Object(fetchTimeoutbabel_target_legacy["c" /* timeoutPromise */])(promise, 5000, "Audio playback failed");
54663
54664            case 9:
54665              _context.next = 15;
54666              break;
54667
54668            case 11:
54669              _context.prev = 11;
54670              _context.t0 = _context["catch"](2);
54671              Object(loggerbabel_target_legacy["b" /* error */])("Playback error", _context.t0);
54672
54673              _this.reloadAudio();
54674
54675            case 15:
54676            case "end":
54677              return _context.stop();
54678          }
54679        }
54680      }, _callee, null, [[2, 11]]);
54681    }));
54682
54683    _this.adPlayerRequestPause = function () {
54684      _this.setState({
54685        disableControls: true
54686      });
54687
54688      _this.pauseAudio();
54689    };
54690
54691    _this.adPlayerRequestPlay = function () {
54692      _this.setState({
54693        disableControls: false
54694      });
54695
54696      _this.playAudio();
54697    };
54698
54699    _this.reloadAudio = function () {
54700      Object(loggerbabel_target_legacy["c" /* log */])("Reload audio");
54701
54702      if (_this.state.playerType === "dash" && _this.dash && _this.dashStream) {
54703        _this.dash.attachSource(_this.dashStream.url);
54704      } else if (_this.state.playerType === "hls" && _this.hls) {
54705        _this.hls.startLoad();
54706      } else if (_this.audio) {
54707        _this.tryToPlay = true;
54708
54709        _this.setupStreams(_this.props.streams);
54710      }
54711
54712      _this.handleStall();
54713    };
54714
54715    _this.decorateURL = function (url) {
54716      return Object(utilsbabel_target_legacy["b" /* decorateUrl */])(url, [["___cb", Object(utilsbabel_target_legacy["h" /* getCachebuster */])()]]);
54717    };
54718
54719    _this.onTimeUpdated = function (status) {
54720      if (_this.props.onTimeUpdated) {
54721        _this.props.onTimeUpdated(status);
54722      }
54723    };
54724
54725    _this.onStreamUpdated = function (info) {
54726      if (_this.props.onStreamUpdated) {
54727        _this.props.onStreamUpdated(info);
54728      }
54729
54730      Object(loggerbabel_target_legacy["a" /* debug */])("Stream", info);
54731    };
54732
54733    _this.loadPlaylists = /*#__PURE__*/function () {
54734      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2(streams) {
54735        var playlistStreams;
54736        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
54737          while (1) {
54738            switch (_context2.prev = _context2.next) {
54739              case 0:
54740                _context2.next = 2;
54741                return Promise.all(streams.filter(function (stream) {
54742                  return ["pls", "m3u", "x-scpls"].includes(stream.format);
54743                }).map(_this.loadPlaylist));
54744
54745              case 2:
54746                playlistStreams = _context2.sent.reduce(function (acc, val) {
54747                  return acc.concat(val);
54748                }, []);
54749
54750                // Array.flat()
54751                _this.setState({
54752                  playlistStreams: playlistStreams
54753                }, function () {
54754                  if (_this.state.playerType === "dash" && _this.dash && _this.audio) {
54755                    _this.dash.attachView(_this.audio);
54756                  }
54757                });
54758
54759              case 4:
54760              case "end":
54761                return _context2.stop();
54762            }
54763          }
54764        }, _callee2);
54765      }));
54766
54767      return function (_x) {
54768        return _ref2.apply(this, arguments);
54769      };
54770    }();
54771
54772    _this.disableMatchingStream = function (stream) {
54773      if (!_this.state.stream || stream.url !== _this.state.stream.url) {
54774        return stream;
54775      }
54776
54777      return AudioEnginebabel_target_legacy_objectSpread(AudioEnginebabel_target_legacy_objectSpread({}, stream), {}, {
54778        disabled: true
54779      });
54780    };
54781
54782    _this.disableCurrentStream = function () {
54783      _this.tryToPlay = true;
54784
54785      if (!_this.state.stream) {
54786        Object(loggerbabel_target_legacy["e" /* warn */])("No current stream");
54787        return;
54788      }
54789
54790      if (_this.state.filteredStreams.length + _this.state.playlistStreams.length === 1) {
54791        Object(loggerbabel_target_legacy["e" /* warn */])("Only one track, so not disabling");
54792
54793        _this.reloadAudio();
54794
54795        return;
54796      }
54797
54798      var filteredStreams = _this.state.filteredStreams.map(_this.disableMatchingStream);
54799
54800      var playlistStreams = _this.state.playlistStreams.map(_this.disableMatchingStream);
54801
54802      if (_this.enabledNativeStreams().length === 0) {
54803        Object(loggerbabel_target_legacy["c" /* log */])("Reenabling all");
54804        filteredStreams = reEnableAll(filteredStreams);
54805        playlistStreams = reEnableAll(playlistStreams);
54806      }
54807
54808      if (_this.audio) {
54809        _this.audio.autoplay = true;
54810      }
54811
54812      Object(loggerbabel_target_legacy["c" /* log */])("New stream list: ", _this.enabledNativeStreams());
54813
54814      _this.setState({
54815        playlistStreams: playlistStreams,
54816        filteredStreams: filteredStreams
54817      });
54818    };
54819
54820    _this.setFatal = function (status) {
54821      _this.setState({
54822        fatal: status
54823      }, function () {
54824        if (_this.props.onStreamError) {
54825          _this.props.onStreamError(status);
54826        }
54827      });
54828    };
54829
54830    _this.handleFatalError = function () {
54831      Object(loggerbabel_target_legacy["e" /* warn */])("Handling fatal error");
54832
54833      if (_this.state.playerType !== "native") {
54834        Object(loggerbabel_target_legacy["a" /* debug */])("Not a native stream");
54835        Object(loggerbabel_target_legacy["e" /* warn */])("SOUND OF SILENCE");
54836
54837        _this.setFatal(true);
54838
54839        return;
54840      }
54841
54842      if (_this.enabledNativeStreams().length > 1) {
54843        Object(loggerbabel_target_legacy["e" /* warn */])("More than one stream enabled, so disabling");
54844
54845        _this.disableCurrentStream();
54846      } else {
54847        _this.setFatal(true);
54848
54849        Object(loggerbabel_target_legacy["e" /* warn */])("SOUND OF SILENCE");
54850      }
54851    };
54852
54853    _this.handleNetworkError = function (err) {
54854      Object(loggerbabel_target_legacy["e" /* warn */])("Network error", err);
54855
54856      _this.handleStall(err);
54857    };
54858
54859    _this.incrementFail = function () {
54860      _this.failCount++;
54861      Object(loggerbabel_target_legacy["c" /* log */])("Failed again", _this.failCount);
54862    };
54863
54864    _this.handleError = function (event) {
54865      var audio = _this.audio;
54866      Object(loggerbabel_target_legacy["c" /* log */])("Fail count", _this.failCount);
54867      Object(loggerbabel_target_legacy["e" /* warn */])("Stream error", event, audio.error);
54868
54869      if (!audio || !audio.error) {
54870        if (event.currentTarget.tagName === "SOURCE") {
54871          _this.handleNetworkError(event);
54872        }
54873
54874        return;
54875      }
54876
54877      switch (audio.error.code) {
54878        case MediaError.MEDIA_ERR_DECODE:
54879        case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:
54880          _this.handleFatalError();
54881
54882          break;
54883
54884        case MediaError.MEDIA_ERR_NETWORK:
54885        case MediaError.MEDIA_ERR_ABORTED:
54886          _this.handleNetworkError(event);
54887
54888          break;
54889
54890        default:
54891          Object(loggerbabel_target_legacy["e" /* warn */])("Unknown error", audio.error);
54892      }
54893    };
54894
54895    _this.loadPlaylist = /*#__PURE__*/function () {
54896      var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee3(playlist) {
54897        var Parser, req, pls, result;
54898        return regenerator_babel_target_legacy_default.a.wrap(function _callee3$(_context3) {
54899          while (1) {
54900            switch (_context3.prev = _context3.next) {
54901              case 0:
54902                if (["pls", "m3u", "x-scpls"].includes(playlist.format)) {
54903                  _context3.next = 2;
54904                  break;
54905                }
54906
54907                return _context3.abrupt("return", []);
54908
54909              case 2:
54910                _context3.prev = 2;
54911                Parser = ["pls", "x-scpls"].includes(playlist.format) ? PLS : M3U;
54912                _context3.next = 6;
54913                return Object(fetchTimeoutbabel_target_legacy["a" /* default */])(playlist.url, {}, 4000);
54914
54915              case 6:
54916                req = _context3.sent;
54917                _context3.next = 9;
54918                return req.text();
54919
54920              case 9:
54921                pls = _context3.sent;
54922                result = Parser.parse(pls);
54923                return _context3.abrupt("return", result.map(function (item) {
54924                  return {
54925                    url: item.file,
54926                    format: "mp3"
54927                  };
54928                }));
54929
54930              case 14:
54931                _context3.prev = 14;
54932                _context3.t0 = _context3["catch"](2);
54933                Object(loggerbabel_target_legacy["e" /* warn */])("Playlist error", _context3.t0);
54934
54935              case 17:
54936                return _context3.abrupt("return", []);
54937
54938              case 18:
54939              case "end":
54940                return _context3.stop();
54941            }
54942          }
54943        }, _callee3, null, [[2, 14]]);
54944      }));
54945
54946      return function (_x2) {
54947        return _ref3.apply(this, arguments);
54948      };
54949    }();
54950
54951    _this.nativeStreams = function () {
54952      return [].concat(toConsumableArraybabel_target_legacy_default()(_this.state.playlistStreams), toConsumableArraybabel_target_legacy_default()(_this.state.filteredStream
54952s));
54953    };
54954
54955    _this.enabledNativeStreams = function () {
54956      return justEnabled(_this.nativeStreams());
54957    };
54958
54959    _this.setupStreams = /*#__PURE__*/function () {
54960      var _ref4 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee4(streams) {
54961        var filteredStreams;
54962        return regenerator_babel_target_legacy_default.a.wrap(function _callee4$(_context4) {
54963          while (1) {
54964            switch (_context4.prev = _context4.next) {
54965              case 0:
54966                Object(loggerbabel_target_legacy["c" /* log */])("Streams");
54967                Object(loggerbabel_target_legacy["d" /* table */])(streams);
54968
54969                if (!(!streams || !_this.audio)) {
54970                  _context4.next = 5;
54971                  break;
54972                }
54973
54974                Object(loggerbabel_target_legacy["e" /* warn */])("No streams or audio");
54975                return _context4.abrupt("return");
54976
54977              case 5:
54978                _this.dashStream = streams.find(function (stream) {
54979                  return stream.format === "dash";
54980                });
54981                _this.hlsStream = streams.find(function (stream) {
54982                  return stream.format === "hls";
54983                });
54984                filteredStreams = streams.filter(isNormal).map(function (stream) {
54985                  return {
54986                    format: stream.format,
54987                    url: _this.decorateURL(stream.url)
54988                  };
54989                });
54990                Object(loggerbabel_target_legacy["a" /* debug */])("Filtered streams", filteredStreams);
54991
54992                _this.setState({
54993                  filteredStreams: filteredStreams
54994                });
54995
54996                if (!_this.dashStream) {
54997                  _context4.next = 19;
54998                  break;
54999                }
55000
55001                if (!_this.dash) {
55002                  _context4.next = 15;
55003                  break;
55004                }
55005
55006                _this.dash.attachSource(_this.dashStream.url);
55007
55008                _context4.next = 18;
55009                break;
55010
55011              case 15:
55012                _context4.next = 17;
55013                return bindDash(_this.audio, _this.dashStream, function (event) {
55014                  if (_this.hlsStream) {
55015                    _this.loadHls();
55016                  } else {
55017                    _this.switchToNative();
55018                  }
55019
55020                  _this.setState({
55021                    error: event.error.toString()
55022                  });
55023                });
55024
55025              case 17:
55026                _this.dash = _context4.sent;
55027
55028              case 18:
55029                if (_this.dash) {
55030                  _this.setState({
55031                    playerType: "dash"
55032                  });
55033                } else {
55034                  _this.switchToNative();
55035                }
55036
55037              case 19:
55038                if (!_this.dash && _this.hlsStream) {
55039                  _this.loadHls();
55040                }
55041
55042                _this.loadPlaylists(streams);
55043
55044              case 21:
55045              case "end":
55046                return _context4.stop();
55047            }
55048          }
55049        }, _callee4);
55050      }));
55051
55052      return function (_x3) {
55053        return _ref4.apply(this, arguments);
55054      };
55055    }();
55056
55057    _this.switchToNative = function () {
55058      Object(loggerbabel_target_legacy["c" /* log */])("Switching to native", _this.state);
55059
55060      if (_this.nativeStreams().length) {
55061        _this.setState({
55062          playerType: "native"
55063        });
55064      } else {
55065        Object(loggerbabel_target_legacy["e" /* warn */])("No native fallback", _this.props.streams);
55066
55067        _this.setFatal(true);
55068      }
55069    };
55070
55071    _this.handleStall = function (event) {
55072      _this.sendTimeUpdateFromState();
55073
55074      if (_this.stallTimeout) {
55075        Object(loggerbabel_target_legacy["a" /* debug */])("Already waiting");
55076        return;
55077      }
55078
55079      Object(loggerbabel_target_legacy["a" /* debug */])("Stalled...", event);
55080      Object(loggerbabel_target_legacy["a" /* debug */])("Network status", _this.audio && _this.audio.networkState);
55081      Object(loggerbabel_target_legacy["a" /* debug */])("Ready state", _this.audio && _this.audio.readyState);
55082      var timeout = BACKOFF ? Math.pow(2, _this.failCount) + 2 : 3;
55083      Object(loggerbabel_target_legacy["a" /* debug */])("Waiting for", timeout);
55084
55085      if (_this.failCount && _this.audio && _this.audio.readyState === HTMLMediaElement.HAVE_NOTHING) {
55086        _this.setState({
55087          stalled: true
55088        }, _this.sendTimeUpdateFromState);
55089      }
55090
55091      _this.stallTimeout = window.setTimeout(_this.stallCallback, timeout * 1000);
55092    };
55093
55094    _this.stallCallback = function () {
55095      if (!_this.audio) {
55096        return;
55097      }
55098
55099      Object(loggerbabel_target_legacy["e" /* warn */])("Stall callback. Count", _this.failCount);
55100
55101      if (_this.failCount >= RETRY_COUNT) {
55102        Object(loggerbabel_target_legacy["e" /* warn */])("Fail count hit limit");
55103
55104        _this.clearStall("stallCallback");
55105
55106        _this.handleFatalError();
55107      } else {
55108        _this.setState({
55109          // stalled: false,
55110          fatal: false,
55111          paused: _this.audio.paused
55112        }, function () {
55113          _this.incrementFail();
55114
55115          Object(loggerbabel_target_legacy["c" /* log */])("Incrementing fail count", _this.failCount);
55116          _this.stallTimeout = undefined;
55117
55118          if (_this.audio && _this.audio.readyState === HTMLMediaElement.HAVE_NOTHING) {
55119            _this.reloadAudio();
55120          }
55121
55122          _this.sendTimeUpdateFromState();
55123
55124          _this.setFatal(false);
55125        });
55126      } //
55127
55128    };
55129
55130    _this.clearStall = function (evt) {
55131      _this.failCount = 0;
55132
55133      if (_this.state.stalled) {
55134        Object(loggerbabel_target_legacy["c" /* log */])("Clearing stall", evt);
55135
55136        _this.setState({
55137          stalled: false,
55138          paused: _this.audio.paused
55139        }, _this.sendTimeUpdateFromState);
55140      }
55141
55142      if (_this.state.fatal) {
55143        _this.setFatal(false);
55144      }
55145
55146      if (!_this.stallTimeout) {
55147        return;
55148      }
55149
55150      if (_this.stallTimeout) {
55151        Object(loggerbabel_target_legacy["a" /* debug */])("Cleared stall timeout", evt);
55152        window.clearTimeout(_this.stallTimeout);
55153        _this.stallTimeout = undefined;
55154      }
55155    };
55156
55157    _this.loadHls = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee5() {
55158      var _yield$bindHls, _yield$bindHls2, playerType, hls;
55159
55160      return regenerator_babel_target_legacy_default.a.wrap(function _callee5$(_context5) {
55161        while (1) {
55162          switch (_context5.prev = _context5.next) {
55163            case 0:
55164              if (!(!_this.hlsStream || !_this.audio)) {
55165                _context5.next = 2;
55166                break;
55167              }
55168
55169              return _context5.abrupt("return");
55170
55171            case 2:
55172              if (!_this.hls) {
55173                _context5.next = 5;
55174                break;
55175              }
55176
55177              _this.hls.loadSource(_this.hlsStream.url);
55178
55179              return _context5.abrupt("return");
55180
55181            case 5:
55182              _context5.next = 7;
55183              return bindHls(_this.audio, _this.hlsStream, function (event, data) {
55184                Object(loggerbabel_target_legacy["e" /* warn */])("HLS error", data);
55185
55186                _this.setState({
55187                  error: data.details
55188                });
55189
55190                if (data.fatal) {
55191                  _this.switchToNative();
55192                }
55193              });
55194
55195            case 7:
55196              _yield$bindHls = _context5.sent;
55197              _yield$bindHls2 = slicedToArraybabel_target_legacy_default()(_yield$bindHls, 2);
55198              playerType = _yield$bindHls2[0];
55199              hls = _yield$bindHls2[1];
55200
55201              if (!(playerType === "hls" && hls)) {
55202                _context5.next = 15;
55203                break;
55204              }
55205
55206              _this.hls = hls;
55207
55208              _this.setState({
55209                playerType: "hls"
55210              });
55211
55212              return _context5.abrupt("return");
55213
55214            case 15:
55215              if (!(playerType === "nativehls")) {
55216                _context5.next = 18;
55217                break;
55218              }
55219
55220              _this.setState({
55221                playerType: "nativehls"
55222              });
55223
55224              return _context5.abrupt("return");
55225
55226            case 18:
55227              _this.switchToNative();
55228
55229            case 19:
55230            case "end":
55231              return _context5.stop();
55232          }
55233        }
55234      }, _callee5);
55235    }));
55236
55237    _this.onPlay = function (e) {
55238      return Object(loggerbabel_target_legacy["a" /* debug */])("Play", e);
55239    };
55240
55241    _this.onTime = function (ev) {
55242      if (!_this.audio) {
55243        return;
55244      }
55245
55246      var seekable;
55247      var time;
55248      var start = 0;
55249      var end;
55250
55251      if (_this.dash && _this.dash.getDVRWindowSize() < Infinity && !isNaN(_this.dash.getCurrentLiveLatency())) {
55252        time = _this.audio.currentTime;
55253        end = time + _this.dash.getCurrentLiveLatency();
55254        start = end - _this.dash.getDVRWindowSize();
55255
55256        if (_this.audio.seekable.length) {
55257          seekable = [_this.audio.seekable.start(0), _this.audio.seekable.end(0)];
55258        }
55259
55260        _this.setState({
55261          start: start,
55262          end: end,
55263          time: time,
55264          seekable: seekable,
55265          liveBuffer: _this.dash.getBufferLength("audio"),
55266          live: _this.dash.getDVRWindowSize() > 0
55267        });
55268
55269        _this.onTimeUpdated({
55270          start: start,
55271          time: time,
55272          end: end,
55273          paused: _this.audio.paused,
55274          seekable: !!_this.audio.seekable.length,
55275          live: true,
55276          stalled: !!_this.state.stalled,
55277          volume: _this.audio.volume
55278        });
55279
55280        return;
55281      }
55282
55283      time = _this.audio.currentTime;
55284      end = _this.audio.duration;
55285
55286      if (_this.audio.seekable.length && _this.props.isOnDemand) {
55287        start = _this.audio.seekable.start(0);
55288        end = _this.audio.seekable.end(0);
55289        seekable = [start, end];
55290      }
55291
55292      _this.onTimeUpdated({
55293        start: start,
55294        time: time,
55295        end: end,
55296        live: !!_this.state.live,
55297        paused: _this.audio.paused,
55298        seekable: !!_this.audio.seekable.length && end !== Infinity && !!(_this.hls || _this.props.isOnDemand),
55299        stalled: !!_this.state.stalled,
55300        volume: _this.audio.volume
55301      });
55302
55303      _this.setState({
55304        time: time,
55305        seekable: seekable,
55306        start: start,
55307        end: end
55308      });
55309    };
55310
55311    _this.sendTimeUpdateFromState = function () {
55312      _this.onTimeUpdated({
55313        start: _this.state.start || 0,
55314        time: _this.state.time || 0,
55315        end: _this.state.end || 0,
55316        paused: !_this.audio || _this.audio.paused,
55317        seekable: !!_this.state.seekable && _this.state.end !== Infinity,
55318        live: !!_this.state.live,
55319        stalled: !!_this.state.stalled,
55320        volume: _this.audio ? _this.audio.volume : 0
55321      });
55322    };
55323
55324    _this.updatedPaused = function () {
55325      if (!_this.audio) {
55326        return;
55327      }
55328
55329      if (_this.audio.paused && _this.audio.ended) {
55330        Object(loggerbabel_target_legacy["c" /* log */])("Stream ended", _this.state.stream, _this.audio);
55331
55332        _this.disableCurrentStream();
55333      }
55334
55335      if (_this.props.onPlayStatusChanged) {
55336        _this.props.onPlayStatusChanged(!_this.audio.paused);
55337      }
55338
55339      if (_this.props.usingTriton && _this.state.playerType !== "hls" && _this.audio && _this.audio.paused) {
55340        var sourceEls = _this.audio.querySelectorAll("source");
55341
55342        if (sourceEls) {
55343          var srcVals = [];
55344          sourceEls.forEach(function (el) {
55345            srcVals.push(el.src);
55346            el.src = "";
55347          });
55348
55349          _this.audio.load();
55350
55351          sourceEls.forEach(function (el, idx) {
55352            el.src = srcVals[idx];
55353          });
55354        }
55355      }
55356
55357      _this.sendTimeUpdateFromState();
55358
55359      _this.setState({
55360        paused: _this.audio.paused
55361      });
55362    };
55363
55364    _this.onDurationChange = function (e) {
55365      return _this.setState({
55366        duration: e.currentTarget.duration
55367      });
55368    };
55369
55370    _this.onMetadata = function (e) {
55371      Object(loggerbabel_target_legacy["c" /* log */])("OnMeta");
55372
55373      _this.onTime(); // Bugfix: Event is sometimes received after componentWillUnmount() already set this.audio to undefined, which then lead to errors when accessing it.
55374
55375
55376      if (!_this.audio) {
55377        return;
55378      }
55379
55380      var audio = _this.audio;
55381      var playerType = _this.state.playerType === "none" ? "native" : _this.state.playerType;
55382      var stream;
55383      var live = false;
55384
55385      switch (playerType) {
55386        case "hls":
55387          if (_this.hls) {
55388            var _this$hls2 = _this.hls,
55389                levels = _this$hls2.levels,
55390                currentLevel = _this$hls2.currentLevel;
55391
55392            if (!levels || !levels.length) {
55393              break;
55394            }
55395
55396            if (currentLevel === -1) {
55397              currentLevel = 0;
55398            }
55399
55400            var details = levels[currentLevel].details;
55401
55402            if (details) {
55403              live = details.live;
55404            }
55405          }
55406
55407          stream = _this.hlsStream;
55408          break;
55409
55410        case "nativehls":
55411          live = audio.duration === Infinity;
55412          stream = _this.hlsStream;
55413          break;
55414
55415        case "dash":
55416          stream = _this.dashStream;
55417
55418          if (_this.dash && _this.dash.getDVRWindowSize() && _this.dash.getDVRWindowSize() !== Infinity) {
55419            live = true;
55420          }
55421
55422          break;
55423
55424        case "native":
55425          live = !_this.props.isOnDemand;
55426
55427          var streams = _this.nativeStreams();
55428
55429          stream = streams.find(function (s) {
55430            return s.url === audio.currentSrc;
55431          });
55432
55433          if (!stream) {
55434            stream = streams.find(function (s) {
55435              return audio.currentSrc.endsWith(s.url);
55436            });
55437          }
55438
55439      }
55440
55441      if (stream) {
55442        _this.onStreamUpdated({
55443          stream: stream,
55444          playerType: playerType
55445        });
55446      }
55447
55448      Object(loggerbabel_target_legacy["c" /* log */])("metadata", {
55449        stream: stream,
55450        playerType: playerType,
55451        live: live
55452      });
55453
55454      _this.setState({
55455        stream: stream,
55456        paused: audio.paused,
55457        playerType: playerType,
55458        live: live
55459      });
55460    };
55461
55462    _this.setAdPlayer = function (player) {
55463      return _this.adPlayer = player;
55464    };
55465
55466    _this.setAudioRef = function (ref) {
55467      if (ref) {
55468        _this.audio = ref;
55469      }
55470    };
55471
55472    _this.onCanPlay = /*#__PURE__*/function () {
55473      var _ref6 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee6(e) {
55474        return regenerator_babel_target_legacy_default.a.wrap(function _callee6$(_context6) {
55475          while (1) {
55476            switch (_context6.prev = _context6.next) {
55477              case 0:
55478                Object(loggerbabel_target_legacy["c" /* log */])("Can play - paused?", _this.state.paused);
55479
55480                if (!(_this.state.disableControls || !_this.props.autoplay && !_this.state.stalled && !_this.tryToPlay)) {
55481                  _context6.next = 3;
55482                  break;
55483                }
55484
55485                return _context6.abrupt("return");
55486
55487              case 3:
55488                _this.tryToPlay = false;
55489
55490                _this.clearStall(e);
55491
55492                try {
55493                  _this.audio.play();
55494                } catch (err) {
55495                  Object(loggerbabel_target_legacy["e" /* warn */])("Autoplay error", err);
55496                }
55497
55498              case 6:
55499              case "end":
55500                return _context6.stop();
55501            }
55502          }
55503        }, _callee6);
55504      }));
55505
55506      return function (_x4) {
55507        return _ref6.apply(this, arguments);
55508      };
55509    }();
55510
55511    _this.handleEvent = function (event) {
55512      return Object(loggerbabel_target_legacy["a" /* debug */])("Event", event);
55513    };
55514
55515    return _this;
55516  }
55517
55518  createClassbabel_target_legacy_default()(AudioEngine, [{
55519    key: "componentDidUpdate",
55520    value: function componentDidUpdate(prevProps) {
55521      // Bugfix: Requires deep equality check of array contents. Previously the arrays were compared with !== which only checks equivalence of reference!
55522      if (!lodash_isequal_babel_target_legacy_default()(prevProps.streams, this.props.streams)) {
55523        this.setupStreams(this.props.streams);
55524        this.updatedPaused();
55525      } // Triton requires a stream to be closed when muted so that their duration stats are accurate
55526
55527
55528      if (this.props.usingTriton && prevProps.volume !== 0 && this.props.volume === 0) {
55529        this.pauseAudio();
55530      }
55531    }
55532  }, {
55533    key: "componentDidMount",
55534    value: function () {
55535      var _componentDidMount = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee7() {
55536        return regenerator_babel_target_legacy_default.a.wrap(function _callee7$(_context7) {
55537          while (1) {
55538            switch (_context7.prev = _context7.next) {
55539              case 0:
55540                this.setupStreams(this.props.streams);
55541                this.updatedPaused();
55542
55543              case 2:
55544              case "end":
55545                return _context7.stop();
55546            }
55547          }
55548        }, _callee7, this);
55549      }));
55550
55551      function componentDidMount() {
55552        return _componentDidMount.apply(this, arguments);
55553      }
55554
55555      return componentDidMount;
55556    }()
55557  }, {
55558    key: "componentWillUnmount",
55559    value: function componentWillUnmount() {
55560      this.audio = undefined; // Kill audio stream
55561    }
55562  }, {
55563    key: "render",
55564    value: function render(_ref7, _ref8) {
55565      var _this2 = this;
55566
55567      var showDebugController = _ref7.showDebugController,
55568          adPlayer = _ref7.adPlayer,
55569          autoplay = _ref7.autoplay,
55570          _ref7$volume = _ref7.volume,
55571          volume = _ref7$volume === void 0 ? 1 : _ref7$volume,
55572          preventLoadingStreams = _ref7.preventLoadingStreams;
55573      var stream = _ref8.stream,
55574          time = _ref8.time,
55575          live = _ref8.live,
55576          seekable = _ref8.seekable,
55577          filteredStreams = _ref8.filteredStreams,
55578          playlistStreams = _ref8.playlistStreams,
55579          start = _ref8.start,
55580          end = _ref8.end,
55581          paused = _ref8.paused,
55582          playerType = _ref8.playerType,
55583          stalled = _ref8.stalled,
55584          disableControls = _ref8.disableControls,
55585          adsEnabled = _ref8.adsEnabled;
55586      var controllerProps = {
55587        requestSeek: this.seek,
55588        requestPlay: this.toggleAudio,
55589        skipForward: this.skipForward,
55590        skipBack: this.skipBack,
55591        skipToLive: this.skipToEnd,
55592        skipToStart: this.skipToStart,
55593        start: start || 0,
55594        end: end || 0,
55595        time: time || 0,
55596        live: live,
55597        seekable: !!seekable,
55598        paused: !!paused,
55599        playerType: playerType,
55600        currentStream: stream,
55601        stalled: stalled,
55602        setVolume: function setVolume() {},
55603        volume: volume,
55604        disabled: disableControls
55605      };
55606      var adProps = {
55607        ref: this.setAdPlayer,
55608        onRequestPause: this.adPlayerRequestPause,
55609        onRequestPlay: this.adPlayerRequestPlay,
55610        audioElement: this.audio || {
55611          currentTime: 0,
55612          duration: 0
55613        }
55614      };
55615      var streams = [].concat(toConsumableArraybabel_target_legacy_default()(playlistStreams), toConsumableArraybabel_target_legacy_default()(filteredStreams));
55616      return Object(preact_modulebabel_target_legacy["h"])("div", null, showDebugController && stream && Object(preact_modulebabel_target_legacy["h"])(DebugControllerbabel_target_legacy_DebugController, controllerProps), adsEnabled && adPlayer && stream && adPlayer(adProps), Object(preact_modulebabel_target_legacy["h"])("audio", {
55617        key: this.audioKey,
55618        volume: volume,
55619        autoPlay: autoplay,
55620        preload: "none",
55621        onError: this.handleError,
55622        ref: this.setAudioRef,
55623        onTimeUpdate: this.onTime,
55624        onPlay: this.onPlay,
55625        onLoadedMetadata: this.onMetadata,
55626        onDurationChange: this.onDurationChange,
55627        onPause: this.updatedPaused,
55628        onPlaying: this.updatedPaused // onStalled={this.handleStall}
55629        // onSuspend={this.handleEvent}
55630        ,
55631        onLoad: this.handleEvent,
55632        onWaiting: this.handleStall,
55633        onProgress: this.clearStall,
55634        onCanPlay: this.onCanPlay,
55635        onCanPlayThrough: this.clearStall
55636      },
55637      /**
55638      * Once a <source> is in the DOM tree, changes to its src attribute have no effect - until audio.load() is explicitly called.
55639      * (c.f. https://stackoverflow.com/questions/10792163/change-audio-src-with-javascript)
55640      * In order not to have to call audio.load(), this code ensures that <source>s will only be rendered once the parent component unsets the preventLoadingStreams flag.
55641      * This flag indicates that the <source>s won't change anymore and consequently they can be added to the DOM tree.
55642      *
55643      * Was originally implemented in Player.tsx but caused erroneous behavior and was thus moved here.
55644      */
55645      !preventLoadingStreams && playerType !== "hls" && playerType !== "dash" && streams.map(function (source) {
55646        return isNormal(source) && !source.disabled && Object(preact_modulebabel_target_legacy["h"])("source", {
55647          onError: _this2.handleError,
55648          src: source.url,
55649          type: "audio/".concat(source.format)
55650        });
55651      })));
55652    }
55653  }]);
55654
55655  return AudioEngine;
55656}(preact_modulebabel_target_legacy["Component"]);
55657/* harmony default export */ var AudioEnginebabel_target_legacy = (AudioEnginebabel_target_legacy_AudioEngine);
55658
55659/***/ }),
55660/* 945 */,
55661/* 946 */,
55662/* 947 */,
55663/* 948 */,
55664/* 949 */,
55665/* 950 */
55666/***/ (function(module, exports, __webpack_require__) {
55667
55668// extracted by mini-css-extract-plugin
55669module.exports = {"wrap":"App-module__wrap--2C1-_"};
55670
55671/***/ }),
55672/* 951 */,
55673/* 952 */,
55674/* 953 */
55675/***/ (function(module, __webpack_exports__, __webpack_require__) {
55676
55677"use strict";
55678/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useNowPlaying; });
55679/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75);
55680/* harmony import */ var core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat__WEBPACK_IMPORTED_MODULE_0__);
55681/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);
55682/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1__);
55683/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60);
55684/* harmony import */ var regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(regenerator_runtime_runtime__WEBPACK_IMPORTED_MODULE_2__);
55685/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
55686/* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3__);
55687/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
55688/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4__);
55689/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4);
55690/* harmony import */ var _api_fetchJsonp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(95);
55691/* harmony import */ var _useBackgrounded__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(779);
55692/* harmony import */ var _lib_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10);
55693/* harmony import */ var _lib_EventBus__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(152);
55694
55695
55696
55697
55698
55699
55700
55701
55702
55703
55704var useNowPlaying = function useNowPlaying(rpId, nowPlayingUrl, onDemand) {
55705  var _useState = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useState */ "j"])(undefined),
55706      _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_4___default()(_useState, 2),
55707      nowPlaying = _useState2[0],
55708      setNowPlaying = _useState2[1];
55709
55710  var _useEventBus = Object(_lib_EventBus__WEBPACK_IMPORTED_MODULE_9__[/* useEventBus */ "b"])(),
55711      emit = _useEventBus.emit;
55712
55713  var backgrounded = Object(_useBackgrounded__WEBPACK_IMPORTED_MODULE_7__[/* useBackgrounded */ "a"])();
55714  var updateNowPlaying = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useCallback */ "a"])( /*#__PURE__*/_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_3___default()( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.mark(function _callee() {
55715    var response;
55716    return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default.a.wrap(function _callee$(_context) {
55717      while (1) {
55718        switch (_context.prev = _context.next) {
55719          case 0:
55720            Object(_lib_logger__WEBPACK_IMPORTED_MODULE_8__[/* log */ "c"])("Update now playing");
55721
55722            if (!(nowPlayingUrl && rpId)) {
55723              _context.next = 6;
55724              break;
55725            }
55726
55727            _context.next = 4;
55728            return Object(_api_fetchJsonp__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"])("".concat(nowPlayingUrl, "v4/events/?rpId=").concat(rpId), {
55729              jsonpCallbackFunction: "cb_events"
55730            }).then(function (res) {
55731              return res.json();
55732            });
55733
55734          case 4:
55735            response = _context.sent;
55736
55737            if (response.results) {
55738              emit("nowplaying", response.results);
55739              setNowPlaying(response.results);
55740            }
55741
55742          case 6:
55743          case "end":
55744            return _context.stop();
55745        }
55746      }
55747    }, _callee);
55748  })), [nowPlayingUrl, rpId, emit]);
55749  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_5__[/* useEffect */ "d"])(function () {
55750    if (onDemand || backgrounded) {
55751      return;
55752    }
55753
55754    updateNowPlaying();
55755    var interval = window.setInterval(updateNowPlaying, 7000);
55756    return function () {
55757      return window.clearInterval(interval);
55758    };
55759  }, [updateNowPlaying, backgrounded, onDemand]);
55760  return onDemand || nowPlaying;
55761};
55762
55763/***/ }),
55764/* 954 */
55765/***/ (function(module, __webpack_exports__, __webpack_require__) {
55766
55767"use strict";
55768/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
55769/* eslint-disable @typescript-eslint/no-explicit-any */
55770
55771
55772function useElementHeightCSSVariable(CSSVariableName, dependencyRecheck) {
55773  var ref = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useRef */ "i"])(null);
55774  var setVariable = Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useCallback */ "a"])(function () {
55775    var height = "".concat(window.innerHeight, "px");
55776    document.body.style.setProperty(CSSVariableName, height);
55777  }, [CSSVariableName]);
55778  var currentRef = ref.current;
55779  Object(preact_hooks__WEBPACK_IMPORTED_MODULE_0__[/* useEffect */ "d"])(function () {
55780    if (!ref.current) {
55781      return;
55782    }
55783
55784    window.addEventListener("resize", setVariable);
55785    setVariable();
55786    return function () {
55787      window.removeEventListener("resize", setVariable);
55788    };
55789  }, [CSSVariableName, dependencyRecheck, setVariable, currentRef]);
55790  return ref;
55791}
55792
55793/* harmony default export */ __webpack_exports__["a"] = (useElementHeightCSSVariable);
55794
55795/***/ }),
55796/* 955 */
55797/***/ (function(module, exports, __webpack_require__) {
55798
55799var setPrototypeOf = __webpack_require__(1005);
55800
55801function _inherits(subClass, superClass) {
55802  if (typeof superClass !== "function" && superClass !== null) {
55803    throw new TypeError("Super expression must either be null or a function");
55804  }
55805
55806  subClass.prototype = Object.create(superClass && superClass.prototype, {
55807    constructor: {
55808      value: subClass,
55809      writable: true,
55810      configurable: true
55811    }
55812  });
55813  if (superClass) setPrototypeOf(subClass, superClass);
55814}
55815
55816module.exports = _inherits;
55817
55818/***/ }),
55819/* 956 */
55820/***/ (function(module, exports, __webpack_require__) {
55821
55822var _typeof = __webpack_require__(154);
55823
55824var assertThisInitialized = __webpack_require__(1006);
55825
55826function _possibleConstructorReturn(self, call) {
55827  if (call && (_typeof(call) === "object" || typeof call === "function")) {
55828    return call;
55829  }
55830
55831  return assertThisInitialized(self);
55832}
55833
55834module.exports = _possibleConstructorReturn;
55835
55836/***/ }),
55837/* 957 */
55838/***/ (function(module, exports, __webpack_require__) {
55839
55840/* WEBPACK VAR INJECTION */(function(global, module) {/**
55841 * Lodash (Custom Build) <https://lodash.com/>
55842 * Build: `lodash modularize exports="npm" -o ./`
55843 * Copyright JS Foundation and other contributors <https://js.foundation/>
55844 * Released under MIT license <https://lodash.com/license>
55845 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
55846 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
55847 */
55848
55849/** Used as the size to enable large array optimizations. */
55850var LARGE_ARRAY_SIZE = 200;
55851
55852/** Used to stand-in for `undefined` hash values. */
55853var HASH_UNDEFINED = '__lodash_hash_undefined__';
55854
55855/** Used to compose bitmasks for value comparisons. */
55856var COMPARE_PARTIAL_FLAG = 1,
55857    COMPARE_UNORDERED_FLAG = 2;
55858
55859/** Used as references for various `Number` constants. */
55860var MAX_SAFE_INTEGER = 9007199254740991;
55861
55862/** `Object#toString` result references. */
55863var argsTag = '[object Arguments]',
55864    arrayTag = '[object Array]',
55865    asyncTag = '[object AsyncFunction]',
55866    boolTag = '[object Boolean]',
55867    dateTag = '[object Date]',
55868    errorTag = '[object Error]',
55869    funcTag = '[object Function]',
55870    genTag = '[object GeneratorFunction]',
55871    mapTag = '[object Map]',
55872    numberTag = '[object Number]',
55873    nullTag = '[object Null]',
55874    objectTag = '[object Object]',
55875    promiseTag = '[object Promise]',
55876    proxyTag = '[object Proxy]',
55877    regexpTag = '[object RegExp]',
55878    setTag = '[object Set]',
55879    stringTag = '[object String]',
55880    symbolTag = '[object Symbol]',
55881    undefinedTag = '[object Undefined]',
55882    weakMapTag = '[object WeakMap]';
55883
55884var arrayBufferTag = '[object ArrayBuffer]',
55885    dataViewTag = '[object DataView]',
55886    float32Tag = '[object Float32Array]',
55887    float64Tag = '[object Float64Array]',
55888    int8Tag = '[object Int8Array]',
55889    int16Tag = '[object Int16Array]',
55890    int32Tag = '[object Int32Array]',
55891    uint8Tag = '[object Uint8Array]',
55892    uint8ClampedTag = '[object Uint8ClampedArray]',
55893    uint16Tag = '[object Uint16Array]',
55894    uint32Tag = '[object Uint32Array]';
55895
55896/**
55897 * Used to match `RegExp`
55898 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
55899 */
55900var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
55901
55902/** Used to detect host constructors (Safari). */
55903var reIsHostCtor = /^\[object .+?Constructor\]$/;
55904
55905/** Used to detect unsigned integer values. */
55906var reIsUint = /^(?:0|[1-9]\d*)$/;
55907
55908/** Used to identify `toStringTag` values of typed arrays. */
55909var typedArrayTags = {};
55910typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
55911typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
55912typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
55913typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
55914typedArrayTags[uint32Tag] = true;
55915typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
55916typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
55917typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =
55918typedArrayTags[errorTag] = typedArrayTags[funcTag] =
55919typedArrayTags[mapTag] = typedArrayTags[numberTag] =
55920typedArrayTags[objectTag] = typedArrayTags[regexpTag] =
55921typedArrayTags[setTag] = typedArrayTags[stringTag] =
55922typedArrayTags[weakMapTag] = false;
55923
55924/** Detect free variable `global` from Node.js. */
55925var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
55926
55927/** Detect free variable `self`. */
55928var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
55929
55930/** Used as a reference to the global object. */
55931var root = freeGlobal || freeSelf || Function('return this')();
55932
55933/** Detect free variable `exports`. */
55934var freeExports =  true
vendor: 46,034 bytes, lines 55934-57688
55934 && exports && !exports.nodeType && exports;
55935
55936/** Detect free variable `module`. */
55937var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
55938
55939/** Detect the popular CommonJS extension `module.exports`. */
55940var moduleExports = freeModule && freeModule.exports === freeExports;
55941
55942/** Detect free variable `process` from Node.js. */
55943var freeProcess = moduleExports && freeGlobal.process;
55944
55945/** Used to access faster Node.js helpers. */
55946var nodeUtil = (function() {
55947  try {
55948    return freeProcess && freeProcess.binding && freeProcess.binding('util');
55949  } catch (e) {}
55950}());
55951
55952/* Node.js helper references. */
55953var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
55954
55955/**
55956 * A specialized version of `_.filter` for arrays without support for
55957 * iteratee shorthands.
55958 *
55959 * @private
55960 * @param {Array} [array] The array to iterate over.
55961 * @param {Function} predicate The function invoked per iteration.
55962 * @returns {Array} Returns the new filtered array.
55963 */
55964function arrayFilter(array, predicate) {
55965  var index = -1,
55966      length = array == null ? 0 : array.length,
55967      resIndex = 0,
55968      result = [];
55969
55970  while (++index < length) {
55971    var value = array[index];
55972    if (predicate(value, index, array)) {
55973      result[resIndex++] = value;
55974    }
55975  }
55976  return result;
55977}
55978
55979/**
55980 * Appends the elements of `values` to `array`.
55981 *
55982 * @private
55983 * @param {Array} array The array to modify.
55984 * @param {Array} values The values to append.
55985 * @returns {Array} Returns `array`.
55986 */
55987function arrayPush(array, values) {
55988  var index = -1,
55989      length = values.length,
55990      offset = array.length;
55991
55992  while (++index < length) {
55993    array[offset + index] = values[index];
55994  }
55995  return array;
55996}
55997
55998/**
55999 * A specialized version of `_.some` for arrays without support for iteratee
56000 * shorthands.
56001 *
56002 * @private
56003 * @param {Array} [array] The array to iterate over.
56004 * @param {Function} predicate The function invoked per iteration.
56005 * @returns {boolean} Returns `true` if any element passes the predicate check,
56006 *  else `false`.
56007 */
56008function arraySome(array, predicate) {
56009  var index = -1,
56010      length = array == null ? 0 : array.length;
56011
56012  while (++index < length) {
56013    if (predicate(array[index], index, array)) {
56014      return true;
56015    }
56016  }
56017  return false;
56018}
56019
56020/**
56021 * The base implementation of `_.times` without support for iteratee shorthands
56022 * or max array length checks.
56023 *
56024 * @private
56025 * @param {number} n The number of times to invoke `iteratee`.
56026 * @param {Function} iteratee The function invoked per iteration.
56027 * @returns {Array} Returns the array of results.
56028 */
56029function baseTimes(n, iteratee) {
56030  var index = -1,
56031      result = Array(n);
56032
56033  while (++index < n) {
56034    result[index] = iteratee(index);
56035  }
56036  return result;
56037}
56038
56039/**
56040 * The base implementation of `_.unary` without support for storing metadata.
56041 *
56042 * @private
56043 * @param {Function} func The function to cap arguments for.
56044 * @returns {Function} Returns the new capped function.
56045 */
56046function baseUnary(func) {
56047  return function(value) {
56048    return func(value);
56049  };
56050}
56051
56052/**
56053 * Checks if a `cache` value for `key` exists.
56054 *
56055 * @private
56056 * @param {Object} cache The cache to query.
56057 * @param {string} key The key of the entry to check.
56058 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
56059 */
56060function cacheHas(cache, key) {
56061  return cache.has(key);
56062}
56063
56064/**
56065 * Gets the value at `key` of `object`.
56066 *
56067 * @private
56068 * @param {Object} [object] The object to query.
56069 * @param {string} key The key of the property to get.
56070 * @returns {*} Returns the property value.
56071 */
56072function getValue(object, key) {
56073  return object == null ? undefined : object[key];
56074}
56075
56076/**
56077 * Converts `map` to its key-value pairs.
56078 *
56079 * @private
56080 * @param {Object} map The map to convert.
56081 * @returns {Array} Returns the key-value pairs.
56082 */
56083function mapToArray(map) {
56084  var index = -1,
56085      result = Array(map.size);
56086
56087  map.forEach(function(value, key) {
56088    result[++index] = [key, value];
56089  });
56090  return result;
56091}
56092
56093/**
56094 * Creates a unary function that invokes `func` with its argument transformed.
56095 *
56096 * @private
56097 * @param {Function} func The function to wrap.
56098 * @param {Function} transform The argument transform.
56099 * @returns {Function} Returns the new function.
56100 */
56101function overArg(func, transform) {
56102  return function(arg) {
56103    return func(transform(arg));
56104  };
56105}
56106
56107/**
56108 * Converts `set` to an array of its values.
56109 *
56110 * @private
56111 * @param {Object} set The set to convert.
56112 * @returns {Array} Returns the values.
56113 */
56114function setToArray(set) {
56115  var index = -1,
56116      result = Array(set.size);
56117
56118  set.forEach(function(value) {
56119    result[++index] = value;
56120  });
56121  return result;
56122}
56123
56124/** Used for built-in method references. */
56125var arrayProto = Array.prototype,
56126    funcProto = Function.prototype,
56127    objectProto = Object.prototype;
56128
56129/** Used to detect overreaching core-js shims. */
56130var coreJsData = root['__core-js_shared__'];
56131
56132/** Used to resolve the decompiled source of functions. */
56133var funcToString = funcProto.toString;
56134
56135/** Used to check objects for own properties. */
56136var hasOwnProperty = objectProto.hasOwnProperty;
56137
56138/** Used to detect methods masquerading as native. */
56139var maskSrcKey = (function() {
56140  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
56141  return uid ? ('Symbol(src)_1.' + uid) : '';
56142}());
56143
56144/**
56145 * Used to resolve the
56146 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
56147 * of values.
56148 */
56149var nativeObjectToString = objectProto.toString;
56150
56151/** Used to detect if a method is native. */
56152var reIsNative = RegExp('^' +
56153  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
56154  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
56155);
56156
56157/** Built-in value references. */
56158var Buffer = moduleExports ? root.Buffer : undefined,
56159    Symbol = root.Symbol,
56160    Uint8Array = root.Uint8Array,
56161    propertyIsEnumerable = objectProto.propertyIsEnumerable,
56162    splice = arrayProto.splice,
56163    symToStringTag = Symbol ? Symbol.toStringTag : undefined;
56164
56165/* Built-in method references for those with the same name as other `lodash` methods. */
56166var nativeGetSymbols = Object.getOwnPropertySymbols,
56167    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
56168    nativeKeys = overArg(Object.keys, Object);
56169
56170/* Built-in method references that are verified to be native. */
56171var DataView = getNative(root, 'DataView'),
56172    Map = getNative(root, 'Map'),
56173    Promise = getNative(root, 'Promise'),
56174    Set = getNative(root, 'Set'),
56175    WeakMap = getNative(root, 'WeakMap'),
56176    nativeCreate = getNative(Object, 'create');
56177
56178/** Used to detect maps, sets, and weakmaps. */
56179var dataViewCtorString = toSource(DataView),
56180    mapCtorString = toSource(Map),
56181    promiseCtorString = toSource(Promise),
56182    setCtorString = toSource(Set),
56183    weakMapCtorString = toSource(WeakMap);
56184
56185/** Used to convert symbols to primitives and strings. */
56186var symbolProto = Symbol ? Symbol.prototype : undefined,
56187    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
56188
56189/**
56190 * Creates a hash object.
56191 *
56192 * @private
56193 * @constructor
56194 * @param {Array} [entries] The key-value pairs to cache.
56195 */
56196function Hash(entries) {
56197  var index = -1,
56198      length = entries == null ? 0 : entries.length;
56199
56200  this.clear();
56201  while (++index < length) {
56202    var entry = entries[index];
56203    this.set(entry[0], entry[1]);
56204  }
56205}
56206
56207/**
56208 * Removes all key-value entries from the hash.
56209 *
56210 * @private
56211 * @name clear
56212 * @memberOf Hash
56213 */
56214function hashClear() {
56215  this.__data__ = nativeCreate ? nativeCreate(null) : {};
56216  this.size = 0;
56217}
56218
56219/**
56220 * Removes `key` and its value from the hash.
56221 *
56222 * @private
56223 * @name delete
56224 * @memberOf Hash
56225 * @param {Object} hash The hash to modify.
56226 * @param {string} key The key of the value to remove.
56227 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
56228 */
56229function hashDelete(key) {
56230  var result = this.has(key) && delete this.__data__[key];
56231  this.size -= result ? 1 : 0;
56232  return result;
56233}
56234
56235/**
56236 * Gets the hash value for `key`.
56237 *
56238 * @private
56239 * @name get
56240 * @memberOf Hash
56241 * @param {string} key The key of the value to get.
56242 * @returns {*} Returns the entry value.
56243 */
56244function hashGet(key) {
56245  var data = this.__data__;
56246  if (nativeCreate) {
56247    var result = data[key];
56248    return result === HASH_UNDEFINED ? undefined : result;
56249  }
56250  return hasOwnProperty.call(data, key) ? data[key] : undefined;
56251}
56252
56253/**
56254 * Checks if a hash value for `key` exists.
56255 *
56256 * @private
56257 * @name has
56258 * @memberOf Hash
56259 * @param {string} key The key of the entry to check.
56260 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
56261 */
56262function hashHas(key) {
56263  var data = this.__data__;
56264  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
56265}
56266
56267/**
56268 * Sets the hash `key` to `value`.
56269 *
56270 * @private
56271 * @name set
56272 * @memberOf Hash
56273 * @param {string} key The key of the value to set.
56274 * @param {*} value The value to set.
56275 * @returns {Object} Returns the hash instance.
56276 */
56277function hashSet(key, value) {
56278  var data = this.__data__;
56279  this.size += this.has(key) ? 0 : 1;
56280  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
56281  return this;
56282}
56283
56284// Add methods to `Hash`.
56285Hash.prototype.clear = hashClear;
56286Hash.prototype['delete'] = hashDelete;
56287Hash.prototype.get = hashGet;
56288Hash.prototype.has = hashHas;
56289Hash.prototype.set = hashSet;
56290
56291/**
56292 * Creates an list cache object.
56293 *
56294 * @private
56295 * @constructor
56296 * @param {Array} [entries] The key-value pairs to cache.
56297 */
56298function ListCache(entries) {
56299  var index = -1,
56300      length = entries == null ? 0 : entries.length;
56301
56302  this.clear();
56303  while (++index < length) {
56304    var entry = entries[index];
56305    this.set(entry[0], entry[1]);
56306  }
56307}
56308
56309/**
56310 * Removes all key-value entries from the list cache.
56311 *
56312 * @private
56313 * @name clear
56314 * @memberOf ListCache
56315 */
56316function listCacheClear() {
56317  this.__data__ = [];
56318  this.size = 0;
56319}
56320
56321/**
56322 * Removes `key` and its value from the list cache.
56323 *
56324 * @private
56325 * @name delete
56326 * @memberOf ListCache
56327 * @param {string} key The key of the value to remove.
56328 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
56329 */
56330function listCacheDelete(key) {
56331  var data = this.__data__,
56332      index = assocIndexOf(data, key);
56333
56334  if (index < 0) {
56335    return false;
56336  }
56337  var lastIndex = data.length - 1;
56338  if (index == lastIndex) {
56339    data.pop();
56340  } else {
56341    splice.call(data, index, 1);
56342  }
56343  --this.size;
56344  return true;
56345}
56346
56347/**
56348 * Gets the list cache value for `key`.
56349 *
56350 * @private
56351 * @name get
56352 * @memberOf ListCache
56353 * @param {string} key The key of the value to get.
56354 * @returns {*} Returns the entry value.
56355 */
56356function listCacheGet(key) {
56357  var data = this.__data__,
56358      index = assocIndexOf(data, key);
56359
56360  return index < 0 ? undefined : data[index][1];
56361}
56362
56363/**
56364 * Checks if a list cache value for `key` exists.
56365 *
56366 * @private
56367 * @name has
56368 * @memberOf ListCache
56369 * @param {string} key The key of the entry to check.
56370 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
56371 */
56372function listCacheHas(key) {
56373  return assocIndexOf(this.__data__, key) > -1;
56374}
56375
56376/**
56377 * Sets the list cache `key` to `value`.
56378 *
56379 * @private
56380 * @name set
56381 * @memberOf ListCache
56382 * @param {string} key The key of the value to set.
56383 * @param {*} value The value to set.
56384 * @returns {Object} Returns the list cache instance.
56385 */
56386function listCacheSet(key, value) {
56387  var data = this.__data__,
56388      index = assocIndexOf(data, key);
56389
56390  if (index < 0) {
56391    ++this.size;
56392    data.push([key, value]);
56393  } else {
56394    data[index][1] = value;
56395  }
56396  return this;
56397}
56398
56399// Add methods to `ListCache`.
56400ListCache.prototype.clear = listCacheClear;
56401ListCache.prototype['delete'] = listCacheDelete;
56402ListCache.prototype.get = listCacheGet;
56403ListCache.prototype.has = listCacheHas;
56404ListCache.prototype.set = listCacheSet;
56405
56406/**
56407 * Creates a map cache object to store key-value pairs.
56408 *
56409 * @private
56410 * @constructor
56411 * @param {Array} [entries] The key-value pairs to cache.
56412 */
56413function MapCache(entries) {
56414  var index = -1,
56415      length = entries == null ? 0 : entries.length;
56416
56417  this.clear();
56418  while (++index < length) {
56419    var entry = entries[index];
56420    this.set(entry[0], entry[1]);
56421  }
56422}
56423
56424/**
56425 * Removes all key-value entries from the map.
56426 *
56427 * @private
56428 * @name clear
56429 * @memberOf MapCache
56430 */
56431function mapCacheClear() {
56432  this.size = 0;
56433  this.__data__ = {
56434    'hash': new Hash,
56435    'map': new (Map || ListCache),
56436    'string': new Hash
56437  };
56438}
56439
56440/**
56441 * Removes `key` and its value from the map.
56442 *
56443 * @private
56444 * @name delete
56445 * @memberOf MapCache
56446 * @param {string} key The key of the value to remove.
56447 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
56448 */
56449function mapCacheDelete(key) {
56450  var result = getMapData(this, key)['delete'](key);
56451  this.size -= result ? 1 : 0;
56452  return result;
56453}
56454
56455/**
56456 * Gets the map value for `key`.
56457 *
56458 * @private
56459 * @name get
56460 * @memberOf MapCache
56461 * @param {string} key The key of the value to get.
56462 * @returns {*} Returns the entry value.
56463 */
56464function mapCacheGet(key) {
56465  return getMapData(this, key).get(key);
56466}
56467
56468/**
56469 * Checks if a map value for `key` exists.
56470 *
56471 * @private
56472 * @name has
56473 * @memberOf MapCache
56474 * @param {string} key The key of the entry to check.
56475 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
56476 */
56477function mapCacheHas(key) {
56478  return getMapData(this, key).has(key);
56479}
56480
56481/**
56482 * Sets the map `key` to `value`.
56483 *
56484 * @private
56485 * @name set
56486 * @memberOf MapCache
56487 * @param {string} key The key of the value to set.
56488 * @param {*} value The value to set.
56489 * @returns {Object} Returns the map cache instance.
56490 */
56491function mapCacheSet(key, value) {
56492  var data = getMapData(this, key),
56493      size = data.size;
56494
56495  data.set(key, value);
56496  this.size += data.size == size ? 0 : 1;
56497  return this;
56498}
56499
56500// Add methods to `MapCache`.
56501MapCache.prototype.clear = mapCacheClear;
56502MapCache.prototype['delete'] = mapCacheDelete;
56503MapCache.prototype.get = mapCacheGet;
56504MapCache.prototype.has = mapCacheHas;
56505MapCache.prototype.set = mapCacheSet;
56506
56507/**
56508 *
56509 * Creates an array cache object to store unique values.
56510 *
56511 * @private
56512 * @constructor
56513 * @param {Array} [values] The values to cache.
56514 */
56515function SetCache(values) {
56516  var index = -1,
56517      length = values == null ? 0 : values.length;
56518
56519  this.__data__ = new MapCache;
56520  while (++index < length) {
56521    this.add(values[index]);
56522  }
56523}
56524
56525/**
56526 * Adds `value` to the array cache.
56527 *
56528 * @private
56529 * @name add
56530 * @memberOf SetCache
56531 * @alias push
56532 * @param {*} value The value to cache.
56533 * @returns {Object} Returns the cache instance.
56534 */
56535function setCacheAdd(value) {
56536  this.__data__.set(value, HASH_UNDEFINED);
56537  return this;
56538}
56539
56540/**
56541 * Checks if `value` is in the array cache.
56542 *
56543 * @private
56544 * @name has
56545 * @memberOf SetCache
56546 * @param {*} value The value to search for.
56547 * @returns {number} Returns `true` if `value` is found, else `false`.
56548 */
56549function setCacheHas(value) {
56550  return this.__data__.has(value);
56551}
56552
56553// Add methods to `SetCache`.
56554SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
56555SetCache.prototype.has = setCacheHas;
56556
56557/**
56558 * Creates a stack cache object to store key-value pairs.
56559 *
56560 * @private
56561 * @constructor
56562 * @param {Array} [entries] The key-value pairs to cache.
56563 */
56564function Stack(entries) {
56565  var data = this.__data__ = new ListCache(entries);
56566  this.size = data.size;
56567}
56568
56569/**
56570 * Removes all key-value entries from the stack.
56571 *
56572 * @private
56573 * @name clear
56574 * @memberOf Stack
56575 */
56576function stackClear() {
56577  this.__data__ = new ListCache;
56578  this.size = 0;
56579}
56580
56581/**
56582 * Removes `key` and its value from the stack.
56583 *
56584 * @private
56585 * @name delete
56586 * @memberOf Stack
56587 * @param {string} key The key of the value to remove.
56588 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
56589 */
56590function stackDelete(key) {
56591  var data = this.__data__,
56592      result = data['delete'](key);
56593
56594  this.size = data.size;
56595  return result;
56596}
56597
56598/**
56599 * Gets the stack value for `key`.
56600 *
56601 * @private
56602 * @name get
56603 * @memberOf Stack
56604 * @param {string} key The key of the value to get.
56605 * @returns {*} Returns the entry value.
56606 */
56607function stackGet(key) {
56608  return this.__data__.get(key);
56609}
56610
56611/**
56612 * Checks if a stack value for `key` exists.
56613 *
56614 * @private
56615 * @name has
56616 * @memberOf Stack
56617 * @param {string} key The key of the entry to check.
56618 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
56619 */
56620function stackHas(key) {
56621  return this.__data__.has(key);
56622}
56623
56624/**
56625 * Sets the stack `key` to `value`.
56626 *
56627 * @private
56628 * @name set
56629 * @memberOf Stack
56630 * @param {string} key The key of the value to set.
56631 * @param {*} value The value to set.
56632 * @returns {Object} Returns the stack cache instance.
56633 */
56634function stackSet(key, value) {
56635  var data = this.__data__;
56636  if (data instanceof ListCache) {
56637    var pairs = data.__data__;
56638    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
56639      pairs.push([key, value]);
56640      this.size = ++data.size;
56641      return this;
56642    }
56643    data = this.__data__ = new MapCache(pairs);
56644  }
56645  data.set(key, value);
56646  this.size = data.size;
56647  return this;
56648}
56649
56650// Add methods to `Stack`.
56651Stack.prototype.clear = stackClear;
56652Stack.prototype['delete'] = stackDelete;
56653Stack.prototype.get = stackGet;
56654Stack.prototype.has = stackHas;
56655Stack.prototype.set = stackSet;
56656
56657/**
56658 * Creates an array of the enumerable property names of the array-like `value`.
56659 *
56660 * @private
56661 * @param {*} value The value to query.
56662 * @param {boolean} inherited Specify returning inherited property names.
56663 * @returns {Array} Returns the array of property names.
56664 */
56665function arrayLikeKeys(value, inherited) {
56666  var isArr = isArray(value),
56667      isArg = !isArr && isArguments(value),
56668      isBuff = !isArr && !isArg && isBuffer(value),
56669      isType = !isArr && !isArg && !isBuff && isTypedArray(value),
56670      skipIndexes = isArr || isArg || isBuff || isType,
56671      result = skipIndexes ? baseTimes(value.length, String) : [],
56672      length = result.length;
56673
56674  for (var key in value) {
56675    if ((inherited || hasOwnProperty.call(value, key)) &&
56676        !(skipIndexes && (
56677           // Safari 9 has enumerable `arguments.length` in strict mode.
56678           key == 'length' ||
56679           // Node.js 0.10 has enumerable non-index properties on buffers.
56680           (isBuff && (key == 'offset' || key == 'parent')) ||
56681           // PhantomJS 2 has enumerable non-index properties on typed arrays.
56682           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||
56683           // Skip index properties.
56684           isIndex(key, length)
56685        ))) {
56686      result.push(key);
56687    }
56688  }
56689  return result;
56690}
56691
56692/**
56693 * Gets the index at which the `key` is found in `array` of key-value pairs.
56694 *
56695 * @private
56696 * @param {Array} array The array to inspect.
56697 * @param {*} key The key to search for.
56698 * @returns {number} Returns the index of the matched value, else `-1`.
56699 */
56700function assocIndexOf(array, key) {
56701  var length = array.length;
56702  while (length--) {
56703    if (eq(array[length][0], key)) {
56704      return length;
56705    }
56706  }
56707  return -1;
56708}
56709
56710/**
56711 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
56712 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
56713 * symbols of `object`.
56714 *
56715 * @private
56716 * @param {Object} object The object to query.
56717 * @param {Function} keysFunc The function to get the keys of `object`.
56718 * @param {Function} symbolsFunc The function to get the symbols of `object`.
56719 * @returns {Array} Returns the array of property names and symbols.
56720 */
56721function baseGetAllKeys(object, keysFunc, symbolsFunc) {
56722  var result = keysFunc(object);
56723  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
56724}
56725
56726/**
56727 * The base implementation of `getTag` without fallbacks for buggy environments.
56728 *
56729 * @private
56730 * @param {*} value The value to query.
56731 * @returns {string} Returns the `toStringTag`.
56732 */
56733function baseGetTag(value) {
56734  if (value == null) {
56735    return value === undefined ? undefinedTag : nullTag;
56736  }
56737  return (symToStringTag && symToStringTag in Object(value))
56738    ? getRawTag(value)
56739    : objectToString(value);
56740}
56741
56742/**
56743 * The base implementation of `_.isArguments`.
56744 *
56745 * @private
56746 * @param {*} value The value to check.
56747 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
56748 */
56749function baseIsArguments(value) {
56750  return isObjectLike(value) && baseGetTag(value) == argsTag;
56751}
56752
56753/**
56754 * The base implementation of `_.isEqual` which supports partial comparisons
56755 * and tracks traversed objects.
56756 *
56757 * @private
56758 * @param {*} value The value to compare.
56759 * @param {*} other The other value to compare.
56760 * @param {boolean} bitmask The bitmask flags.
56761 *  1 - Unordered comparison
56762 *  2 - Partial comparison
56763 * @param {Function} [customizer] The function to customize comparisons.
56764 * @param {Object} [stack] Tracks traversed `value` and `other` objects.
56765 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
56766 */
56767function baseIsEqual(value, other, bitmask, customizer, stack) {
56768  if (value === other) {
56769    return true;
56770  }
56771  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
56772    return value !== value && other !== other;
56773  }
56774  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
56775}
56776
56777/**
56778 * A specialized version of `baseIsEqual` for arrays and objects which performs
56779 * deep comparisons and tracks traversed objects enabling objects with circular
56780 * references to be compared.
56781 *
56782 * @private
56783 * @param {Object} object The object to compare.
56784 * @param {Object} other The other object to compare.
56785 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
56786 * @param {Function} customizer The function to customize comparisons.
56787 * @param {Function} equalFunc The function to determine equivalents of values.
56788 * @param {Object} [stack] Tracks traversed `object` and `other` objects.
56789 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
56790 */
56791function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {
56792  var objIsArr = isArray(object),
56793      othIsArr = isArray(other),
56794      objTag = objIsArr ? arrayTag : getTag(object),
56795      othTag = othIsArr ? arrayTag : getTag(other);
56796
56797  objTag = objTag == argsTag ? objectTag : objTag;
56798  othTag = othTag == argsTag ? objectTag : othTag;
56799
56800  var objIsObj = objTag == objectTag,
56801      othIsObj = othTag == objectTag,
56802      isSameTag = objTag == othTag;
56803
56804  if (isSameTag && isBuffer(object)) {
56805    if (!isBuffer(other)) {
56806      return false;
56807    }
56808    objIsArr = true;
56809    objIsObj = false;
56810  }
56811  if (isSameTag && !objIsObj) {
56812    stack || (stack = new Stack);
56813    return (objIsArr || isTypedArray(object))
56814      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)
56815      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);
56816  }
56817  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {
56818    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
56819        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
56820
56821    if (objIsWrapped || othIsWrapped) {
56822      var objUnwrapped = objIsWrapped ? object.value() : object,
56823          othUnwrapped = othIsWrapped ? other.value() : other;
56824
56825      stack || (stack = new Stack);
56826      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
56827    }
56828  }
56829  if (!isSameTag) {
56830    return false;
56831  }
56832  stack || (stack = new Stack);
56833  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);
56834}
56835
56836/**
56837 * The base implementation of `_.isNative` without bad shim checks.
56838 *
56839 * @private
56840 * @param {*} value The value to check.
56841 * @returns {boolean} Returns `true` if `value` is a native function,
56842 *  else `false`.
56843 */
56844function baseIsNative(value) {
56845  if (!isObject(value) || isMasked(value)) {
56846    return false;
56847  }
56848  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
56849  return pattern.test(toSource(value));
56850}
56851
56852/**
56853 * The base implementation of `_.isTypedArray` without Node.js optimizations.
56854 *
56855 * @private
56856 * @param {*} value The value to check.
56857 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
56858 */
56859function baseIsTypedArray(value) {
56860  return isObjectLike(value) &&
56861    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
56862}
56863
56864/**
56865 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
56866 *
56867 * @private
56868 * @param {Object} object The object to query.
56869 * @returns {Array} Returns the array of property names.
56870 */
56871function baseKeys(object) {
56872  if (!isPrototype(object)) {
56873    return nativeKeys(object);
56874  }
56875  var result = [];
56876  for (var key in Object(object)) {
56877    if (hasOwnProperty.call(object, key) && key != 'constructor') {
56878      result.push(key);
56879    }
56880  }
56881  return result;
56882}
56883
56884/**
56885 * A specialized version of `baseIsEqualDeep` for arrays with support for
56886 * partial deep comparisons.
56887 *
56888 * @private
56889 * @param {Array} array The array to compare.
56890 * @param {Array} other The other array to compare.
56891 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
56892 * @param {Function} customizer The function to customize comparisons.
56893 * @param {Function} equalFunc The function to determine equivalents of values.
56894 * @param {Object} stack Tracks traversed `array` and `other` objects.
56895 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
56896 */
56897function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
56898  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
56899      arrLength = array.length,
56900      othLength = other.length;
56901
56902  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
56903    return false;
56904  }
56905  // Assume cyclic values are equal.
56906  var stacked = stack.get(array);
56907  if (stacked && stack.get(other)) {
56908    return stacked == other;
56909  }
56910  var index = -1,
56911      result = true,
56912      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
56913
56914  stack.set(array, other);
56915  stack.set(other, array);
56916
56917  // Ignore non-index properties.
56918  while (++index < arrLength) {
56919    var arrValue = array[index],
56920        othValue = other[index];
56921
56922    if (customizer) {
56923      var compared = isPartial
56924        ? customizer(othValue, arrValue, index, other, array, stack)
56925        : customizer(arrValue, othValue, index, array, other, stack);
56926    }
56927    if (compared !== undefined) {
56928      if (compared) {
56929        continue;
56930      }
56931      result = false;
56932      break;
56933    }
56934    // Recursively compare arrays (susceptible to call stack limits).
56935    if (seen) {
56936      if (!arraySome(other, function(othValue, othIndex) {
56937            if (!cacheHas(seen, othIndex) &&
56938                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
56939              return seen.push(othIndex);
56940            }
56941          })) {
56942        result = false;
56943        break;
56944      }
56945    } else if (!(
56946          arrValue === othValue ||
56947            equalFunc(arrValue, othValue, bitmask, customizer, stack)
56948        )) {
56949      result = false;
56950      break;
56951    }
56952  }
56953  stack['delete'](array);
56954  stack['delete'](other);
56955  return result;
56956}
56957
56958/**
56959 * A specialized version of `baseIsEqualDeep` for comparing objects of
56960 * the same `toStringTag`.
56961 *
56962 * **Note:** This function only supports comparing values with tags of
56963 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
56964 *
56965 * @private
56966 * @param {Object} object The object to compare.
56967 * @param {Object} other The other object to compare.
56968 * @param {string} tag The `toStringTag` of the objects to compare.
56969 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
56970 * @param {Function} customizer The function to customize comparisons.
56971 * @param {Function} equalFunc The function to determine equivalents of values.
56972 * @param {Object} stack Tracks traversed `object` and `other` objects.
56973 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
56974 */
56975function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {
56976  switch (tag) {
56977    case dataViewTag:
56978      if ((object.byteLength != other.byteLength) ||
56979          (object.byteOffset != other.byteOffset)) {
56980        return false;
56981      }
56982      object = object.buffer;
56983      other = other.buffer;
56984
56985    case arrayBufferTag:
56986      if ((object.byteLength != other.byteLength) ||
56987          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {
56988        return false;
56989      }
56990      return true;
56991
56992    case boolTag:
56993    case dateTag:
56994    case numberTag:
56995      // Coerce booleans to `1` or `0` and dates to milliseconds.
56996      // Invalid dates are coerced to `NaN`.
56997      return eq(+object, +other);
56998
56999    case errorTag:
57000      return object.name == other.name && object.message == other.message;
57001
57002    case regexpTag:
57003    case stringTag:
57004      // Coerce regexes to strings and treat strings, primitives and objects,
57005      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
57006      // for more details.
57007      return object == (other + '');
57008
57009    case mapTag:
57010      var convert = mapToArray;
57011
57012    case setTag:
57013      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;
57014      convert || (convert = setToArray);
57015
57016      if (object.size != other.size && !isPartial) {
57017        return false;
57018      }
57019      // Assume cyclic values are equal.
57020      var stacked = stack.get(object);
57021      if (stacked) {
57022        return stacked == other;
57023      }
57024      bitmask |= COMPARE_UNORDERED_FLAG;
57025
57026      // Recursively compare objects (susceptible to call stack limits).
57027      stack.set(object, other);
57028      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);
57029      stack['delete'](object);
57030      return result;
57031
57032    case symbolTag:
57033      if (symbolValueOf) {
57034        return symbolValueOf.call(object) == symbolValueOf.call(other);
57035      }
57036  }
57037  return false;
57038}
57039
57040/**
57041 * A specialized version of `baseIsEqualDeep` for objects with support for
57042 * partial deep comparisons.
57043 *
57044 * @private
57045 * @param {Object} object The object to compare.
57046 * @param {Object} other The other object to compare.
57047 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
57048 * @param {Function} customizer The function to customize comparisons.
57049 * @param {Function} equalFunc The function to determine equivalents of values.
57050 * @param {Object} stack Tracks traversed `object` and `other` objects.
57051 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
57052 */
57053function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {
57054  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
57055      objProps = getAllKeys(object),
57056      objLength = objProps.length,
57057      othProps = getAllKeys(other),
57058      othLength = othProps.length;
57059
57060  if (objLength != othLength && !isPartial) {
57061    return false;
57062  }
57063  var index = objLength;
57064  while (index--) {
57065    var key = objProps[index];
57066    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {
57067      return false;
57068    }
57069  }
57070  // Assume cyclic values are equal.
57071  var stacked = stack.get(object);
57072  if (stacked && stack.get(other)) {
57073    return stacked == other;
57074  }
57075  var result = true;
57076  stack.set(object, other);
57077  stack.set(other, object);
57078
57079  var skipCtor = isPartial;
57080  while (++index < objLength) {
57081    key = objProps[index];
57082    var objValue = object[key],
57083        othValue = other[key];
57084
57085    if (customizer) {
57086      var compared = isPartial
57087        ? customizer(othValue, objValue, key, other, object, stack)
57088        : customizer(objValue, othValue, key, object, other, stack);
57089    }
57090    // Recursively compare objects (susceptible to call stack limits).
57091    if (!(compared === undefined
57092          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))
57093          : compared
57094        )) {
57095      result = false;
57096      break;
57097    }
57098    skipCtor || (skipCtor = key == 'constructor');
57099  }
57100  if (result && !skipCtor) {
57101    var objCtor = object.constructor,
57102        othCtor = other.constructor;
57103
57104    // Non `Object` object instances with different constructors are not equal.
57105    if (objCtor != othCtor &&
57106        ('constructor' in object && 'constructor' in other) &&
57107        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
57108          typeof othCtor == 'function' && othCtor instanceof othCtor)) {
57109      result = false;
57110    }
57111  }
57112  stack['delete'](object);
57113  stack['delete'](other);
57114  return result;
57115}
57116
57117/**
57118 * Creates an array of own enumerable property names and symbols of `object`.
57119 *
57120 * @private
57121 * @param {Object} object The object to query.
57122 * @returns {Array} Returns the array of property names and symbols.
57123 */
57124function getAllKeys(object) {
57125  return baseGetAllKeys(object, keys, getSymbols);
57126}
57127
57128/**
57129 * Gets the data for `map`.
57130 *
57131 * @private
57132 * @param {Object} map The map to query.
57133 * @param {string} key The reference key.
57134 * @returns {*} Returns the map data.
57135 */
57136function getMapData(map, key) {
57137  var data = map.__data__;
57138  return isKeyable(key)
57139    ? data[typeof key == 'string' ? 'string' : 'hash']
57140    : data.map;
57141}
57142
57143/**
57144 * Gets the native function at `key` of `object`.
57145 *
57146 * @private
57147 * @param {Object} object The object to query.
57148 * @param {string} key The key of the method to get.
57149 * @returns {*} Returns the function if it's native, else `undefined`.
57150 */
57151function getNative(object, key) {
57152  var value = getValue(object, key);
57153  return baseIsNative(value) ? value : undefined;
57154}
57155
57156/**
57157 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
57158 *
57159 * @private
57160 * @param {*} value The value to query.
57161 * @returns {string} Returns the raw `toStringTag`.
57162 */
57163function getRawTag(value) {
57164  var isOwn = hasOwnProperty.call(value, symToStringTag),
57165      tag = value[symToStringTag];
57166
57167  try {
57168    value[symToStringTag] = undefined;
57169    var unmasked = true;
57170  } catch (e) {}
57171
57172  var result = nativeObjectToString.call(value);
57173  if (unmasked) {
57174    if (isOwn) {
57175      value[symToStringTag] = tag;
57176    } else {
57177      delete value[symToStringTag];
57178    }
57179  }
57180  return result;
57181}
57182
57183/**
57184 * Creates an array of the own enumerable symbols of `object`.
57185 *
57186 * @private
57187 * @param {Object} object The object to query.
57188 * @returns {Array} Returns the array of symbols.
57189 */
57190var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
57191  if (object == null) {
57192    return [];
57193  }
57194  object = Object(object);
57195  return arrayFilter(nativeGetSymbols(object), function(symbol) {
57196    return propertyIsEnumerable.call(object, symbol);
57197  });
57198};
57199
57200/**
57201 * Gets the `toStringTag` of `value`.
57202 *
57203 * @private
57204 * @param {*} value The value to query.
57205 * @returns {string} Returns the `toStringTag`.
57206 */
57207var getTag = baseGetTag;
57208
57209// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
57210if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
57211    (Map && getTag(new Map) != mapTag) ||
57212    (Promise && getTag(Promise.resolve()) != promiseTag) ||
57213    (Set && getTag(new Set) != setTag) ||
57214    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
57215  getTag = function(value) {
57216    var result = baseGetTag(value),
57217        Ctor = result == objectTag ? value.constructor : undefined,
57218        ctorString = Ctor ? toSource(Ctor) : '';
57219
57220    if (ctorString) {
57221      switch (ctorString) {
57222        case dataViewCtorString: return dataViewTag;
57223        case mapCtorString: return mapTag;
57224        case promiseCtorString: return promiseTag;
57225        case setCtorString: return setTag;
57226        case weakMapCtorString: return weakMapTag;
57227      }
57228    }
57229    return result;
57230  };
57231}
57232
57233/**
57234 * Checks if `value` is a valid array-like index.
57235 *
57236 * @private
57237 * @param {*} value The value to check.
57238 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
57239 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
57240 */
57241function isIndex(value, length) {
57242  length = length == null ? MAX_SAFE_INTEGER : length;
57243  return !!length &&
57244    (typeof value == 'number' || reIsUint.test(value)) &&
57245    (value > -1 && value % 1 == 0 && value < length);
57246}
57247
57248/**
57249 * Checks if `value` is suitable for use as unique object key.
57250 *
57251 * @private
57252 * @param {*} value The value to check.
57253 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
57254 */
57255function isKeyable(value) {
57256  var type = typeof value;
57257  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
57258    ? (value !== '__proto__')
57259    : (value === null);
57260}
57261
57262/**
57263 * Checks if `func` has its source masked.
57264 *
57265 * @private
57266 * @param {Function} func The function to check.
57267 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
57268 */
57269function isMasked(func) {
57270  return !!maskSrcKey && (maskSrcKey in func);
57271}
57272
57273/**
57274 * Checks if `value` is likely a prototype object.
57275 *
57276 * @private
57277 * @param {*} value The value to check.
57278 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
57279 */
57280function isPrototype(value) {
57281  var Ctor = value && value.constructor,
57282      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
57283
57284  return value === proto;
57285}
57286
57287/**
57288 * Converts `value` to a string using `Object.prototype.toString`.
57289 *
57290 * @private
57291 * @param {*} value The value to convert.
57292 * @returns {string} Returns the converted string.
57293 */
57294function objectToString(value) {
57295  return nativeObjectToString.call(value);
57296}
57297
57298/**
57299 * Converts `func` to its source code.
57300 *
57301 * @private
57302 * @param {Function} func The function to convert.
57303 * @returns {string} Returns the source code.
57304 */
57305function toSource(func) {
57306  if (func != null) {
57307    try {
57308      return funcToString.call(func);
57309    } catch (e) {}
57310    try {
57311      return (func + '');
57312    } catch (e) {}
57313  }
57314  return '';
57315}
57316
57317/**
57318 * Performs a
57319 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
57320 * comparison between two values to determine if they are equivalent.
57321 *
57322 * @static
57323 * @memberOf _
57324 * @since 4.0.0
57325 * @category Lang
57326 * @param {*} value The value to compare.
57327 * @param {*} other The other value to compare.
57328 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
57329 * @example
57330 *
57331 * var object = { 'a': 1 };
57332 * var other = { 'a': 1 };
57333 *
57334 * _.eq(object, object);
57335 * // => true
57336 *
57337 * _.eq(object, other);
57338 * // => false
57339 *
57340 * _.eq('a', 'a');
57341 * // => true
57342 *
57343 * _.eq('a', Object('a'));
57344 * // => false
57345 *
57346 * _.eq(NaN, NaN);
57347 * // => true
57348 */
57349function eq(value, other) {
57350  return value === other || (value !== value && other !== other);
57351}
57352
57353/**
57354 * Checks if `value` is likely an `arguments` object.
57355 *
57356 * @static
57357 * @memberOf _
57358 * @since 0.1.0
57359 * @category Lang
57360 * @param {*} value The value to check.
57361 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
57362 *  else `false`.
57363 * @example
57364 *
57365 * _.isArguments(function() { return arguments; }());
57366 * // => true
57367 *
57368 * _.isArguments([1, 2, 3]);
57369 * // => false
57370 */
57371var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
57372  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
57373    !propertyIsEnumerable.call(value, 'callee');
57374};
57375
57376/**
57377 * Checks if `value` is classified as an `Array` object.
57378 *
57379 * @static
57380 * @memberOf _
57381 * @since 0.1.0
57382 * @category Lang
57383 * @param {*} value The value to check.
57384 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
57385 * @example
57386 *
57387 * _.isArray([1, 2, 3]);
57388 * // => true
57389 *
57390 * _.isArray(document.body.children);
57391 * // => false
57392 *
57393 * _.isArray('abc');
57394 * // => false
57395 *
57396 * _.isArray(_.noop);
57397 * // => false
57398 */
57399var isArray = Array.isArray;
57400
57401/**
57402 * Checks if `value` is array-like. A value is considered array-like if it's
57403 * not a function and has a `value.length` that's an integer greater than or
57404 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
57405 *
57406 * @static
57407 * @memberOf _
57408 * @since 4.0.0
57409 * @category Lang
57410 * @param {*} value The value to check.
57411 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
57412 * @example
57413 *
57414 * _.isArrayLike([1, 2, 3]);
57415 * // => true
57416 *
57417 * _.isArrayLike(document.body.children);
57418 * // => true
57419 *
57420 * _.isArrayLike('abc');
57421 * // => true
57422 *
57423 * _.isArrayLike(_.noop);
57424 * // => false
57425 */
57426function isArrayLike(value) {
57427  return value != null && isLength(value.length) && !isFunction(value);
57428}
57429
57430/**
57431 * Checks if `value` is a buffer.
57432 *
57433 * @static
57434 * @memberOf _
57435 * @since 4.3.0
57436 * @category Lang
57437 * @param {*} value The value to check.
57438 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
57439 * @example
57440 *
57441 * _.isBuffer(new Buffer(2));
57442 * // => true
57443 *
57444 * _.isBuffer(new Uint8Array(2));
57445 * // => false
57446 */
57447var isBuffer = nativeIsBuffer || stubFalse;
57448
57449/**
57450 * Performs a deep comparison between two values to determine if they are
57451 * equivalent.
57452 *
57453 * **Note:** This method supports comparing arrays, array buffers, booleans,
57454 * date objects, error objects, maps, numbers, `Object` objects, regexes,
57455 * sets, strings, symbols, and typed arrays. `Object` objects are compared
57456 * by their own, not inherited, enumerable properties. Functions and DOM
57457 * nodes are compared by strict equality, i.e. `===`.
57458 *
57459 * @static
57460 * @memberOf _
57461 * @since 0.1.0
57462 * @category Lang
57463 * @param {*} value The value to compare.
57464 * @param {*} other The other value to compare.
57465 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
57466 * @example
57467 *
57468 * var object = { 'a': 1 };
57469 * var other = { 'a': 1 };
57470 *
57471 * _.isEqual(object, other);
57472 * // => true
57473 *
57474 * object === other;
57475 * // => false
57476 */
57477function isEqual(value, other) {
57478  return baseIsEqual(value, other);
57479}
57480
57481/**
57482 * Checks if `value` is classified as a `Function` object.
57483 *
57484 * @static
57485 * @memberOf _
57486 * @since 0.1.0
57487 * @category Lang
57488 * @param {*} value The value to check.
57489 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
57490 * @example
57491 *
57492 * _.isFunction(_);
57493 * // => true
57494 *
57495 * _.isFunction(/abc/);
57496 * // => false
57497 */
57498function isFunction(value) {
57499  if (!isObject(value)) {
57500    return false;
57501  }
57502  // The use of `Object#toString` avoids issues with the `typeof` operator
57503  // in Safari 9 which returns 'object' for typed arrays and other constructors.
57504  var tag = baseGetTag(value);
57505  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
57506}
57507
57508/**
57509 * Checks if `value` is a valid array-like length.
57510 *
57511 * **Note:** This method is loosely based on
57512 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
57513 *
57514 * @static
57515 * @memberOf _
57516 * @since 4.0.0
57517 * @category Lang
57518 * @param {*} value The value to check.
57519 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
57520 * @example
57521 *
57522 * _.isLength(3);
57523 * // => true
57524 *
57525 * _.isLength(Number.MIN_VALUE);
57526 * // => false
57527 *
57528 * _.isLength(Infinity);
57529 * // => false
57530 *
57531 * _.isLength('3');
57532 * // => false
57533 */
57534function isLength(value) {
57535  return typeof value == 'number' &&
57536    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
57537}
57538
57539/**
57540 * Checks if `value` is the
57541 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
57542 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
57543 *
57544 * @static
57545 * @memberOf _
57546 * @since 0.1.0
57547 * @category Lang
57548 * @param {*} value The value to check.
57549 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
57550 * @example
57551 *
57552 * _.isObject({});
57553 * // => true
57554 *
57555 * _.isObject([1, 2, 3]);
57556 * // => true
57557 *
57558 * _.isObject(_.noop);
57559 * // => true
57560 *
57561 * _.isObject(null);
57562 * // => false
57563 */
57564function isObject(value) {
57565  var type = typeof value;
57566  return value != null && (type == 'object' || type == 'function');
57567}
57568
57569/**
57570 * Checks if `value` is object-like. A value is object-like if it's not `null`
57571 * and has a `typeof` result of "object".
57572 *
57573 * @static
57574 * @memberOf _
57575 * @since 4.0.0
57576 * @category Lang
57577 * @param {*} value The value to check.
57578 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
57579 * @example
57580 *
57581 * _.isObjectLike({});
57582 * // => true
57583 *
57584 * _.isObjectLike([1, 2, 3]);
57585 * // => true
57586 *
57587 * _.isObjectLike(_.noop);
57588 * // => false
57589 *
57590 * _.isObjectLike(null);
57591 * // => false
57592 */
57593function isObjectLike(value) {
57594  return value != null && typeof value == 'object';
57595}
57596
57597/**
57598 * Checks if `value` is classified as a typed array.
57599 *
57600 * @static
57601 * @memberOf _
57602 * @since 3.0.0
57603 * @category Lang
57604 * @param {*} value The value to check.
57605 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
57606 * @example
57607 *
57608 * _.isTypedArray(new Uint8Array);
57609 * // => true
57610 *
57611 * _.isTypedArray([]);
57612 * // => false
57613 */
57614var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
57615
57616/**
57617 * Creates an array of the own enumerable property names of `object`.
57618 *
57619 * **Note:** Non-object values are coerced to objects. See the
57620 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
57621 * for more details.
57622 *
57623 * @static
57624 * @since 0.1.0
57625 * @memberOf _
57626 * @category Object
57627 * @param {Object} object The object to query.
57628 * @returns {Array} Returns the array of property names.
57629 * @example
57630 *
57631 * function Foo() {
57632 *   this.a = 1;
57633 *   this.b = 2;
57634 * }
57635 *
57636 * Foo.prototype.c = 3;
57637 *
57638 * _.keys(new Foo);
57639 * // => ['a', 'b'] (iteration order is not guaranteed)
57640 *
57641 * _.keys('hi');
57642 * // => ['0', '1']
57643 */
57644function keys(object) {
57645  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
57646}
57647
57648/**
57649 * This method returns a new empty array.
57650 *
57651 * @static
57652 * @memberOf _
57653 * @since 4.13.0
57654 * @category Util
57655 * @returns {Array} Returns the new empty array.
57656 * @example
57657 *
57658 * var arrays = _.times(2, _.stubArray);
57659 *
57660 * console.log(arrays);
57661 * // => [[], []]
57662 *
57663 * console.log(arrays[0] === arrays[1]);
57664 * // => false
57665 */
57666function stubArray() {
57667  return [];
57668}
57669
57670/**
57671 * This method returns `false`.
57672 *
57673 * @static
57674 * @memberOf _
57675 * @since 4.13.0
57676 * @category Util
57677 * @returns {boolean} Returns `false`.
57678 * @example
57679 *
57680 * _.times(2, _.stubFalse);
57681 * // => [false, false]
57682 */
57683function stubFalse() {
57684  return false;
57685}
57686
57687module.exports = isEqual;
57688
vendor: 2,692 bytes, lines 57689-57761
57689/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34), __webpack_require__(186)(module)))
57690
57691/***/ }),
57692/* 958 */
57693/***/ (function(module, __webpack_exports__, __webpack_require__) {
57694
57695"use strict";
57696/*!
57697 * css-vars-ponyfill
57698 * v2.4.1
57699 * https://jhildenbiddle.github.io/css-vars-ponyfill/
57700 * (c) 2018-2020 John Hildenbiddle <http://hildenbiddle.com>
57701 * MIT license
57702 */
57703function _extends() {
57704    _extends = Object.assign || function(target) {
57705        for (var i = 1; i < arguments.length; i++) {
57706            var source = arguments[i];
57707            for (var key in source) {
57708                if (Object.prototype.hasOwnProperty.call(source, key)) {
57709                    target[key] = source[key];
57710                }
57711            }
57712        }
57713        return target;
57714    };
57715    return _extends.apply(this, arguments);
57716}
57717
57718/*!
57719 * get-css-data
57720 * v1.9.0
57721 * https://github.com/jhildenbiddle/get-css-data
57722 * (c) 2018-2020 John Hildenbiddle <http://hildenbiddle.com>
57723 * MIT license
57724 */ function getUrls(urls) {
57725    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
57726    var settings = {
57727        mimeType: options.mimeType || null,
57728        onBeforeSend: options.onBeforeSend || Function.prototype,
57729        onSuccess: options.onSuccess || Function.prototype,
57730        onError: options.onError || Function.prototype,
57731        onComplete: options.onComplete || Function.prototype
57732    };
57733    var urlArray = Array.isArray(urls) ? urls : [ urls ];
57734    var urlQueue = Array.apply(null, Array(urlArray.length)).map((function(x) {
57735        return null;
57736    }));
57737    function isValidCss(cssText) {
57738        var isHTML = cssText && cssText.trim().charAt(0) === "<";
57739        return cssText && !isHTML;
57740    }
57741    function onError(xhr, urlIndex) {
57742        settings.onError(xhr, urlArray[urlIndex], urlIndex);
57743    }
57744    function onSuccess(responseText, urlIndex) {
57745        var returnVal = settings.onSuccess(responseText, urlArray[urlIndex], urlIndex);
57746        responseText = returnVal === false ? "" : returnVal || responseText;
57747        urlQueue[urlIndex] = responseText;
57748        if (urlQueue.indexOf(null) === -1) {
57749            settings.onComplete(urlQueue);
57750        }
57751    }
57752    var parser = document.createElement("a");
57753    urlArray.forEach((function(url, i) {
57754        parser.setAttribute("href", url);
57755        parser.href = String(parser.href);
57756        var isIElte9 = Boolean(document.all && !window.atob);
57757        var isIElte9CORS = isIElte9 && parser.host.split(":")[0] !== location.host.split(":")[0];
57758        if (isIElte9CORS) {
57759            var isSameProtocol = parser.protocol === location.protocol;
57760            if (isSameProtocol) {
57761                var xdr = new XDomainRequest;
57762                xdr.open("GET", url);
57763                xdr.timeout = 0;
57764                xdr.onprogress = Function.prototype;
57765                xdr.ontimeout = Function.prototype;
57766                xdr.onload = function() {
57767                    if (isValidCss(xdr.responseText)) {
57768                        onSuccess(xdr.responseText, i);
57769                    } else {
57770                        onError(xdr, i);
57771                    }
57772                };
57773                xdr.onerror = function(err) {
57774                    onError(xdr, i);
57775                };
57776                setTimeout((function() {
57777                    xdr.send();
57778                }), 0);
57779            } else {
57780                console.warn("Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (".concat(url, ")"));
57781                onError(null, i);
57782            }
57783        } else {
57784            var xhr = new XMLHttpRequest;
57785            xhr.open("GET", url);
57786            if (settings.mimeType && xhr.overrideMimeType) {
57787                xhr.overrideMimeType(settings.mimeType);
57788            }
57789            settings.onBeforeSend(xhr, url, i);
57790            xhr.onreadystatechange = function() {
57791                if (xhr.readyState === 4) {
57792                    if (xhr.status === 200 && isValidCss(xhr.responseText)) {
57793                        onSuccess(xhr.responseText, i);
57794                    } else if (xhr.status === 0 && isValidCss(xhr.responseText)) {
57795                        onSuccess(xhr.responseText, i);
57796                    } else {
57797                        onError(xhr, i);
57798                    }
57799                }
57800            };
57801            xhr.send();
57802        }
57803    }));
57804}
57805
57806/**
57807 * Gets CSS data from <style> and <link> nodes (including @imports), then
57808 * returns data in order processed by DOM. Allows specifying nodes to
57809 * include/exclude and filtering CSS data using RegEx.
57810 *
57811 * @preserve
57812 * @param {object}   [options] The options object
57813 * @param {object}   [options.rootElement=document] Root element to traverse for
57814 *                   <link> and <style> nodes.
57815 * @param {string}   [options.include] CSS selector matching <link> and <style>
57816 *                   nodes to include
57817 * @param {string}   [options.exclude] CSS selector matching <link> and <style>
57818 *                   nodes to exclude
57819 * @param {object}   [options.filter] Regular expression used to filter node CSS
57820 *                   data. Each block of CSS data is tested against the filter,
57821 *                   and only matching data is included.
57822 * @param {boolean}  [options.skipDisabled=true] Determines if disabled
57823 *                   stylesheets will be skipped while collecting CSS data.
57824 * @param {boolean}  [options.useCSSOM=false] Determines if CSS data will be
57825 *                   collected from a stylesheet's runtime values instead of its
57826 *                   text content. This is required to get accurate CSS data
57827 *                   when a stylesheet has been modified using the deleteRule()
57828 *                   or insertRule() methods because these modifications will
57829 *                   not be reflected in the stylesheet's text content.
57830 * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes
57831 *                   1) the XHR object, 2) source node reference, and 3) the
57832 *                   source URL as arguments.
57833 * @param {function} [options.onSuccess] Callback on each CSS node read. Passes
57834 *                   1) CSS text, 2) source node reference, and 3) the source
57835 *                   URL as arguments.
57836 * @param {function} [options.onError] Callback on each error. Passes 1) the XHR
57837 *                   object for inspection, 2) soure node reference, and 3) the
57838 *                   source URL that failed (either a <link> href or an @import)
57839 *                   as arguments
57840 * @param {function} [options.onComplete] Callback after all nodes have been
57841 *                   processed. Passes 1) concatenated CSS text, 2) an array of
57842 *                   CSS text in DOM order, and 3) an array of nodes in DOM
57843 *                   order as arguments.
57844 *
57845 * @example
57846 *
57847 *   getCssData({
57848 *     rootElement : document,
57849 *     include     : 'style,link[rel="stylesheet"]',
57850 *     exclude     : '[href="skip.css"]',
57851 *     filter      : /red/,
57852 *     skipDisabled: true,
57853 *     useCSSOM    : false,
57854 *     onBeforeSend(xhr, node, url) {
57855 *       // ...
57856 *     }
57857 *     onSuccess(cssText, node, url) {
57858 *       // ...
57859 *     }
57860 *     onError(xhr, node, url) {
57861 *       // ...
57862 *     },
57863 *     onComplete(cssText, cssArray, nodeArray) {
57864 *       // ...
57865 *     }
57866 *   });
57867 */ function getCssData(options) {
57868    var regex = {
57869        cssComments: /\/\*[\s\S]+?\*\//g,
vendor: 10,799 bytes, lines 57870-58154
57870        cssImports: /(?:@import\s*)(?:url\(\s*)?(?:['"])([^'"]*)(?:['"])(?:\s*\))?(?:[^;]*;)/g
57871    };
57872    var settings = {
57873        rootElement: options.rootElement || document,
57874        include: options.include || 'style,link[rel="stylesheet"]',
57875        exclude: options.exclude || null,
57876        filter: options.filter || null,
57877        skipDisabled: options.skipDisabled !== false,
57878        useCSSOM: options.useCSSOM || false,
57879        onBeforeSend: options.onBeforeSend || Function.prototype,
57880        onSuccess: options.onSuccess || Function.prototype,
57881        onError: options.onError || Function.prototype,
57882        onComplete: options.onComplete || Function.prototype
57883    };
57884    var sourceNodes = Array.apply(null, settings.rootElement.querySelectorAll(settings.include)).filter((function(node) {
57885        return !matchesSelector(node, settings.exclude);
57886    }));
57887    var cssArray = Array.apply(null, Array(sourceNodes.length)).map((function(x) {
57888        return null;
57889    }));
57890    function handleComplete() {
57891        var isComplete = cssArray.indexOf(null) === -1;
57892        if (isComplete) {
57893            var cssText = cssArray.join("");
57894            settings.onComplete(cssText, cssArray, sourceNodes);
57895        }
57896    }
57897    function handleSuccess(cssText, cssIndex, node, sourceUrl) {
57898        var returnVal = settings.onSuccess(cssText, node, sourceUrl);
57899        cssText = returnVal !== undefined && Boolean(returnVal) === false ? "" : returnVal || cssText;
57900        resolveImports(cssText, node, sourceUrl, (function(resolvedCssText, errorData) {
57901            if (cssArray[cssIndex] === null) {
57902                errorData.forEach((function(data) {
57903                    return settings.onError(data.xhr, node, data.url);
57904                }));
57905                if (!settings.filter || settings.filter.test(resolvedCssText)) {
57906                    cssArray[cssIndex] = resolvedCssText;
57907                } else {
57908                    cssArray[cssIndex] = "";
57909                }
57910                handleComplete();
57911            }
57912        }));
57913    }
57914    function parseImportData(cssText, baseUrl) {
57915        var ignoreRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
57916        var importData = {};
57917        importData.rules = (cssText.replace(regex.cssComments, "").match(regex.cssImports) || []).filter((function(rule) {
57918            return ignoreRules.indexOf(rule) === -1;
57919        }));
57920        importData.urls = importData.rules.map((function(rule) {
57921            return rule.replace(regex.cssImports, "$1");
57922        }));
57923        importData.absoluteUrls = importData.urls.map((function(url) {
57924            return getFullUrl(url, baseUrl);
57925        }));
57926        importData.absoluteRules = importData.rules.map((function(rule, i) {
57927            var oldUrl = importData.urls[i];
57928            var newUrl = getFullUrl(importData.absoluteUrls[i], baseUrl);
57929            return rule.replace(oldUrl, newUrl);
57930        }));
57931        return importData;
57932    }
57933    function resolveImports(cssText, node, baseUrl, callbackFn) {
57934        var __errorData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
57935        var __errorRules = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];
57936        var importData = parseImportData(cssText, baseUrl, __errorRules);
57937        if (importData.rules.length) {
57938            getUrls(importData.absoluteUrls, {
57939                onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {
57940                    settings.onBeforeSend(xhr, node, url);
57941                },
57942                onSuccess: function onSuccess(cssText, url, urlIndex) {
57943                    var returnVal = settings.onSuccess(cssText, node, url);
57944                    cssText = returnVal === false ? "" : returnVal || cssText;
57945                    var responseImportData = parseImportData(cssText, url, __errorRules);
57946                    responseImportData.rules.forEach((function(rule, i) {
57947                        cssText = cssText.replace(rule, responseImportData.absoluteRules[i]);
57948                    }));
57949                    return cssText;
57950                },
57951                onError: function onError(xhr, url, urlIndex) {
57952                    __errorData.push({
57953                        xhr: xhr,
57954                        url: url
57955                    });
57956                    __errorRules.push(importData.rules[urlIndex]);
57957                    resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);
57958                },
57959                onComplete: function onComplete(responseArray) {
57960                    responseArray.forEach((function(importText, i) {
57961                        cssText = cssText.replace(importData.rules[i], importText);
57962                    }));
57963                    resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);
57964                }
57965            });
57966        } else {
57967            callbackFn(cssText, __errorData);
57968        }
57969    }
57970    if (sourceNodes.length) {
57971        sourceNodes.forEach((function(node, i) {
57972            var linkHref = node.getAttribute("href");
57973            var linkRel = node.getAttribute("rel");
57974            var isLink = node.nodeName === "LINK" && linkHref && linkRel && linkRel.toLowerCase().indexOf("stylesheet") !== -1;
57975            var isSkip = settings.skipDisabled === false ? false : node.disabled;
57976            var isStyle = node.nodeName === "STYLE";
57977            if (isLink && !isSkip) {
57978                getUrls(linkHref, {
57979                    mimeType: "text/css",
57980                    onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {
57981                        settings.onBeforeSend(xhr, node, url);
57982                    },
57983                    onSuccess: function onSuccess(cssText, url, urlIndex) {
57984                        var sourceUrl = getFullUrl(linkHref);
57985                        handleSuccess(cssText, i, node, sourceUrl);
57986                    },
57987                    onError: function onError(xhr, url, urlIndex) {
57988                        cssArray[i] = "";
57989                        settings.onError(xhr, node, url);
57990                        handleComplete();
57991                    }
57992                });
57993            } else if (isStyle && !isSkip) {
57994                var cssText = node.textContent;
57995                if (settings.useCSSOM) {
57996                    cssText = Array.apply(null, node.sheet.cssRules).map((function(rule) {
57997                        return rule.cssText;
57998                    })).join("");
57999                }
58000                handleSuccess(cssText, i, node, location.href);
58001            } else {
58002                cssArray[i] = "";
58003                handleComplete();
58004            }
58005        }));
58006    } else {
58007        settings.onComplete("", []);
58008    }
58009}
58010
58011function getFullUrl(url, base) {
58012    var d = document.implementation.createHTMLDocument("");
58013    var b = d.createElement("base");
58014    var a = d.createElement("a");
58015    d.head.appendChild(b);
58016    d.body.appendChild(a);
58017    b.href = base || document.baseURI || (document.querySelector("base") || {}).href || location.href;
58018    a.href = url;
58019    return a.href;
58020}
58021
58022function matchesSelector(elm, selector) {
58023    var matches = elm.matches || elm.matchesSelector || elm.webkitMatchesSelector || elm.mozMatchesSelector || elm.msMatchesSelector || elm.oMatchesSelector;
58024    return matches.call(elm, selector);
58025}
58026
58027var balancedMatch = balanced;
58028
58029function balanced(a, b, str) {
58030    if (a instanceof RegExp) a = maybeMatch(a, str);
58031    if (b instanceof RegExp) b = maybeMatch(b, str);
58032    var r = range(a, b, str);
58033    return r && {
58034        start: r[0],
58035        end: r[1],
58036        pre: str.slice(0, r[0]),
58037        body: str.slice(r[0] + a.length, r[1]),
58038        post: str.slice(r[1] + b.length)
58039    };
58040}
58041
58042function maybeMatch(reg, str) {
58043    var m = str.match(reg);
58044    return m ? m[0] : null;
58045}
58046
58047balanced.range = range;
58048
58049function range(a, b, str) {
58050    var begs, beg, left, right, result;
58051    var ai = str.indexOf(a);
58052    var bi = str.indexOf(b, ai + 1);
58053    var i = ai;
58054    if (ai >= 0 && bi > 0) {
58055        begs = [];
58056        left = str.length;
58057        while (i >= 0 && !result) {
58058            if (i == ai) {
58059                begs.push(i);
58060                ai = str.indexOf(a, i + 1);
58061            } else if (begs.length == 1) {
58062                result = [ begs.pop(), bi ];
58063            } else {
58064                beg = begs.pop();
58065                if (beg < left) {
58066                    left = beg;
58067                    right = bi;
58068                }
58069                bi = str.indexOf(b, i + 1);
58070            }
58071            i = ai < bi && ai >= 0 ? ai : bi;
58072        }
58073        if (begs.length) {
58074            result = [ left, right ];
58075        }
58076    }
58077    return result;
58078}
58079
58080function parseCss(css) {
58081    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58082    var defaults = {
58083        preserveStatic: true,
58084        removeComments: false
58085    };
58086    var settings = _extends({}, defaults, options);
58087    var errors = [];
58088    function error(msg) {
58089        throw new Error("CSS parse error: ".concat(msg));
58090    }
58091    function match(re) {
58092        var m = re.exec(css);
58093        if (m) {
58094            css = css.slice(m[0].length);
58095            return m;
58096        }
58097    }
58098    function open() {
58099        return match(/^{\s*/);
58100    }
58101    function close() {
58102        return match(/^}/);
58103    }
58104    function whitespace() {
58105        match(/^\s*/);
58106    }
58107    function comment() {
58108        whitespace();
58109        if (css[0] !== "/" || css[1] !== "*") {
58110            return;
58111        }
58112        var i = 2;
58113        while (css[i] && (css[i] !== "*" || css[i + 1] !== "/")) {
58114            i++;
58115        }
58116        if (!css[i]) {
58117            return error("end of comment is missing");
58118        }
58119        var str = css.slice(2, i);
58120        css = css.slice(i + 2);
58121        return {
58122            type: "comment",
58123            comment: str
58124        };
58125    }
58126    function comments() {
58127        var cmnts = [];
58128        var c;
58129        while (c = comment()) {
58130            cmnts.push(c);
58131        }
58132        return settings.removeComments ? [] : cmnts;
58133    }
58134    function selector() {
58135        whitespace();
58136        while (css[0] === "}") {
58137            error("extra closing bracket");
58138        }
58139        var m = match(/^(("(?:\\"|[^"])*"|'(?:\\'|[^'])*'|[^{])+)/);
58140        if (m) {
58141            return m[0].trim().replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, "").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, (function(m) {
58142                return m.replace(/,/g, "‌");
58143            })).split(/\s*(?![^(]*\)),\s*/).map((function(s) {
58144                return s.replace(/\u200C/g, ",");
58145            }));
58146        }
58147    }
58148    function declaration() {
58149        if (css[0] === "@") {
58150            return at_rule();
58151        }
58152        match(/^([;\s]*)+/);
58153        var comment_regexp = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
58154        var prop = match(/^(\*?[-#/*\\\w
vendor: 23,891 bytes, lines 58154-58811
58154]+(\[[0-9a-z_-]+\])?)\s*/);
58155        if (!prop) {
58156            return;
58157        }
58158        prop = prop[0].trim();
58159        if (!match(/^:\s*/)) {
58160            return error("property missing ':'");
58161        }
58162        var val = match(/^((?:\/\*.*?\*\/|'(?:\\'|.)*?'|"(?:\\"|.)*?"|\((\s*'(?:\\'|.)*?'|"(?:\\"|.)*?"|[^)]*?)\s*\)|[^};])+)/);
58163        var ret = {
58164            type: "declaration",
58165            property: prop.replace(comment_regexp, ""),
58166            value: val ? val[0].replace(comment_regexp, "").trim() : ""
58167        };
58168        match(/^[;\s]*/);
58169        return ret;
58170    }
58171    function declarations() {
58172        if (!open()) {
58173            return error("missing '{'");
58174        }
58175        var d;
58176        var decls = comments();
58177        while (d = declaration()) {
58178            decls.push(d);
58179            decls = decls.concat(comments());
58180        }
58181        if (!close()) {
58182            return error("missing '}'");
58183        }
58184        return decls;
58185    }
58186    function keyframe() {
58187        whitespace();
58188        var vals = [];
58189        var m;
58190        while (m = match(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/)) {
58191            vals.push(m[1]);
58192            match(/^,\s*/);
58193        }
58194        if (vals.length) {
58195            return {
58196                type: "keyframe",
58197                values: vals,
58198                declarations: declarations()
58199            };
58200        }
58201    }
58202    function at_keyframes() {
58203        var m = match(/^@([-\w]+)?keyframes\s*/);
58204        if (!m) {
58205            return;
58206        }
58207        var vendor = m[1];
58208        m = match(/^([-\w]+)\s*/);
58209        if (!m) {
58210            return error("@keyframes missing name");
58211        }
58212        var name = m[1];
58213        if (!open()) {
58214            return error("@keyframes missing '{'");
58215        }
58216        var frame;
58217        var frames = comments();
58218        while (frame = keyframe()) {
58219            frames.push(frame);
58220            frames = frames.concat(comments());
58221        }
58222        if (!close()) {
58223            return error("@keyframes missing '}'");
58224        }
58225        return {
58226            type: "keyframes",
58227            name: name,
58228            vendor: vendor,
58229            keyframes: frames
58230        };
58231    }
58232    function at_page() {
58233        var m = match(/^@page */);
58234        if (m) {
58235            var sel = selector() || [];
58236            return {
58237                type: "page",
58238                selectors: sel,
58239                declarations: declarations()
58240            };
58241        }
58242    }
58243    function at_page_margin_box() {
58244        var m = match(/@(top|bottom|left|right)-(left|center|right|top|middle|bottom)-?(corner)?\s*/);
58245        if (m) {
58246            var name = "".concat(m[1], "-").concat(m[2]) + (m[3] ? "-".concat(m[3]) : "");
58247            return {
58248                type: "page-margin-box",
58249                name: name,
58250                declarations: declarations()
58251            };
58252        }
58253    }
58254    function at_fontface() {
58255        var m = match(/^@font-face\s*/);
58256        if (m) {
58257            return {
58258                type: "font-face",
58259                declarations: declarations()
58260            };
58261        }
58262    }
58263    function at_supports() {
58264        var m = match(/^@supports *([^{]+)/);
58265        if (m) {
58266            return {
58267                type: "supports",
58268                supports: m[1].trim(),
58269                rules: rules()
58270            };
58271        }
58272    }
58273    function at_host() {
58274        var m = match(/^@host\s*/);
58275        if (m) {
58276            return {
58277                type: "host",
58278                rules: rules()
58279            };
58280        }
58281    }
58282    function at_media() {
58283        var m = match(/^@media([^{]+)*/);
58284        if (m) {
58285            return {
58286                type: "media",
58287                media: (m[1] || "").trim(),
58288                rules: rules()
58289            };
58290        }
58291    }
58292    function at_custom_m() {
58293        var m = match(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);
58294        if (m) {
58295            return {
58296                type: "custom-media",
58297                name: m[1].trim(),
58298                media: m[2].trim()
58299            };
58300        }
58301    }
58302    function at_document() {
58303        var m = match(/^@([-\w]+)?document *([^{]+)/);
58304        if (m) {
58305            return {
58306                type: "document",
58307                document: m[2].trim(),
58308                vendor: m[1] ? m[1].trim() : null,
58309                rules: rules()
58310            };
58311        }
58312    }
58313    function at_x() {
58314        var m = match(/^@(import|charset|namespace)\s*([^;]+);/);
58315        if (m) {
58316            return {
58317                type: m[1],
58318                name: m[2].trim()
58319            };
58320        }
58321    }
58322    function at_rule() {
58323        whitespace();
58324        if (css[0] === "@") {
58325            var ret = at_x() || at_fontface() || at_media() || at_keyframes() || at_supports() || at_document() || at_custom_m() || at_host() || at_page() || at_page_margin_box();
58326            if (ret && !settings.preserveStatic) {
58327                var hasVarFunc = false;
58328                if (ret.declarations) {
58329                    hasVarFunc = ret.declarations.some((function(decl) {
58330                        return /var\(/.test(decl.value);
58331                    }));
58332                } else {
58333                    var arr = ret.keyframes || ret.rules || [];
58334                    hasVarFunc = arr.some((function(obj) {
58335                        return (obj.declarations || []).some((function(decl) {
58336                            return /var\(/.test(decl.value);
58337                        }));
58338                    }));
58339                }
58340                return hasVarFunc ? ret : {};
58341            }
58342            return ret;
58343        }
58344    }
58345    function rule() {
58346        if (!settings.preserveStatic) {
58347            var balancedMatch$1 = balancedMatch("{", "}", css);
58348            if (balancedMatch$1) {
58349                var hasVarDecl = /:(?:root|host)(?![.:#(])/.test(balancedMatch$1.pre) && /--\S*\s*:/.test(balancedMatch$1.body);
58350                var hasVarFunc = /var\(/.test(balancedMatch$1.body);
58351                if (!hasVarDecl && !hasVarFunc) {
58352                    css = css.slice(balancedMatch$1.end + 1);
58353                    return {};
58354                }
58355            }
58356        }
58357        var sel = selector() || [];
58358        var decls = settings.preserveStatic ? declarations() : declarations().filter((function(decl) {
58359            var hasVarDecl = sel.some((function(s) {
58360                return /:(?:root|host)(?![.:#(])/.test(s);
58361            })) && /^--\S/.test(decl.property);
58362            var hasVarFunc = /var\(/.test(decl.value);
58363            return hasVarDecl || hasVarFunc;
58364        }));
58365        if (!sel.length) {
58366            error("selector missing");
58367        }
58368        return {
58369            type: "rule",
58370            selectors: sel,
58371            declarations: decls
58372        };
58373    }
58374    function rules(core) {
58375        if (!core && !open()) {
58376            return error("missing '{'");
58377        }
58378        var node;
58379        var rules = comments();
58380        while (css.length && (core || css[0] !== "}") && (node = at_rule() || rule())) {
58381            if (node.type) {
58382                rules.push(node);
58383            }
58384            rules = rules.concat(comments());
58385        }
58386        if (!core && !close()) {
58387            return error("missing '}'");
58388        }
58389        return rules;
58390    }
58391    return {
58392        type: "stylesheet",
58393        stylesheet: {
58394            rules: rules(true),
58395            errors: errors
58396        }
58397    };
58398}
58399
58400function parseVars(cssData) {
58401    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58402    var defaults = {
58403        parseHost: false,
58404        store: {},
58405        onWarning: function onWarning() {}
58406    };
58407    var settings = _extends({}, defaults, options);
58408    var reVarDeclSelectors = new RegExp(":".concat(settings.parseHost ? "host" : "root", "$"));
58409    if (typeof cssData === "string") {
58410        cssData = parseCss(cssData, settings);
58411    }
58412    cssData.stylesheet.rules.forEach((function(rule) {
58413        if (rule.type !== "rule" || !rule.selectors.some((function(s) {
58414            return reVarDeclSelectors.test(s);
58415        }))) {
58416            return;
58417        }
58418        rule.declarations.forEach((function(decl, i) {
58419            var prop = decl.property;
58420            var value = decl.value;
58421            if (prop && prop.indexOf("--") === 0) {
58422                settings.store[prop] = value;
58423            }
58424        }));
58425    }));
58426    return settings.store;
58427}
58428
58429function stringifyCss(tree) {
58430    var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
58431    var cb = arguments.length > 2 ? arguments[2] : undefined;
58432    var renderMethods = {
58433        charset: function charset(node) {
58434            return "@charset " + node.name + ";";
58435        },
58436        comment: function comment(node) {
58437            return node.comment.indexOf("__CSSVARSPONYFILL") === 0 ? "/*" + node.comment + "*/" : "";
58438        },
58439        "custom-media": function customMedia(node) {
58440            return "@custom-media " + node.name + " " + node.media + ";";
58441        },
58442        declaration: function declaration(node) {
58443            return node.property + ":" + node.value + ";";
58444        },
58445        document: function document(node) {
58446            return "@" + (node.vendor || "") + "document " + node.document + "{" + visit(node.rules) + "}";
58447        },
58448        "font-face": function fontFace(node) {
58449            return "@font-face" + "{" + visit(node.declarations) + "}";
58450        },
58451        host: function host(node) {
58452            return "@host" + "{" + visit(node.rules) + "}";
58453        },
58454        import: function _import(node) {
58455            return "@import " + node.name + ";";
58456        },
58457        keyframe: function keyframe(node) {
58458            return node.values.join(",") + "{" + visit(node.declarations) + "}";
58459        },
58460        keyframes: function keyframes(node) {
58461            return "@" + (node.vendor || "") + "keyframes " + node.name + "{" + visit(node.keyframes) + "}";
58462        },
58463        media: function media(node) {
58464            return "@media " + node.media + "{" + visit(node.rules) + "}";
58465        },
58466        namespace: function namespace(node) {
58467            return "@namespace " + node.name + ";";
58468        },
58469        page: function page(node) {
58470            return "@page " + (node.selectors.length ? node.selectors.join(", ") : "") + "{" + visit(node.declarations) + "}";
58471        },
58472        "page-margin-box": function pageMarginBox(node) {
58473            return "@" + node.name + "{" + visit(node.declarations) + "}";
58474        },
58475        rule: function rule(node) {
58476            var decls = node.declarations;
58477            if (decls.length) {
58478                return node.selectors.join(",") + "{" + visit(decls) + "}";
58479            }
58480        },
58481        supports: function supports(node) {
58482            return "@supports " + node.supports + "{" + visit(node.rules) + "}";
58483        }
58484    };
58485    function visit(nodes) {
58486        var buf = "";
58487        for (var i = 0; i < nodes.length; i++) {
58488            var n = nodes[i];
58489            if (cb) {
58490                cb(n);
58491            }
58492            var txt = renderMethods[n.type](n);
58493            if (txt) {
58494                buf += txt;
58495                if (txt.length && n.selectors) {
58496                    buf += delim;
58497                }
58498            }
58499        }
58500        return buf;
58501    }
58502    return visit(tree.stylesheet.rules);
58503}
58504
58505function walkCss(node, fn) {
58506    node.rules.forEach((function(rule) {
58507        if (rule.rules) {
58508            walkCss(rule, fn);
58509            return;
58510        }
58511        if (rule.keyframes) {
58512            rule.keyframes.forEach((function(keyframe) {
58513                if (keyframe.type === "keyframe") {
58514                    fn(keyframe.declarations, rule);
58515                }
58516            }));
58517            return;
58518        }
58519        if (!rule.declarations) {
58520            return;
58521        }
58522        fn(rule.declarations, node);
58523    }));
58524}
58525
58526var VAR_PROP_IDENTIFIER = "--";
58527
58528var VAR_FUNC_IDENTIFIER = "var";
58529
58530function transformCss(cssData) {
58531    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58532    var defaults = {
58533        preserveStatic: true,
58534        preserveVars: false,
58535        variables: {},
58536        onWarning: function onWarning() {}
58537    };
58538    var settings = _extends({}, defaults, options);
58539    if (typeof cssData === "string") {
58540        cssData = parseCss(cssData, settings);
58541    }
58542    walkCss(cssData.stylesheet, (function(declarations, node) {
58543        for (var i = 0; i < declarations.length; i++) {
58544            var decl = declarations[i];
58545            var type = decl.type;
58546            var prop = decl.property;
58547            var value = decl.value;
58548            if (type !== "declaration") {
58549                continue;
58550            }
58551            if (!settings.preserveVars && prop && prop.indexOf(VAR_PROP_IDENTIFIER) === 0) {
58552                declarations.splice(i, 1);
58553                i--;
58554                continue;
58555            }
58556            if (value.indexOf(VAR_FUNC_IDENTIFIER + "(") !== -1) {
58557                var resolvedValue = resolveValue(value, settings);
58558                if (resolvedValue !== decl.value) {
58559                    resolvedValue = fixNestedCalc(resolvedValue);
58560                    if (!settings.preserveVars) {
58561                        decl.value = resolvedValue;
58562                    } else {
58563                        declarations.splice(i, 0, {
58564                            type: type,
58565                            property: prop,
58566                            value: resolvedValue
58567                        });
58568                        i++;
58569                    }
58570                }
58571            }
58572        }
58573    }));
58574    return stringifyCss(cssData);
58575}
58576
58577function fixNestedCalc(value) {
58578    var reCalcVal = /calc\(([^)]+)\)/g;
58579    (value.match(reCalcVal) || []).forEach((function(match) {
58580        var newVal = "calc".concat(match.split("calc").join(""));
58581        value = value.replace(match, newVal);
58582    }));
58583    return value;
58584}
58585
58586function resolveValue(value) {
58587    var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
58588    var __recursiveFallback = arguments.length > 2 ? arguments[2] : undefined;
58589    if (value.indexOf("var(") === -1) {
58590        return value;
58591    }
58592    var valueData = balancedMatch("(", ")", value);
58593    function resolveFunc(value) {
58594        var name = value.split(",")[0].replace(/[\s\n\t]/g, "");
58595        var fallback = (value.match(/(?:\s*,\s*){1}(.*)?/) || [])[1];
58596        var match = Object.prototype.hasOwnProperty.call(settings.variables, name) ? String(settings.variables[name]) : undefined;
58597        var replacement = match || (fallback ? String(fallback) : undefined);
58598        var unresolvedFallback = __recursiveFallback || value;
58599        if (!match) {
58600            settings.onWarning('variable "'.concat(name, '" is undefined'));
58601        }
58602        if (replacement && replacement !== "undefined" && replacement.length > 0) {
58603            return resolveValue(replacement, settings, unresolvedFallback);
58604        } else {
58605            return "var(".concat(unresolvedFallback, ")");
58606        }
58607    }
58608    if (!valueData) {
58609        if (value.indexOf("var(") !== -1) {
58610            settings.onWarning('missing closing ")" in the value "'.concat(value, '"'));
58611        }
58612        return value;
58613    } else if (valueData.pre.slice(-3) === "var") {
58614        var isEmptyVarFunc = valueData.body.trim().length === 0;
58615        if (isEmptyVarFunc) {
58616            settings.onWarning("var() must contain a non-whitespace string");
58617            return value;
58618        } else {
58619            return valueData.pre.slice(0, -3) + resolveFunc(valueData.body) + resolveValue(valueData.post, settings);
58620        }
58621    } else {
58622        return valueData.pre + "(".concat(resolveValue(valueData.body, settings), ")") + resolveValue(valueData.post, settings);
58623    }
58624}
58625
58626var isBrowser = typeof window !== "undefined";
58627
58628var isNativeSupport = isBrowser && window.CSS && window.CSS.supports && window.CSS.supports("(--a: 0)");
58629
58630var counters = {
58631    group: 0,
58632    job: 0
58633};
58634
58635var defaults = {
58636    rootElement: isBrowser ? document : null,
58637    shadowDOM: false,
58638    include: "style,link[rel=stylesheet]",
58639    exclude: "",
58640    variables: {},
58641    onlyLegacy: true,
58642    preserveStatic: true,
58643    preserveVars: false,
58644    silent: false,
58645    updateDOM: true,
58646    updateURLs: true,
58647    watch: null,
58648    onBeforeSend: function onBeforeSend() {},
58649    onError: function onError() {},
58650    onWarning: function onWarning() {},
58651    onSuccess: function onSuccess() {},
58652    onComplete: function onComplete() {},
58653    onFinally: function onFinally() {}
58654};
58655
58656var regex = {
58657    cssComments: /\/\*[\s\S]+?\*\//g,
58658    cssKeyframes: /@(?:-\w*-)?keyframes/,
58659    cssMediaQueries: /@media[^{]+\{([\s\S]+?})\s*}/g,
58660    cssUrls: /url\((?!['"]?(?:data|http|\/\/):)['"]?([^'")]*)['"]?\)/g,
58661    cssVarDeclRules: /(?::(?:root|host)(?![.:#(])[\s,]*[^{]*{\s*[^}]*})/g,
58662    cssVarDecls: /(?:[\s;]*)(-{2}\w[\w-]*)(?:\s*:\s*)([^;]*);/g,
58663    cssVarFunc: /var\(\s*--[\w-]/,
58664    cssVars: /(?:(?::(?:root|host)(?![.:#(])[\s,]*[^{]*{\s*[^;]*;*\s*)|(?:var\(\s*))(--[^:)]+)(?:\s*[:)])/
58665};
58666
58667var variableStore = {
58668    dom: {},
58669    job: {},
58670    user: {}
58671};
58672
58673var cssVarsIsRunning = false;
58674
58675var cssVarsObserver = null;
58676
58677var cssVarsSrcNodeCount = 0;
58678
58679var debounceTimer = null;
58680
58681var isShadowDOMReady = false;
58682
58683/**
58684 * Fetches, parses, and transforms CSS custom properties from specified
58685 * <style> and <link> elements into static values, then appends a new <style>
58686 * element with static values to the DOM to provide CSS custom property
58687 * compatibility for legacy browsers. Also provides a single interface for
58688 * live updates of runtime values in both modern and legacy browsers.
58689 *
58690 * @preserve
58691 * @param {object}   [options] Options object
58692 * @param {object}   [options.rootElement=document] Root element to traverse for
58693 *                   <link> and <style> nodes
58694 * @param {boolean}  [options.shadowDOM=false] Determines if shadow DOM <link>
58695 *                   and <style> nodes will be processed.
58696 * @param {string}   [options.include="style,link[rel=stylesheet]"] CSS selector
58697 *                   matching <link re="stylesheet"> and <style> nodes to
58698 *                   process
58699 * @param {string}   [options.exclude] CSS selector matching <link
58700 *                   rel="stylehseet"> and <style> nodes to exclude from those
58701 *                   matches by options.include
58702 * @param {object}   [options.variables] A map of custom property name/value
58703 *                   pairs. Property names can omit or include the leading
58704 *                   double-hyphen (—), and values specified will override
58705 *                   previous values
58706 * @param {boolean}  [options.onlyLegacy=true] Determines if the ponyfill will
58707 *                   only generate legacy-compatible CSS in browsers that lack
58708 *                   native support (i.e., legacy browsers)
58709 * @param {boolean}  [options.preserveStatic=true] Determines if CSS
58710 *                   declarations that do not reference a custom property will
58711 *                   be preserved in the transformed CSS
58712 * @param {boolean}  [options.preserveVars=false] Determines if CSS custom
58713 *                   property declarations will be preserved in the transformed
58714 *                   CSS
58715 * @param {boolean}  [options.silent=false] Determines if warning and error
58716 *                   messages will be displayed on the console
58717 * @param {boolean}  [options.updateDOM=true] Determines if the ponyfill will
58718 *                   update the DOM after processing CSS custom properties
58719 * @param {boolean}  [options.updateURLs=true] Determines if relative url()
58720 *                   paths will be converted to absolute urls in external CSS
58721 * @param {boolean}  [options.watch=false] Determines if a MutationObserver will
58722 *                   be created that will execute the ponyfill when a <link> or
58723 *                   <style> DOM mutation is observed
58724 * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes
58725 *                   1) the XHR object, 2) source node reference, and 3) the
58726 *                   source URL as arguments
58727 * @param {function} [options.onError] Callback after a CSS parsing error has
58728 *                   occurred or an XHR request has failed. Passes 1) an error
58729 *                   message, and 2) source node reference, 3) xhr, and 4 url as
58730 *                   arguments.
58731 * @param {function} [options.onWarning] Callback after each CSS parsing warning
58732 *                   has occurred. Passes 1) a warning message as an argument.
58733 * @param {function} [options.onSuccess] Callback after CSS data has been
58734 *                   collected from each node and before CSS custom properties
58735 *                   have been transformed. Allows modifying the CSS data before
58736 *                   it is transformed by returning any string value (or false
58737 *                   to skip). Passes 1) CSS text, 2) source node reference, and
58738 *                   3) the source URL as arguments.
58739 * @param {function} [options.onComplete] Callback after all CSS has been
58740 *                   processed, legacy-compatible CSS has been generated, and
58741 *                   (optionally) the DOM has been updated. Passes 1) a CSS
58742 *                   string with CSS variable values resolved, 2) an array of
58743 *                   output <style> node references that have been appended to
58744 *                   the DOM, 3) an object containing all custom properies names
58745 *                   and values, and 4) the ponyfill execution time in
58746 *                   milliseconds.
58747 * @param {function} [options.onFinally] Callback in modern and legacy browsers
58748 *                   after the ponyfill has finished all tasks. Passes 1) a
58749 *                   boolean indicating if the last ponyfill call resulted in a
58750 *                   style change, 2) a boolean indicating if the current
58751 *                   browser provides native support for CSS custom properties,
58752 *                   and 3) the ponyfill execution time in milliseconds.
58753 * @example
58754 *
58755 *   cssVars({
58756 *     rootElement   : document,
58757 *     shadowDOM     : false,
58758 *     include       : 'style,link[rel="stylesheet"]',
58759 *     exclude       : '',
58760 *     variables     : {},
58761 *     onlyLegacy    : true,
58762 *     preserveStatic: true,
58763 *     preserveVars  : false,
58764 *     silent        : false,
58765 *     updateDOM     : true,
58766 *     updateURLs    : true,
58767 *     watch         : false,
58768 *     onBeforeSend(xhr, node, url) {},
58769 *     onError(message, node, xhr, url) {},
58770 *     onWarning(message) {},
58771 *     onSuccess(cssText, node, url) {},
58772 *     onComplete(cssText, styleNode, cssVariables, benchmark) {},
58773 *     onFinally(hasChanged, hasNativeSupport, benchmark)
58774 *   });
58775 */ function cssVars() {
58776    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58777    var msgPrefix = "cssVars(): ";
58778    var settings = _extends({}, defaults, options);
58779    function handleError(message, sourceNode, xhr, url) {
58780        if (!settings.silent && window.console) {
58781            console.error("".concat(msgPrefix).concat(message, "\n"), sourceNode);
58782        }
58783        settings.onError(message, sourceNode, xhr, url);
58784    }
58785    function handleWarning(message) {
58786        if (!settings.silent && window.console) {
58787            console.warn("".concat(msgPrefix).concat(message));
58788        }
58789        settings.onWarning(message);
58790    }
58791    function handleFinally(hasChanged) {
58792        settings.onFinally(Boolean(hasChanged), isNativeSupport, getTimeStamp() - settings.__benchmark);
58793    }
58794    if (!isBrowser) {
58795        return;
58796    }
58797    if (settings.watch) {
58798        settings.watch = defaults.watch;
58799        addMutationObserver(settings);
58800        cssVars(settings);
58801        return;
58802    } else if (settings.watch === false && cssVarsObserver) {
58803        cssVarsObserver.disconnect();
58804        cssVarsObserver = null;
58805    }
58806    if (!settings.__benchmark) {
58807        if (cssVarsIsRunning === settings.rootElement) {
58808            cssVarsDebounced(options);
58809            return;
58810        }
58811        var srcNodes = 
vendor: 27,365 bytes, lines 58811-59292
58811Array.apply(null, settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars="out"])'));
58812        settings.__benchmark = getTimeStamp();
58813        settings.exclude = [ cssVarsObserver ? '[data-cssvars]:not([data-cssvars=""])' : '[data-cssvars="out"]', "link[disabled]", settings.exclude ].filter((function(selector) {
58814            return selector;
58815        })).join(",");
58816        settings.variables = fixVarNames(settings.variables);
58817        srcNodes.forEach((function(srcNode) {
58818            var hasStyleCache = srcNode.tagName === "STYLE" && srcNode.__cssVars.text;
58819            var hasStyleChanged = hasStyleCache && srcNode.textContent !== srcNode.__cssVars.text;
58820            if (hasStyleCache && hasStyleChanged) {
58821                srcNode.sheet.disabled = false;
58822                srcNode.setAttribute("data-cssvars", "");
58823            }
58824        }));
58825        if (!cssVarsObserver) {
58826            var outNodes = Array.apply(null, settings.rootElement.querySelectorAll('[data-cssvars="out"]'));
58827            outNodes.forEach((function(outNode) {
58828                var dataGroup = outNode.getAttribute("data-cssvars-group");
58829                var srcNode = dataGroup ? settings.rootElement.querySelector('[data-cssvars="src"][data-cssvars-group="'.concat(dataGroup, '"]')) : null;
58830                if (!srcNode) {
58831                    outNode.parentNode.removeChild(outNode);
58832                }
58833            }));
58834            if (cssVarsSrcNodeCount && srcNodes.length < cssVarsSrcNodeCount) {
58835                cssVarsSrcNodeCount = srcNodes.length;
58836                variableStore.dom = {};
58837            }
58838        }
58839    }
58840    if (document.readyState !== "loading") {
58841        if (isNativeSupport && settings.onlyLegacy) {
58842            var hasVarChange = false;
58843            if (settings.updateDOM) {
58844                var targetElm = settings.rootElement.host || (settings.rootElement === document ? document.documentElement : settings.rootElement);
58845                Object.keys(settings.variables).forEach((function(key) {
58846                    var varValue = settings.variables[key];
58847                    hasVarChange = hasVarChange || varValue !== getComputedStyle(targetElm).getPropertyValue(key);
58848                    targetElm.style.setProperty(key, varValue);
58849                }));
58850            }
58851            handleFinally(hasVarChange);
58852        } else if (!isShadowDOMReady && (settings.shadowDOM || settings.rootElement.shadowRoot || settings.rootElement.host)) {
58853            getCssData({
58854                rootElement: defaults.rootElement,
58855                include: defaults.include,
58856                exclude: settings.exclude,
58857                skipDisabled: false,
58858                onSuccess: function onSuccess(cssText, node, url) {
58859                    cssText = cssText.replace(regex.cssComments, "").replace(regex.cssMediaQueries, "");
58860                    cssText = (cssText.match(regex.cssVarDeclRules) || []).join("");
58861                    return cssText || false;
58862                },
58863                onComplete: function onComplete(cssText, cssArray, nodeArray) {
58864                    parseVars(cssText, {
58865                        store: variableStore.dom,
58866                        onWarning: handleWarning
58867                    });
58868                    isShadowDOMReady = true;
58869                    cssVars(settings);
58870                }
58871            });
58872        } else {
58873            cssVarsIsRunning = settings.rootElement;
58874            getCssData({
58875                rootElement: settings.rootElement,
58876                include: settings.include,
58877                exclude: settings.exclude,
58878                skipDisabled: false,
58879                onBeforeSend: settings.onBeforeSend,
58880                onError: function onError(xhr, node, url) {
58881                    var responseUrl = xhr.responseURL || getFullUrl$1(url, location.href);
58882                    var statusText = xhr.statusText ? "(".concat(xhr.statusText, ")") : "Unspecified Error" + (xhr.status === 0 ? " (possibly CORS related)" : "");
58883                    var errorMsg = "CSS XHR Error: ".concat(responseUrl, " ").concat(xhr.status, " ").concat(statusText);
58884                    handleError(errorMsg, node, xhr, responseUrl);
58885                },
58886                onSuccess: function onSuccess(cssText, node, url) {
58887                    var isLink = node.tagName === "LINK";
58888                    var isStyleImport = node.tagName === "STYLE" && cssText !== node.textContent;
58889                    var returnVal = settings.onSuccess(cssText, node, url);
58890                    cssText = returnVal !== undefined && Boolean(returnVal) === false ? "" : returnVal || cssText;
58891                    if (settings.updateURLs && (isLink || isStyleImport)) {
58892                        cssText = fixRelativeCssUrls(cssText, url);
58893                    }
58894                    return cssText;
58895                },
58896                onComplete: function onComplete(cssText, cssArray) {
58897                    var nodeArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
58898                    var currentVars = _extends({}, variableStore.dom, variableStore.user);
58899                    var hasVarChange = false;
58900                    variableStore.job = {};
58901                    nodeArray.forEach((function(node, i) {
58902                        var nodeCSS = cssArray[i];
58903                        node.__cssVars = node.__cssVars || {};
58904                        node.__cssVars.text = nodeCSS;
58905                        if (regex.cssVars.test(nodeCSS)) {
58906                            try {
58907                                var cssTree = parseCss(nodeCSS, {
58908                                    preserveStatic: settings.preserveStatic,
58909                                    removeComments: true
58910                                });
58911                                parseVars(cssTree, {
58912                                    parseHost: Boolean(settings.rootElement.host),
58913                                    store: variableStore.dom,
58914                                    onWarning: handleWarning
58915                                });
58916                                node.__cssVars.tree = cssTree;
58917                            } catch (err) {
58918                                handleError(err.message, node);
58919                            }
58920                        }
58921                    }));
58922                    _extends(variableStore.job, variableStore.dom);
58923                    if (settings.updateDOM) {
58924                        _extends(variableStore.user, settings.variables);
58925                        _extends(variableStore.job, variableStore.user);
58926                    } else {
58927                        _extends(variableStore.job, variableStore.user, settings.variables);
58928                        _extends(currentVars, settings.variables);
58929                    }
58930                    hasVarChange = counters.job > 0 && Boolean(Object.keys(variableStore.job).length > Object.keys(currentVars).length || Boolean(Object.keys(currentVars).length && Object.keys(variableStore.job).some((function(key) {
58931                        return variableStore.job[key] !== currentVars[key];
58932                    }))));
58933                    if (hasVarChange) {
58934                        resetCssNodes(settings.rootElement);
58935                        cssVars(settings);
58936                    } else {
58937                        var outCssArray = [];
58938                        var outNodeArray = [];
58939                        var hasKeyframesWithVars = false;
58940                        if (settings.updateDOM) {
58941                            counters.job++;
58942                        }
58943                        nodeArray.forEach((function(node, i) {
58944                            var isSkip = !node.__cssVars.tree;
58945                            if (node.__cssVars.tree) {
58946                                try {
58947                                    transformCss(node.__cssVars.tree, _extends({}, settings, {
58948                                        variables: variableStore.job,
58949                                        onWarning: handleWarning
58950                                    }));
58951                                    var outCss = stringifyCss(node.__cssVars.tree);
58952                                    if (settings.updateDOM) {
58953                                        var nodeCSS = cssArray[i];
58954                                        var hasCSSVarFunc = regex.cssVarFunc.test(nodeCSS);
58955                                        if (!node.getAttribute("data-cssvars")) {
58956                                            node.setAttribute("data-cssvars", "src");
58957                                        }
58958                                        if (outCss.length && hasCSSVarFunc) {
58959                                            var dataGroup = node.getAttribute("data-cssvars-group") || ++counters.group;
58960                                            var outCssNoSpaces = outCss.replace(/\s/g, "");
58961                                            var outNode = settings.rootElement.querySelector('[data-cssvars="out"][data-cssvars-group="'.concat(dataGroup, '"]')) || document.createElement("style");
58962                                            hasKeyframesWithVars = hasKeyframesWithVars || regex.cssKeyframes.test(outCss);
58963                                            if (settings.preserveStatic) {
58964                                                node.sheet.disabled = true;
58965                                            }
58966                                            if (!outNode.hasAttribute("data-cssvars")) {
58967                                                outNode.setAttribute("data-cssvars", "out");
58968                                            }
58969                                            if (outCssNoSpaces === node.textContent.replace(/\s/g, "")) {
58970                                                isSkip = true;
58971                                                if (outNode && outNode.parentNode) {
58972                                                    node.removeAttribute("data-cssvars-group");
58973                                                    outNode.parentNode.removeChild(outNode);
58974                                                }
58975                                            } else if (outCssNoSpaces !== outNode.textContent.replace(/\s/g, "")) {
58976                                                [ node, outNode ].forEach((function(n) {
58977                                                    n.setAttribute("data-cssvars-job", counters.job);
58978                                                    n.setAttribute("data-cssvars-group", dataGroup);
58979                                                }));
58980                                                outNode.textContent = outCss;
58981                                                outCssArray.push(outCss);
58982                                                outNodeArray.push(outNode);
58983                                                if (!outNode.parentNode) {
58984                                                    node.parentNode.insertBefore(outNode, node.nextSibling);
58985                                                }
58986                                            }
58987                                        }
58988                                    } else {
58989                                        if (node.textContent.replace(/\s/g, "") !== outCss) {
58990                                            outCssArray.push(outCss);
58991                                        }
58992                                    }
58993                                } catch (err) {
58994                                    handleError(err.message, node);
58995                                }
58996                            }
58997                            if (isSkip) {
58998                                node.setAttribute("data-cssvars", "skip");
58999                            }
59000                            if (!node.hasAttribute("data-cssvars-job")) {
59001                                node.setAttribute("data-cssvars-job", counters.job);
59002                            }
59003                        }));
59004                        cssVarsSrcNodeCount = settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars="out"])').length;
59005                        if (settings.shadowDOM) {
59006                            var elms = [].concat(settings.rootElement).concat(Array.apply(null, settings.rootElement.querySelectorAll("*")));
59007                            for (var i = 0, elm; elm = elms[i]; ++i) {
59008                                if (elm.shadowRoot && elm.shadowRoot.querySelector("style")) {
59009                                    var shadowSettings = _extends({}, settings, {
59010                                        rootElement: elm.shadowRoot
59011                                    });
59012                                    cssVars(shadowSettings);
59013                                }
59014                            }
59015                        }
59016                        if (settings.updateDOM && hasKeyframesWithVars) {
59017                            fixKeyframes(settings.rootElement);
59018                        }
59019                        cssVarsIsRunning = false;
59020                        settings.onComplete(outCssArray.join(""), outNodeArray, JSON.parse(JSON.stringify(variableStore.job)), getTimeStamp() - settings.__benchmark);
59021                        handleFinally(outNodeArray.length);
59022                    }
59023                }
59024            });
59025        }
59026    } else {
59027        document.addEventListener("DOMContentLoaded", (function init(evt) {
59028            cssVars(options);
59029            document.removeEventListener("DOMContentLoaded", init);
59030        }));
59031    }
59032}
59033
59034cssVars.reset = function() {
59035    counters.job = 0;
59036    counters.group = 0;
59037    cssVarsIsRunning = false;
59038    if (cssVarsObserver) {
59039        cssVarsObserver.disconnect();
59040        cssVarsObserver = null;
59041    }
59042    cssVarsSrcNodeCount = 0;
59043    debounceTimer = null;
59044    isShadowDOMReady = false;
59045    for (var prop in variableStore) {
59046        variableStore[prop] = {};
59047    }
59048};
59049
59050function addMutationObserver(settings) {
59051    function isDisabled(node) {
59052        var isDisabledAttr = isLink(node) && node.hasAttribute("disabled");
59053        var isDisabledSheet = (node.sheet || {}).disabled;
59054        return isDisabledAttr || isDisabledSheet;
59055    }
59056    function isLink(node) {
59057        var isStylesheet = node.tagName === "LINK" && (node.getAttribute("rel") || "").indexOf("stylesheet") !== -1;
59058        return isStylesheet;
59059    }
59060    function isStyle(node) {
59061        return node.tagName === "STYLE";
59062    }
59063    function isValidAttributeMutation(mutation) {
59064        var isValid = false;
59065        if (mutation.type === "attributes" && isLink(mutation.target) && !isDisabled(mutation.target)) {
59066            var isEnabledMutation = mutation.attributeName === "disabled";
59067            var isHrefMutation = mutation.attributeName === "href";
59068            var isSkipNode = mutation.target.getAttribute("data-cssvars") === "skip";
59069            var isSrcNode = mutation.target.getAttribute("data-cssvars") === "src";
59070            if (isEnabledMutation) {
59071                isValid = !isSkipNode && !isSrcNode;
59072            } else if (isHrefMutation) {
59073                if (isSkipNode) {
59074                    mutation.target.setAttribute("data-cssvars", "");
59075                } else if (isSrcNode) {
59076                    resetCssNodes(settings.rootElement, true);
59077                }
59078                isValid = true;
59079            }
59080        }
59081        return isValid;
59082    }
59083    function isValidStyleTextMutation(mutation) {
59084        var isValid = false;
59085        if (mutation.type === "childList") {
59086            var isStyleElm = isStyle(mutation.target);
59087            var isOutNode = mutation.target.getAttribute("data-cssvars") === "out";
59088            isValid = isStyleElm && !isOutNode;
59089        }
59090        return isValid;
59091    }
59092    function isValidAddMutation(mutation) {
59093        var isValid = false;
59094        if (mutation.type === "childList") {
59095            isValid = Array.apply(null, mutation.addedNodes).some((function(node) {
59096                var isElm = node.nodeType === 1;
59097                var hasAttr = isElm && node.hasAttribute("data-cssvars");
59098                var isStyleWithVars = isStyle(node) && regex.cssVars.test(node.textContent);
59099                var isValid = !hasAttr && (isLink(node) || isStyleWithVars);
59100                return isValid && !isDisabled(node);
59101            }));
59102        }
59103        return isValid;
59104    }
59105    function isValidRemoveMutation(mutation) {
59106        var isValid = false;
59107        if (mutation.type === "childList") {
59108            isValid = Array.apply(null, mutation.removedNodes).some((function(node) {
59109                var isElm = node.nodeType === 1;
59110                var isOutNode = isElm && node.getAttribute("data-cssvars") === "out";
59111                var isSrcNode = isElm && node.getAttribute("data-cssvars") === "src";
59112                var isValid = isSrcNode;
59113                if (isSrcNode || isOutNode) {
59114                    var dataGroup = node.getAttribute("data-cssvars-group");
59115                    var orphanNode = settings.rootElement.querySelector('[data-cssvars-group="'.concat(dataGroup, '"]'));
59116                    if (isSrcNode) {
59117                        resetCssNodes(settings.rootElement, true);
59118                    }
59119                    if (orphanNode) {
59120                        orphanNode.parentNode.removeChild(orphanNode);
59121                    }
59122                }
59123                return isValid;
59124            }));
59125        }
59126        return isValid;
59127    }
59128    if (!window.MutationObserver) {
59129        return;
59130    }
59131    if (cssVarsObserver) {
59132        cssVarsObserver.disconnect();
59133        cssVarsObserver = null;
59134    }
59135    cssVarsObserver = new MutationObserver((function(mutations) {
59136        var hasValidMutation = mutations.some((function(mutation) {
59137            return isValidAttributeMutation(mutation) || isValidStyleTextMutation(mutation) || isValidAddMutation(mutation) || isValidRemoveMutation(mutation);
59138        }));
59139        if (hasValidMutation) {
59140            cssVars(settings);
59141        }
59142    }));
59143    cssVarsObserver.observe(document.documentElement, {
59144        attributes: true,
59145        attributeFilter: [ "disabled", "href" ],
59146        childList: true,
59147        subtree: true
59148    });
59149}
59150
59151function cssVarsDebounced(settings) {
59152    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
59153    clearTimeout(debounceTimer);
59154    debounceTimer = setTimeout((function() {
59155        settings.__benchmark = null;
59156        cssVars(settings);
59157    }), delay);
59158}
59159
59160function fixKeyframes(rootElement) {
59161    var animationNameProp = [ "animation-name", "-moz-animation-name", "-webkit-animation-name" ].filter((function(prop) {
59162        return getComputedStyle(document.body)[prop];
59163    }))[0];
59164    if (animationNameProp) {
59165        var allNodes = rootElement.getElementsByTagName("*");
59166        var keyframeNodes = [];
59167        var nameMarker = "__CSSVARSPONYFILL-KEYFRAMES__";
59168        for (var i = 0, len = allNodes.length; i < len; i++) {
59169            var node = allNodes[i];
59170            var animationName = getComputedStyle(node)[animationNameProp];
59171            if (animationName !== "none") {
59172                node.style[animationNameProp] += nameMarker;
59173                keyframeNodes.push(node);
59174            }
59175        }
59176        void document.body.offsetHeight;
59177        for (var _i = 0, _len = keyframeNodes.length; _i < _len; _i++) {
59178            var nodeStyle = keyframeNodes[_i].style;
59179            nodeStyle[animationNameProp] = nodeStyle[animationNameProp].replace(nameMarker, "");
59180        }
59181    }
59182}
59183
59184function fixRelativeCssUrls(cssText, baseUrl) {
59185    var cssUrls = cssText.replace(regex.cssComments, "").match(regex.cssUrls) || [];
59186    cssUrls.forEach((function(cssUrl) {
59187        var oldUrl = cssUrl.replace(regex.cssUrls, "$1");
59188        var newUrl = getFullUrl$1(oldUrl, baseUrl);
59189        cssText = cssText.replace(cssUrl, cssUrl.replace(oldUrl, newUrl));
59190    }));
59191    return cssText;
59192}
59193
59194function fixVarNames() {
59195    var varObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
59196    var reLeadingHyphens = /^-{2}/;
59197    return Object.keys(varObj).reduce((function(obj, value) {
59198        var key = reLeadingHyphens.test(value) ? value : "--".concat(value.replace(/^-+/, ""));
59199        obj[key] = varObj[value];
59200        return obj;
59201    }), {});
59202}
59203
59204function getFullUrl$1(url) {
59205    var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;
59206    var d = document.implementation.createHTMLDocument("");
59207    var b = d.createElement("base");
59208    var a = d.createElement("a");
59209    d.head.appendChild(b);
59210    d.body.appendChild(a);
59211    b.href = base;
59212    a.href = url;
59213    return a.href;
59214}
59215
59216function getTimeStamp() {
59217    return isBrowser && (window.performance || {}).now ? window.performance.now() : (new Date).getTime();
59218}
59219
59220function resetCssNodes(rootElement) {
59221    var resetDOMVariableStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
59222    var resetNodes = Array.apply(null, rootElement.querySelectorAll('[data-cssvars="skip"],[data-cssvars="src"]'));
59223    resetNodes.forEach((function(node) {
59224        return node.setAttribute("data-cssvars", "");
59225    }));
59226    if (resetDOMVariableStore) {
59227        variableStore.dom = {};
59228    }
59229}
59230
59231/* harmony default export */ __webpack_exports__["a"] = (cssVars);
59232//# sourceMappingURL=css-vars-ponyfill.esm.js.map
59233
59234
59235/***/ }),
59236/* 959 */
59237/***/ (function(module, __webpack_exports__, __webpack_require__) {
59238
59239"use strict";
59240/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return parseQueryString; });
59241/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71);
59242/* harmony import */ var core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol__WEBPACK_IMPORTED_MODULE_0__);
59243/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70);
59244/* harmony import */ var core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter__WEBPACK_IMPORTED_MODULE_1__);
59245/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(87);
59246/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_2__);
59247/* harmony import */ var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(265);
59248/* harmony import */ var core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_index_of__WEBPACK_IMPORTED_MODULE_3__);
59249/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77);
59250/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_4__);
59251/* harmony import */ var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(162);
59252/* harmony import */ var core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce__WEBPACK_IMPORTED_MODULE_5__);
59253/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(177);
59254/* harmony import */ var core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice__WEBPACK_IMPORTED_MODULE_6__);
59255/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98);
59256/* harmony import */ var core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptor__WEBPACK_IMPORTED_MODULE_7__);
59257/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(99);
59258/* harmony import */ var core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_8__);
59259/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(89);
59260/* harmony import */ var core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys__WEBPACK_IMPORTED_MODULE_9__);
59261/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(93);
59262/* harmony import */ var core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec__WEBPACK_IMPORTED_MODULE_10__);
59263/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(269);
59264/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_11__);
59265/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(252);
59266/* harmony import */ var core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_split__WEBPACK_IMPORTED_MODULE_12__);
59267/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(88);
59268/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_13__);
59269/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(15);
59270/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_14__);
59271/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(8);
59272/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_15__);
59273
59274
59275
59276
59277
59278
59279
59280
59281
59282
59283
59284
59285
59286
59287
59288
59289
59290function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
59291
59292function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_14___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
59292 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
59293
59294var parseQueryString = function parseQueryString() {
59295  var search = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
59296  var hashes = search.slice(search.indexOf("?") + 1).split("&");
59297  return hashes.reduce(function (acc, hash) {
59298    var _hash$split$map = hash.split("=").map(function (item) {
59299      return item ? decodeURIComponent(item.replace(/\+/g, " ")) : undefined;
59300    }),
59301        _hash$split$map2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_15___default()(_hash$split$map, 2),
59302        key = _hash$split$map2[0],
59303        val = _hash$split$map2[1];
59304
59305    return key ? _objectSpread(_objectSpread({}, acc), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_14___default()({}, key, val)) : acc;
59306  }, {});
59307};
59308
59309/***/ }),
59310/* 960 */,
59311/* 961 */,
59312/* 962 */
59313/***/ (function(module, __webpack_exports__, __webpack_require__) {
59314
59315"use strict";
59316
59317// EXPORTS
59318__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ MenuPanelbabel_target_legacy_MenuPanel; });
59319
59320// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.values.js?babel-target=legacy
59321var es_object_valuesbabel_target_legacy = __webpack_require__(328);
59322
59323// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
59324var regenerator_babel_target_legacy = __webpack_require__(6);
59325var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
59326
59327// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
59328var runtimebabel_target_legacy = __webpack_require__(60);
59329
59330// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
59331var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
59332var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
59333
59334// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
59335var slicedToArraybabel_target_legacy = __webpack_require__(8);
59336var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
59337
59338// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
59339var preact_modulebabel_target_legacy = __webpack_require__(1);
59340
59341// EXTERNAL MODULE: ./src/components/MenuPanel/MenuPanel.module.scss
59342var MenuPanel_module = __webpack_require__(190);
59343var MenuPanel_module_default = /*#__PURE__*/__webpack_require__.n(MenuPanel_module);
59344
59345// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
59346var RPIconbabel_target_legacy = __webpack_require__(42);
59347
59348// EXTERNAL MODULE: ./src/components/TabBar/index.ts?babel-target=legacy + 1 modules
59349var TabBarbabel_target_legacy = __webpack_require__(435);
59350
59351// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
59352var hooks_modulebabel_target_legacy = __webpack_require__(4);
59353
59354// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
59355var es_array_concatbabel_target_legacy = __webpack_require__(75);
59356
59357// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
59358var es_array_filterbabel_target_legacy = __webpack_require__(70);
59359
59360// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js?babel-target=legacy
59361var es_array_reducebabel_target_legacy = __webpack_require__(162);
59362
59363// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
59364var es_object_keysbabel_target_legacy = __webpack_require__(89);
59365
59366// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.sub.js?babel-target=legacy
59367var es_string_subbabel_target_legacy = __webpack_require__(344);
59368
59369// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
59370var toConsumableArraybabel_target_legacy = __webpack_require__(37);
59371var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
59372
59373// EXTERNAL MODULE: ./src/components/FavouritesList/FavouritesList.module.scss
59374var FavouritesList_module = __webpack_require__(111);
59375var FavouritesList_module_default = /*#__PURE__*/__webpack_require__.n(FavouritesList_module);
59376
59377// EXTERNAL MODULE: ./node_modules/@aerian/preact-virtual-list/dist/preact-virtual-list.js?babel-target=legacy
59378var preact_virtual_listbabel_target_legacy = __webpack_require__(121);
59379var preact_virtual_listbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(preact_virtual_listbabel_target_legacy);
59380
59381// EXTERNAL MODULE: ./src/components/ContentCard/index.ts?babel-target=legacy + 1 modules
59382var ContentCardbabel_target_legacy = __webpack_require__(189);
59383
59384// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
59385var useAPIbabel_target_legacy = __webpack_require__(44);
59386
59387// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
59388var APIManagerbabel_target_legacy = __webpack_require__(32);
59389
59390// EXTERNAL MODULE: ./src/components/IconSprite/index.ts?babel-target=legacy + 1 modules
59391var IconSpritebabel_target_legacy = __webpack_require__(131);
59392
59393// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
59394var es_babel_target_legacy = __webpack_require__(25);
59395
59396// CONCATENATED MODULE: ./src/components/FavouritesList/FavouritesList.tsx?babel-target=legacy
59397
59398
59399
59400
59401
59402
59403
59404
59405
59406
59407
59408
59409
59410
59411
59412
59413
59414
59415var FavouritesListbabel_target_legacy_renderRow = function renderRow(row) {
59416  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
59417    imageUrl: row.imageUrl,
59418    title: row.serviceName,
59419    description: row.shortDescription,
59420    url: row.consoleUrl,
59421    rpId: row.rpId
59422  });
59423};
59424
59425var FavouritesListbabel_target_legacy_FavouritesList = function FavouritesList(_ref) {
59426  var stations = _ref.stations;
59427  var keys = Object.keys(stations);
59428
59429  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
59430      t = _useTranslation.t;
59431
59432  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
59433      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
59434      state = _useAPI2[0];
59435
59436  var data = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
59437    return keys.reduce(function (prev, next) {
59438      return [].concat(toConsumableArraybabel_target_legacy_default()(prev), toConsumableArraybabel_target_legacy_default()(stations[next]));
59439    }, []).filter(function (station) {
59440      return Object(APIManagerbabel_target_legacy["m" /* isFave */])(station.rpId, state.faves);
59441    });
59442  }, [stations, keys, state]);
59443  return data.length ? Object(preact_modulebabel_target_legacy["h"])("div", {
59444    className: FavouritesList_module_default.a.wrap
59445  }, Object(preact_modulebabel_target_legacy["h"])("div", {
59446    className: FavouritesList_module_default.a.head
59447  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
59448    className: FavouritesList_module_default.a.title
59449  }, t("FAVOURITES_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
59450    className: FavouritesList_module_default.a.sub
59451  }, t("FAVOURITES_DESCRIPTION"))), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
59452    data: data,
59453    renderRow: FavouritesListbabel_target_legacy_renderRow,
59454    rowHeight: 80,
59455    overscanCount: 10,
59456    sync: true
59457  })) : Object(preact_modulebabel_target_legacy["h"])("div", {
59458    className: FavouritesList_module_default.a.wrap
59459  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
59460    className: FavouritesList_module_default.a.empty
59461  }, t("FAVOURITES_EMPTY_STATE")), Object(preact_modulebabel_target_legacy["h"])("div", {
59462    className: FavouritesList_module_default.a.card
59463  }, Object(preact_modulebabel_target_legacy["h"])("p", {
59464    className: FavouritesList_module_default.a.info
59465  }, t("FAVOURITES_HINT")), Object(preact_modulebabel_target_legacy["h"])("div", {
59466    className: FavouritesList_module_default.a.swoosh
59467  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
59468    "aria-hidden": "true",
59469    src: __webpack_require__(1001)
59470  })), Object(preact_modulebabel_target_legacy["h"])("div", {
59471    className: FavouritesList_module_default.a.buttons
59472  }, Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
59473    name: "fave-unset"
59474  }), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
59475    name: "small-play"
59476  }))));
59477};
59478/* harmony default export */ var FavouritesListbabel_target_legacy = (FavouritesListbabel_target_legacy_FavouritesList);
59479// CONCATENATED MODULE: ./src/components/FavouritesList/index.ts?babel-target=legacy
59480
59481// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js?babel-target=legacy
59482var es_array_findbabel_target_legacy = __webpack_require__(182);
59483
59484// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
59485var es_array_mapbabel_target_legacy = __webpack_require__(77);
59486
59487// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js?babel-target=legacy
59488var es_array_slicebabel_target_legacy = __webpack_require__(177);
59489
59490// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toArray.js?babel-target=legacy
59491var toArraybabel_target_legacy = __webpack_require__(780);
59492var toArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toArraybabel_target_legacy);
59493
59494// EXTERNAL MODULE: ./src/components/RecentStations/RecentStations.module.scss
59495var RecentStations_module = __webpack_require__(159);
59496var RecentStations_module_default = /*#__PURE__*/__webpack_require__.n(RecentStations_module);
59497
59498// CONCATENATED MODULE: ./src/components/RecentStations/RecentStations.tsx?babel-target=legacy
59499
59500
59501
59502
59503
59504
59505
59506
59507
59508
59509
59510
59511
59512
59513
59514
59515
59516
59517
59518
59519var RecentStationsbabel_target_legacy_renderRow = function renderRow(row) {
59520  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
59521    imageUrl: row.imageUrl,
59522    title: row.serviceName,
59523    description: row.shortDescription,
59524    url: row.consoleUrl,
59525    rpId: row.rpId
59526  });
59527};
59528
59529var findStation = function findStation(rpId, stations) {
59530  return stations.find(function (station) {
59531    return station.rpId === rpId;
59532  });
59533};
59534
59535var RecentStationsbabel_target_legacy_RecentStations = function RecentStations(_ref) {
59536  var stations = _ref.stations;
59537  var keys = Object.keys(stations);
59538
59539  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
59540      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
59541      state = _useAPI2[0];
59542
59543  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
59544      t = _useTranslation.t;
59545
59546  var allStations = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
59547    return keys.reduce(function (prev, next) {
59548      return [].concat(toConsumableArraybabel_target_legacy_default()(prev), toConsumableArraybabel_target_legacy_default()(stations[next]));
59549    }, []);
59550  }, [keys, stations]);
59551
59552  var _getRecentStations = Object(APIManagerbabel_target_legacy["i" /* getRecentStations */])(state.cookie),
59553      _getRecentStations2 = toArraybabel_target_legacy_default()(_getRecentStations),
59554      _current = _getRecentStations2[0],
59555      history = _getRecentStations2.slice(1);
59556
59557  var data = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
59558    return history.map(function (item) {
59559      return findStation(item, allStations);
59560    }
59560).filter(Boolean);
59561  }, [history, allStations]);
59562  return data.length ? Object(preact_modulebabel_target_legacy["h"])("div", {
59563    className: RecentStations_module_default.a.wrap
59564  }, Object(preact_modulebabel_target_legacy["h"])("div", {
59565    className: RecentStations_module_default.a.head
59566  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
59567    className: RecentStations_module_default.a.title
59568  }, t("RECENT_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
59569    className: RecentStations_module_default.a.sub
59570  }, t("RECENT_DESCRIPTION"))), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
59571    data: data,
59572    renderRow: RecentStationsbabel_target_legacy_renderRow,
59573    rowHeight: 80,
59574    overscanCount: 10,
59575    sync: true
59576  })) : Object(preact_modulebabel_target_legacy["h"])("div", {
59577    className: RecentStations_module_default.a.wrap
59578  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
59579    className: RecentStations_module_default.a.empty
59580  }, t("RECENT_EMPTY_STATE"), Object(preact_modulebabel_target_legacy["h"])("br", null), t("RECENT_HINT")));
59581};
59582/* harmony default export */ var RecentStationsbabel_target_legacy = (RecentStationsbabel_target_legacy_RecentStations);
59583// CONCATENATED MODULE: ./src/components/RecentStations/index.ts?babel-target=legacy
59584
59585// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
59586var es_symbolbabel_target_legacy = __webpack_require__(71);
59587
59588// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find-index.js?babel-target=legacy
59589var es_array_find_indexbabel_target_legacy = __webpack_require__(343);
59590
59591// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
59592var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
59593
59594// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
59595var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
59596
59597// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
59598var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
59599
59600// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
59601var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
59602
59603// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
59604var definePropertybabel_target_legacy = __webpack_require__(15);
59605var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
59606
59607// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js?babel-target=legacy
59608function _extends() {
59609  _extends = Object.assign || function (target) {
59610    for (var i = 1; i < arguments.length; i++) {
59611      var source = arguments[i];
59612
59613      for (var key in source) {
59614        if (Object.prototype.hasOwnProperty.call(source, key)) {
59615          target[key] = source[key];
59616        }
59617      }
59618    }
59619
59620    return target;
59621  };
59622
59623  return _extends.apply(this, arguments);
59624}
59625// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?babel-target=legacy
59626function _inheritsLoose(subClass, superClass) {
59627  subClass.prototype = Object.create(superClass.prototype);
59628  subClass.prototype.constructor = subClass;
59629  subClass.__proto__ = superClass;
59630}
59631// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?babel-target=legacy
59632var assertThisInitializedbabel_target_legacy = __webpack_require__(110);
59633
59634// CONCATENATED MODULE: ./node_modules/memoize-one/dist/memoize-one.esm.js?babel-target=legacy
59635var safeIsNaN = Number.isNaN ||
59636    function ponyfill(value) {
59637        return typeof value === 'number' && value !== value;
59638    };
59639function isEqual(first, second) {
59640    if (first === second) {
59641        return true;
59642    }
59643    if (safeIsNaN(first) && safeIsNaN(second)) {
59644        return true;
59645    }
59646    return false;
59647}
59648function areInputsEqual(newInputs, lastInputs) {
59649    if (newInputs.length !== lastInputs.length) {
59650        return false;
59651    }
59652    for (var i = 0; i < newInputs.length; i++) {
59653        if (!isEqual(newInputs[i], lastInputs[i])) {
59654            return false;
59655        }
59656    }
59657    return true;
59658}
59659
59660function memoizeOne(resultFn, isEqual) {
59661    if (isEqual === void 0) { isEqual = areInputsEqual; }
59662    var lastThis;
59663    var lastArgs = [];
59664    var lastResult;
59665    var calledOnce = false;
59666    function memoized() {
59667        var newArgs = [];
59668        for (var _i = 0; _i < arguments.length; _i++) {
59669            newArgs[_i] = arguments[_i];
59670        }
59671        if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {
59672            return lastResult;
59673        }
59674        lastResult = resultFn.apply(this, newArgs);
59675        calledOnce = true;
59676        lastThis = this;
59677        lastArgs = newArgs;
59678        return lastResult;
59679    }
59680    return memoized;
59681}
59682
59683/* harmony default export */ var memoize_one_esmbabel_target_legacy = (memoizeOne);
59684
59685// EXTERNAL MODULE: ./node_modules/preact/compat/dist/compat.module.js?babel-target=legacy
59686var compat_modulebabel_target_legacy = __webpack_require__(18);
59687
59688// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?babel-target=legacy
59689function _objectWithoutPropertiesLoose(source, excluded) {
59690  if (source == null) return {};
59691  var target = {};
59692  var sourceKeys = Object.keys(source);
59693  var key, i;
59694
59695  for (i = 0; i < sourceKeys.length; i++) {
59696    key = sourceKeys[i];
59697    if (excluded.indexOf(key) >= 0) continue;
59698    target[key] = source[key];
59699  }
59700
59701  return target;
59702}
59703// CONCATENATED MODULE: ./node_modules/react-window/dist/index.esm.js?babel-target=legacy
59704
59705
59706
59707
59708
59709
59710
59711// Animation frame based implementation of setTimeout.
59712// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js
59713var hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';
59714var now = hasNativePerformanceNow ? function () {
59715  return performance.now();
59716} : function () {
59717  return Date.now();
59718};
59719function cancelTimeout(timeoutID) {
59720  cancelAnimationFrame(timeoutID.id);
59721}
59722function requestTimeout(callback, delay) {
59723  var start = now();
59724
59725  function tick() {
59726    if (now() - start >= delay) {
59727      callback.call(null);
59728    } else {
59729      timeoutID.id = requestAnimationFrame(tick);
59730    }
59731  }
59732
59733  var timeoutID = {
59734    id: requestAnimationFrame(tick)
59735  };
59736  return timeoutID;
59737}
59738
59739var size = -1; // This utility copied from "dom-helpers" package.
59740
59741function getScrollbarSize(recalculate) {
59742  if (recalculate === void 0) {
59743    recalculate = false;
59744  }
59745
59746  if (size === -1 || recalculate) {
59747    var div = document.createElement('div');
59748    var style = div.style;
59749    style.width = '50px';
59750    style.height = '50px';
59751    style.overflow = 'scroll';
59752    document.body.appendChild(div);
59753    size = div.offsetWidth - div.clientWidth;
59754    document.body.removeChild(div);
59755  }
59756
59757  return size;
59758}
59759var cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
59760// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).
59761// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.
59762// The safest way to check this is to intentionally set a negative offset,
59763// and then verify that the subsequent "scroll" event matches the negative offset.
59764// If it does not match, then we can assume a non-standard RTL scroll implementation.
59765
59766function getRTLOffsetType(recalculate) {
59767  if (recalculate === void 0) {
59768    recalculate = false;
59769  }
59770
59771  if (cachedRTLResult === null || recalculate) {
59772    var outerDiv = document.createElement('div');
59773    var outerStyle = outerDiv.style;
59774    outerStyle.width = '50px';
59775    outerStyle.height = '50px';
59776    outerStyle.overflow = 'scroll';
59777    outerStyle.direction = 'rtl';
59778    var innerDiv = document.createElement('div');
59779    var innerStyle = innerDiv.style;
59780    innerStyle.width = '100px';
59781    innerStyle.height = '100px';
59782    outerDiv.appendChild(innerDiv);
59783    document.body.appendChild(outerDiv);
59784
59785    if (outerDiv.scrollLeft > 0) {
59786      cachedRTLResult = 'positive-descending';
59787    } else {
59788      outerDiv.scrollLeft = 1;
59789
59790      if (outerDiv.scrollLeft === 0) {
59791        cachedRTLResult = 'negative';
59792      } else {
59793        cachedRTLResult = 'positive-ascending';
59794      }
59795    }
59796
59797    document.body.removeChild(outerDiv);
59798    return cachedRTLResult;
59799  }
59800
59801  return cachedRTLResult;
59802}
59803
59804var IS_SCROLLING_DEBOUNCE_INTERVAL = 150;
59805
59806var defaultItemKey = function defaultItemKey(_ref) {
59807  var columnIndex = _ref.columnIndex,
59808      data = _ref.data,
59809      rowIndex = _ref.rowIndex;
59810  return rowIndex + ":" + columnIndex;
59811}; // In DEV mode, this Set helps us only log a warning once per component instance.
59812// This avoids spamming the console every time a render happens.
59813
59814
59815var devWarningsOverscanCount = null;
59816var devWarningsOverscanRowsColumnsCount = null;
59817var devWarningsTagName = null;
59818
59819if (false) {}
59820
59821function createGridComponent(_ref2) {
59822  var _class, _temp;
59823
59824  var getColumnOffset = _ref2.getColumnOffset,
59825      getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,
59826      getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,
59827      getColumnWidth = _ref2.getColumnWidth,
59828      getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,
59829      getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,
59830      getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,
59831      getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,
59832      getRowHeight = _ref2.getRowHeight,
59833      getRowOffset = _ref2.getRowOffset,
59834      getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,
59835      getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,
59836      initInstanceProps = _ref2.initInstanceProps,
59837      shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,
59838      validateProps = _ref2.validateProps;
59839  return _temp = _class =
59840  /*#__PURE__*/
59841  function (_PureComponent) {
59842    _inheritsLoose(Grid, _PureComponent);
59843
59844    // Always use explicit constructor for React components.
59845    // It produces less code after transpilation. (#26)
59846    // eslint-disable-next-line no-useless-constructor
59847    function Grid(props) {
59848      var _this;
59849
59850      _this = _PureComponent.call(this, props) || this;
59851      _this._instanceProps = initInstanceProps(_this.props, Object(assertThisInitializedbabel_target_legacy["a" /* default */])(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)));
59852      _this._resetIsScrollingTimeoutId = null;
59853      _this._outerRef = void 0;
59854      _this.state = {
59855        instance: Object(assertThisInitializedbabel_target_legacy["a" /* default */])(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)),
59856        isScrolling: false,
59857        horizontalScrollDirection: 'forward',
59858        scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,
59859        scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,
59860        scrollUpdateWasRequested: false,
59861        verticalScrollDirection: 'forward'
59862      };
59863      _this._callOnItemsRendered = void 0;
59864      _this._callOnItemsRendered = memoize_one_esmbabel_target_legacy(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {
59865        return _this.props.onItemsRendered({
59866          overscanColumnStartIndex: overscanColumnStartIndex,
59867          overscanColumnStopIndex: overscanColumnStopIndex,
59868          overscanRowStartIndex: overscanRowStartIndex,
59869          overscanRowStopIndex: overscanRowStopIndex,
59870          visibleColumnStartIndex: visibleColumnStartIndex,
59871          visibleColumnStopIndex: visibleColumnStopIndex,
59872          visibleRowStartIndex: visibleRowStartIndex,
59873          visibleRowStopIndex: visibleRowStopIndex
59874        });
59875      });
59876      _this._callOnScroll = void 0;
59877      _this._callOnScroll = memoize_one_esmbabel_target_legacy(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {
59878        return _this.props.onScroll({
59879          horizontalScrollDirection: horizontalScrollDirection,
59880          scrollLeft: scrollLeft,
59881          scrollTop: scrollTop,
59882          verticalScrollDirection: verticalScrollDirection,
59883          scrollUpdateWasRequested: scrollUpdateWasRequested
59884        });
59885      });
59886      _this._getItemStyle = void 0;
59887
59888      _this._getItemStyle = function (rowIndex, columnIndex) {
59889        var _this$props = _this.props,
59890            columnWidth = _this$props.columnWidth,
59891            direction = _this$props.direction,
59892            rowHeight = _this$props.rowHeight;
59893
59894        var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);
59895
59896        var key = rowIndex + ":" + columnIndex;
59897        var style;
59898
59899        if (itemStyleCache.hasOwnProperty(key)) {
59900          style = itemStyleCache[key];
59901        } else {
59902          var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);
59903
59904          var isRtl = direction === 'rtl';
59905          itemStyleCache[key] = style = {
59906            position: 'absolute',
59907            left: isRtl ? undefined : _offset,
59908            right: isRtl ? _offset : undefined,
59909            top: getRowOffset(_this.props, rowIndex, _this._instanceProps),
59910            height: getRowHeight(_this.props, rowIndex, _this._instanceProps),
59911            width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)
59912          };
59913        }
59914
59915        return style;
59916      };
59917
59918      _this._getItemStyleCache = void 0;
59919      _this._getItemStyleCache = memoize_one_esmbabel_target_legacy(function (_, __, ___) {
59920        return {};
59921      });
59922
59923      _this._onScroll = function (event) {
59924        var _event$currentTarget = event.currentTarget,
59925            clientHeight = _event$currentTarget.clientHeight,
59926            clientWidth = _event$currentTarget.clientWidth,
59927            scrollLeft = _event$currentTarget.scrollLeft,
59928            scrollTop = _event$currentTarget.scrollTop,
59929            scrollHeight = _event$currentTarget.scrollHeight,
59930            scrollWidth = _event$currentTarget.scrollWidth;
59931
59932        _this.setState(function (prevState) {
59933          if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {
59934            // Scroll position may have been updated by cDM/cDU,
59935            // In which case we don't need to trigger another render,
59936            // And we don't want to update state.isScrolling.
59937            return null;
59938          }
59939
59940          var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
59941          // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
59942          // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.
59943          // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.
59944
59945          var calculatedScrollLeft = scrollLeft;
59946
59947          if (direction === 'rtl') {
59948            switch (getRTLOffsetType()) {
59949              case 'negative':
59950                calculatedScrollLeft = -scrollLeft;
59951                break;
59952
59953              case 'positive-descending':
59954                calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;
59955                break;
59956            }
59957          } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.
59958
59959
59960          calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));
59961          var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));
59962          return {
59963            isScrolling: true,
59964            horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',
59965            scrollLeft: calculatedScrollLeft,
59966            scrollTop: calculatedScrollTop,
59967            verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',
59968            scrollUpdateWasRequested: false
59969          };
59970        }, _this._resetIsScrollingDebounced);
59971      };
59972
59973      _this._outerRefSetter = function (ref) {
59974        var outerRef = _this.props.outerRef;
59975        _this._outerRef = ref;
59976
59977        if (typeof outerRef === 'function') {
59978          outerRef(ref);
59979        } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {
59980          outerRef.current = ref;
59981        }
59982      };
59983
59984      _this._resetIsScrollingDebounced = function () {
59985        if (_this._resetIsScrollingTimeoutId !== null) {
59986          cancelTimeout(_this._resetIsScrollingTimeoutId);
59987        }
59988
59989        _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);
59990      };
59991
59992      _this._resetIsScrolling = function () {
59993        _this._resetIsScrollingTimeoutId = null;
59994
59995        _this.setState({
59996          isScrolling: false
59997        }, function () {
59998          // Clear style cache after state update has been committed.
59999          // This way we don't break pure sCU for items that don't use isScrolling param.
60000          _this._getItemStyleCache(-1);
60001        });
60002      };
60003
60004      return _this;
60005    }
60006
60007    Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
60008      validateSharedProps(nextProps, prevState);
60009      validateProps(nextProps);
60010      return null;
60011    };
60012
60013    var _proto = Grid.prototype;
60014
60015    _proto.scrollTo = function scrollTo(_ref3) {
60016      var scrollLeft = _ref3.scrollLeft,
60017          scrollTop = _ref3.scrollTop;
60018
60019      if (scrollLeft !== undefined) {
60020        scrollLeft = Math.max(0, scrollLeft);
60021      }
60022
60023      if (scrollTop !== undefined) {
60024        scrollTop = Math.max(0, scrollTop);
60025      }
60026
60027      this.setState(function (prevState) {
60028        if (scrollLeft === undefined) {
60029          scrollLeft = prevState.scrollLeft;
60030        }
60031
60032        if (scrollTop === undefined) {
60033          scrollTop = prevState.scrollTop;
60034        }
60035
60036        if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {
60037          return null;
60038        }
60039
60040        return {
60041          horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',
60042          scrollLeft: scrollLeft,
60043          scrollTop: scrollTop,
60044          scrollUpdateWasRequested: true,
60045          verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'
60046        };
60047      }, this._resetIsScrollingDebounced);
60048    };
60049
60050    _proto.scrollToItem = function scrollToItem(_ref4) {
60051      var _ref4$align = _ref4.align,
60052          align = _ref4$align === void 0 ? 'auto' : _ref4$align,
60053          columnIndex = _ref4.columnIndex,
60054          rowIndex = _ref4.rowIndex;
60055      var _this$props2 = this.props,
60056          columnCount = _this$props2.columnCount,
60057          height = _this$props2.height,
60058          rowCount = _this$props2.rowCount,
60059          width = _this$props2.width;
60060      var _this$state = this.state,
60061          scrollLeft = _this$state.scrollLeft,
60062          scrollTop = _this$state.scrollTop;
60063      var scrollbarSize = getScrollbarSize();
60064
60065      if (columnIndex !== undefined) {
60066        columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));
60067      }
60068
60069      if (rowIndex !== undefined) {
60070        rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));
60071      }
60072
60073      var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);
60074      var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,
60075      // to ensure it's fully visible.
60076      // But we only need to account for its size when it's actually visible.
60077
60078      var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;
60079      var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;
60080      this.scrollTo({
60081        scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, vertica
60081lScrollbarSize) : scrollLeft,
60082        scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop
60083      });
60084    };
60085
60086    _proto.componentDidMount = function componentDidMount() {
60087      var _this$props3 = this.props,
60088          initialScrollLeft = _this$props3.initialScrollLeft,
60089          initialScrollTop = _this$props3.initialScrollTop;
60090
60091      if (this._outerRef != null) {
60092        var outerRef = this._outerRef;
60093
60094        if (typeof initialScrollLeft === 'number') {
60095          outerRef.scrollLeft = initialScrollLeft;
60096        }
60097
60098        if (typeof initialScrollTop === 'number') {
60099          outerRef.scrollTop = initialScrollTop;
60100        }
60101      }
60102
60103      this._callPropsCallbacks();
60104    };
60105
60106    _proto.componentDidUpdate = function componentDidUpdate() {
60107      var direction = this.props.direction;
60108      var _this$state2 = this.state,
60109          scrollLeft = _this$state2.scrollLeft,
60110          scrollTop = _this$state2.scrollTop,
60111          scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;
60112
60113      if (scrollUpdateWasRequested && this._outerRef != null) {
60114        // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
60115        // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
60116        // So we need to determine which browser behavior we're dealing with, and mimic it.
60117        var outerRef = this._outerRef;
60118
60119        if (direction === 'rtl') {
60120          switch (getRTLOffsetType()) {
60121            case 'negative':
60122              outerRef.scrollLeft = -scrollLeft;
60123              break;
60124
60125            case 'positive-ascending':
60126              outerRef.scrollLeft = scrollLeft;
60127              break;
60128
60129            default:
60130              var clientWidth = outerRef.clientWidth,
60131                  scrollWidth = outerRef.scrollWidth;
60132              outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;
60133              break;
60134          }
60135        } else {
60136          outerRef.scrollLeft = Math.max(0, scrollLeft);
60137        }
60138
60139        outerRef.scrollTop = Math.max(0, scrollTop);
60140      }
60141
60142      this._callPropsCallbacks();
60143    };
60144
60145    _proto.componentWillUnmount = function componentWillUnmount() {
60146      if (this._resetIsScrollingTimeoutId !== null) {
60147        cancelTimeout(this._resetIsScrollingTimeoutId);
60148      }
60149    };
60150
60151    _proto.render = function render() {
60152      var _this$props4 = this.props,
60153          children = _this$props4.children,
60154          className = _this$props4.className,
60155          columnCount = _this$props4.columnCount,
60156          direction = _this$props4.direction,
60157          height = _this$props4.height,
60158          innerRef = _this$props4.innerRef,
60159          innerElementType = _this$props4.innerElementType,
60160          innerTagName = _this$props4.innerTagName,
60161          itemData = _this$props4.itemData,
60162          _this$props4$itemKey = _this$props4.itemKey,
60163          itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,
60164          outerElementType = _this$props4.outerElementType,
60165          outerTagName = _this$props4.outerTagName,
60166          rowCount = _this$props4.rowCount,
60167          style = _this$props4.style,
60168          useIsScrolling = _this$props4.useIsScrolling,
60169          width = _this$props4.width;
60170      var isScrolling = this.state.isScrolling;
60171
60172      var _this$_getHorizontalR = this._getHorizontalRangeToRender(),
60173          columnStartIndex = _this$_getHorizontalR[0],
60174          columnStopIndex = _this$_getHorizontalR[1];
60175
60176      var _this$_getVerticalRan = this._getVerticalRangeToRender(),
60177          rowStartIndex = _this$_getVerticalRan[0],
60178          rowStopIndex = _this$_getVerticalRan[1];
60179
60180      var items = [];
60181
60182      if (columnCount > 0 && rowCount) {
60183        for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {
60184          for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {
60185            items.push(Object(compat_modulebabel_target_legacy["b" /* createElement */])(children, {
60186              columnIndex: _columnIndex,
60187              data: itemData,
60188              isScrolling: useIsScrolling ? isScrolling : undefined,
60189              key: itemKey({
60190                columnIndex: _columnIndex,
60191                data: itemData,
60192                rowIndex: _rowIndex
60193              }),
60194              rowIndex: _rowIndex,
60195              style: this._getItemStyle(_rowIndex, _columnIndex)
60196            }));
60197          }
60198        }
60199      } // Read this value AFTER items have been created,
60200      // So their actual sizes (if variable) are taken into consideration.
60201
60202
60203      var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);
60204      var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);
60205      return Object(compat_modulebabel_target_legacy["b" /* createElement */])(outerElementType || outerTagName || 'div', {
60206        className: className,
60207        onScroll: this._onScroll,
60208        ref: this._outerRefSetter,
60209        style: _extends({
60210          position: 'relative',
60211          height: height,
60212          width: width,
60213          overflow: 'auto',
60214          WebkitOverflowScrolling: 'touch',
60215          willChange: 'transform',
60216          direction: direction
60217        }, style)
60218      }, Object(compat_modulebabel_target_legacy["b" /* createElement */])(innerElementType || innerTagName || 'div', {
60219        children: items,
60220        ref: innerRef,
60221        style: {
60222          height: estimatedTotalHeight,
60223          pointerEvents: isScrolling ? 'none' : undefined,
60224          width: estimatedTotalWidth
60225        }
60226      }));
60227    };
60228
60229    _proto._callPropsCallbacks = function _callPropsCallbacks() {
60230      var _this$props5 = this.props,
60231          columnCount = _this$props5.columnCount,
60232          onItemsRendered = _this$props5.onItemsRendered,
60233          onScroll = _this$props5.onScroll,
60234          rowCount = _this$props5.rowCount;
60235
60236      if (typeof onItemsRendered === 'function') {
60237        if (columnCount > 0 && rowCount > 0) {
60238          var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),
60239              _overscanColumnStartIndex = _this$_getHorizontalR2[0],
60240              _overscanColumnStopIndex = _this$_getHorizontalR2[1],
60241              _visibleColumnStartIndex = _this$_getHorizontalR2[2],
60242              _visibleColumnStopIndex = _this$_getHorizontalR2[3];
60243
60244          var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),
60245              _overscanRowStartIndex = _this$_getVerticalRan2[0],
60246              _overscanRowStopIndex = _this$_getVerticalRan2[1],
60247              _visibleRowStartIndex = _this$_getVerticalRan2[2],
60248              _visibleRowStopIndex = _this$_getVerticalRan2[3];
60249
60250          this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);
60251        }
60252      }
60253
60254      if (typeof onScroll === 'function') {
60255        var _this$state3 = this.state,
60256            _horizontalScrollDirection = _this$state3.horizontalScrollDirection,
60257            _scrollLeft = _this$state3.scrollLeft,
60258            _scrollTop = _this$state3.scrollTop,
60259            _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,
60260            _verticalScrollDirection = _this$state3.verticalScrollDirection;
60261
60262        this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);
60263      }
60264    }; // Lazily create and cache item styles while scrolling,
60265    // So that pure component sCU will prevent re-renders.
60266    // We maintain this cache, and pass a style prop rather than index,
60267    // So that List can clear cached styles and force item re-render if necessary.
60268
60269
60270    _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {
60271      var _this$props6 = this.props,
60272          columnCount = _this$props6.columnCount,
60273          overscanColumnCount = _this$props6.overscanColumnCount,
60274          overscanColumnsCount = _this$props6.overscanColumnsCount,
60275          overscanCount = _this$props6.overscanCount,
60276          rowCount = _this$props6.rowCount;
60277      var _this$state4 = this.state,
60278          horizontalScrollDirection = _this$state4.horizontalScrollDirection,
60279          isScrolling = _this$state4.isScrolling,
60280          scrollLeft = _this$state4.scrollLeft;
60281      var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;
60282
60283      if (columnCount === 0 || rowCount === 0) {
60284        return [0, 0, 0, 0];
60285      }
60286
60287      var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);
60288      var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.
60289      // If there isn't at least one extra item, tab loops back around.
60290
60291      var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;
60292      var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;
60293      return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];
60294    };
60295
60296    _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {
60297      var _this$props7 = this.props,
60298          columnCount = _this$props7.columnCount,
60299          overscanCount = _this$props7.overscanCount,
60300          overscanRowCount = _this$props7.overscanRowCount,
60301          overscanRowsCount = _this$props7.overscanRowsCount,
60302          rowCount = _this$props7.rowCount;
60303      var _this$state5 = this.state,
60304          isScrolling = _this$state5.isScrolling,
60305          verticalScrollDirection = _this$state5.verticalScrollDirection,
60306          scrollTop = _this$state5.scrollTop;
60307      var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;
60308
60309      if (columnCount === 0 || rowCount === 0) {
60310        return [0, 0, 0, 0];
60311      }
60312
60313      var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);
60314      var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.
60315      // If there isn't at least one extra item, tab loops back around.
60316
60317      var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;
60318      var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;
60319      return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];
60320    };
60321
60322    return Grid;
60323  }(compat_modulebabel_target_legacy["a" /* PureComponent */]), _class.defaultProps = {
60324    direction: 'ltr',
60325    itemData: undefined,
60326    useIsScrolling: false
60327  }, _temp;
60328}
60329
60330var validateSharedProps = function validateSharedProps(_ref5, _ref6) {
60331  var children = _ref5.children,
60332      direction = _ref5.direction,
60333      height = _ref5.height,
60334      innerTagName = _ref5.innerTagName,
60335      outerTagName = _ref5.outerTagName,
60336      overscanColumnsCount = _ref5.overscanColumnsCount,
60337      overscanCount = _ref5.overscanCount,
60338      overscanRowsCount = _ref5.overscanRowsCount,
60339      width = _ref5.width;
60340  var instance = _ref6.instance;
60341
60342  if (false) {}
60343};
60344
60345var DEFAULT_ESTIMATED_ITEM_SIZE = 50;
60346
60347var index_esmbabel_target_legacy_getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {
60348  var rowCount = _ref.rowCount;
60349  var rowMetadataMap = _ref2.rowMetadataMap,
60350      estimatedRowHeight = _ref2.estimatedRowHeight,
60351      lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;
60352  var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.
60353  // https://github.com/bvaughn/react-window/pull/138
60354
60355  if (lastMeasuredRowIndex >= rowCount) {
60356    lastMeasuredRowIndex = rowCount - 1;
60357  }
60358
60359  if (lastMeasuredRowIndex >= 0) {
60360    var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];
60361    totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;
60362  }
60363
60364  var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;
60365  var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;
60366  return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;
60367};
60368
60369var index_esmbabel_target_legacy_getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {
60370  var columnCount = _ref3.columnCount;
60371  var columnMetadataMap = _ref4.columnMetadataMap,
60372      estimatedColumnWidth = _ref4.estimatedColumnWidth,
60373      lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;
60374  var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.
60375  // https://github.com/bvaughn/react-window/pull/138
60376
60377  if (lastMeasuredColumnIndex >= columnCount) {
60378    lastMeasuredColumnIndex = columnCount - 1;
60379  }
60380
60381  if (lastMeasuredColumnIndex >= 0) {
60382    var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];
60383    totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;
60384  }
60385
60386  var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;
60387  var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;
60388  return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;
60389};
60390
60391var getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {
60392  var itemMetadataMap, itemSize, lastMeasuredIndex;
60393
60394  if (itemType === 'column') {
60395    itemMetadataMap = instanceProps.columnMetadataMap;
60396    itemSize = props.columnWidth;
60397    lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;
60398  } else {
60399    itemMetadataMap = instanceProps.rowMetadataMap;
60400    itemSize = props.rowHeight;
60401    lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;
60402  }
60403
60404  if (index > lastMeasuredIndex) {
60405    var offset = 0;
60406
60407    if (lastMeasuredIndex >= 0) {
60408      var itemMetadata = itemMetadataMap[lastMeasuredIndex];
60409      offset = itemMetadata.offset + itemMetadata.size;
60410    }
60411
60412    for (var i = lastMeasuredIndex + 1; i <= index; i++) {
60413      var size = itemSize(i);
60414      itemMetadataMap[i] = {
60415        offset: offset,
60416        size: size
60417      };
60418      offset += size;
60419    }
60420
60421    if (itemType === 'column') {
60422      instanceProps.lastMeasuredColumnIndex = index;
60423    } else {
60424      instanceProps.lastMeasuredRowIndex = index;
60425    }
60426  }
60427
60428  return itemMetadataMap[index];
60429};
60430
60431var findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {
60432  var itemMetadataMap, lastMeasuredIndex;
60433
60434  if (itemType === 'column') {
60435    itemMetadataMap = instanceProps.columnMetadataMap;
60436    lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;
60437  } else {
60438    itemMetadataMap = instanceProps.rowMetadataMap;
60439    lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;
60440  }
60441
60442  var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;
60443
60444  if (lastMeasuredItemOffset >= offset) {
60445    // If we've already measured items within this range just use a binary search as it's faster.
60446    return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);
60447  } else {
60448    // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
60449    // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.
60450    // The overall complexity for this approach is O(log n).
60451    return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);
60452  }
60453};
60454
60455var findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {
60456  while (low <= high) {
60457    var middle = low + Math.floor((high - low) / 2);
60458    var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;
60459
60460    if (currentOffset === offset) {
60461      return middle;
60462    } else if (currentOffset < offset) {
60463      low = middle + 1;
60464    } else if (currentOffset > offset) {
60465      high = middle - 1;
60466    }
60467  }
60468
60469  if (low > 0) {
60470    return low - 1;
60471  } else {
60472    return 0;
60473  }
60474};
60475
60476var findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {
60477  var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;
60478  var interval = 1;
60479
60480  while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {
60481    index += interval;
60482    interval *= 2;
60483  }
60484
60485  return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);
60486};
60487
60488var index_esmbabel_target_legacy_getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {
60489  var size = itemType === 'column' ? props.width : props.height;
60490  var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,
60491  // To ensure it reflects actual measurements instead of just estimates.
60492
60493  var estimatedTotalSize = itemType === 'column' ? index_esmbabel_target_legacy_getEstimatedTotalWidth(props, instanceProps) : index_esmbabel_target_legacy_getEstimatedTotalHeight(props, instanceProps);
60494  var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));
60495  var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);
60496
60497  if (align === 'smart') {
60498    if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {
60499      align = 'auto';
60500    } else {
60501      align = 'center';
60502    }
60503  }
60504
60505  switch (align) {
60506    case 'start':
60507      return maxOffset;
60508
60509    case 'end':
60510      return minOffset;
60511
60512    case 'center':
60513      return Math.round(minOffset + (maxOffset - minOffset) / 2);
60514
60515    case 'auto':
60516    default:
60517      if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {
60518        return scrollOffset;
60519      } else if (minOffset > maxOffset) {
60520        // Because we only take into account the scrollbar size when calculating minOffset
60521        // this value can be larger than maxOffset when at the end of the list
60522        return minOffset;
60523      } else if (scrollOffset < minOffset) {
60524        return minOffset;
60525      } else {
60526        return maxOffset;
60527      }
60528
60529  }
60530};
60531
60532var VariableSizeGrid =
60533/*#__PURE__*/
60534createGridComponent({
60535  getColumnOffset: function getColumnOffset(props, index, instanceProps) {
60536    return getItemMetadata('column', props, index, instanceProps).offset;
60537  },
60538  getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {
60539    return findNearestItem('column', props, instanceProps, scrollLeft);
60540  },
60541  getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {
60542    var columnCount = props.columnCount,
60543        width = props.width;
60544    var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);
60545    var maxOffset = scrollLeft + width;
60546    var offset = itemMetadata.offset + itemMetadata.size;
60547    var stopIndex = startIndex;
60548
60549    while (stopIndex < columnCount - 1 && offset < maxOffset) {
60550      stopIndex++;
60551      offset += getItemMetadata('column', props, stopIndex, instanceProps).size;
60552    }
60553
60554    return stopIndex;
60555  },
60556  getColumnWidth: function getColumnWidth(props, index, instanceProps) {
60557    return instanceProps.columnMetadataMap[index].size;
60558  },
60559  getEstimatedTotalHeight: index_esmbabel_target_legacy_getEstimatedTotalHeight,
60560  getEstimatedTotalWidth: index_esmbabel_target_legacy_getEstimatedTotalWidth,
60561  getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {
60562    return index_esmbabel_target_legacy_getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);
60563  },
60564  getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {
60565    return index_esmbabel_target_legacy_getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);
60566  },
60567  getRowOffset: function getRowOffset(props, index, instanceProps) {
60568    return getItemMetadata('row', props, index, instanceProps).offset;
60569  },
60570  getRowHeight: function getRowHeight(props, index, instanceProps) {
60571    return instanceProps.rowMetadataMap[index].size;
60572  },
60573  getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {
60574    return findNearestItem('row', props, instanceProps, scrollTop);
60575  },
60576  getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {
60577    var rowCount = props.rowCount,
60578        height = props.height;
60579    var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);
60580    var maxOffset = scrollTop + height;
60581    var offset = itemMetadata.offset + itemMetadata.size;
60582    var stopIndex = startIndex;
60583
60584    while (stopIndex < rowCount - 1 && offset < maxOffset) {
60585      stopIndex++;
60586      offset += getItemMetadata('row', props, stopIndex, instanceProps).size;
60587    }
60588
60589    return stopIndex;
60590  },
60591  initInstanceProps: function initInstanceProps(props, instance) {
60592    var _ref5 = props,
60593        estimatedColumnWidth = _ref5.estimatedColumnWidth,
60594        estimatedRowHeight = _ref5.estimatedRowHeight;
60595    var instanceProps = {
60596      columnMetadataMap: {},
60597      estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,
60598      estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,
60599      lastMeasuredColumnIndex: -1,
60600      lastMeasuredRowIndex: -1,
60601      rowMetadataMap: {}
60602    };
60603
60604    instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {
60605      if (shouldForceUpdate === void 0) {
60606        shouldForceUpdate = true;
60607      }
60608
60609      instance.resetAfterIndices({
60610        columnIndex: columnIndex,
60611        shouldForceUpdate: shouldForceUpdate
60612      });
60613    };
60614
60615    instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {
60616      if (shouldForceUpdate === void 0) {
60617        shouldForceUpdate = true;
60618      }
60619
60620      instance.resetAfterIndices({
60621        rowIndex: rowIndex,
60622        shouldForceUpdate: shouldForceUpdate
60623      });
60624    };
60625
60626    instance.resetAfterIndices = function (_ref6) {
60627      var columnIndex = _ref6.columnIndex,
60628          rowIndex = _ref6.rowIndex,
60629          _ref6$shouldForceUpda = _ref6.shouldForceUpdate,
60630          shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;
60631
60632      if (typeof columnIndex === 'number') {
60633        instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);
60634      }
60635
60636      if (typeof rowIndex === 'number') {
60637        instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);
60638      } // We could potentially optimize further by only evicting styles after this index,
60639      // But since styles are only cached while scrolling is in progress-
60640      // It seems an unnecessary optimization.
60641      // It's unlikely that resetAfterIndex() will be called while a user is scrolling.
60642
60643
60644      instance._getItemStyleCache(-1);
60645
60646      if (shouldForceUpdate) {
60647        instance.forceUpdate();
60648      }
60649    };
60650
60651    return instanceProps;
60652  },
60653  shouldResetStyleCacheOnItemSizeChange: false,
60654  validateProps: function validateProps(_ref7) {
60655    var columnWidth = _ref7.columnWidth,
60656        rowHeight = _ref7.rowHeight;
60657
60658    if (false) {}
60659  }
60660});
60661
60662var IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;
60663
60664var defaultItemKey$1 = function defaultItemKey(index, data) {
60665  return index;
60666}; // In DEV mode, this Set helps us only log a warning once per component instance.
60667// This avoids spamming the console every time a render happens.
60668
60669
60670var devWarningsDirection = null;
60671var devWarningsTagName$1 = null;
60672
60673if (false) {}
60674
60675function createListComponent(_ref) {
60676  var _class, _temp;
60677
60678  var getItemOffset = _ref.getItemOffset,
60679      getEstimatedTotalSize = _ref.getEstimatedTotalSize,
60680      getItemSize = _ref.getItemSize,
60681      getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,
60682      getStartIndexForOffset = _ref.getStartIndexForOffset,
60683      getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,
60684      initInstanceProps = _ref.initInstanceProps,
60685      shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,
60686      validateProps = _ref.validateProps;
60687  return _temp = _class =
60688  /*#__PURE__*/
60689  function (_PureComponent) {
60690    _inheritsLoose(List, _PureComponent);
60691
60692    // Always use explicit constructor for React components.
60693    // It produces less code after transpilation. (#26)
60694    // eslint-disable-next-line no-useless-constructor
60695    function List(props) {
60696      var _this;
60697
60698      _this = _PureComponent.call(this, props) || this;
60699      _this._instanceProps = initInstanceProps(_this.props, Object(assertThisInitializedbabel_target_legacy["a" /* default */])(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)));
60700      _this._outerRef = void 0;
60701      _this._resetIsScrollingTimeoutId = null;
60702      _this.state = {
60703        instance: Object(assertThisInitializedbabel_target_legacy["a" /* default */])(Object(assertThisInitializedbabel_target_legacy["a" /* default */])(_this)),
60704        isScrolling: false,
60705        scrollDirection: 'forward',
60706        scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,
60707        scrollUpdateWasRequested: false
60708      };
60709      _this._callOnItemsRendered = void 0;
60710      _this._callOnItemsRendered = memoize_one_esmbabel_target_legacy(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {
60711        return _this.props.onItemsRendered({
60712          overscanStartIndex: overscanStartIndex,
60713          overscanStopIndex: overscanStopIndex,
60714          visibleStartIndex: visibleStartIndex,
60715          visibleStopIndex: visibleStopIndex
60716        });
60717      });
60718      _this._callOnScroll = void 0;
60719      _this._callOnScroll = memoize_one_esmbabel_target_legacy(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {
60720        return _this.props.onScroll({
60721          scrollDirection: scrollDirection,
60722          scrollOffset: scrollOffset,
60723          scrollUpdateWasRequested: scrollUpdateWasRequested
60724        });
60725      });
60726      _this._getItemStyle = void 0;
60727
60728      _this._getItemStyle = function (index) {
60729        var _this$props = _this.props,
60730            direction = _this$props.direction,
60731            itemSize = _this$props.itemSize,
60732            layout = _this$props.layout;
60733
60734        var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);
60735
60736        var style;
60737
60738        if (itemStyleCache.hasOwnProperty(index)) {
60739          style = itemStyleCache[index];
60740        } else {
60741          var _offset = getItemOffset(_this.props, index, _this._instanceProps);
60742
60743          var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction "horizontal"
60744
60745          var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
60746          var isRtl = direction === 'rtl';
60747          var offsetHorizontal = isHorizontal ? _offset : 0;
60748          itemStyleCache[index] = style = {
60749            position: 'absolute',
60750            left: isRtl ? undefined : offsetHorizontal,
60751            right: isRtl ? offsetHorizontal : undefined,
60752            top: !isHorizontal ? _offset : 0,
60753            height: !isHorizontal ? size : '100%',
60754            width: isHorizontal ? size : '100%'
60755          };
60756        }
60757
60758        return style;
60759      };
60760
60761      _this._getItemStyleCache = void 0;
60762      _this._getItemStyleCache = memoize_one_esmbabel_target_legacy(function (_, __, ___) {
60763        return {};
60764      });
60765
60766      _this._onScrollHorizontal = function (event) {
60767        var _event$currentTarget = event.currentTarget,
60768            clientWidth = _event$currentTarget.clientWidth,
60769            scrollLeft = _event$currentTarget.scrollLeft,
60770            scrollWidth = _event$currentTarget.scrollWidth;
60771
60772        _this.setState(function (prevState) {
60773          if (prevState.scrollOffset === scrollLeft) {
60774            // Scroll position may have been updated by cDM/cDU,
60775            // In which case we don't need to trigger another render,
60776            // And we don't want to update state.isScrolling.
60777            return null;
60778          }
60779
60780          var direction = _this.props.direction;
60781          var scrollOffset = scrollLeft;
60782
60783          if (direction === 'rtl') {
60784            // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
60785            // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
60786            // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.
60787            // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.
60788            switch (getRTLOffsetType()) {
60789              case 'negative':
60790                scrollOffset = -scrollLeft;
60791                break;
60792
60793              case 'positive-descending':
60794                scrollOffset = scrollWidth - clientWidth - scrollLeft;
60795                break;
60796            }
60797          } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.
60798
60799
60800          scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));
60801          return {
60802            isScrolling: true,
60803            scrollDirection: prevState.scrollOffset < scrollLeft ? 'forward' : 'backward',
60804            scrollOffset: scrollOffset,
60805            scrollUpdateWasRequested: false
60806          };
60807        }, _this._resetIsScrollingDebounced);
60808      };
60809
60810      _this._onScrollVertical = function (event) {
60811        var _event$currentTarget2 = event.currentTarget,
60812            clientHeight = _event$currentTarget2.clientHeight,
60813            scrollHeight = _event$currentTarget2.scrollHeight,
60814            scrollTop = _event$currentTarget2.scrollTop;
60815
60816        _this.setState(function (prevState) {
60817          if (prevState.scrollOffset === scrollTop) {
60818            // Scroll position may have been updated by cDM/cDU,
60819            // In which case we don't need to trigger another render,
60820            // And we don't want to update state.isScrolling.
60821            return null;
60822          } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.
60823
60824
60825          var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));
60826          return {
60827            isScrolling: true,
60828            scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',
60829            scrollOffset: scrollOffset,
60830            scrollUpdateWasRequested: false
60831          };
60832        }, _this._resetIsScrollingDebounced);
60833      };
60834
60835      _this._outerRefSetter = function (ref) {
60836        var outerRef = _this.props.outerRef;
60837        _this._outerRef = ref;
60838
60839        if (typeof outerRef === 'function') {
60840          outerRef(ref);
60841        } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {
60842          outerRef.current = ref;
60843        }
60844      };
60845
60846      _this._resetIsScrollingDebounced = function () {
60847        if (_this._resetIsScrollingTimeoutId !== null) {
60848          cancelTimeout(_this._resetIsScrollingTimeoutId);
60849        }
60850
60851        _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);
60852      };
60853
60854      _this._resetIsScrolling = function () {
60855        _this._resetIsScrollingTimeoutId = null;
60856
60857        _this.setState({
60858          isScrolling: false
60859        }, function () {
60860          // Clear style cache after state update has been committed.
60861          // This way we don't break pure sCU for items that don't use isScrolling param.
60862          _this._getItemStyleCache(-1, null);
60863        });
60864      };
60865
60866      return _this;
60867    }
60868
60869    List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
60870      validateSharedProps$1(nextProps, prevState);
60871      validateProps(nextProps);
60872      return null;
60873    };
60874
60875    var _proto = List.prototype;
60876
60877    _proto.scrollTo = function scrollTo(scrollOffset) {
60878      scrollOffset = Math.max(0, scrollOffset);
60879      this.setState(function (prevState) {
60880        if (prevState.scrollOffset === scrollOffset) {
60881          return null;
60882        }
60883
60884        return {
60885          scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',
60886          scrollOffset: scrollOffset,
60887          scrollUpdateWasRequested: true
60888        };
60889      }, this._resetIsScrollingDebounced);
60890    };
60891
60892    _proto.scrollToItem = function scrollToItem(index, align) {
60893      if (align === void 0) {
60894        align = 'auto';
60895      }
60896
60897      var itemCount = this.props.itemCount;
60898      var scrollOffset = this.state.scrollOffset;
60899      index = Math.max(0, Math.min(index, itemCount - 1));
60900      this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps));
60901    };
60902
60903    _proto.componentDidMount = function componentDidMount() {
60904      var _this$props2 = this.props,
60905          direction = _this$props2.direction,
60906          initialScrollOffset = _this$props2.initialScrollOffset,
60907          layout = _this$props2.layout;
60908
60909      if (typeof initialScrollOffset === 'number' && this._outerRef != null) {
60910        var outerRef = this._outerRef; // TODO Deprecate direction "horizontal"
60911
60912        if (direction === 'horizontal' || layout === 'horizontal') {
60913          outerRef.scrollLeft = initialScrollOffset;
60914        } else {
60915          outerRef.scrollTop = initialScrollOffset;
60916        }
60917      }
60918
60919      this._callPropsCallbacks();
60920    };
60921
60922    _proto.componentDidUpdate = function componentDidUpdate() {
60923      var _this$props3 = this.props,
60924          direction = _this$props3.direction,
60925          layout = _this$props3.layout;
60926      var _this$state = this.state,
60927          scrollOffset = _this$state.scrollOffset,
60928          scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;
60929
60930      if (scrollUpdateWasRequested && this._outerRef != null) {
60931        var outerRef = this._outerRef; // TODO Deprecate direction "horizontal"
60932
60933        if (direction === 'horizontal' || layout === 'horizontal') {
60934          if (direction === 'rtl') {
60935            // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.
60936            // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).
60937            // So we need to determine which browser behavior we're dealing with, and mimic it.
60938            switch (getRTLOffsetType()) {
60939              case 'negative':
60940                outerRef.scrollLeft = -scrollOffset;
60941                break;
60942
60943              case 'positive-ascending':
60944                outerRef.scrollLeft = scrollOffset;
60945                break;
60946
60947              default:
60948                var clientWidth = outerRef.clientWidth,
60949                    scrollWidth = outerRef.scrollWidth;
60950                outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;
60951                break;
60952            }
60953          } else {
60954            outerRef.scrollLeft = scrollOffset;
60955          }
60956        } else {
60957          outerRef.scrollTop = scrollOffset;
60958        }
60959      }
60960
60961      this._callPropsCallbacks();
60962    };
60963
60964    _proto.componentWillUnmount = function componentWillUnmount() {
60965      if (this._resetIsScrollingTimeoutId !== null) {
60966        cancelTimeout(this._resetIsScrollingTimeoutId);
60967      }
60968    };
60969
60970    _proto.render = function render() {
60971      var _this$props4 = this.props,
60972          children = _this$props4.children,
60973          className = _this$props4.className,
60974          direction = _this$props4.direction,
60975          height = _this$props4.height,
60976          innerRef = _this$props4.innerRef,
60977          innerElementType = _this$props4.innerElementType,
60978          innerTagName = _this$props4.innerTagName,
60979          itemCount = _this$props4.itemCount,
60980          itemData = _this$props4.itemData,
60981          _this$props4$itemKey = _this$props4.itemKey,
60982          itemKey = _this$props4$itemKey === void 0 ? defaultItemKey$1 : _this$props4$itemKey,
60983          layout = _this$props4.layout,
60984          outerElementType = _this$props4.outerElementType,
60985          outerTagName = _this$props4.outerTagName,
60986          style = _this$props4.style,
60987          useIsScrolling = _this$props4.useIsScrolling,
60988          width = _this$props4.width;
60989      var isScrolling = this.state.isScrolling; // TODO Deprecate direction "horizontal"
60990
60991      var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
60992      var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;
60993
60994      var _this$_getRangeToRend = this._getRangeToRender(),
60995          startIndex = _this$_getRangeToRend[0],
60996          stopIndex = _this$_getRangeToRend[1];
60997
60998      var items = [];
60999
61000      if (itemCount > 0) {
61001        for (var _index = startIndex; _index <= stopIndex; _index++) {
61002          items.push(Object(compat_modulebabel_target_legacy["b" /* createElement */])(children, {
61003            data: itemData,
61004            key: itemKey(_index, itemData),
61005            index: _index,
61006            isScrolling: useIsScrolling ? isScrolling : undefined,
61007            style: this._getItemStyle(_index)
61008          }));
61009        }
61010      } // Read this value AFTER items have been created,
61011      // So their actual sizes (if variable) are taken into consideration.
61012
61013
61014      var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);
61015      return Object(compat_modulebabel_target_legacy["b" /* createElement */])(outerElementType || outerTagName || 'div', {
61016        className: className,
61017        onScroll: onScroll,
61018        ref: this._outerRefSetter,
61019        style: _extends({
61020          position: 'relative',
61021          height: height,
61022          width: width,
61023          overflow: 'auto',
61024          WebkitOverflowScrolling: 'touch',
61025          willChange: 'transform',
61026          direction: direction
61027        }, style)
61028      }, Object(compat_modulebabel_target_legacy["b" /* createElement */])(innerElementType || innerTagName || 'div', {
61029        children: items,
61030        ref: innerRef,
61031        style: {
61032          height: isHorizontal ? '100%' : estimatedTotalSize,
61033          pointerEvents: isScrolling ? 'none' : undefined,
61034          width: isHorizontal ? estimatedTotalSize : '100%'
61035        }
61036      }));
61037    };
61038
61039    _proto._callPropsCallbacks = function _callPropsCallbacks() {
61040      if (typeof this.props.onItemsRendered === 'function') {
61041        var itemCount = this.props.itemCount;
61042
61043        if (itemCount > 0) {
61044          var _this$_getRangeToRend2 = this._getRangeToRender(),
61045              _overscanStartIndex = _this$_getRangeToRend2[0],
61046              _overscanStopIndex = _this$_getRangeToRend2[1],
61047              _visibleStartIndex = _this$_getRangeToRend2[2],
61048              _visibleStopIndex = _this$_getRangeToRend2[3];
61049
61050          this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);
61051        }
61052      }
61053
61054      if (typeof this.props.onScroll === 'function') {
61055        var _this$state2 = this.state,
61056            _scrollDirection = _this$state2.scrollDirection,
61057            _scrollOffset = _this$state2.scrollOffset,
61058            _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;
61059
61060        this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);
61061      }
61062    }; // Lazily create and cache item styles while scrolling,
61063    // So that pure component sCU will prevent re-renders.
61064    // We maintain this cache, and pass a style prop rather than index,
61065    // So that List can clear cached styles and force item re-render if necessary.
61066
61067
61068    _proto._getRangeToRender = function _getRangeToRender() {
61069      var _this$props5 = this.props,
61070          itemCount = _this$props5.itemCount,
61071          overscanCount = _this$props5.overscanCount;
61072      var _this$state3 = this.state,
61073          isScrolling = _this$state3.isScrolling,
61074          scrollDirection = _this$state3.scrollDirection,
61075          scrollOffset = _this$state3.scrollOffset;
61076
61077      if (itemCount === 0) {
61078        return [0, 0, 0, 0];
61079      }
61080
61081      var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);
61082      var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.
61083      // If there isn't at least one extra item, tab loops back around.
61084
61085      var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;
61086      var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;
61087      return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];
61088    };
61089
61090    return List;
61091  }(compat_modulebabel_target_legacy["a" /* PureComponent */]), _class.defaultProps = {
61092    direction: 'ltr',
61093    itemData: undefined,
61094    layout: 'vertical',
61095    overscanCount: 2,
61096    useIsScrolling: false
61097  }, _temp;
61098} // NOTE: I considered further wrapping individual items with a pure ListItem component.
61099// This would avoid ever calling the render function for the same index more than once,
61100// But it would also add the overhead of a lot of components/fibers.
61101// I assume people already do this (render function returning a class component),
61102// So my doing it would just unnecessarily double the wrappers.
61103
61104var validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {
61105  var children = _ref2.children,
61106      direction = _ref2.direction,
61107      height = _ref2.height,
61108      layout = _ref2.layout,
61109      innerTagName = _ref2.innerTagName,
61110      outerTagName = _ref2.outerTagName,
61111      width = _ref2.width;
61112  var instance = _ref3.instance;
61113
61114  if (false) { var isHorizontal; }
61115};
61116
61117var DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;
61118
61119var getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {
61120  var _ref = props,
61121      itemSize = _ref.itemSize;
61122  var itemMetadataMap = instanceProps.itemMetadataMap,
61123      lastMeasuredIndex = instanceProps.lastMeasuredIndex;
61124
61125  if (index > lastMeasuredIndex) {
61126    var offset = 0;
61127
61128    if (lastMeasuredIndex >= 0) {
61129      var itemMetadata = itemMetadataMap[lastMeasuredIndex];
61130      offset = itemMetadata.offset + itemMetadata.size;
61131    }
61132
61133    for (var i = lastMeasuredIndex + 1; i <= index; i++) {
61134      var size = itemSize(i);
61135      itemMetadataMap[i] = {
61136        offset: offset,
61137        size: size
61138      };
61139      offset += size;
61140    }
61141
61142    instanceProps.lastMeasuredIndex = index;
61143  }
61144
61145  return itemMetadataMap[index];
61146};
61147
61148var findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {
61149  var itemMetadataMap = instanceProps.itemMetadataMap,
61150      lastMeasuredIndex = instanceProps.lastMeasuredIndex;
61151  var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;
61152
61153  if (lastMeasuredItemOffset >= offset) {
61154    // If we've already measured items within this range just use a binary search as it's faster.
61155    return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);
61156  } else {
61157    // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.
61158    // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.
61159    // The overall complexity for this approach is O(log n).
61160    return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);
61161  }
61162};
61163
61164var findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {
61165  while (low <= high) {
61166    var middle = low + Math.floor((high - low) / 2);
61167    var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;
61168
61169    if (currentOffset === offset) {
61170      return middle;
61171    } else if (currentOffset < offset) {
61172      low = middle + 1;
61173    } else if (currentOffset > offset) {
61174      high = middle - 1;
61175    }
61176  }
61177
61178  if (low > 0) {
61179    return low - 1;
61180  } else {
61181    return 0;
61182  }
61183};
61184
61185var findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {
61186  var itemCount = props.itemCount;
61187  var interval = 1;
61188
61189  while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {
61190    index += interval;
61191    interval *= 2;
61192  }
61193
61194  return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);
61195};
61196
61197var index_esmbabel_target_legacy_getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {
61198  var itemCount = _ref2.itemCount;
61199  var itemMetadataMap = _ref3.itemMetadataMap,
61200      estimatedItemSize = _ref3.estimatedItemSize,
61201      lastMeasuredIndex = _ref3.lastMeasuredIndex;
61202  var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.
61203  // https://github.com/bvaughn/react-window/pull/138
61204
61205  if (lastMeasuredIndex >= itemCount) {
61206    lastMeasuredIndex = itemCount - 1;
61207  }
61208
61209  if (lastMeasuredIndex >= 0) {
61210    var itemMetadata = itemMetadataMap[lastMeasuredIndex];
61211    totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;
61212  }
61213
61214  var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;
61215  var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;
61216  return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;
61217};
61218
61219var VariableSizeList =
61220/*#__PURE__*/
61221createListComponent({
61222  getItemOffset: function getItemOffset(props, index, instanceProps) {
61223    return getItemMetadata$1(props, index, instanceProps).offset;
61224  },
61225  getItemSize: function getItemSize(props, index, instanceProps) {
61226    return instanceProps.itemMetadataMap[index].size;
61227  },
61228  getEstimatedTotalSize: index_esmbabel_target_legacy_getEstimatedTotalSize,
61229  getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps) {
61230    var direction = props.direction,
61231        height = props.height,
61232        layout = props.layout,
61233        width = props.width; // TODO Deprecate direction "horizontal"
61234
61235    var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
61236    var size = isHorizontal ? width : height;
61237    var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,
61238    // To ensure it reflects actual measurements instead of just estimates.
61239
61240    var estimatedTotalSize = index_esmbabel_target_legacy_getEstimatedTotalSize(props, instanceProps);
61241    var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));
61242    var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size);
61243
61244    if (align === 'smart') {
61245      if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {
61246        align = 'auto';
61247      } else {
61248        align = 'center';
61249      }
61250    }
61251
61252    switch (align) {
61253      case 'start':
61254        return maxOffset;
61255
61256      case 'end':
61257        return minOffset;
61258
61259      case 'center':
61260        return Math.round(minOffset + (maxOffset - minOffset) / 2);
61261
61262      case 'auto':
61263      default:
61264        if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {
61265          return scrollOffset;
61266        } else if (scrollOffset < minOffset) {
61267          return minOffset;
61268        } else {
61269          return maxOffset;
61270        }
61271
61272    }
61273  },
61274  getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {
61275    return findNearestItem$1(props, instanceProps, offset);
61276  },
61277  getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {
61278    var direction = props.direction,
61279        height = props.height,
61280        itemCount = props.itemCount,
61281        layout = props.layout,
61282        width = props.width; // TODO Deprecate direction "horizontal"
61283
61284    var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
61285    var size = isHorizontal ? width : height;
61286    var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);
61287    var maxOffset = scrollOffset + size;
61288    var offset = itemMetadata.offset + itemMetadata.size;
61289    var stopIndex = startIndex;
61290
61291    while (stopIndex < itemCount - 1 && offset < maxOffset) {
61292      stopIndex++;
61293      offset += getItemMetadata$1(props, stopIndex, instanceProps).size;
61294    }
61295
61296    return stopIndex;
61297  },
61298  initInstanceProps: function initInstanceProps(props, instance) {
61299    var _ref4 = props,
61300        estimatedItemSize = _ref4.estimatedItemSize;
61301    var instanceProps = {
61302      itemMetadataMap: {},
61303      estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,
61304      lastMeasuredIndex: -1
61305    };
61306
61307    instance.resetAfterIndex = function (index, shouldForceUpdate) {
61308      if (shouldForceUpdate === void 0) {
61309        shouldForceUpdate = true;
61310      }
61311
61312      instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,
61313      // But since styles are only cached while scrolling is in progress-
61314      // It seems an unnecessary optimization.
61315      // It's unlikely that resetAfterIndex() will be called while a user is scrolling.
61316
61317      instance._getItemStyleCache(-1);
61318
61319      if (shouldForceUpdate) {
61320        instance.forceUpdate();
61321      }
61322    };
61323
61324    return instanceProps;
61325  },
61326  shouldResetStyleCacheOnItemSizeChange: false,
61327  validateProps: function validateProps(_ref5) {
61328    var itemSize = _ref5.itemSize;
61329
61330    if (false) {}
61331  }
61332});
61333
61334var FixedSizeGrid =
61335/*#__PURE__*/
61336createGridComponent({
61337  getColumnOffset: function getColumnOffset(_ref, index) {
61338    var columnWidth = _ref.columnWidth;
61339    return index * columnWidth;
61340  },
61341  getColumnWidth: function getColumnWidth(_ref2, index) {
61342    var columnWidth = _ref2.columnWidth;
61343    return columnWidth;
61344  },
61345  getRowOffset: function getRowOffset(_ref3, index) {
61346    var rowHeight = _ref3.rowHeight;
61347    return index * rowHeight;
61348  },
61349  getRowHeight: function getRowHeight(_ref4, index) {
61350    var rowHeight = _ref4.rowHeight;
61351    return rowHeight;
61352  },
61353  getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {
61354    var rowCount = _ref5.rowCount,
61355        rowHeight = _ref5.rowHeight;
61356    return rowHeight * rowCount;
61357  },
61358  getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {
61359    var columnCount = _ref6.columnCount,
61360        columnWidth = _ref6.columnWidth;
61361    return columnWidth * columnCount;
61362  },
61363  getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {
61364    var columnCount = _ref7.columnCount,
61365        columnWidth = _ref7.columnWidth,
61366        width = _ref7.width;
61367    var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);
61368    var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);
61369    var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);
61370
61371    if (align === 'smart') {
61372      if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {
61373        align = 'auto';
61374      } else {
61375        align = 'center';
61376      }
61377    }
61378
61379    switch (align) {
61380      case 'start':
61381        return maxOffset;
61382
61383      case 'end':
61384        return minOffset;
61385
61386      case 'center':
61387        // "Centered" offset is usually the average of the min and max.
61388        // But near the edges of the list, this doesn't hold true.
61389        var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
61390
61391        if (middleOffset < Math.ceil(width / 2)) {
61392          return 0; // near the beginning
61393        } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {
61394          return lastColumnOffset; // near the end
61395        } else {
61396          return middleOffset;
61397        }
61398
61399      case 'auto':
61400      default:
61401        if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {
61402          return scrollLeft;
61403        } else if (minOffset > maxOffset) {
61404          // Because we only take into account the scrollbar size when calculating minOffset
61405          // this value can be larger than maxOffset when at the end of the list
61406          return minOffset;
61407        } else if (scrollLeft < minOffset) {
61408          return minOffset;
61409        } else {
61410          return maxOffset;
61411        }
61412
61413    }
61414  },
61415  getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {
61416    var rowHeight = _ref8.rowHeight,
61417        height = _ref8.height,
61418        rowCount = _ref8.rowCount;
61419    var lastRowOffset = Math.max(0, rowCount * rowHeight - height);
61420    var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);
61421    var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);
61422
61423    if (align === 'smart') {
61424      if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {
61425        align = 'auto';
61426      } else {
61427        align = 'center';
61428      }
61429    }
61430
61431    switc
61431h (align) {
61432      case 'start':
61433        return maxOffset;
61434
61435      case 'end':
61436        return minOffset;
61437
61438      case 'center':
61439        // "Centered" offset is usually the average of the min and max.
61440        // But near the edges of the list, this doesn't hold true.
61441        var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
61442
61443        if (middleOffset < Math.ceil(height / 2)) {
61444          return 0; // near the beginning
61445        } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {
61446          return lastRowOffset; // near the end
61447        } else {
61448          return middleOffset;
61449        }
61450
61451      case 'auto':
61452      default:
61453        if (scrollTop >= minOffset && scrollTop <= maxOffset) {
61454          return scrollTop;
61455        } else if (minOffset > maxOffset) {
61456          // Because we only take into account the scrollbar size when calculating minOffset
61457          // this value can be larger than maxOffset when at the end of the list
61458          return minOffset;
61459        } else if (scrollTop < minOffset) {
61460          return minOffset;
61461        } else {
61462          return maxOffset;
61463        }
61464
61465    }
61466  },
61467  getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {
61468    var columnWidth = _ref9.columnWidth,
61469        columnCount = _ref9.columnCount;
61470    return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));
61471  },
61472  getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {
61473    var columnWidth = _ref10.columnWidth,
61474        columnCount = _ref10.columnCount,
61475        width = _ref10.width;
61476    var left = startIndex * columnWidth;
61477    var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);
61478    return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive
61479    ));
61480  },
61481  getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {
61482    var rowHeight = _ref11.rowHeight,
61483        rowCount = _ref11.rowCount;
61484    return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));
61485  },
61486  getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {
61487    var rowHeight = _ref12.rowHeight,
61488        rowCount = _ref12.rowCount,
61489        height = _ref12.height;
61490    var top = startIndex * rowHeight;
61491    var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);
61492    return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive
61493    ));
61494  },
61495  initInstanceProps: function initInstanceProps(props) {// Noop
61496  },
61497  shouldResetStyleCacheOnItemSizeChange: true,
61498  validateProps: function validateProps(_ref13) {
61499    var columnWidth = _ref13.columnWidth,
61500        rowHeight = _ref13.rowHeight;
61501
61502    if (false) {}
61503  }
61504});
61505
61506var FixedSizeList =
61507/*#__PURE__*/
61508createListComponent({
61509  getItemOffset: function getItemOffset(_ref, index) {
61510    var itemSize = _ref.itemSize;
61511    return index * itemSize;
61512  },
61513  getItemSize: function getItemSize(_ref2, index) {
61514    var itemSize = _ref2.itemSize;
61515    return itemSize;
61516  },
61517  getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {
61518    var itemCount = _ref3.itemCount,
61519        itemSize = _ref3.itemSize;
61520    return itemSize * itemCount;
61521  },
61522  getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset) {
61523    var direction = _ref4.direction,
61524        height = _ref4.height,
61525        itemCount = _ref4.itemCount,
61526        itemSize = _ref4.itemSize,
61527        layout = _ref4.layout,
61528        width = _ref4.width;
61529    // TODO Deprecate direction "horizontal"
61530    var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
61531    var size = isHorizontal ? width : height;
61532    var lastItemOffset = Math.max(0, itemCount * itemSize - size);
61533    var maxOffset = Math.min(lastItemOffset, index * itemSize);
61534    var minOffset = Math.max(0, index * itemSize - size + itemSize);
61535
61536    if (align === 'smart') {
61537      if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {
61538        align = 'auto';
61539      } else {
61540        align = 'center';
61541      }
61542    }
61543
61544    switch (align) {
61545      case 'start':
61546        return maxOffset;
61547
61548      case 'end':
61549        return minOffset;
61550
61551      case 'center':
61552        {
61553          // "Centered" offset is usually the average of the min and max.
61554          // But near the edges of the list, this doesn't hold true.
61555          var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);
61556
61557          if (middleOffset < Math.ceil(size / 2)) {
61558            return 0; // near the beginning
61559          } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {
61560            return lastItemOffset; // near the end
61561          } else {
61562            return middleOffset;
61563          }
61564        }
61565
61566      case 'auto':
61567      default:
61568        if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {
61569          return scrollOffset;
61570        } else if (scrollOffset < minOffset) {
61571          return minOffset;
61572        } else {
61573          return maxOffset;
61574        }
61575
61576    }
61577  },
61578  getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {
61579    var itemCount = _ref5.itemCount,
61580        itemSize = _ref5.itemSize;
61581    return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));
61582  },
61583  getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {
61584    var direction = _ref6.direction,
61585        height = _ref6.height,
61586        itemCount = _ref6.itemCount,
61587        itemSize = _ref6.itemSize,
61588        layout = _ref6.layout,
61589        width = _ref6.width;
61590    // TODO Deprecate direction "horizontal"
61591    var isHorizontal = direction === 'horizontal' || layout === 'horizontal';
61592    var offset = startIndex * itemSize;
61593    var size = isHorizontal ? width : height;
61594    var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);
61595    return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive
61596    ));
61597  },
61598  initInstanceProps: function initInstanceProps(props) {// Noop
61599  },
61600  shouldResetStyleCacheOnItemSizeChange: true,
61601  validateProps: function validateProps(_ref7) {
61602    var itemSize = _ref7.itemSize;
61603
61604    if (false) {}
61605  }
61606});
61607
61608// Pulled from react-compat
61609// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349
61610function shallowDiffers(prev, next) {
61611  for (var attribute in prev) {
61612    if (!(attribute in next)) {
61613      return true;
61614    }
61615  }
61616
61617  for (var _attribute in next) {
61618    if (prev[_attribute] !== next[_attribute]) {
61619      return true;
61620    }
61621  }
61622
61623  return false;
61624}
61625
61626// It knows to compare individual style props and ignore the wrapper object.
61627// See https://reactjs.org/docs/react-api.html#reactmemo
61628
61629function areEqual(prevProps, nextProps) {
61630  var prevStyle = prevProps.style,
61631      prevRest = _objectWithoutPropertiesLoose(prevProps, ["style"]);
61632
61633  var nextStyle = nextProps.style,
61634      nextRest = _objectWithoutPropertiesLoose(nextProps, ["style"]);
61635
61636  return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);
61637}
61638
61639// It knows to compare individual style props and ignore the wrapper object.
61640// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate
61641
61642function shouldComponentUpdate(nextProps, nextState) {
61643  return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);
61644}
61645
61646
61647//# sourceMappingURL=index.esm.js.map
61648
61649// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
61650var classnames_babel_target_legacy = __webpack_require__(27);
61651var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
61652
61653// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
61654var utilsbabel_target_legacy = __webpack_require__(48);
61655
61656// EXTERNAL MODULE: ./src/components/AToZList/AToZList.module.scss
61657var AToZList_module = __webpack_require__(191);
61658var AToZList_module_default = /*#__PURE__*/__webpack_require__.n(AToZList_module);
61659
61660// CONCATENATED MODULE: ./src/components/AToZList/AToZList.tsx?babel-target=legacy
61661
61662
61663
61664
61665
61666
61667
61668
61669
61670
61671
61672
61673
61674
61675
61676function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
61677
61678function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
61679
61680
61681
61682
61683
61684
61685
61686
61687
61688
61689var AZ_HEADER_HEIGHT = 350;
61690var AToZListbabel_target_legacy_AToZList = function AToZList(_ref) {
61691  var stations = _ref.stations,
61692      startWith = _ref.startWith,
61693      smoothScroll = _ref.smoothScroll;
61694  var keys = Object.keys(stations);
61695  var list = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
61696
61697  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
61698      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
61699      state = _useAPI2[0],
61700      dispatch = _useAPI2[1];
61701
61702  var prefix = state.cookie.stationlistprefix;
61703
61704  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
61705      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
61706      hasMoved = _useState2[0],
61707      setHasMoved = _useState2[1];
61708
61709  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
61710      i18n = _useTranslation.i18n;
61711
61712  var lang = i18n.language;
61713  var updatePrefix = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(Object(utilsbabel_target_legacy["a" /* debounce */])(function (key) {
61714    if (key && key !== prefix) {
61715      dispatch({
61716        type: "SET_PREFIX",
61717        payload: key
61718      });
61719    }
61720  }, 500, false), [prefix, state]);
61721  var data = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
61722    return keys.reduce(function (prev, next) {
61723      return [].concat(toConsumableArraybabel_target_legacy_default()(prev), [{
61724        type: "header",
61725        key: next
61726      }], toConsumableArraybabel_target_legacy_default()(stations[next]));
61727    }, []).filter(function (row) {
61728      return "type" in row || !row.language || row.language === lang || row.international;
61729    });
61730  }, [stations, keys, lang]);
61731  var listRef = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
61732
61733  var handleScroll = function handleScroll(key) {
61734    var _listRef$current;
61735
61736    dispatch({
61737      type: "SET_PREFIX",
61738      payload: key
61739    });
61740    (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollToItem(data.map(function (x) {
61741      return x.key;
61742    }).findIndex(function (x) {
61743      return x === key;
61744    }), "start");
61745  };
61746
61747  var buttons = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
61748    return keys.map(function (key) {
61749      return Object(preact_modulebabel_target_legacy["h"])("button", {
61750        key: key,
61751        className: classnames_babel_target_legacy_default()(AToZList_module_default.a.letter, definePropertybabel_target_legacy_default()({}, AToZList_module_default.a.current, key === prefix)),
61752        onClick: function onClick() {
61753          return handleScroll(key);
61754        }
61755      }, key.toUpperCase());
61756    });
61757  }, [handleScroll, keys, prefix]);
61758
61759  var getItemSize = function getItemSize(index) {
61760    var item = data[index];
61761    if (!!item.type) return 40;
61762    return 82;
61763  };
61764
61765  var RenderRow = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (_ref2) {
61766    var index = _ref2.index,
61767        style = _ref2.style;
61768    var row = data[index];
61769
61770    if ("type" in row) {
61771      // updatePrefix(row.key);
61772      return Object(preact_modulebabel_target_legacy["h"])("div", {
61773        style: _objectSpread({}, style),
61774        className: AToZList_module_default.a.header
61775      }, row.key.toUpperCase());
61776    }
61777
61778    return Object(preact_modulebabel_target_legacy["h"])("div", {
61779      style: _objectSpread(_objectSpread({}, style), {}, {
61780        paddingTop: 8,
61781        paddingBottom: 4
61782      })
61783    }, Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
61784      imageUrl: row.imageUrl,
61785      title: row.serviceName,
61786      description: row.shortDescription,
61787      url: row.consoleUrl,
61788      rpId: row.rpId
61789    }));
61790  }, [data]);
61791  return Object(preact_modulebabel_target_legacy["h"])("div", null, Object(preact_modulebabel_target_legacy["h"])("div", {
61792    className: AToZList_module_default.a.alphabet
61793  }, buttons), Object(preact_modulebabel_target_legacy["h"])(VariableSizeList, {
61794    className: AToZList_module_default.a.listcontainer,
61795    ref: listRef,
61796    height: window.innerHeight - AZ_HEADER_HEIGHT,
61797    width: "100%",
61798    itemCount: data.length,
61799    itemSize: getItemSize
61800  }, RenderRow));
61801};
61802/* harmony default export */ var AToZListbabel_target_legacy = (AToZListbabel_target_legacy_AToZList);
61803// CONCATENATED MODULE: ./src/components/AToZList/index.ts?babel-target=legacy
61804
61805// EXTERNAL MODULE: ./src/components/RecommendationsList/RecommendationsList.module.scss
61806var RecommendationsList_module = __webpack_require__(247);
61807var RecommendationsList_module_default = /*#__PURE__*/__webpack_require__.n(RecommendationsList_module);
61808
61809// CONCATENATED MODULE: ./src/components/RecommendationsList/RecommendationsList.tsx?babel-target=legacy
61810
61811
61812
61813
61814
61815
61816
61817
61818
61819var RecommendationsListbabel_target_legacy_renderRow = function renderRow(row) {
61820  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
61821    imageUrl: row.imageUrl,
61822    title: row.serviceName // description={row.shortDescription}
61823    ,
61824    tags: row.factors,
61825    url: row.consoleUrl,
61826    rpId: row.rpId
61827  });
61828};
61829
61830var RecommendationsListbabel_target_legacy_RecommendationsList = function RecommendationsList(props) {
61831  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
61832      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
61833      state = _useAPI2[0];
61834
61835  var recommendations = state.recommendations || [];
61836
61837  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
61838      t = _useTranslation.t;
61839
61840  return Object(preact_modulebabel_target_legacy["h"])("div", {
61841    className: RecommendationsList_module_default.a.wrap
61842  }, Object(preact_modulebabel_target_legacy["h"])("div", {
61843    className: RecommendationsList_module_default.a.head
61844  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
61845    className: RecommendationsList_module_default.a.title
61846  }, t("RECOMMENDED_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
61847    className: RecommendationsList_module_default.a.sub
61848  }, t("RECOMMENDED_DESCRIPTION"))), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
61849    data: recommendations,
61850    renderRow: RecommendationsListbabel_target_legacy_renderRow,
61851    rowHeight: 80,
61852    overscanCount: 10,
61853    sync: true
61854  }));
61855};
61856/* harmony default export */ var RecommendationsListbabel_target_legacy = (RecommendationsListbabel_target_legacy_RecommendationsList);
61857// CONCATENATED MODULE: ./src/components/RecommendationsList/index.ts?babel-target=legacy
61858
61859// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
61860var loggerbabel_target_legacy = __webpack_require__(10);
61861
61862// EXTERNAL MODULE: ./src/lib/Analytics/index.ts?babel-target=legacy + 3 modules
61863var Analyticsbabel_target_legacy = __webpack_require__(184);
61864
61865// CONCATENATED MODULE: ./src/components/MenuPanel/MenuPanel.tsx?babel-target=legacy
61866
61867
61868
61869
61870
61871
61872
61873
61874
61875
61876
61877
61878
61879
61880
61881
61882
61883
61884
61885
61886
61887var noop = function noop() {};
61888
61889var MenuPanelbabel_target_legacy_MenuPanel = function MenuPanel(_ref) {
61890  var _ref$onHide = _ref.onHide,
61891      onHide = _ref$onHide === void 0 ? noop : _ref$onHide,
61892      adProviders = _ref.adProviders,
61893      cmp = _ref.cmp;
61894
61895  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
61896      t = _useTranslation.t;
61897
61898  var tabitems = [t("TAB_FAVOURITES"), t("TAB_RECENT"), t("TAB_DISCOVER"), t("TAB_A_TO_Z")];
61899
61900  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
61901      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
61902      selectedPanel = _useState2[0],
61903      setSelectedPanel = _useState2[1];
61904
61905  var _useAnalytics = Object(Analyticsbabel_target_legacy["b" /* useAnalytics */])(),
61906      sendEvent = _useAnalytics.sendEvent;
61907
61908  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
61909      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
61910      state = _useAPI2[0],
61911      dispatch = _useAPI2[1];
61912
61913  var switchPanel = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (tab) {
61914    sendEvent("Navigation", "Main Menu", tabitems[tab]);
61915    setSelectedPanel(tab);
61916  }, [sendEvent, tabitems]); // for accessibility purposes we want to the user to focus on the first
61917  // element in this menu as soon as it renders
61918
61919  var ref = Object(hooks_modulebabel_target_legacy["i" /* useRef */])(null);
61920  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
61921    if (ref.current) {
61922      ref.current.focus();
61923    }
61924  }, []); // register handler for escape key
61925
61926  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
61927    var escFunction = function escFunction(e) {
61928      if (e.key === "Escape") {
61929        onHide();
61930      }
61931    };
61932
61933    document.addEventListener("keydown", escFunction, false);
61934    return function () {
61935      document.removeEventListener("keyup", escFunction, false);
61936    };
61937  }, [onHide]);
61938  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
61939    var loadStations = /*#__PURE__*/function () {
61940      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
61941        var stations;
61942        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
61943          while (1) {
61944            switch (_context.prev = _context.next) {
61945              case 0:
61946                Object(loggerbabel_target_legacy["c" /* log */])("Loading station list");
61947
61948                if (!state.mapiUrl) {
61949                  _context.next = 6;
61950                  break;
61951                }
61952
61953                _context.next = 4;
61954                return Object(APIManagerbabel_target_legacy["s" /* loadStationList */])(state.mapiUrl);
61955
61956              case 4:
61957                stations = _context.sent;
61958
61959                if (stations && Object.values(stations).length) {
61960                  dispatch({
61961                    type: "SET_STATIONLIST",
61962                    payload: stations
61963                  });
61964                }
61965
61966              case 6:
61967              case "end":
61968                return _context.stop();
61969            }
61970          }
61971        }, _callee);
61972      }));
61973
61974      return function loadStations() {
61975        return _ref2.apply(this, arguments);
61976      };
61977    }();
61978
61979    var loadRecommendations = /*#__PURE__*/function () {
61980      var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
61981        var recommendations;
61982        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
61983          while (1) {
61984            switch (_context2.prev = _context2.next) {
61985              case 0:
61986                Object(loggerbabel_target_legacy["c" /* log */])("Loading recommendations");
61987
61988                if (!state.queryProxyUrl) {
61989                  _context2.next = 6;
61990                  break;
61991                }
61992
61993                _context2.next = 4;
61994                return Object(APIManagerbabel_target_legacy["p" /* loadRecommendationList */])(state.queryProxyUrl);
61995
61996              case 4:
61997                recommendations = _context2.sent;
61998
61999                if (recommendations && recommendations.length) {
62000                  dispatch({
62001                    type: "SET_RECOMMENDATIONS",
62002                    payload: recommendations
62003                  });
62004                }
62005
62006              case 6:
62007              case "end":
62008                return _context2.stop();
62009            }
62010          }
62011        }, _callee2);
62012      }));
62013
62014      return function loadRecommendations() {
62015        return _ref3.apply(this, arguments);
62016      };
62017    }();
62018
62019    if (!state.stationlist || !Object.values(state.stationlist).length) {
62020      loadStations();
62021    }
62022
62023    if (!state.recommendations || !state.recommendations.length) {
62024      loadRecommendations();
62025    }
62026  }, [state.stationlist, state.mapiUrl, state.recommendations, dispatch, state.queryProxyUrl]);
62027
62028  var openCmpInterface = function openCmpInterface() {
62029    if (!cmp) return;
62030    var windowObject = cmp.windowObject,
62031        openFunction = cmp.openFunction;
62032    if (!windowObject || !openFunction) return;
62033    window[windowObject][openFunction]();
62034  };
62035
62036  return Object(preact_modulebabel_target_legacy["h"])("div", {
62037    className: MenuPanel_module_default.a.wrap
62038  }, Object(preact_modulebabel_target_legacy["h"])("button", {
62039    ref: ref,
62040    className: MenuPanel_module_default.a.button,
62041    onClick: onHide
62042  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62043    src: __webpack_require__(730),
62044    "aria-hidden": true
62045  }), t("BUTTON_CLOSE")), Object(preact_modulebabel_target_legacy["h"])(TabBarbabel_target_legacy["a" /* TabBar */], {
62046    items: tabitems,
62047    selectedItem: selectedPanel,
62048    onChangeTab: switchPanel
62049  }), Object(preact_modulebabel_target_legacy["h"])("div", {
62050    className: MenuPanel_module_default.a.panel
62051  }, selectedPanel === 0 && Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])(FavouritesListbabel_target_legacy_FavouritesList, {
62052    stations: state.stationlist
62053  }), Object(preact_modulebabel_target_legacy["h"])("div", {
62054    className: MenuPanel_module_default.a.cookielink
62055  }, Object(preact_modulebabel_target_legacy["h"])("p", null, cmp ? Object(preact_modulebabel_target_legacy["h"])("button", {
62056    onClick: openCmpInterface,
62057    className: MenuPanel_module_default.a.cmpButton
62058  }, " ", t("LINK_COOKIE_SETTINGS"), " ") : Object(preact_modulebabel_target_legacy["h"])("a", {
62059    href: adProviders ? Object(utilsbabel_target_legacy["b" /* decorateUrl */])(t("URL_COOKIE_SETTINGS"), [["rpadproviders", adProviders || ""]]) : t("URL_COOKIE_SETTINGS"),
62060    target: "_blank",
62061    rel: "noopener noreferrer"
62062  }, t("LINK_COOKIE_SETTINGS")), cmp ? cmp.manageCookieSettingsSubtext || "" : "(".concat(t("LABEL_COOKIE_SETTINGS_INFO"), ")")))), selectedPanel === 1 && Object(preact_modulebabel_target_legacy["h"])(RecentStationsbabel_target_legacy_RecentStations, {
62063    stations: state.stationlist
62064  }), selectedPanel === 2 && Object(preact_modulebabel_target_legacy["h"])(RecommendationsListbabel_target_legacy_RecommendationsList, null), selectedPanel === 3 && Object(preact_modulebabel_target_legacy["h"])(AToZListbabel_target_legacy_AToZList, {
62065    stations: state.stationlist,
62066    smoothScroll: true
62067  })));
62068};
62069/* harmony default export */ var MenuPanelbabel_target_legacy = (MenuPanelbabel_target_legacy_MenuPanel);
62070// CONCATENATED MODULE: ./src/components/MenuPanel/index.ts?babel-target=legacy
62071
62072
62073/***/ }),
62074/* 963 */,
62075/* 964 */,
62076/* 965 */
62077/***/ (function(module, __webpack_exports__, __webpack_require__) {
62078
62079"use strict";
62080
62081// EXPORTS
62082__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ NavBarbabel_target_legacy_NavBar; });
62083
62084// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
62085var slicedToArraybabel_target_legacy = __webpack_require__(8);
62086var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
62087
62088// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
62089var preact_modulebabel_target_legacy = __webpack_require__(1);
62090
62091// EXTERNAL MODULE: ./src/components/NavBar/NavBar.module.scss
62092var NavBar_module = __webpack_require__(122);
62093var NavBar_module_default = /*#__PURE__*/__webpack_require__.n(NavBar_module);
62094
62095// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
62096var RPIconbabel_target_legacy = __webpack_require__(42);
62097
62098// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
62099var useAPIbabel_target_legacy = __webpack_require__(44);
62100
62101// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
62102var hooks_modulebabel_target_legacy = __webpack_require__(4);
62103
62104// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
62105var es_babel_target_legacy = __webpack_require__(25);
62106
62107// EXTERNAL MODULE: ./src/components/FaveNote/FaveNote.module.scss
62108var FaveNote_module = __webpack_require__(192);
62109var FaveNote_module_default = /*#__PURE__*/__webpack_require__.n(FaveNote_module);
62110
62111// CONCATENATED MODULE: ./src/components/FaveNote/FaveNote.tsx?babel-target=legacy
62112
62113
62114
62115var FaveNotebabel_target_legacy_FaveNote = function FaveNote(_ref) {
62116  var hideNotification = _ref.hideNotification;
62117
62118  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
62119      t = _useTranslation.t;
62120
62121  return Object(preact_modulebabel_target_legacy["h"])("div", {
62122    className: FaveNote_module_default.a.faveNotificationContainer
62123  }, Object(preact_modulebabel_target_legacy["h"])("svg", {
62124    viewBox: "0 0 18 10",
62125    xmlns: "http://www.w3.org/2000/svg",
62126    "aria-hidden": true
62127  }, Object(preact_modulebabel_target_legacy["h"])("polygon", {
62128    points: "0,8 9,0 18,10 0,10",
62129    fill: "#f3f3f3"
62130  }), Object(preact_modulebabel_target_legacy["h"])("polyline", {
62131    points: "0,10 9,0 18,10",
62132    stroke: "#d7d7d7",
62133    fill: "none"
62134  })), Object(preact_modulebabel_target_legacy["h"])("div", {
62135    className: FaveNote_module_default.a.faveNotificationContainerInner
62136  }, Object(preact_modulebabel_target_legacy["h"])("h3", {
62137    className: FaveNote_module_default.a.faveNotificationHeader
62138  }, t("FAVE_NOTE_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
62139    className: FaveNote_module_default.a.faveNotificationText
62140  }, t("FAVE_NOTE_TEXT")), Object(preact_modulebabel_target_legacy["h"])("button", {
62141    onClick: hideNotification,
62142    className: FaveNote_module_default.a.closeText
62143  }, t("FAVE_NOTE_BUTTON"))));
62144};
62145/* harmony default export */ var FaveNotebabel_target_legacy = (FaveNotebabel_target_legacy_FaveNote);
62146// CONCATENATED MODULE: ./src/components/FaveNote/index.ts?babel-target=legacy
62147
62148// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
62149var utilsbabel_target_legacy = __webpack_require__(48);
62150
62151// CONCATENATED MODULE: ./src/components/NavBar/NavBar.tsx?babel-target=legacy
62152
62153
62154/* eslint-disable react/jsx-no-literals */
62155
62156
62157
62158
62159
62160
62161
62162
62163
62164var noop = function noop() {};
62165
62166var NavBarbabel_target_legacy_NavBar = function NavBar(_ref) {
62167  var _ref$onClickMenu = _ref.onClickMenu,
62168      onClickMenu = _ref$onClickMenu === void 0 ? noop : _ref$onClickMenu,
62169      _ref$onClickSearch = _ref.onClickSearch,
62170      onClickSearch = _ref$onClickSearch === void 0 ? noop : _ref$onClickSearch,
62171      logo = _ref.logo,
62172      stationName = _ref.stationName;
62173
62174  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
62175      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
62176      state = _useAPI2[0];
62177
62178  var showBadge = !!state.faves.length;
62179
62180  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(true),
62181      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
62182      displayFaveNotification = _useState2[0],
62183      setDisplayFaveNotification = _useState2[1];
62184
62185  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
62186      t = _useTranslation.t;
62187
62188  var hideNotification = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
62189    setDisplayFaveNotification(false);
62190  }, [setDisplayFaveNotification]);
62191  var openMenu = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
62192    hideNotification();
62193    onClickMenu();
62194  }, [hideNotification, onClickMenu]);
62195  var nameAsId = Object(utilsbabel_target_legacy["j" /* kebabify */])(stationName);
62196  return Object(preact_modulebabel_target_legacy["h"])("div", {
62197    className: NavBar_module_default.a.wrap
62198  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62199    className: NavBar_module_default.a.buttonContainer
62200  }, Object(preact_modulebabel_target_legacy["h"])("a", {
62201    href: "#main-content",
62202    className: NavBar_module_default.a.skipLink
62203  }, t("LABEL_SKIP_LINK_CONTENT")), Object(preact_modulebabel_target_legacy["h"])("a", {
62204    href: "#".concat(nameAsId),
62205    className: NavBar_module_default.a.skipLink
62206  }, t("LABEL_SKIP_LINK_CONTROLS")), Object(preact_modulebabel_target_legacy["h"])("button", {
62207    className: NavBar_module_default.a.button,
62208    onClick: openMenu,
62209    "aria-label": t("ARIA_OPEN_MENU")
62210  }, showBadge ? Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62211    src: __webpack_require__(1002)
62212  }) : Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62213    src: __webpack_require__(1003)
62214  }), t("BUTTON_MENU")), state.displayFaveNotification && displayFaveNotification && Object(preact_modulebabel_target_legacy["h"])(FaveNotebabel_target_legacy_FaveNote, {
62215    hideNotification: hideNotification
62216  })), Object(preact_modulebabel_target_legacy["h"])("figure", {
62217    className: NavBar_module_default.a.middle
62218  }, t("RADIOPLAYER_URL") === "RADIOPLAYER_URL" ? Object(preact_modulebabel_target_legacy["h"])("img", {
62219    alt: "Radioplayer",
62220    src: logo
62221  }) : Object(preact_modulebabel_target_legacy["h"])("a", {
62222    href: t("RADIOPLAYER_URL"),
62223    target: "_blank",
62224    rel: "noopener noreferrer"
62225  }, Object(preact_modulebabel_target_legacy["h"])("img", {
62226    alt: "Radioplayer",
62227    src: logo
62228  }))), Object(preact_modulebabel_target_legacy["h"])("button", {
62229    className: NavBar_module_default.a.button,
62230    onClick: onClickSearch,
62231    "aria-label": "Search"
62232  }, Object(preact_modulebabel_target_legacy["h"])("span", {
62233    className: NavBar_module_default.a.wide
62234  }, t("LABEL_SEARCH_FULL")), Object(preact_modulebabel_target_legacy["h"])("span", {
62235    className: NavBar_module_default.a.narrow,
62236    "aria-hidden": true
62237  }, t("LABEL_SEARCH_SHORT")), Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62238    src: __webpack_require__(468)
62239  })));
62240};
62241/* harmony default export */ var NavBarbabel_target_legacy = (NavBarbabel_target_legacy_NavBar);
62242// CONCATENATED MODULE: ./src/components/NavBar/index.ts?babel-target=legacy
62243
62244
62245/***/ }),
62246/* 966 */
62247/***/ (function(module, __webpack_exports__, __webpack_require__) {
62248
62249"use strict";
62250
62251// EXPORTS
62252__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ SearchPanelbabel_target_legacy_SearchPanel; });
62253
62254// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js?babel-target=legacy
62255var es_array_slicebabel_target_legacy = __webpack_require__(177);
62256
62257// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
62258var regenerator_babel_target_legacy = __webpack_require__(6);
62259var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
62260
62261// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
62262var runtimebabel_target_legacy = __webpack_require__(60);
62263
62264// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
62265var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
62266var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
62267
62268// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
62269var slicedToArraybabel_target_legacy = __webpack_require__(8);
62270var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
62271
62272// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
62273var preact_modulebabel_target_legacy = __webpack_require__(1);
62274
62275// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
62276var hooks_modulebabel_target_legacy = __webpack_require__(4);
62277
62278// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
62279var es_symbolbabel_target_legacy = __webpack_require__(71);
62280
62281// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js?babel-target=legacy
62282var es_symbol_descriptionbabel_target_legacy = __webpack_require__(199);
62283
62284// EXTERNAL MODULE: ./node_modules/@aerian/preact-virtual-list/dist/preact-virtual-list.js?babel-target=legacy
62285var preact_virtual_listbabel_target_legacy = __webpack_require__(121);
62286var preact_virtual_listbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(preact_virtual_listbabel_target_legacy);
62287
62288// EXTERNAL MODULE: ./src/components/ContentCard/index.ts?babel-target=legacy + 1 modules
62289var ContentCardbabel_target_legacy = __webpack_require__(189);
62290
62291// EXTERNAL MODULE: ./src/components/TabBar/index.ts?babel-target=legacy + 1 modules
62292var TabBarbabel_target_legacy = __webpack_require__(435);
62293
62294// EXTERNAL MODULE: ./src/components/SearchHistory/SearchHistory.tsx?babel-target=legacy
62295var SearchHistorybabel_target_legacy = __webpack_require__(431);
62296
62297// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
62298var useAPIbabel_target_legacy = __webpack_require__(44);
62299
62300// EXTERNAL MODULE: ./src/components/SearchResults/SearchResults.module.scss
62301var SearchResults_module = __webpack_require__(64);
62302var SearchResults_module_default = /*#__PURE__*/__webpack_require__.n(SearchResults_module);
62303
62304// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
62305var es_babel_target_legacy = __webpack_require__(25);
62306
62307// EXTERNAL MODULE: ./src/lib/Trans/Trans.js?babel-target=legacy + 2 modules
62308var Transbabel_target_legacy = __webpack_require__(333);
62309
62310// CONCATENATED MODULE: ./src/components/SearchResults/SearchResults.tsx?babel-target=legacy
62311
62312
62313
62314
62315/* eslint-disable react/jsx-no-literals */
62316
62317
62318
62319
62320
62321
62322
62323
62324
62325
62326
62327var SearchResultsbabel_target_legacy_renderRow = function renderRow(row) {
62328  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
62329    imageUrl: row.imageUrl,
62330    title: row.serviceName,
62331    description: row.description,
62332    url: row.consoleUrl,
62333    rpId: row.rpId,
62334    onDemand: row.type === "PI_OD" || row.type === "OD",
62335    live: row.type === "PI" || row.type === "PE_E" || row.type === "SI"
62336  });
62337};
62338
62339var SearchResultsbabel_target_legacy_renderNoResultsPanel = function renderNoResultsPanel(copy) {
62340  return Object(preact_modulebabel_target_legacy["h"])("div", {
62341    className: SearchResults_module_default.a.noResultsContainer,
62342    style: {
62343      padding: "16px",
62344      borderTop: "none"
62345    }
62346  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62347    className: SearchResults_module_default.a.noResultsInner
62348  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62349    className: SearchResults_module_default.a.noResultsCopy,
62350    style: {
62351      paddingBottom: "58px"
62352    }
62353  }, Object(preact_modulebabel_target_legacy["h"])("p", {
62354    className: SearchResults_module_default.a.noResultsP
62355  }, copy))));
62356};
62357
62358var SearchResultsbabel_target_legacy_SearchResults = function SearchResults(_ref) {
62359  var allSearchResults = _ref.allSearchResults,
62360      liveSearchResults = _ref.liveSearchResults,
62361      catchUpSearchResults = _ref.catchUpSearchResults,
62362      searchTerm = _ref.searchTerm,
62363      showSearchResults = _ref.showSearchResults;
62364
62365  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
62366      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
62367      selectedPanel = _useState2[0],
62368      setSelectedPanel = _useState2[1];
62369
62370  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
62371      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
62372      state = _useAPI2[0];
62373
62374  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
62375      t = _useTranslation.t,
62376      i18n = _useTranslation.i18n;
62377
62378  var renderNoResults = function renderNoResults(searchTerm, searchHistory) {
62379    return Object(preact_modulebabel_target_legacy["h"])("div", {
62380      className: SearchResults_module_default.a.noResultsContainer
62381    }, Object(preact_modulebabel_target_legacy["h"])("div", {
62382      className: SearchResults_module_default.a.noResultsInner
62383    }, Object(preact_modulebabel_target_legacy["h"])("div", {
62384      className: SearchResults_module_default.a.noResultsCopy
62385    }, Object(preact_modulebabel_target_legacy["h"])("h2", {
62386      className: SearchResults_module_default.a.noResultsHeader
62387    }, t("SEARCH_NO_RESULTS_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
62388      className: SearchResults_module_default.a.noResultsP
62389    }, t("SEARCH_NO_RESULTS_DESCRIPTION", {
62390      searchTerm: searchTerm
62391    })), Object(preact_modulebabel_target_legacy["h"])("p", {
62392      className: SearchResults_module_default.a.noResultsP
62393    }, Object(preact_modulebabel_target_legacy["h"])(Transbabel_target_legacy["a" /* Trans */], {
62394      i18n: i18n,
62395      i18nKey: "SEARCH_NO_RESULTS_HINT"
62396    }, "Please check your spelling - or try searching again, using a ", Object(preact_modulebabel_target_legacy["h"])("strong", null, "station name"), ", a", " ", Object(preact_modulebabel_target_legacy["h"])("strong", null, "programme name"), ", or a", " ", Object(preact_modulebabel_target_legacy["h"])("strong", null, "place"), "."))), searchHistory && searchHistory.length > 0 && Object(preact_modulebabel_target_legacy["h"])("div", {
62397      className: SearchResults_module_default.a.searchHistory
62398    }, Object(preact_modulebabel_target_legacy["h"])(SearchHistorybabel_target_legacy["a" /* SearchHistory */], {
62399      title: t("RECENT_SEARCHES"),
62400      showSearchResults: showSearchResults
62401    }))));
62402  };
62403
62404  var renderTabs = function renderTabs() {
62405    return Object(preact_modulebabel_target_legacy["h"])("div", {
62406      className: SearchResults_module_default.a.tabs
62407    }, Object(preact_modulebabel_target_legacy["h"])(TabBarbabel_target_legacy["a" /* TabBar */], {
62408      items: [t("LABEL_ALL_RESULTS"), t("LABEL_LIVE"), t("LABEL_ON_DEMAND")],
62409      affix: [null, " (".concat(liveSearchResults.length, ")"), " (".concat(catchUpSearchResults.length, ")")],
62410      selectedItem: selectedPanel,
62411      onChangeTab: setSelectedPanel
62412    }), Object(preact_modulebabel_target_legacy["h"])("div", {
62413      className: SearchResults_module_default.a.panel
62414    }, selectedPanel === 0 && allSearchResults.length > 0 && Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
62415      className: SearchResults_module_default.a.results,
62416      data: allSearchResults,
62417      renderRow: SearchResultsbabel_target_legacy_renderRow,
62418      rowHeight: 83,
62419      overscanCount: 10,
62420      sync: true
62421    }), selectedPanel === 1 && Object(preact_modulebabel_target_legacy["h"])("div", null, liveSearchResults.length > 0 ? Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
62422      className: SearchResults_module_default.a.results,
62423      data: liveSearchResults,
62424      renderRow: SearchResultsbabel_target_legacy_renderRow,
62425      rowHeight: 83,
62426      overscanCount: 10,
62427      sync: true
62428    }) : SearchResultsbabel_target_legacy_renderNoResultsPanel(t("SEARCH_NO_LIVE"))), selectedPanel === 2 && Object(preact_modulebabel_target_legacy["h"])("div", null, catchUpSearchResults.length > 0 ? Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
62429      className: SearchResults_module_default.a.results,
62430      data: catchUpSearchResults,
62431      renderRow: SearchResultsbabel_target_legacy_renderRow,
62432      rowHeight: 83,
62433      overscanCount: 10,
62434      sync: true
62435    }) : SearchResultsbabel_target_legacy_renderNoResultsPanel(t("SEARCH_NO_ON_DEMAND")))));
62436  };
62437
62438  return allSearchResults.length === 0 ? renderNoResults(searchTerm, state.searchHistory) : renderTabs();
62439};
62440// EXTERNAL MODULE: ./src/components/SearchHistory/index.ts?babel-target=legacy
62441var components_SearchHistorybabel_target_legacy = __webpack_require__(752);
62442
62443// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
62444var es_function_namebabel_target_legacy = __webpack_require__(123);
62445
62446// EXTERNAL MODULE: ./src/components/Spinner/index.ts?babel-target=legacy + 1 modules
62447var Spinnerbabel_target_legacy = __webpack_require__(236);
62448
62449// EXTERNAL MODULE: ./src/components/SearchSuggestions/SearchSuggestions.module.scss
62450var SearchSuggestions_module = __webpack_require__(96);
62451var SearchSuggestions_module_default = /*#__PURE__*/__webpack_require__.n(SearchSuggestions_module);
62452
62453// CONCATENATED MODULE: ./src/components/SearchSuggestions/SearchSuggestions.tsx?babel-target=legacy
62454
62455
62456
62457
62458
62459
62460
62461
62462var SearchSuggestionsbabel_target_legacy_renderStationRow = function render
62462StationRow(row) {
62463  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
62464    imageUrl: row.imageUrl,
62465    title: row.serviceName,
62466    url: row.url,
62467    suggestion: true
62468  });
62469};
62470
62471var SearchSuggestionsbabel_target_legacy_renderOnDemandRow = function renderOnDemandRow(row) {
62472  return Object(preact_modulebabel_target_legacy["h"])(ContentCardbabel_target_legacy["a" /* ContentCard */], {
62473    imageUrl: row.imageUrl,
62474    title: row.serviceName,
62475    url: row.url,
62476    description: row.name,
62477    suggestion: true
62478  });
62479};
62480
62481var SearchSuggestionsbabel_target_legacy_SearchSuggestions = function SearchSuggestions(_ref) {
62482  var suggestedOnDemand = _ref.suggestedOnDemand,
62483      suggestedLive = _ref.suggestedLive,
62484      searchTerm = _ref.searchTerm,
62485      handleSubmit = _ref.handleSubmit,
62486      loading = _ref.loading;
62487
62488  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
62489      t = _useTranslation.t;
62490
62491  return suggestedLive.length > 0 || suggestedOnDemand.length > 0 ? Object(preact_modulebabel_target_legacy["h"])("div", {
62492    className: SearchSuggestions_module_default.a.container
62493  }, suggestedLive.length > 0 && Object(preact_modulebabel_target_legacy["h"])("div", {
62494    className: SearchSuggestions_module_default.a.section
62495  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62496    className: SearchSuggestions_module_default.a.head
62497  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
62498    className: SearchSuggestions_module_default.a.title
62499  }, t("LABEL_SUGGESTED_STATIONS"))), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
62500    className: SearchSuggestions_module_default.a.suggestions,
62501    data: suggestedLive,
62502    renderRow: SearchSuggestionsbabel_target_legacy_renderStationRow,
62503    rowHeight: 48,
62504    overscanCount: 10,
62505    sync: true
62506  })), suggestedOnDemand.length > 0 && Object(preact_modulebabel_target_legacy["h"])("div", {
62507    className: SearchSuggestions_module_default.a.section
62508  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62509    className: SearchSuggestions_module_default.a.head
62510  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
62511    className: SearchSuggestions_module_default.a.title
62512  }, t("LABEL_SUGGESTED_ON_DEMAND"))), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
62513    className: SearchSuggestions_module_default.a.suggestions,
62514    data: suggestedOnDemand,
62515    renderRow: SearchSuggestionsbabel_target_legacy_renderOnDemandRow,
62516    rowHeight: 48,
62517    overscanCount: 10,
62518    sync: true
62519  })), (suggestedLive.length > 0 || suggestedOnDemand.length > 0) && Object(preact_modulebabel_target_legacy["h"])("button", {
62520    type: "submit",
62521    "aria-label": loading ? t("LABEL_LOADING") : t("SEARCH_SHOW_ALL_RESULTS", {
62522      searchTerm: searchTerm
62523    }),
62524    className: SearchSuggestions_module_default.a.quickSearch,
62525    onClick: function onClick(e) {
62526      handleSubmit(e, true);
62527    }
62528  }, loading ? Object(preact_modulebabel_target_legacy["h"])(Spinnerbabel_target_legacy["a" /* Spinner */], {
62529    className: SearchSuggestions_module_default.a.spinner
62530  }) : Object(preact_modulebabel_target_legacy["h"])("span", null, t("SEARCH_SHOW_ALL_RESULTS", {
62531    searchTerm: searchTerm
62532  })))) : null;
62533};
62534// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
62535var RPIconbabel_target_legacy = __webpack_require__(42);
62536
62537// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
62538var APIManagerbabel_target_legacy = __webpack_require__(32);
62539
62540// EXTERNAL MODULE: ./src/components/SearchPanel/SearchPanel.module.scss
62541var SearchPanel_module = __webpack_require__(83);
62542var SearchPanel_module_default = /*#__PURE__*/__webpack_require__.n(SearchPanel_module);
62543
62544// EXTERNAL MODULE: ./src/lib/useIdleTimeout.ts?babel-target=legacy
62545var useIdleTimeoutbabel_target_legacy = __webpack_require__(753);
62546
62547// CONCATENATED MODULE: ./src/components/SearchPanel/SearchPanel.tsx?babel-target=legacy
62548
62549
62550
62551
62552
62553
62554
62555
62556
62557
62558
62559
62560
62561
62562
62563
62564
62565var SearchPanelbabel_target_legacy_SearchPanel = function SearchPanel(_ref) {
62566  var id = _ref.id,
62567      toggleSearch = _ref.toggleSearch,
62568      closeSearch = _ref.closeSearch;
62569
62570  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(""),
62571      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
62572      searchTerm = _useState2[0],
62573      setSearchTerm = _useState2[1];
62574
62575  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
62576      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
62577      suggestedOnDemand = _useState4[0],
62578      setSuggestedOnDemand = _useState4[1];
62579
62580  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
62581      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
62582      suggestedLive = _useState6[0],
62583      setSuggestedLive = _useState6[1];
62584
62585  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
62586      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 2),
62587      allSearchResults = _useState8[0],
62588      setAllSearchResults = _useState8[1];
62589
62590  var _useState9 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
62591      _useState10 = slicedToArraybabel_target_legacy_default()(_useState9, 2),
62592      liveSearchResults = _useState10[0],
62593      setLiveSearchResults = _useState10[1];
62594
62595  var _useState11 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
62596      _useState12 = slicedToArraybabel_target_legacy_default()(_useState11, 2),
62597      catchUpSearchResults = _useState12[0],
62598      setCatchUpSearchResults = _useState12[1];
62599
62600  var _useState13 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
62601      _useState14 = slicedToArraybabel_target_legacy_default()(_useState13, 2),
62602      loading = _useState14[0],
62603      setLoading = _useState14[1];
62604
62605  var _useState15 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
62606      _useState16 = slicedToArraybabel_target_legacy_default()(_useState15, 2),
62607      error = _useState16[0],
62608      setError = _useState16[1];
62609
62610  var _useState17 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
62611      _useState18 = slicedToArraybabel_target_legacy_default()(_useState17, 2),
62612      displayResults = _useState18[0],
62613      setDisplayResults = _useState18[1];
62614
62615  var _useState19 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
62616      _useState20 = slicedToArraybabel_target_legacy_default()(_useState19, 2),
62617      quickSearchLoading = _useState20[0],
62618      setQuickSearchLoading = _useState20[1];
62619
62620  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
62621      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
62622      state = _useAPI2[0],
62623      dispatch = _useAPI2[1];
62624
62625  var searchBox = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
62626
62627  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
62628      t = _useTranslation.t;
62629
62630  Object(useIdleTimeoutbabel_target_legacy["a" /* useIdleTimeout */])(closeSearch, 30);
62631  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
62632    // Listen to close panel
62633    var escFunction = function escFunction(e) {
62634      if (e.key === "Escape") {
62635        closeSearch();
62636      }
62637    };
62638
62639    document.addEventListener("keydown", escFunction, false);
62640
62641    if (searchBox.current) {
62642      searchBox.current.focus();
62643    }
62644
62645    return function () {
62646      // Close panel listener cleanup
62647      document.removeEventListener("keyup", escFunction, false);
62648    };
62649  }, [closeSearch, searchBox]);
62650
62651  var handleChange = /*#__PURE__*/function () {
62652    var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee(e) {
62653      var el, value, suggestion;
62654      return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
62655        while (1) {
62656          switch (_context.prev = _context.next) {
62657            case 0:
62658              el = e.target;
62659
62660              if (el) {
62661                _context.next = 3;
62662                break;
62663              }
62664
62665              return _context.abrupt("return");
62666
62667            case 3:
62668              value = el.value;
62669              setDisplayResults(false);
62670              setSearchTerm(value);
62671
62672              if (!(value.length === 0)) {
62673                _context.next = 10;
62674                break;
62675              }
62676
62677              setSuggestedOnDemand([]);
62678              setSuggestedLive([]);
62679              return _context.abrupt("return");
62680
62681            case 10:
62682              _context.prev = 10;
62683              _context.next = 13;
62684              return Object(APIManagerbabel_target_legacy["A" /* stationSuggestions */])(value, state.queryProxyUrl);
62685
62686            case 13:
62687              suggestion = _context.sent;
62688              setSuggestedOnDemand(suggestion.onDemand.slice(0, 5));
62689              setSuggestedLive(suggestion.live.slice(0, 5));
62690              _context.next = 22;
62691              break;
62692
62693            case 18:
62694              _context.prev = 18;
62695              _context.t0 = _context["catch"](10);
62696              setSuggestedOnDemand([]);
62697              setSuggestedLive([]);
62698
62699            case 22:
62700            case "end":
62701              return _context.stop();
62702          }
62703        }
62704      }, _callee, null, [[10, 18]]);
62705    }));
62706
62707    return function handleChange(_x) {
62708      return _ref2.apply(this, arguments);
62709    };
62710  }();
62711
62712  var showSearchResults = /*#__PURE__*/function () {
62713    var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2(term, quickSearchLoading) {
62714      var _yield$searchStations, results, allResults, liveResults, catchUpResults, group, resultGroup, item;
62715
62716      return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
62717        while (1) {
62718          switch (_context2.prev = _context2.next) {
62719            case 0:
62720              // Search term has to be set to populate search box
62721              setSearchTerm(term);
62722
62723              if (quickSearchLoading) {
62724                setQuickSearchLoading(true);
62725              } else {
62726                setLoading(true);
62727              }
62728
62729              _context2.prev = 2;
62730              _context2.next = 5;
62731              return Object(APIManagerbabel_target_legacy["v" /* searchStations */])(term, state.queryProxyUrl);
62732
62733            case 5:
62734              _yield$searchStations = _context2.sent;
62735              results = _yield$searchStations.results;
62736              allResults = [];
62737              liveResults = [];
62738              catchUpResults = [];
62739
62740              for (group in results) {
62741                resultGroup = results[group].results;
62742
62743                for (item in resultGroup) {
62744                  allResults.push(resultGroup[item]);
62745
62746                  if (resultGroup[item].type === "SI" || resultGroup[item].type === "PI" || resultGroup[item].type === "PE_E") {
62747                    liveResults.push(resultGroup[item]);
62748                  }
62749
62750                  if (resultGroup[item].type === "OD" || resultGroup[item].type === "PI_OD") {
62751                    catchUpResults.push(resultGroup[item]);
62752                  }
62753                }
62754              }
62755
62756              setAllSearchResults(allResults);
62757              setLiveSearchResults(liveResults);
62758              setCatchUpSearchResults(catchUpResults);
62759              setError(false);
62760              setDisplayResults(true);
62761              setLoading(false);
62762              setQuickSearchLoading(false); // Save search term if results are returned
62763
62764              if (allResults.length > 0) {
62765                dispatch({
62766                  type: "SET_SEARCH_TERM",
62767                  payload: term
62768                });
62769              }
62770
62771              _context2.next = 32;
62772              break;
62773
62774            case 21:
62775              _context2.prev = 21;
62776              _context2.t0 = _context2["catch"](2);
62777              setSuggestedOnDemand([]);
62778              setSuggestedLive([]);
62779              setAllSearchResults([]);
62780              setLiveSearchResults([]);
62781              setCatchUpSearchResults([]);
62782              setLoading(false);
62783              setQuickSearchLoading(false);
62784              setError(true);
62785              setDisplayResults(false);
62786
62787            case 32:
62788            case "end":
62789              return _context2.stop();
62790          }
62791        }
62792      }, _callee2, null, [[2, 21]]);
62793    }));
62794
62795    return function showSearchResults(_x2, _x3) {
62796      return _ref3.apply(this, arguments);
62797    };
62798  }();
62799
62800  var handleSubmit = function handleSubmit(e, quickSearchLoading) {
62801    if (e) {
62802      e.preventDefault();
62803    }
62804
62805    showSearchResults(searchTerm, quickSearchLoading);
62806  };
62807
62808  var renderError = function renderError() {
62809    return Object(preact_modulebabel_target_legacy["h"])("div", {
62810      className: SearchPanel_module_default.a.errorContainer
62811    }, Object(preact_modulebabel_target_legacy["h"])("div", {
62812      className: SearchPanel_module_default.a.errorInner
62813    }, Object(preact_modulebabel_target_legacy["h"])("h2", {
62814      className: SearchPanel_module_default.a.errorTitle
62815    }, t("SEARCH_ERROR_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
62816      className: SearchPanel_module_default.a.errorText
62817    }, t("SEARCH_ERROR_DESCRIPTION"))));
62818  };
62819
62820  return Object(preact_modulebabel_target_legacy["h"])("div", {
62821    className: SearchPanel_module_default.a.wrap
62822  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62823    className: SearchPanel_module_default.a.header
62824  }, Object(preact_modulebabel_target_legacy["h"])("div", {
62825    className: SearchPanel_module_default.a.title
62826  }, t("LABEL_SEARCH_FULL")), Object(preact_modulebabel_target_legacy["h"])("button", {
62827    "aria-label": t("ARIA_CLOSE"),
62828    type: "submit",
62829    className: SearchPanel_module_default.a.button,
62830    onClick: toggleSearch
62831  }, t("BUTTON_CLOSE"), Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62832    src: __webpack_require__(730),
62833    "aria-hidden": true
62834  }))), Object(preact_modulebabel_target_legacy["h"])("form", {
62835    className: SearchPanel_module_default.a.searchForm,
62836    onSubmit: handleSubmit
62837  }, Object(preact_modulebabel_target_legacy["h"])("input", {
62838    className: SearchPanel_module_default.a.input,
62839    placeholder: t("PLACEHOLDER_SEARCH"),
62840    autoComplete: "off",
62841    value: searchTerm,
62842    type: "text",
62843    onChange: handleChange,
62844    ref: searchBox,
62845    required: true
62846  }), loading ? Object(preact_modulebabel_target_legacy["h"])(Spinnerbabel_target_legacy["a" /* Spinner */], {
62847    className: SearchPanel_module_default.a.spinner
62848  }) : Object(preact_modulebabel_target_legacy["h"])("button", {
62849    "aria-label": t("SEARCH_SHOW_ALL_RESULTS", {
62850      searchTerm: searchTerm
62851    }),
62852    type: "submit",
62853    disabled: loading,
62854    className: SearchPanel_module_default.a.button
62855  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
62856    src: __webpack_require__(468),
62857    "aria-hidden": true
62858  }))), error && renderError(), displayResults ? Object(preact_modulebabel_target_legacy["h"])(SearchResultsbabel_target_legacy_SearchResults, {
62859    liveSearchResults: liveSearchResults,
62860    catchUpSearchResults: catchUpSearchResults,
62861    allSearchResults: allSearchResults,
62862    searchTerm: searchTerm,
62863    showSearchResults: showSearchResults
62864  }) : searchTerm.length > 0 ? Object(preact_modulebabel_target_legacy["h"])(SearchSuggestionsbabel_target_legacy_SearchSuggestions, {
62865    suggestedOnDemand: suggestedOnDemand,
62866    suggestedLive: suggestedLive,
62867    searchTerm: searchTerm,
62868    handleSubmit: handleSubmit,
62869    loading: quickSearchLoading
62870  }) : Object(preact_modulebabel_target_legacy["h"])("div", {
62871    className: SearchPanel_module_default.a.searchPanelContainer
62872  }, state.searchHistory && state.searchHistory.length > 0 && Object(preact_modulebabel_target_legacy["h"])(components_SearchHistorybabel_target_legacy["a" /* SearchHistory */], {
62873    title: t("RECENT_SEARCHES"),
62874    showSearchResults: showSearchResults
62875  })));
62876};
62877// CONCATENATED MODULE: ./src/components/SearchPanel/index.ts?babel-target=legacy
62878
62879
62880/***/ }),
62881/* 967 */,
62882/* 968 */,
62883/* 969 */
62884/***/ (function(module, __webpack_exports__, __webpack_require__) {
62885
62886"use strict";
62887
62888// EXPORTS
62889__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ CookieBannerbabel_target_legacy_CookieBanner; });
62890
62891// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
62892var es_symbolbabel_target_legacy = __webpack_require__(71);
62893
62894// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js?babel-target=legacy
62895var es_symbol_descriptionbabel_target_legacy = __webpack_require__(199);
62896
62897// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js?babel-target=legacy
62898var es_array_findbabel_target_legacy = __webpack_require__(182);
62899
62900// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js?babel-target=legacy
62901var es_array_includesbabel_target_legacy = __webpack_require__(124);
62902
62903// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
62904var es_function_namebabel_target_legacy = __webpack_require__(123);
62905
62906// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.includes.js?babel-target=legacy
62907var es_string_includesbabel_target_legacy = __webpack_require__(140);
62908
62909// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
62910var definePropertybabel_target_legacy = __webpack_require__(15);
62911var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
62912
62913// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
62914var regenerator_babel_target_legacy = __webpack_require__(6);
62915var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
62916
62917// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
62918var runtimebabel_target_legacy = __webpack_require__(60);
62919
62920// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
62921var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
62922var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
62923
62924// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
62925var slicedToArraybabel_target_legacy = __webpack_require__(8);
62926var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
62927
62928// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
62929var preact_modulebabel_target_legacy = __webpack_require__(1);
62930
62931// EXTERNAL MODULE: ./src/components/CookieBanner/CookieBanner.module.scss
62932var CookieBanner_module = __webpack_require__(40);
62933var CookieBanner_module_default = /*#__PURE__*/__webpack_require__.n(CookieBanner_module);
62934
62935// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
62936var hooks_modulebabel_target_legacy = __webpack_require__(4);
62937
62938// EXTERNAL MODULE: ./src/components/ToggleSwitch/index.ts?babel-target=legacy + 1 modules
62939var ToggleSwitchbabel_target_legacy = __webpack_require__(488);
62940
62941// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
62942var useAPIbabel_target_legacy = __webpack_require__(44);
62943
62944// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
62945var APIManagerbabel_target_legacy = __webpack_require__(32);
62946
62947// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
62948var RPIconbabel_target_legacy = __webpack_require__(42);
62949
62950// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
62951var classnames_babel_target_legacy = __webpack_require__(27);
62952var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
62953
62954// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
62955var loggerbabel_target_legacy = __webpack_require__(10);
62956
62957// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
62958var es_babel_target_legacy = __webpack_require__(25);
62959
62960// EXTERNAL MODULE: ./src/lib/Trans/Trans.js?babel-target=legacy + 2 modules
62961var Transbabel_target_legacy = __webpack_require__(333);
62962
62963// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
62964var utilsbabel_target_legacy = __webpack_require__(48);
62965
62966// EXTERNAL MODULE: ./src/lib/Analytics/AnalyticsContext.ts?babel-target=legacy
62967var AnalyticsContextbabel_target_legacy = __webpack_require__(268);
62968
62969// CONCATENATED MODULE: ./src/components/CookieBanner/CookieBanner.tsx?babel-target=legacy
62970
62971
62972
62973
62974
62975
62976
62977
62978
62979
62980
62981
62982/* eslint-disable react/jsx-no-literals */
62983
62984
62985
62986
62987
62988
62989
62990
62991
62992
62993
62994
62995
62996var CookieBannerbabel_target_legacy_CookieBanner = function CookieBanner(_ref) {
62997  var adProviders = _ref.adProviders;
62998
62999  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
63000      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
63001      state = _useAPI2[0],
63002      dispatch = _useAPI2[1];
63003
63004  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
63005      t = _useTranslation.t,
63006      i18n = _useTranslation.i18n; // const policy = getCookiePolicy(state.cookie)
63007
63008
63009  var _useContext = Object(hooks_modulebabel_target_legacy["b" /* useContext */])(AnalyticsContextbabel_target_legacy["a" /* AnalyticsContext */]),
63010      updateAlPermissions = _useContext.updateAlPermissions;
63011
63012  var tcString = state.tcString;
63013
63014  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
63015      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
63016      show = _useState2[0],
63017      setShow = _useState2[1];
63018
63019  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
63020      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
63021      showDetails = _useState4[0],
63022      setShowDetails = _useState4[1];
63023
63024  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
63025      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
63026      enabledFunctional = _useState6[0],
63027      setEnabledFunctional = _useState6[1];
63028
63029  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
63030      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 2),
63031      enabledPerformance = _useState8[0],
63032      setEnabledPerformance = _useState8[1];
63033
63034  var _useState9 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(tcString !== false),
63035      _useState10 = slicedToArraybabel_target_legacy_default()(_useState9, 2),
63036      cmpInUse = _useState10[0],
63037      setCmpInUse = _useState10[1];
63038
63039  var toggleDetails = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
63040    return setShowDetails(function (enabled) {
63041      return !enabled;
63042    });
63043  }, []);
63044  var savePolicy = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
63045    window.ANALYTICS_ALLOWED = enabledPerformance;
63046    updateAlPermissions();
63047    var payload = Object(APIManagerbabel_target_legacy["c" /* buildCookiePolicy */])(true, enabledFunctional, enabledPerformance);
63048    dispatch({
63049      type: "SET_COOKIE_POLICY",
63050      payload: payload
63051    });
63052    setShow(false);
63053  }, [enabledPerformance, updateAlPermissions, enabledFunctional, dispatch]);
63054  var acceptAll = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
63055    window.ANALYTICS_ALLOWED = true;
63056    updateAlPermissions();
63057    dispatch({
63058      type: "SET_COOKIE_POLICY",
63059      payload: "111"
63060    });
63061    setShow(false);
63062  }, [dispatch, updateAlPermissions]);
63063  var rejectAll = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
63064    window.ANALYTICS_ALLOWED = false;
63065    updateAlPermissions();
63066    var payload = Object(APIManagerbabel_target_legacy["c" /* buildCookiePolicy */])(true, false, false);
63067    dispatch({
63068      type: "SET_COOKIE_POLICY",
63069      payload: payload
63070    });
63071    setShow(false);
63072  }, [dispatch, updateAlPermissions]);
63073  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
63074    // tcString is only set to false if CMP hasnt been passed or hansnt returned a tcString
63075    setCmpInUse(tcString !== false);
63076  }, [tcString]);
63077  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
63078    var getCmpConsent = /*#__PURE__*/function () {
63079      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
63080        var getNonIabConsents;
63081        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
63082          while (1) {
63083            switch (_context.prev = _context.next) {
63084              case 0:
63085                getNonIabConsents = function getNonIabConsents() {
63086                  var serv = window.UC_UI.getServicesBaseInfo();
63087                  var rpConsent = serv.find(function (s) {
63088                    return s.name === "Radioplayer";
63089                  });
63090                  var consentedTo = rpConsent.consent.status;
63091                  var payload = Object(APIManagerbabel_target_legacy["c" /* buildCookiePolicy */])(true, consentedTo, consentedTo);
63092                  dispatch({
63093                    type: "SET_COOKIE_POLICY",
63094                    payload: payload
63095                  });
63096                  setShow(false);
63097                };
63098
63099                if (window.UC_UI && window.UC_UI.isInitialized()) {
63100                  getNonIabConsents();
63101                } else {
63102                  window.addEventListener("UC_UI_INITIALIZED", function (e) {
63103                    getNonIabConsents();
63104                  });
63105                }
63106
63107              case 2:
63108              case "end":
63109                return _context.stop();
63110            }
63111          }
63112        }, _callee);
63113      }));
63114
63115      return function getCmpConsent() {
63116        return _ref2.apply(this, arguments);
63117      };
63118    }();
63119
63120    getCmpConsent();
63121  }
63121, [dispatch, state, state.tcString]);
63122  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
63123    if (cmpInUse) {
63124      // only shop the RP banner if theres no CMP
63125      setShow(false);
63126      return;
63127    }
63128
63129    var getGlobalCookies = /*#__PURE__*/function () {
63130      var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2(cookie) {
63131        var policy, payload;
63132        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
63133          while (1) {
63134            switch (_context2.prev = _context2.next) {
63135              case 0:
63136                _context2.prev = 0;
63137                _context2.next = 3;
63138                return Object(APIManagerbabel_target_legacy["d" /* decodeConsent */])(cookie);
63139
63140              case 3:
63141                policy = _context2.sent;
63142
63143                if (policy && policy.allowedPurposeIds.includes(1)) {
63144                  payload = Object(APIManagerbabel_target_legacy["c" /* buildCookiePolicy */])(true, policy.allowedPurposeIds.includes(2), policy.allowedPurposeIds.includes(4));
63145                  dispatch({
63146                    type: "SET_COOKIE_POLICY",
63147                    payload: payload
63148                  });
63149                  setShow(false);
63150                }
63151
63152                _context2.next = 10;
63153                break;
63154
63155              case 7:
63156                _context2.prev = 7;
63157                _context2.t0 = _context2["catch"](0);
63158                Object(loggerbabel_target_legacy["e" /* warn */])("IAB cookie error", _context2.t0);
63159
63160              case 10:
63161              case "end":
63162                return _context2.stop();
63163            }
63164          }
63165        }, _callee2, null, [[0, 7]]);
63166      }));
63167
63168      return function getGlobalCookies(_x) {
63169        return _ref3.apply(this, arguments);
63170      };
63171    }(); // Initial display state of banner
63172
63173
63174    var hideCookieBanner = localStorage.getItem("hideCookieBanner") || state.disableCookieBanner;
63175    setShow(!hideCookieBanner);
63176    var cookies = Object(APIManagerbabel_target_legacy["u" /* retrieveCookies */])();
63177
63178    if (state.bbcCookies) {
63179      if (!cookies.ckns_explicit || !cookies.ckns_policy) {
63180        // set initial cookies
63181        Object(APIManagerbabel_target_legacy["w" /* setBbcCookies */])();
63182      } // BBC cookies already set
63183
63184
63185      if (cookies.ckns_policy !== "000") {
63186        setShow(false);
63187        localStorage.setItem("hideCookieBanner", "true");
63188      }
63189    } else if (cookies["global-consent"]) {
63190      getGlobalCookies(cookies["global-consent"]);
63191    }
63192  }, [dispatch, state.bbcCookies, state.disableCookieBanner, cmpInUse]);
63193  return cmpInUse ? null : Object(preact_modulebabel_target_legacy["h"])("section", {
63194    className: classnames_babel_target_legacy_default()(CookieBanner_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, CookieBanner_module_default.a.hide, !show || state.cookie.announcement)),
63195    "aria-hidden": !show
63196  }, Object(preact_modulebabel_target_legacy["h"])("div", {
63197    className: CookieBanner_module_default.a.inner
63198  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
63199    className: CookieBanner_module_default.a.title
63200  }, t("COOKIEBANNER_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
63201    className: CookieBanner_module_default.a.body
63202  }, t("COOKIEBANNER_INTRO")), showDetails && Object(preact_modulebabel_target_legacy["h"])("div", null, Object(preact_modulebabel_target_legacy["h"])("div", {
63203    className: CookieBanner_module_default.a.settingsRow
63204  }, Object(preact_modulebabel_target_legacy["h"])("div", {
63205    className: CookieBanner_module_default.a.name
63206  }, t("COOKIEBANNER_NECESSARY_TITLE")), Object(preact_modulebabel_target_legacy["h"])("div", {
63207    className: CookieBanner_module_default.a.toggle
63208  }, Object(preact_modulebabel_target_legacy["h"])("span", null)), Object(preact_modulebabel_target_legacy["h"])("div", {
63209    className: CookieBanner_module_default.a.toggleLabel
63210  }, t("COOKIEBANNER_ALWAYS_ON")), Object(preact_modulebabel_target_legacy["h"])("div", {
63211    className: CookieBanner_module_default.a.description
63212  }, t("COOKIEBANNER_NECESSARY_DESCRIPTION"))), Object(preact_modulebabel_target_legacy["h"])("div", {
63213    className: CookieBanner_module_default.a.settingsRow
63214  }, Object(preact_modulebabel_target_legacy["h"])("div", {
63215    className: CookieBanner_module_default.a.name
63216  }, t("COOKIEBANNER_FUNCTIONAL_TITLE")), Object(preact_modulebabel_target_legacy["h"])("div", {
63217    className: CookieBanner_module_default.a.toggle
63218  }, Object(preact_modulebabel_target_legacy["h"])(ToggleSwitchbabel_target_legacy["a" /* ToggleSwitch */], {
63219    enabled: enabledFunctional,
63220    onChange: setEnabledFunctional
63221  })), Object(preact_modulebabel_target_legacy["h"])("div", {
63222    className: CookieBanner_module_default.a.toggleLabel
63223  }, enabledFunctional ? t("BUTTON_ON") : t("BUTTON_OFF")), Object(preact_modulebabel_target_legacy["h"])("div", {
63224    className: CookieBanner_module_default.a.description
63225  }, t("COOKIEBANNER_FUNCTIONAL_DESCRIPTION"))), Object(preact_modulebabel_target_legacy["h"])("div", {
63226    className: CookieBanner_module_default.a.settingsRow
63227  }, Object(preact_modulebabel_target_legacy["h"])("div", {
63228    className: CookieBanner_module_default.a.name
63229  }, t("COOKIEBANNER_PERFORMANCE_TITLE")), Object(preact_modulebabel_target_legacy["h"])("div", {
63230    className: CookieBanner_module_default.a.toggle
63231  }, Object(preact_modulebabel_target_legacy["h"])(ToggleSwitchbabel_target_legacy["a" /* ToggleSwitch */], {
63232    enabled: enabledPerformance,
63233    onChange: setEnabledPerformance
63234  })), Object(preact_modulebabel_target_legacy["h"])("div", {
63235    className: CookieBanner_module_default.a.toggleLabel
63236  }, enabledPerformance ? t("BUTTON_ON") : t("BUTTON_OFF")), Object(preact_modulebabel_target_legacy["h"])("div", {
63237    className: CookieBanner_module_default.a.description
63238  }, t("COOKIEBANNER_PERFORMANCE_DESCRIPTION")))), Object(preact_modulebabel_target_legacy["h"])("div", {
63239    className: CookieBanner_module_default.a.buttons
63240  }, Object(preact_modulebabel_target_legacy["h"])("button", {
63241    className: CookieBanner_module_default.a.accept,
63242    onClick: showDetails ? savePolicy : acceptAll
63243  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
63244    src: __webpack_require__(882)
63245  }), " ", showDetails ? t("BUTTON_SAVE_SETTINGS") : t("BUTTON_YES_AGREE")), Object(preact_modulebabel_target_legacy["h"])("button", {
63246    className: CookieBanner_module_default.a.reject,
63247    onClick: rejectAll
63248  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
63249    src: __webpack_require__(883)
63250  }), " ", t("COOKIEBANNER_DENY_ALL")), Object(preact_modulebabel_target_legacy["h"])("button", {
63251    className: CookieBanner_module_default.a.settingsButton,
63252    onClick: toggleDetails
63253  }, showDetails ? t("COOKIEBANNER_HIDE_SETTINGS") : t("COOKIEBANNER_SHOW_SETTINGS"))), Object(preact_modulebabel_target_legacy["h"])("p", {
63254    className: CookieBanner_module_default.a.policy
63255  }, Object(preact_modulebabel_target_legacy["h"])(Transbabel_target_legacy["a" /* Trans */], {
63256    i18nKey: "COOKIE_BANNER_DISCLAIMER",
63257    i18n: i18n
63258  }, "Read our", Object(preact_modulebabel_target_legacy["h"])("a", {
63259    href: adProviders ? Object(utilsbabel_target_legacy["b" /* decorateUrl */])(t("URL_PRIVACY_POLICY"), [["rpadproviders", adProviders || ""]]) : t("URL_PRIVACY_POLICY"),
63260    target: "_blank",
63261    rel: "noopener noreferrer"
63262  }, "Privacy"), "and", Object(preact_modulebabel_target_legacy["h"])("a", {
63263    href: adProviders ? Object(utilsbabel_target_legacy["b" /* decorateUrl */])(t("URL_COOKIE_SETTINGS"), [["rpadproviders", adProviders || ""]]) : t("URL_COOKIE_SETTINGS"),
63264    target: "_blank",
63265    rel: "noopener noreferrer"
63266  }, "Cookies Policy"), "to know what this means for you and your data."))));
63267};
63268/* harmony default export */ var CookieBannerbabel_target_legacy = (CookieBannerbabel_target_legacy_CookieBanner);
63269// CONCATENATED MODULE: ./src/components/CookieBanner/index.ts?babel-target=legacy
63270
63271
63272/***/ }),
63273/* 970 */
63274/***/ (function(module, __webpack_exports__, __webpack_require__) {
63275
63276"use strict";
63277
63278// EXPORTS
63279__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ AnnouncementBannerbabel_target_legacy_AnnouncementBanner; });
63280
63281// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
63282var definePropertybabel_target_legacy = __webpack_require__(15);
63283var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
63284
63285// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
63286var slicedToArraybabel_target_legacy = __webpack_require__(8);
63287var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
63288
63289// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
63290var preact_modulebabel_target_legacy = __webpack_require__(1);
63291
63292// EXTERNAL MODULE: ./src/components/AnnouncementBanner/AnnouncementBanner.module.scss
63293var AnnouncementBanner_module = __webpack_require__(143);
63294var AnnouncementBanner_module_default = /*#__PURE__*/__webpack_require__.n(AnnouncementBanner_module);
63295
63296// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
63297var classnames_babel_target_legacy = __webpack_require__(27);
63298var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
63299
63300// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
63301var es_babel_target_legacy = __webpack_require__(25);
63302
63303// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
63304var useAPIbabel_target_legacy = __webpack_require__(44);
63305
63306// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
63307var hooks_modulebabel_target_legacy = __webpack_require__(4);
63308
63309// CONCATENATED MODULE: ./src/components/AnnouncementBanner/AnnouncementBanner.tsx?babel-target=legacy
63310
63311
63312
63313
63314
63315
63316
63317
63318var AnnouncementBannerbabel_target_legacy_AnnouncementBanner = function AnnouncementBanner() {
63319  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
63320      t = _useTranslation.t;
63321
63322  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
63323      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 2),
63324      state = _useAPI2[0],
63325      dispatch = _useAPI2[1];
63326
63327  var hideBanner = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
63328    dispatch({
63329      type: "HIDE_ANNOUNCEMENT",
63330      payload: ""
63331    });
63332  }
63332, [dispatch]);
63333  var announcement = state.cookie.announcement && state.cookie.announcement.text;
63334  return Object(preact_modulebabel_target_legacy["h"])("section", {
63335    className: classnames_babel_target_legacy_default()(AnnouncementBanner_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, AnnouncementBanner_module_default.a.hide, !announcement)),
63336    role: "status",
63337    "aria-hidden": !announcement
63338  }, Object(preact_modulebabel_target_legacy["h"])("div", {
63339    className: AnnouncementBanner_module_default.a.inner
63340  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
63341    className: AnnouncementBanner_module_default.a.title
63342  }, t("ANNOUNCEMENT_TITLE")), Object(preact_modulebabel_target_legacy["h"])("p", {
63343    className: AnnouncementBanner_module_default.a.body
63344  }, announcement), Object(preact_modulebabel_target_legacy["h"])("div", {
63345    className: AnnouncementBanner_module_default.a.buttons
63346  }, Object(preact_modulebabel_target_legacy["h"])("button", {
63347    className: AnnouncementBanner_module_default.a.accept,
63348    onClick: hideBanner
63349  }, t("BUTTON_ANNOUNCEMENT")))));
63350};
63351/* harmony default export */ var AnnouncementBannerbabel_target_legacy = (AnnouncementBannerbabel_target_legacy_AnnouncementBanner);
63352// CONCATENATED MODULE: ./src/components/AnnouncementBanner/index.ts?babel-target=legacy
63353
63354
63355/***/ }),
63356/* 971 */,
63357/* 972 */,
63358/* 973 */,
63359/* 974 */
63360/***/ (function(module, exports) {
63361
63362module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.083 33c-1.653 0-3-1.347-3-3 0-1.655 1.347-3 3-3 1.654 0 3 1.345 3 3 0 1.653-1.346 3-3 3zm-16 5c-1.653 0-3-1.347-3-3 0-1.655 1.347-3 3-3 1.654 0 3 1.345 3 3 0 1.653-1.346 3-3 3zm3.667-22.37l18-6.63v21c0 3.312-2.561 6-5.875 6C21.562 36 19 33.312 19 30c0-3.314 2.603-6 5.916-6 1.54 0 2.834.583 3.834 1.536v-7.182l-14 5.266V35c0 3.312-2.561 6-5.875 6C5.562 41 3 38.312 3 35c0-3.314 2.603-6 5.916-6 1.54 0 2.834.583 3.834 1.536V15.63zm34.333 4.855L42.569 25l4.514 4.513L45.597 31l-4.514-4.515L36.569 31l-1.486-1.487L39.597 25l-4.514-4.515L36.569 19l4.514 4.513L45.597 19l1.486 1.485z\" fill=\"#020203\" fill-rule=\"evenodd\"></path></svg>"
63363
63364/***/ }),
63365/* 975 */,
63366/* 976 */,
63367/* 977 */,
63368/* 978 */,
63369/* 979 */,
63370/* 980 */,
63371/* 981 */,
63372/* 982 */,
63373/* 983 */
63374/***/ (function(module, exports, __webpack_require__) {
63375
63376/* WEBPACK VAR INJECTION */(function(global, module) {/**
63377 * lodash (Custom Build) <https://lodash.com/>
63378 * Build: `lodash modularize exports="npm" -o ./`
63379 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
63380 * Released under MIT license <https://lodash.com/license>
63381 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
63382 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
63383 */
63384
63385/** Used as the size to enable large array optimizations. */
63386var LARGE_ARRAY_SIZE = 200;
63387
63388/** Used to stand-in for `undefined` hash values. */
63389var HASH_UNDEFINED = '__lodash_hash_undefined__';
63390
63391/** Used as references for various `Number` constants. */
63392var MAX_SAFE_INTEGER = 9007199254740991;
63393
63394/** `Object#toString` result references. */
63395var argsTag = '[object Arguments]',
63396    arrayTag = '[object Array]',
63397    boolTag = '[object Boolean]',
63398    dateTag = '[object Date]',
63399    errorTag = '[object Error]',
63400    funcTag = '[object Function]',
63401    genTag = '[object GeneratorFunction]',
63402    mapTag = '[object Map]',
63403    numberTag = '[object Number]',
63404    objectTag = '[object Object]',
63405    promiseTag = '[object Promise]',
63406    regexpTag = '[object RegExp]',
63407    setTag = '[object Set]',
63408    stringTag = '[object String]',
63409    symbolTag = '[object Symbol]',
63410    weakMapTag = '[object WeakMap]';
63411
63412var arrayBufferTag = '[object ArrayBuffer]',
63413    dataViewTag = '[object DataView]',
63414    float32Tag = '[object Float32Array]',
63415    float64Tag = '[object Float64Array]',
63416    int8Tag = '[object Int8Array]',
63417    int16Tag = '[object Int16Array]',
63418    int32Tag = '[object Int32Array]',
63419    uint8Tag = '[object Uint8Array]',
63420    uint8ClampedTag = '[object Uint8ClampedArray]',
63421    uint16Tag = '[object Uint16Array]',
63422    uint32Tag = '[object Uint32Array]';
63423
63424/**
63425 * Used to match `RegExp`
63426 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
63427 */
63428var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
63429
63430/** Used to match `RegExp` flags from their coerced string values. */
63431var reFlags = /\w*$/;
63432
63433/** Used to detect host constructors (Safari). */
63434var reIsHostCtor = /^\[object .+?Constructor\]$/;
63435
63436/** Used to detect unsigned integer values. */
63437var reIsUint = /^(?:0|[1-9]\d*)$/;
63438
63439/** Used to identify `toStringTag` values supported by `_.clone`. */
63440var cloneableTags = {};
63441cloneableTags[argsTag] = cloneableTags[arrayTag] =
vendor: 34,804 bytes, lines 63442-64762
63442cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
63443cloneableTags[boolTag] = cloneableTags[dateTag] =
63444cloneableTags[float32Tag] = cloneableTags[float64Tag] =
63445cloneableTags[int8Tag] = cloneableTags[int16Tag] =
63446cloneableTags[int32Tag] = cloneableTags[mapTag] =
63447cloneableTags[numberTag] = cloneableTags[objectTag] =
63448cloneableTags[regexpTag] = cloneableTags[setTag] =
63449cloneableTags[stringTag] = cloneableTags[symbolTag] =
63450cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
63451cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
63452cloneableTags[errorTag] = cloneableTags[funcTag] =
63453cloneableTags[weakMapTag] = false;
63454
63455/** Detect free variable `global` from Node.js. */
63456var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
63457
63458/** Detect free variable `self`. */
63459var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
63460
63461/** Used as a reference to the global object. */
63462var root = freeGlobal || freeSelf || Function('return this')();
63463
63464/** Detect free variable `exports`. */
63465var freeExports =  true && exports && !exports.nodeType && exports;
63466
63467/** Detect free variable `module`. */
63468var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
63469
63470/** Detect the popular CommonJS extension `module.exports`. */
63471var moduleExports = freeModule && freeModule.exports === freeExports;
63472
63473/**
63474 * Adds the key-value `pair` to `map`.
63475 *
63476 * @private
63477 * @param {Object} map The map to modify.
63478 * @param {Array} pair The key-value pair to add.
63479 * @returns {Object} Returns `map`.
63480 */
63481function addMapEntry(map, pair) {
63482  // Don't return `map.set` because it's not chainable in IE 11.
63483  map.set(pair[0], pair[1]);
63484  return map;
63485}
63486
63487/**
63488 * Adds `value` to `set`.
63489 *
63490 * @private
63491 * @param {Object} set The set to modify.
63492 * @param {*} value The value to add.
63493 * @returns {Object} Returns `set`.
63494 */
63495function addSetEntry(set, value) {
63496  // Don't return `set.add` because it's not chainable in IE 11.
63497  set.add(value);
63498  return set;
63499}
63500
63501/**
63502 * A specialized version of `_.forEach` for arrays without support for
63503 * iteratee shorthands.
63504 *
63505 * @private
63506 * @param {Array} [array] The array to iterate over.
63507 * @param {Function} iteratee The function invoked per iteration.
63508 * @returns {Array} Returns `array`.
63509 */
63510function arrayEach(array, iteratee) {
63511  var index = -1,
63512      length = array ? array.length : 0;
63513
63514  while (++index < length) {
63515    if (iteratee(array[index], index, array) === false) {
63516      break;
63517    }
63518  }
63519  return array;
63520}
63521
63522/**
63523 * Appends the elements of `values` to `array`.
63524 *
63525 * @private
63526 * @param {Array} array The array to modify.
63527 * @param {Array} values The values to append.
63528 * @returns {Array} Returns `array`.
63529 */
63530function arrayPush(array, values) {
63531  var index = -1,
63532      length = values.length,
63533      offset = array.length;
63534
63535  while (++index < length) {
63536    array[offset + index] = values[index];
63537  }
63538  return array;
63539}
63540
63541/**
63542 * A specialized version of `_.reduce` for arrays without support for
63543 * iteratee shorthands.
63544 *
63545 * @private
63546 * @param {Array} [array] The array to iterate over.
63547 * @param {Function} iteratee The function invoked per iteration.
63548 * @param {*} [accumulator] The initial value.
63549 * @param {boolean} [initAccum] Specify using the first element of `array` as
63550 *  the initial value.
63551 * @returns {*} Returns the accumulated value.
63552 */
63553function arrayReduce(array, iteratee, accumulator, initAccum) {
63554  var index = -1,
63555      length = array ? array.length : 0;
63556
63557  if (initAccum && length) {
63558    accumulator = array[++index];
63559  }
63560  while (++index < length) {
63561    accumulator = iteratee(accumulator, array[index], index, array);
63562  }
63563  return accumulator;
63564}
63565
63566/**
63567 * The base implementation of `_.times` without support for iteratee shorthands
63568 * or max array length checks.
63569 *
63570 * @private
63571 * @param {number} n The number of times to invoke `iteratee`.
63572 * @param {Function} iteratee The function invoked per iteration.
63573 * @returns {Array} Returns the array of results.
63574 */
63575function baseTimes(n, iteratee) {
63576  var index = -1,
63577      result = Array(n);
63578
63579  while (++index < n) {
63580    result[index] = iteratee(index);
63581  }
63582  return result;
63583}
63584
63585/**
63586 * Gets the value at `key` of `object`.
63587 *
63588 * @private
63589 * @param {Object} [object] The object to query.
63590 * @param {string} key The key of the property to get.
63591 * @returns {*} Returns the property value.
63592 */
63593function getValue(object, key) {
63594  return object == null ? undefined : object[key];
63595}
63596
63597/**
63598 * Checks if `value` is a host object in IE < 9.
63599 *
63600 * @private
63601 * @param {*} value The value to check.
63602 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
63603 */
63604function isHostObject(value) {
63605  // Many host objects are `Object` objects that can coerce to strings
63606  // despite having improperly defined `toString` methods.
63607  var result = false;
63608  if (value != null && typeof value.toString != 'function') {
63609    try {
63610      result = !!(value + '');
63611    } catch (e) {}
63612  }
63613  return result;
63614}
63615
63616/**
63617 * Converts `map` to its key-value pairs.
63618 *
63619 * @private
63620 * @param {Object} map The map to convert.
63621 * @returns {Array} Returns the key-value pairs.
63622 */
63623function mapToArray(map) {
63624  var index = -1,
63625      result = Array(map.size);
63626
63627  map.forEach(function(value, key) {
63628    result[++index] = [key, value];
63629  });
63630  return result;
63631}
63632
63633/**
63634 * Creates a unary function that invokes `func` with its argument transformed.
63635 *
63636 * @private
63637 * @param {Function} func The function to wrap.
63638 * @param {Function} transform The argument transform.
63639 * @returns {Function} Returns the new function.
63640 */
63641function overArg(func, transform) {
63642  return function(arg) {
63643    return func(transform(arg));
63644  };
63645}
63646
63647/**
63648 * Converts `set` to an array of its values.
63649 *
63650 * @private
63651 * @param {Object} set The set to convert.
63652 * @returns {Array} Returns the values.
63653 */
63654function setToArray(set) {
63655  var index = -1,
63656      result = Array(set.size);
63657
63658  set.forEach(function(value) {
63659    result[++index] = value;
63660  });
63661  return result;
63662}
63663
63664/** Used for built-in method references. */
63665var arrayProto = Array.prototype,
63666    funcProto = Function.prototype,
63667    objectProto = Object.prototype;
63668
63669/** Used to detect overreaching core-js shims. */
63670var coreJsData = root['__core-js_shared__'];
63671
63672/** Used to detect methods masquerading as native. */
63673var maskSrcKey = (function() {
63674  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
63675  return uid ? ('Symbol(src)_1.' + uid) : '';
63676}());
63677
63678/** Used to resolve the decompiled source of functions. */
63679var funcToString = funcProto.toString;
63680
63681/** Used to check objects for own properties. */
63682var hasOwnProperty = objectProto.hasOwnProperty;
63683
63684/**
63685 * Used to resolve the
63686 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
63687 * of values.
63688 */
63689var objectToString = objectProto.toString;
63690
63691/** Used to detect if a method is native. */
63692var reIsNative = RegExp('^' +
63693  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
63694  .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
63695);
63696
63697/** Built-in value references. */
63698var Buffer = moduleExports ? root.Buffer : undefined,
63699    Symbol = root.Symbol,
63700    Uint8Array = root.Uint8Array,
63701    getPrototype = overArg(Object.getPrototypeOf, Object),
63702    objectCreate = Object.create,
63703    propertyIsEnumerable = objectProto.propertyIsEnumerable,
63704    splice = arrayProto.splice;
63705
63706/* Built-in method references for those with the same name as other `lodash` methods. */
63707var nativeGetSymbols = Object.getOwnPropertySymbols,
63708    nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
63709    nativeKeys = overArg(Object.keys, Object);
63710
63711/* Built-in method references that are verified to be native. */
63712var DataView = getNative(root, 'DataView'),
63713    Map = getNative(root, 'Map'),
63714    Promise = getNative(root, 'Promise'),
63715    Set = getNative(root, 'Set'),
63716    WeakMap = getNative(root, 'WeakMap'),
63717    nativeCreate = getNative(Object, 'create');
63718
63719/** Used to detect maps, sets, and weakmaps. */
63720var dataViewCtorString = toSource(DataView),
63721    mapCtorString = toSource(Map),
63722    promiseCtorString = toSource(Promise),
63723    setCtorString = toSource(Set),
63724    weakMapCtorString = toSource(WeakMap);
63725
63726/** Used to convert symbols to primitives and strings. */
63727var symbolProto = Symbol ? Symbol.prototype : undefined,
63728    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
63729
63730/**
63731 * Creates a hash object.
63732 *
63733 * @private
63734 * @constructor
63735 * @param {Array} [entries] The key-value pairs to cache.
63736 */
63737function Hash(entries) {
63738  var index = -1,
63739      length = entries ? entries.length : 0;
63740
63741  this.clear();
63742  while (++index < length) {
63743    var entry = entries[index];
63744    this.set(entry[0], entry[1]);
63745  }
63746}
63747
63748/**
63749 * Removes all key-value entries from the hash.
63750 *
63751 * @private
63752 * @name clear
63753 * @memberOf Hash
63754 */
63755function hashClear() {
63756  this.__data__ = nativeCreate ? nativeCreate(null) : {};
63757}
63758
63759/**
63760 * Removes `key` and its value from the hash.
63761 *
63762 * @private
63763 * @name delete
63764 * @memberOf Hash
63765 * @param {Object} hash The hash to modify.
63766 * @param {string} key The key of the value to remove.
63767 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
63768 */
63769function hashDelete(key) {
63770  return this.has(key) && delete this.__data__[key];
63771}
63772
63773/**
63774 * Gets the hash value for `key`.
63775 *
63776 * @private
63777 * @name get
63778 * @memberOf Hash
63779 * @param {string} key The key of the value to get.
63780 * @returns {*} Returns the entry value.
63781 */
63782function hashGet(key) {
63783  var data = this.__data__;
63784  if (nativeCreate) {
63785    var result = data[key];
63786    return result === HASH_UNDEFINED ? undefined : result;
63787  }
63788  return hasOwnProperty.call(data, key) ? data[key] : undefined;
63789}
63790
63791/**
63792 * Checks if a hash value for `key` exists.
63793 *
63794 * @private
63795 * @name has
63796 * @memberOf Hash
63797 * @param {string} key The key of the entry to check.
63798 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
63799 */
63800function hashHas(key) {
63801  var data = this.__data__;
63802  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
63803}
63804
63805/**
63806 * Sets the hash `key` to `value`.
63807 *
63808 * @private
63809 * @name set
63810 * @memberOf Hash
63811 * @param {string} key The key of the value to set.
63812 * @param {*} value The value to set.
63813 * @returns {Object} Returns the hash instance.
63814 */
63815function hashSet(key, value) {
63816  var data = this.__data__;
63817  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
63818  return this;
63819}
63820
63821// Add methods to `Hash`.
63822Hash.prototype.clear = hashClear;
63823Hash.prototype['delete'] = hashDelete;
63824Hash.prototype.get = hashGet;
63825Hash.prototype.has = hashHas;
63826Hash.prototype.set = hashSet;
63827
63828/**
63829 * Creates an list cache object.
63830 *
63831 * @private
63832 * @constructor
63833 * @param {Array} [entries] The key-value pairs to cache.
63834 */
63835function ListCache(entries) {
63836  var index = -1,
63837      length = entries ? entries.length : 0;
63838
63839  this.clear();
63840  while (++index < length) {
63841    var entry = entries[index];
63842    this.set(entry[0], entry[1]);
63843  }
63844}
63845
63846/**
63847 * Removes all key-value entries from the list cache.
63848 *
63849 * @private
63850 * @name clear
63851 * @memberOf ListCache
63852 */
63853function listCacheClear() {
63854  this.__data__ = [];
63855}
63856
63857/**
63858 * Removes `key` and its value from the list cache.
63859 *
63860 * @private
63861 * @name delete
63862 * @memberOf ListCache
63863 * @param {string} key The key of the value to remove.
63864 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
63865 */
63866function listCacheDelete(key) {
63867  var data = this.__data__,
63868      index = assocIndexOf(data, key);
63869
63870  if (index < 0) {
63871    return false;
63872  }
63873  var lastIndex = data.length - 1;
63874  if (index == lastIndex) {
63875    data.pop();
63876  } else {
63877    splice.call(data, index, 1);
63878  }
63879  return true;
63880}
63881
63882/**
63883 * Gets the list cache value for `key`.
63884 *
63885 * @private
63886 * @name get
63887 * @memberOf ListCache
63888 * @param {string} key The key of the value to get.
63889 * @returns {*} Returns the entry value.
63890 */
63891function listCacheGet(key) {
63892  var data = this.__data__,
63893      index = assocIndexOf(data, key);
63894
63895  return index < 0 ? undefined : data[index][1];
63896}
63897
63898/**
63899 * Checks if a list cache value for `key` exists.
63900 *
63901 * @private
63902 * @name has
63903 * @memberOf ListCache
63904 * @param {string} key The key of the entry to check.
63905 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
63906 */
63907function listCacheHas(key) {
63908  return assocIndexOf(this.__data__, key) > -1;
63909}
63910
63911/**
63912 * Sets the list cache `key` to `value`.
63913 *
63914 * @private
63915 * @name set
63916 * @memberOf ListCache
63917 * @param {string} key The key of the value to set.
63918 * @param {*} value The value to set.
63919 * @returns {Object} Returns the list cache instance.
63920 */
63921function listCacheSet(key, value) {
63922  var data = this.__data__,
63923      index = assocIndexOf(data, key);
63924
63925  if (index < 0) {
63926    data.push([key, value]);
63927  } else {
63928    data[index][1] = value;
63929  }
63930  return this;
63931}
63932
63933// Add methods to `ListCache`.
63934ListCache.prototype.clear = listCacheClear;
63935ListCache.prototype['delete'] = listCacheDelete;
63936ListCache.prototype.get = listCacheGet;
63937ListCache.prototype.has = listCacheHas;
63938ListCache.prototype.set = listCacheSet;
63939
63940/**
63941 * Creates a map cache object to store key-value pairs.
63942 *
63943 * @private
63944 * @constructor
63945 * @param {Array} [entries] The key-value pairs to cache.
63946 */
63947function MapCache(entries) {
63948  var index = -1,
63949      length = entries ? entries.length : 0;
63950
63951  this.clear();
63952  while (++index < length) {
63953    var entry = entries[index];
63954    this.set(entry[0], entry[1]);
63955  }
63956}
63957
63958/**
63959 * Removes all key-value entries from the map.
63960 *
63961 * @private
63962 * @name clear
63963 * @memberOf MapCache
63964 */
63965function mapCacheClear() {
63966  this.__data__ = {
63967    'hash': new Hash,
63968    'map': new (Map || ListCache),
63969    'string': new Hash
63970  };
63971}
63972
63973/**
63974 * Removes `key` and its value from the map.
63975 *
63976 * @private
63977 * @name delete
63978 * @memberOf MapCache
63979 * @param {string} key The key of the value to remove.
63980 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
63981 */
63982function mapCacheDelete(key) {
63983  return getMapData(this, key)['delete'](key);
63984}
63985
63986/**
63987 * Gets the map value for `key`.
63988 *
63989 * @private
63990 * @name get
63991 * @memberOf MapCache
63992 * @param {string} key The key of the value to get.
63993 * @returns {*} Returns the entry value.
63994 */
63995function mapCacheGet(key) {
63996  return getMapData(this, key).get(key);
63997}
63998
63999/**
64000 * Checks if a map value for `key` exists.
64001 *
64002 * @private
64003 * @name has
64004 * @memberOf MapCache
64005 * @param {string} key The key of the entry to check.
64006 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
64007 */
64008function mapCacheHas(key) {
64009  return getMapData(this, key).has(key);
64010}
64011
64012/**
64013 * Sets the map `key` to `value`.
64014 *
64015 * @private
64016 * @name set
64017 * @memberOf MapCache
64018 * @param {string} key The key of the value to set.
64019 * @param {*} value The value to set.
64020 * @returns {Object} Returns the map cache instance.
64021 */
64022function mapCacheSet(key, value) {
64023  getMapData(this, key).set(key, value);
64024  return this;
64025}
64026
64027// Add methods to `MapCache`.
64028MapCache.prototype.clear = mapCacheClear;
64029MapCache.prototype['delete'] = mapCacheDelete;
64030MapCache.prototype.get = mapCacheGet;
64031MapCache.prototype.has = mapCacheHas;
64032MapCache.prototype.set = mapCacheSet;
64033
64034/**
64035 * Creates a stack cache object to store key-value pairs.
64036 *
64037 * @private
64038 * @constructor
64039 * @param {Array} [entries] The key-value pairs to cache.
64040 */
64041function Stack(entries) {
64042  this.__data__ = new ListCache(entries);
64043}
64044
64045/**
64046 * Removes all key-value entries from the stack.
64047 *
64048 * @private
64049 * @name clear
64050 * @memberOf Stack
64051 */
64052function stackClear() {
64053  this.__data__ = new ListCache;
64054}
64055
64056/**
64057 * Removes `key` and its value from the stack.
64058 *
64059 * @private
64060 * @name delete
64061 * @memberOf Stack
64062 * @param {string} key The key of the value to remove.
64063 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
64064 */
64065function stackDelete(key) {
64066  return this.__data__['delete'](key);
64067}
64068
64069/**
64070 * Gets the stack value for `key`.
64071 *
64072 * @private
64073 * @name get
64074 * @memberOf Stack
64075 * @param {string} key The key of the value to get.
64076 * @returns {*} Returns the entry value.
64077 */
64078function stackGet(key) {
64079  return this.__data__.get(key);
64080}
64081
64082/**
64083 * Checks if a stack value for `key` exists.
64084 *
64085 * @private
64086 * @name has
64087 * @memberOf Stack
64088 * @param {string} key The key of the entry to check.
64089 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
64090 */
64091function stackHas(key) {
64092  return this.__data__.has(key);
64093}
64094
64095/**
64096 * Sets the stack `key` to `value`.
64097 *
64098 * @private
64099 * @name set
64100 * @memberOf Stack
64101 * @param {string} key The key of the value to set.
64102 * @param {*} value The value to set.
64103 * @returns {Object} Returns the stack cache instance.
64104 */
64105function stackSet(key, value) {
64106  var cache = this.__data__;
64107  if (cache instanceof ListCache) {
64108    var pairs = cache.__data__;
64109    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
64110      pairs.push([key, value]);
64111      return this;
64112    }
64113    cache = this.__data__ = new MapCache(pairs);
64114  }
64115  cache.set(key, value);
64116  return this;
64117}
64118
64119// Add methods to `Stack`.
64120Stack.prototype.clear = stackClear;
64121Stack.prototype['delete'] = stackDelete;
64122Stack.prototype.get = stackGet;
64123Stack.prototype.has = stackHas;
64124Stack.prototype.set = stackSet;
64125
64126/**
64127 * Creates an array of the enumerable property names of the array-like `value`.
64128 *
64129 * @private
64130 * @param {*} value The value to query.
64131 * @param {boolean} inherited Specify returning inherited property names.
64132 * @returns {Array} Returns the array of property names.
64133 */
64134function arrayLikeKeys(value, inherited) {
64135  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
64136  // Safari 9 makes `arguments.length` enumerable in strict mode.
64137  var result = (isArray(value) || isArguments(value))
64138    ? baseTimes(value.length, String)
64139    : [];
64140
64141  var length = result.length,
64142      skipIndexes = !!length;
64143
64144  for (var key in value) {
64145    if ((inherited || hasOwnProperty.call(value, key)) &&
64146        !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
64147      result.push(key);
64148    }
64149  }
64150  return result;
64151}
64152
64153/**
64154 * Assigns `value` to `key` of `object` if the existing value is not equivalent
64155 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
64156 * for equality comparisons.
64157 *
64158 * @private
64159 * @param {Object} object The object to modify.
64160 * @param {string} key The key of the property to assign.
64161 * @param {*} value The value to assign.
64162 */
64163function assignValue(object, key, value) {
64164  var objValue = object[key];
64165  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
64166      (value === undefined && !(key in object))) {
64167    object[key] = value;
64168  }
64169}
64170
64171/**
64172 * Gets the index at which the `key` is found in `array` of key-value pairs.
64173 *
64174 * @private
64175 * @param {Array} array The array to inspect.
64176 * @param {*} key The key to search for.
64177 * @returns {number} Returns the index of the matched value, else `-1`.
64178 */
64179function assocIndexOf(array, key) {
64180  var length = array.length;
64181  while (length--) {
64182    if (eq(array[length][0], key)) {
64183      return length;
64184    }
64185  }
64186  return -1;
64187}
64188
64189/**
64190 * The base implementation of `_.assign` without support for multiple sources
64191 * or `customizer` functions.
64192 *
64193 * @private
64194 * @param {Object} object The destination object.
64195 * @param {Object} source The source object.
64196 * @returns {Object} Returns `object`.
64197 */
64198function baseAssign(object, source) {
64199  return object && copyObject(source, keys(source), object);
64200}
64201
64202/**
64203 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
64204 * traversed objects.
64205 *
64206 * @private
64207 * @param {*} value The value to clone.
64208 * @param {boolean} [isDeep] Specify a deep clone.
64209 * @param {boolean} [isFull] Specify a clone including symbols.
64210 * @param {Function} [customizer] The function to customize cloning.
64211 * @param {string} [key] The key of `value`.
64212 * @param {Object} [object] The parent object of `value`.
64213 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
64214 * @returns {*} Returns the cloned value.
64215 */
64216function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
64217  var result;
64218  if (customizer) {
64219    result = object ? customizer(value, key, object, stack) : customizer(value);
64220  }
64221  if (result !== undefined) {
64222    return result;
64223  }
64224  if (!isObject(value)) {
64225    return value;
64226  }
64227  var isArr = isArray(value);
64228  if (isArr) {
64229    result = initCloneArray(value);
64230    if (!isDeep) {
64231      return copyArray(value, result);
64232    }
64233  } else {
64234    var tag = getTag(value),
64235        isFunc = tag == funcTag || tag == genTag;
64236
64237    if (isBuffer(value)) {
64238      return cloneBuffer(value, isDeep);
64239    }
64240    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
64241      if (isHostObject(value)) {
64242        return object ? value : {};
64243      }
64244      result = initCloneObject(isFunc ? {} : value);
64245      if (!isDeep) {
64246        return copySymbols(value, baseAssign(result, value));
64247      }
64248    } else {
64249      if (!cloneableTags[tag]) {
64250        return object ? value : {};
64251      }
64252      result = initCloneByTag(value, tag, baseClone, isDeep);
64253    }
64254  }
64255  // Check for circular references and return its corresponding clone.
64256  stack || (stack = new Stack);
64257  var stacked = stack.get(value);
64258  if (stacked) {
64259    return stacked;
64260  }
64261  stack.set(value, result);
64262
64263  if (!isArr) {
64264    var props = isFull ? getAllKeys(value) : keys(value);
64265  }
64266  arrayEach(props || value, function(subValue, key) {
64267    if (props) {
64268      key = subValue;
64269      subValue = value[key];
64270    }
64271    // Recursively populate clone (susceptible to call stack limits).
64272    assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
64273  });
64274  return result;
64275}
64276
64277/**
64278 * The base implementation of `_.create` without support for assigning
64279 * properties to the created object.
64280 *
64281 * @private
64282 * @param {Object} prototype The object to inherit from.
64283 * @returns {Object} Returns the new object.
64284 */
64285function baseCreate(proto) {
64286  return isObject(proto) ? objectCreate(proto) : {};
64287}
64288
64289/**
64290 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
64291 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
64292 * symbols of `object`.
64293 *
64294 * @private
64295 * @param {Object} object The object to query.
64296 * @param {Function} keysFunc The function to get the keys of `object`.
64297 * @param {Function} symbolsFunc The function to get the symbols of `object`.
64298 * @returns {Array} Returns the array of property names and symbols.
64299 */
64300function baseGetAllKeys(object, keysFunc, symbolsFunc) {
64301  var result = keysFunc(object);
64302  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
64303}
64304
64305/**
64306 * The base implementation of `getTag`.
64307 *
64308 * @private
64309 * @param {*} value The value to query.
64310 * @returns {string} Returns the `toStringTag`.
64311 */
64312function baseGetTag(value) {
64313  return objectToString.call(value);
64314}
64315
64316/**
64317 * The base implementation of `_.isNative` without bad shim checks.
64318 *
64319 * @private
64320 * @param {*} value The value to check.
64321 * @returns {boolean} Returns `true` if `value` is a native function,
64322 *  else `false`.
64323 */
64324function baseIsNative(value) {
64325  if (!isObject(value) || isMasked(value)) {
64326    return false;
64327  }
64328  var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
64329  return pattern.test(toSource(value));
64330}
64331
64332/**
64333 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
64334 *
64335 * @private
64336 * @param {Object} object The object to query.
64337 * @returns {Array} Returns the array of property names.
64338 */
64339function baseKeys(object) {
64340  if (!isPrototype(object)) {
64341    return nativeKeys(object);
64342  }
64343  var result = [];
64344  for (var key in Object(object)) {
64345    if (hasOwnProperty.call(object, key) && key != 'constructor') {
64346      result.push(key);
64347    }
64348  }
64349  return result;
64350}
64351
64352/**
64353 * Creates a clone of  `buffer`.
64354 *
64355 * @private
64356 * @param {Buffer} buffer The buffer to clone.
64357 * @param {boolean} [isDeep] Specify a deep clone.
64358 * @returns {Buffer} Returns the cloned buffer.
64359 */
64360function cloneBuffer(buffer, isDeep) {
64361  if (isDeep) {
64362    return buffer.slice();
64363  }
64364  var result = new buffer.constructor(buffer.length);
64365  buffer.copy(result);
64366  return result;
64367}
64368
64369/**
64370 * Creates a clone of `arrayBuffer`.
64371 *
64372 * @private
64373 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
64374 * @returns {ArrayBuffer} Returns the cloned array buffer.
64375 */
64376function cloneArrayBuffer(arrayBuffer) {
64377  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
64378  new Uint8Array(result).set(new Uint8Array(arrayBuffer));
64379  return result;
64380}
64381
64382/**
64383 * Creates a clone of `dataView`.
64384 *
64385 * @private
64386 * @param {Object} dataView The data view to clone.
64387 * @param {boolean} [isDeep] Specify a deep clone.
64388 * @returns {Object} Returns the cloned data view.
64389 */
64390function cloneDataView(dataView, isDeep) {
64391  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
64392  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
64393}
64394
64395/**
64396 * Creates a clone of `map`.
64397 *
64398 * @private
64399 * @param {Object} map The map to clone.
64400 * @param {Function} cloneFunc The function to clone values.
64401 * @param {boolean} [isDeep] Specify a deep clone.
64402 * @returns {Object} Returns the cloned map.
64403 */
64404function cloneMap(map, isDeep, cloneFunc) {
64405  var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
64406  return arrayReduce(array, addMapEntry, new map.constructor);
64407}
64408
64409/**
64410 * Creates a clone of `regexp`.
64411 *
64412 * @private
64413 * @param {Object} regexp The regexp to clone.
64414 * @returns {Object} Returns the cloned regexp.
64415 */
64416function cloneRegExp(regexp) {
64417  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
64418  result.lastIndex = regexp.lastIndex;
64419  return result;
64420}
64421
64422/**
64423 * Creates a clone of `set`.
64424 *
64425 * @private
64426 * @param {Object} set The set to clone.
64427 * @param {Function} cloneFunc The function to clone values.
64428 * @param {boolean} [isDeep] Specify a deep clone.
64429 * @returns {Object} Returns the cloned set.
64430 */
64431function cloneSet(set, isDeep, cloneFunc) {
64432  var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
64433  return arrayReduce(array, addSetEntry, new set.constructor);
64434}
64435
64436/**
64437 * Creates a clone of the `symbol` object.
64438 *
64439 * @private
64440 * @param {Object} symbol The symbol object to clone.
64441 * @returns {Object} Returns the cloned symbol object.
64442 */
64443function cloneSymbol(symbol) {
64444  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
64445}
64446
64447/**
64448 * Creates a clone of `typedArray`.
64449 *
64450 * @private
64451 * @param {Object} typedArray The typed array to clone.
64452 * @param {boolean} [isDeep] Specify a deep clone.
64453 * @returns {Object} Returns the cloned typed array.
64454 */
64455function cloneTypedArray(typedArray, isDeep) {
64456  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
64457  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
64458}
64459
64460/**
64461 * Copies the values of `source` to `array`.
64462 *
64463 * @private
64464 * @param {Array} source The array to copy values from.
64465 * @param {Array} [array=[]] The array to copy values to.
64466 * @returns {Array} Returns `array`.
64467 */
64468function copyArray(source, array) {
64469  var index = -1,
64470      length = source.length;
64471
64472  array || (array = Array(length));
64473  while (++index < length) {
64474    array[index] = source[index];
64475  }
64476  return array;
64477}
64478
64479/**
64480 * Copies properties of `source` to `object`.
64481 *
64482 * @private
64483 * @param {Object} source The object to copy properties from.
64484 * @param {Array} props The property identifiers to copy.
64485 * @param {Object} [object={}] The object to copy properties to.
64486 * @param {Function} [customizer] The function to customize copied values.
64487 * @returns {Object} Returns `object`.
64488 */
64489function copyObject(source, props, object, customizer) {
64490  object || (object = {});
64491
64492  var index = -1,
64493      length = props.length;
64494
64495  while (++index < length) {
64496    var key = props[index];
64497
64498    var newValue = customizer
64499      ? customizer(object[key], source[key], key, object, source)
64500      : undefined;
64501
64502    assignValue(object, key, newValue === undefined ? source[key] : newValue);
64503  }
64504  return object;
64505}
64506
64507/**
64508 * Copies own symbol properties of `source` to `object`.
64509 *
64510 * @private
64511 * @param {Object} source The object to copy symbols from.
64512 * @param {Object} [object={}] The object to copy symbols to.
64513 * @returns {Object} Returns `object`.
64514 */
64515function copySymbols(source, object) {
64516  return copyObject(source, getSymbols(source), object);
64517}
64518
64519/**
64520 * Creates an array of own enumerable property names and symbols of `object`.
64521 *
64522 * @private
64523 * @param {Object} object The object to query.
64524 * @returns {Array} Returns the array of property names and symbols.
64525 */
64526function getAllKeys(object) {
64527  return baseGetAllKeys(object, keys, getSymbols);
64528}
64529
64530/**
64531 * Gets the data for `map`.
64532 *
64533 * @private
64534 * @param {Object} map The map to query.
64535 * @param {string} key The reference key.
64536 * @returns {*} Returns the map data.
64537 */
64538function getMapData(map, key) {
64539  var data = map.__data__;
64540  return isKeyable(key)
64541    ? data[typeof key == 'string' ? 'string' : 'hash']
64542    : data.map;
64543}
64544
64545/**
64546 * Gets the native function at `key` of `object`.
64547 *
64548 * @private
64549 * @param {Object} object The object to query.
64550 * @param {string} key The key of the method to get.
64551 * @returns {*} Returns the function if it's native, else `undefined`.
64552 */
64553function getNative(object, key) {
64554  var value = getValue(object, key);
64555  return baseIsNative(value) ? value : undefined;
64556}
64557
64558/**
64559 * Creates an array of the own enumerable symbol properties of `object`.
64560 *
64561 * @private
64562 * @param {Object} object The object to query.
64563 * @returns {Array} Returns the array of symbols.
64564 */
64565var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
64566
64567/**
64568 * Gets the `toStringTag` of `value`.
64569 *
64570 * @private
64571 * @param {*} value The value to query.
64572 * @returns {string} Returns the `toStringTag`.
64573 */
64574var getTag = baseGetTag;
64575
64576// Fallback for data views, maps, sets, and weak maps in IE 11,
64577// for data views in Edge < 14, and promises in Node.js.
64578if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
64579    (Map && getTag(new Map) != mapTag) ||
64580    (Promise && getTag(Promise.resolve()) != promiseTag) ||
64581    (Set && getTag(new Set) != setTag) ||
64582    (WeakMap && getTag(new WeakMap) != weakMapTag)) {
64583  getTag = function(value) {
64584    var result = objectToString.call(value),
64585        Ctor = result == objectTag ? value.constructor : undefined,
64586        ctorString = Ctor ? toSource(Ctor) : undefined;
64587
64588    if (ctorString) {
64589      switch (ctorString) {
64590        case dataViewCtorString: return dataViewTag;
64591        case mapCtorString: return mapTag;
64592        case promiseCtorString: return promiseTag;
64593        case setCtorString: return setTag;
64594        case weakMapCtorString: return weakMapTag;
64595      }
64596    }
64597    return result;
64598  };
64599}
64600
64601/**
64602 * Initializes an array clone.
64603 *
64604 * @private
64605 * @param {Array} array The array to clone.
64606 * @returns {Array} Returns the initialized clone.
64607 */
64608function initCloneArray(array) {
64609  var length = array.length,
64610      result = array.constructor(length);
64611
64612  // Add properties assigned by `RegExp#exec`.
64613  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
64614    result.index = array.index;
64615    result.input = array.input;
64616  }
64617  return result;
64618}
64619
64620/**
64621 * Initializes an object clone.
64622 *
64623 * @private
64624 * @param {Object} object The object to clone.
64625 * @returns {Object} Returns the initialized clone.
64626 */
64627function initCloneObject(object) {
64628  return (typeof object.constructor == 'function' && !isPrototype(object))
64629    ? baseCreate(getPrototype(object))
64630    : {};
64631}
64632
64633/**
64634 * Initializes an object clone based on its `toStringTag`.
64635 *
64636 * **Note:** This function only supports cloning values with tags of
64637 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
64638 *
64639 * @private
64640 * @param {Object} object The object to clone.
64641 * @param {string} tag The `toStringTag` of the object to clone.
64642 * @param {Function} cloneFunc The function to clone values.
64643 * @param {boolean} [isDeep] Specify a deep clone.
64644 * @returns {Object} Returns the initialized clone.
64645 */
64646function initCloneByTag(object, tag, cloneFunc, isDeep) {
64647  var Ctor = object.constructor;
64648  switch (tag) {
64649    case arrayBufferTag:
64650      return cloneArrayBuffer(object);
64651
64652    case boolTag:
64653    case dateTag:
64654      return new Ctor(+object);
64655
64656    case dataViewTag:
64657      return cloneDataView(object, isDeep);
64658
64659    case float32Tag: case float64Tag:
64660    case int8Tag: case int16Tag: case int32Tag:
64661    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
64662      return cloneTypedArray(object, isDeep);
64663
64664    case mapTag:
64665      return cloneMap(object, isDeep, cloneFunc);
64666
64667    case numberTag:
64668    case stringTag:
64669      return new Ctor(object);
64670
64671    case regexpTag:
64672      return cloneRegExp(object);
64673
64674    case setTag:
64675      return cloneSet(object, isDeep, cloneFunc);
64676
64677    case symbolTag:
64678      return cloneSymbol(object);
64679  }
64680}
64681
64682/**
64683 * Checks if `value` is a valid array-like index.
64684 *
64685 * @private
64686 * @param {*} value The value to check.
64687 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
64688 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
64689 */
64690function isIndex(value, length) {
64691  length = length == null ? MAX_SAFE_INTEGER : length;
64692  return !!length &&
64693    (typeof value == 'number' || reIsUint.test(value)) &&
64694    (value > -1 && value % 1 == 0 && value < length);
64695}
64696
64697/**
64698 * Checks if `value` is suitable for use as unique object key.
64699 *
64700 * @private
64701 * @param {*} value The value to check.
64702 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
64703 */
64704function isKeyable(value) {
64705  var type = typeof value;
64706  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
64707    ? (value !== '__proto__')
64708    : (value === null);
64709}
64710
64711/**
64712 * Checks if `func` has its source masked.
64713 *
64714 * @private
64715 * @param {Function} func The function to check.
64716 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
64717 */
64718function isMasked(func) {
64719  return !!maskSrcKey && (maskSrcKey in func);
64720}
64721
64722/**
64723 * Checks if `value` is likely a prototype object.
64724 *
64725 * @private
64726 * @param {*} value The value to check.
64727 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
64728 */
64729function isPrototype(value) {
64730  var Ctor = value && value.constructor,
64731      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
64732
64733  return value === proto;
64734}
64735
64736/**
64737 * Converts `func` to its source code.
64738 *
64739 * @private
64740 * @param {Function} func The function to process.
64741 * @returns {string} Returns the source code.
64742 */
64743function toSource(func) {
64744  if (func != null) {
64745    try {
64746      return funcToString.call(func);
64747    } catch (e) {}
64748    try {
64749      return (func + '');
64750    } catch (e) {}
64751  }
64752  return '';
64753}
64754
64755/**
64756 * This method is like `_.clone` except that it recursively clones `value`.
64757 *
64758 * @static
64759 * @memberOf _
64760 * @since 1.0.0
64761 * @category Lang
64762 * @param {*}
64762 value The value to recursively clone.
64763 * @returns {*} Returns the deep cloned value.
64764 * @see _.clone
64765 * @example
64766 *
64767 * var objects = [{ 'a': 1 }, { 'b': 2 }];
64768 *
64769 * var deep = _.cloneDeep(objects);
64770 * console.log(deep[0] === objects[0]);
64771 * // => false
64772 */
64773function cloneDeep(value) {
64774  return baseClone(value, true, true);
64775}
64776
64777/**
64778 * Performs a
64779 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
64780 * comparison between two values to determine if they are equivalent.
64781 *
64782 * @static
64783 * @memberOf _
64784 * @since 4.0.0
64785 * @category Lang
64786 * @param {*} value The value to compare.
64787 * @param {*} other The other value to compare.
64788 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
64789 * @example
64790 *
64791 * var object = { 'a': 1 };
64792 * var other = { 'a': 1 };
64793 *
64794 * _.eq(object, object);
64795 * // => true
64796 *
64797 * _.eq(object, other);
64798 * // => false
64799 *
64800 * _.eq('a', 'a');
64801 * // => true
64802 *
64803 * _.eq('a', Object('a'));
64804 * // => false
64805 *
64806 * _.eq(NaN, NaN);
64807 * // => true
64808 */
64809function eq(value, other) {
64810  return value === other || (value !== value && other !== other);
64811}
64812
64813/**
64814 * Checks if `value` is likely an `arguments` object.
64815 *
64816 * @static
64817 * @memberOf _
64818 * @since 0.1.0
64819 * @category Lang
64820 * @param {*} value The value to check.
64821 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
64822 *  else `false`.
64823 * @example
64824 *
64825 * _.isArguments(function() { return arguments; }());
64826 * // => true
64827 *
64828 * _.isArguments([1, 2, 3]);
64829 * // => false
64830 */
64831function isArguments(value) {
64832  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
64833  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
64834    (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
64835}
64836
64837/**
64838 * Checks if `value` is classified as an `Array` object.
64839 *
64840 * @static
64841 * @memberOf _
64842 * @since 0.1.0
64843 * @category Lang
64844 * @param {*} value The value to check.
64845 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
64846 * @example
64847 *
64848 * _.isArray([1, 2, 3]);
64849 * // => true
64850 *
64851 * _.isArray(document.body.children);
64852 * // => false
64853 *
64854 * _.isArray('abc');
64855 * // => false
64856 *
64857 * _.isArray(_.noop);
64858 * // => false
64859 */
64860var isArray = Array.isArray;
64861
64862/**
64863 * Checks if `value` is array-like. A value is considered array-like if it's
64864 * not a function and has a `value.length` that's an integer greater than or
64865 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
64866 *
64867 * @static
64868 * @memberOf _
64869 * @since 4.0.0
64870 * @category Lang
64871 * @param {*} value The value to check.
64872 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
64873 * @example
64874 *
64875 * _.isArrayLike([1, 2, 3]);
64876 * // => true
64877 *
64878 * _.isArrayLike(document.body.children);
64879 * // => true
64880 *
64881 * _.isArrayLike('abc');
64882 * // => true
64883 *
64884 * _.isArrayLike(_.noop);
64885 * // => false
64886 */
64887function isArrayLike(value) {
64888  return value != null && isLength(value.length) && !isFunction(value);
64889}
64890
64891/**
64892 * This method is like `_.isArrayLike` except that it also checks if `value`
64893 * is an object.
64894 *
64895 * @static
64896 * @memberOf _
64897 * @since 4.0.0
64898 * @category Lang
64899 * @param {*} value The value to check.
64900 * @returns {boolean} Returns `true` if `value` is an array-like object,
64901 *  else `false`.
64902 * @example
64903 *
64904 * _.isArrayLikeObject([1, 2, 3]);
64905 * // => true
64906 *
64907 * _.isArrayLikeObject(document.body.children);
64908 * // => true
64909 *
64910 * _.isArrayLikeObject('abc');
64911 * // => false
64912 *
64913 * _.isArrayLikeObject(_.noop);
64914 * // => false
64915 */
64916function isArrayLikeObject(value) {
64917  return isObjectLike(value) && isArrayLike(value);
64918}
64919
64920/**
64921 * Checks if `value` is a buffer.
64922 *
64923 * @static
64924 * @memberOf _
64925 * @since 4.3.0
64926 * @category Lang
64927 * @param {*} value The value to check.
64928 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
64929 * @example
64930 *
64931 * _.isBuffer(new Buffer(2));
64932 * // => true
64933 *
64934 * _.isBuffer(new Uint8Array(2));
64935 * // => false
64936 */
64937var isBuffer = nativeIsBuffer || stubFalse;
64938
64939/**
64940 * Checks if `value` is classified as a `Function` object.
64941 *
64942 * @static
64943 * @memberOf _
64944 * @since 0.1.0
64945 * @category Lang
64946 * @param {*} value The value to check.
64947 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
64948 * @example
64949 *
64950 * _.isFunction(_);
64951 * // => true
64952 *
64953 * _.isFunction(/abc/);
64954 * // => false
64955 */
64956function isFunction(value) {
64957  // The use of `Object#toString` avoids issues with the `typeof` operator
64958  // in Safari 8-9 which returns 'object' for typed array and other constructors.
64959  var tag = isObject(value) ? objectToString.call(value) : '';
64960  return tag == funcTag || tag == genTag;
64961}
64962
64963/**
64964 * Checks if `value` is a valid array-like length.
64965 *
64966 * **Note:** This method is loosely based on
64967 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
64968 *
64969 * @static
64970 * @memberOf _
64971 * @since 4.0.0
64972 * @category Lang
64973 * @param {*} value The value to check.
64974 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
64975 * @example
64976 *
64977 * _.isLength(3);
64978 * // => true
64979 *
64980 * _.isLength(Number.MIN_VALUE);
64981 * // => false
64982 *
64983 * _.isLength(Infinity);
64984 * // => false
64985 *
64986 * _.isLength('3');
64987 * // => false
64988 */
64989function isLength(value) {
64990  return typeof value == 'number' &&
64991    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
64992}
64993
64994/**
64995 * Checks if `value` is the
64996 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
64997 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
64998 *
64999 * @static
65000 * @memberOf _
65001 * @since 0.1.0
65002 * @category Lang
65003 * @param {*} value The value to check.
65004 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
65005 * @example
65006 *
65007 * _.isObject({});
65008 * // => true
65009 *
65010 * _.isObject([1, 2, 3]);
65011 * // => true
65012 *
65013 * _.isObject(_.noop);
65014 * // => true
65015 *
65016 * _.isObject(null);
65017 * // => false
65018 */
65019function isObject(value) {
65020  var type = typeof value;
65021  return !!value && (type == 'object' || type == 'function');
65022}
65023
65024/**
65025 * Checks if `value` is object-like. A value is object-like if it's not `null`
65026 * and has a `typeof` result of "object".
65027 *
65028 * @static
65029 * @memberOf _
65030 * @since 4.0.0
65031 * @category Lang
65032 * @param {*} value The value to check.
65033 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
65034 * @example
65035 *
65036 * _.isObjectLike({});
65037 * // => true
65038 *
65039 * _.isObjectLike([1, 2, 3]);
65040 * // => true
65041 *
65042 * _.isObjectLike(_.noop);
65043 * // => false
65044 *
65045 * _.isObjectLike(null);
65046 * // => false
65047 */
65048function isObjectLike(value) {
65049  return !!value && typeof value == 'object';
65050}
65051
65052/**
65053 * Creates an array of the own enumerable property names of `object`.
65054 *
65055 * **Note:** Non-object values are coerced to objects. See the
65056 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
65057 * for more details.
65058 *
65059 * @static
65060 * @since 0.1.0
65061 * @memberOf _
65062 * @category Object
65063 * @param {Object} object The object to query.
65064 * @returns {Array} Returns the array of property names.
65065 * @example
65066 *
65067 * function Foo() {
65068 *   this.a = 1;
65069 *   this.b = 2;
65070 * }
65071 *
65072 * Foo.prototype.c = 3;
65073 *
65074 * _.keys(new Foo);
65075 * // => ['a', 'b'] (iteration order is not guaranteed)
65076 *
65077 * _.keys('hi');
65078 * // => ['0', '1']
65079 */
65080function keys(object) {
65081  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
65082}
65083
65084/**
65085 * This method returns a new empty array.
65086 *
65087 * @static
65088 * @memberOf _
65089 * @since 4.13.0
65090 * @category Util
65091 * @returns {Array} Returns the new empty array.
65092 * @example
65093 *
65094 * var arrays = _.times(2, _.stubArray);
65095 *
65096 * console.log(arrays);
65097 * // => [[], []]
65098 *
65099 * console.log(arrays[0] === arrays[1]);
65100 * // => false
65101 */
65102function stubArray() {
65103  return [];
65104}
65105
65106/**
65107 * This method returns `false`.
65108 *
65109 * @static
65110 * @memberOf _
65111 * @since 4.13.0
65112 * @category Util
65113 * @returns {boolean} Returns `false`.
65114 * @example
65115 *
65116 * _.times(2, _.stubFalse);
65117 * // => [false, false]
65118 */
65119function stubFalse() {
65120  return false;
65121}
65122
65123module.exports = cloneDeep;
65124
65125/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(34), __webpack_require__(186)(module)))
65126
65127/***/ }),
65128/* 984 */,
65129/* 985 */,
65130/* 986 */,
65131/* 987 */,
65132/* 988 */,
65133/* 989 */,
65134/* 990 */,
65135/* 991 */,
65136/* 992 */,
65137/* 993 */,
65138/* 994 */,
65139/* 995 */,
65140/* 996 */,
65141/* 997 */,
65142/* 998 */,
65143/* 999 */,
65144/* 1000 */,
65145/* 1001 */
65146/***/ (function(module, exports) {
65147
65148module.exports = "<svg width=\"97\" height=\"21\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M85.702 8.322C70.798 16.768 56.674 21 43.334 21 26.562 21 12.28 17.626.502 10.867a1 1 0 1 1 .996-1.734C12.953 15.707 26.894 19 43.334 19c12.942 0 26.705-4.116 41.292-12.367l-3.195-5.017L97 0l-8.048 13.425-3.25-5.103z\" fill=\"#C03\" fill-rule=\"nonzero\"></path></svg>"
65149
65150/***/ }),
65151/* 1002 */
65152/***/ (function(module, exports) {
65153
65154module.exports = "<svg width=\"32\" height=\"32\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M16 8h8v4h-9.07A7.963 7.963 0 0 0 16 8zm-2.709 6H24v4H8v-2a7.97 7.97 0 0 0 5.291-2zM8 20h16v4H8v-4z\" fill=\"currentColor\"></path><path d=\"M8 14A6 6 0 1 1 8 2a6 6 0 0 1 0 12zm2.515-8.01A1.644 1.644 0 0 0 8 6.194a1.645 1.645 0 0 0-2.515-.204 1.687 1.687 0 0 0 0 2.368L8 10.9l2.515-2.542a1.687 1.687 0 0 0 0-2.368z\" fill=\"#cc0033\" fill-rule=\"nonzero\"></path></g></svg>"
65155
65156/***/ }),
65157/* 1003 */
65158/***/ (function(module, exports) {
65159
65160module.exports = "<svg width=\"32\" height=\"32\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 8h16v4H8V8zm0 6h16v4H8v-4zm0 6h16v4H8v-4z\" fill=\"#020203\" fill-rule=\"evenodd\"></path></svg>"
65161
65162/***/ }),
65163/* 1004 */
65164/***/ (function(module, __webpack_exports__, __webpack_require__) {
65165
65166"use strict";
65167__webpack_require__.r(__webpack_exports__);
65168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adsAllowed", function() { return adsAllowed; });
65169var adsAllowed = true;
65170
65171/***/ }),
65172/* 1005 */
65173/***/ (function(module, exports) {
65174
65175function _setPrototypeOf(o, p) {
65176  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
65177    o.__proto__ = p;
65178    return o;
65179  };
65180
65181  return _setPrototypeOf(o, p);
65182}
65183
65184module.exports = _setPrototypeOf;
65185
65186/***/ }),
65187/* 1006 */
65188/***/ (function(module, exports) {
65189
65190function _assertThisInitialized(self) {
65191  if (self === void 0) {
65192    throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
65193  }
65194
65195  return self;
65196}
65197
65198module.exports = _assertThisInitialized;
65199
65200/***/ }),
65201/* 1007 */
65202/***/ (function(module, exports) {
65203
65204module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.5 7.5h-1.25l2.5-2.5-2.5-2.5-7.5 7.5 7.5 7.5 2.5-2.5-2.5-2.5h1.25C32.392 12.5 38 18.108 38 25s-5.608 12.5-12.5 12.5S13 31.892 13 25H8c0 9.65 7.85 17.5 17.5 17.5S43 34.65 43 25 35.15 7.5 25.5 7.5\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
65205
65206/***/ }),
65207/* 1008 */
65208/***/ (function(module, exports) {
65209
65210module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M30.496 27.734c-.259.588-.736.882-1.43.882s-1.168-.294-1.423-.882c-.254-.588-.38-1.392-.38-2.411 0-1.02.045-1.778.137-2.28.093-.5.274-.9.547-1.198.272-.298.645-.448 1.12-.448.693 0 1.17.295 1.43.882.258.589.388 1.498.388 2.728 0 1.229-.13 2.139-.389 2.727m2.01-4.69c.104.562.157 1.216.157 1.963 0 .746-.053 1.4-.158 1.962a5.472 5.472 0 0 1-.54 1.562 2.554 2.554 0 0 1-1.114 1.094c-.487.25-1.082.375-1.785.375-.702 0-1.295-.125-1.778-.375a2.557 2.557 0 0 1-1.106-1.094 5.413 5.413 0 0 1-.54-1.562 10.78 10.78 0 0 1-.159-1.962c0-.747.053-1.401.158-1.963a5.434 5.434 0 0 1 .541-1.562 2.598 2.598 0 0 1 1.106-1.1c.483-.254 1.076-.382 1.778-.382.703 0 1.298.128 1.785.382.488.255.86.622 1.114 1.1.254.48.434 1 .54 1.562zM18 21.964v-1.042c1.027-.114 1.801-.355 2.318-.724h1.411v8.221h1.91v1.396h-5.613V28.42h1.911v-6.456H18z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
65211
65212/***/ }),
65213/* 1009 */
65214/***/ (function(module, exports) {
65215
65216module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25.5 7.5h1.25L24.25 5l2.5-2.5 7.5 7.5-7.5 7.5-2.5-2.5 2.5-2.5H25.5C18.607 12.5 13 18.108 13 25s5.607 12.5 12.5 12.5S38 31.892 38 25h5c0 9.65-7.85 17.5-17.5 17.5S8 34.65 8 25c0-9.649 7.85-17.5 17.5-17.5\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
65217
65218/***/ }),
65219/* 1010 */
65220/***/ (function(module, exports) {
65221
65222module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M28.567 27.734c.254.589.729.883 1.423.883.693 0 1.17-.294 1.429-.883.259-.588.389-1.498.389-2.727 0-1.23-.13-2.139-.39-2.728-.258-.587-.735-.882-1.428-.882-.474 0-.848.15-1.12.448-.272.299-.454.698-.547 1.199-.092.501-.138 1.261-.138 2.279 0 1.019.127 1.823.382 2.411m3.208 1.891c-.488.25-1.083.375-1.785.375-.703 0-1.296-.125-1.78-.375a2.552 2.552 0 0 1-1.105-1.094 5.447 5.447 0 0 1-.541-1.561 10.792 10.792 0 0 1-.158-1.963c0-.747.053-1.401.158
65222-1.963a5.447 5.447 0 0 1 .54-1.561 2.595 2.595 0 0 1 1.107-1.101c.483-.254 1.076-.382 1.779-.382.702 0 1.297.128 1.785.382.487.255.858.622 1.113 1.101s.435.999.54 1.561c.106.562.159 1.216.159 1.963 0 .747-.053 1.401-.16 1.963a5.415 5.415 0 0 1-.54 1.561 2.552 2.552 0 0 1-1.112 1.094zm-10.507-1.021c1.168 0 1.752-.466 1.752-1.396 0-1.002-.627-1.502-1.883-1.502h-.975v-1.291h.987c.624 0 1.07-.132 1.338-.395.267-.264.401-.635.401-1.114 0-.48-.138-.847-.414-1.107-.277-.26-.679-.388-1.206-.388-.984 0-1.501.496-1.554 1.488l-1.542-.211c.132-1.782 1.203-2.674 3.215-2.674 1.053 0 1.861.26 2.424.784.562.523.843 1.219.843 2.089 0 .974-.475 1.686-1.423 2.134 1.028.412 1.541 1.18 1.541 2.305 0 .79-.309 1.434-.928 1.93S22.393 30 21.347 30c-1.045 0-1.843-.206-2.391-.62-.549-.411-.867-1.048-.956-1.91l1.542-.197c.105.888.681 1.33 1.726 1.33z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
65223
65224/***/ }),
65225/* 1011 */
65226/***/ (function(module, exports) {
65227
65228module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25 11h1l-2-2 2-2 6 6-6 6-2-2 2-2h-1c-5.514 0-10 4.486-10 10s4.486 10 10 10c3.267 0 6.163-1.582 7.989-4.011l2.854 2.853C33.273 36.987 29.369 39 25 39c-7.72 0-14-6.28-14-14s6.28-14 14-14zm8 8l6-6-6-6-2 2 4 4-4 4 2 2z\" fill=\"#020203\" fill-rule=\"evenodd\"></path></svg>"
65229
65230/***/ }),
65231/* 1012 */
65232/***/ (function(module, exports) {
65233
65234module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M23 22h1.383v5.994h2.533V29H23v-7zm4.913 7v-7h1.383v7h-1.383zm7.241-7h1.395l-2.207 7H32.55l-2.197-7h1.384l1.71 5.734L35.154 22zm2.452 0h4.19v1.007H38.99v1.937h2.554v.997H38.99v2.053H42V29h-4.394v-7z\" fill=\"currentColor\"></path><path d=\"M25 11h1l-2-2 2-2 6 6-6 6-2-2 2-2h-1c-5.514 0-10 4.486-10 10s4.486 10 10 10c3.267 0 6.163-1.582 7.989-4.011l2.854 2.853C33.273 36.987 29.369 39 25 39c-7.72 0-14-6.28-14-14s6.28-14 14-14zm8 8l6-6-6-6-2 2 4 4-4 4 2 2z\" fill=\"currentColor\"></path></g></svg>"
65235
65236/***/ }),
65237/* 1013 */
65238/***/ (function(module, exports) {
65239
65240module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M25 11h-1l2-2-2-2-6 6 6 6 2-2-2-2h1c5.514 0 10 4.486 10 10s-4.486 10-10 10c-3.267 0-6.163-1.582-7.989-4.011l-2.853 2.853C16.727 36.987 20.631 39 25 39c7.72 0 14-6.28 14-14s-6.28-14-14-14zm-8 8l-6-6 6-6 2 2-4 4 4 4-2 2z\" fill=\"currentColor\" fill-rule=\"evenodd\"></path></svg>"
65241
65242/***/ }),
65243/* 1014 */
65244/***/ (function(module, exports) {
65245
65246module.exports = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\"><g fill=\"none\" fill-rule=\"evenodd\"><path d=\"M4.78 25.253c.297.338.446.845.446 1.52 0 .676-.223 1.216-.67 1.62-.446.404-1.103.607-1.968.607-.866 0-1.492-.191-1.878-.575-.385-.383-.623-.94-.71-1.673l1.106-.18c.04.416.178.738.411.966.233.23.56.343.98.343.9 0 1.349-.354 1.349-1.066 0-.303-.084-.53-.254-.686-.168-.154-.494-.295-.974-.422l-.578-.148c-.677-.175-1.16-.436-1.451-.78-.292-.345-.437-.86-.437-1.547 0-.686.213-1.23.64-1.63C1.217 21.2 1.848 21 2.683 21s1.438.192 1.806.575c.37.383.597.942.685 1.673l-1.096.18c-.088-.873-.52-1.31-1.299-1.31-.426 0-.74.098-.943.291-.203.194-.305.449-.305.765 0 .317.077.553.234.707.156.155.453.293.893.412l.639.18c.69.183 1.184.443 1.481.78zm.872-3.018v-1.087h5.266v1.087H8.98v6.617H7.6v-6.617H5.652zm8.148.275l-.903 3.124h1.806L13.8 22.51zm-.893-1.362h1.796l2.273 7.705h-1.33l-.629-2.132h-2.435l-.619 2.132h-1.34l2.284-7.705zm6.483 3.546h1.046c.406 0 .709-.116.908-.348.2-.232.3-.523.3-.87 0-.35-.1-.64-.3-.872-.2-.232-.502-.348-.908-.348H19.39v2.438zm-1.38-3.546h2.588c.94 0 1.593.256 1.958.77.312.444.467.964.467 1.562 0 1.062-.399 1.766-1.197 2.111.149.17.277.38.385.633l1.127 2.628h-1.472l-1.055-2.5c-.094-.212-.198-.357-.31-.434-.111-.078-.278-.116-.502-.116h-.609v3.05h-1.38v-7.704zm5.724 1.087v-1.087H29v1.087h-1.938v6.617h-1.38v-6.617h-1.948z\" fill=\"currentColor\"></path><path d=\"M25 11h-1l2-2-2-2-6 6 6 6 2-2-2-2h1c5.514 0 10 4.486 10 10s-4.486 10-10 10c-3.267 0-6.163-1.582-7.989-4.011l-2.853 2.853C16.727 36.987 20.631 39 25 39c7.72 0 14-6.28 14-14s-6.28-14-14-14zm-8 8l-6-6 6-6 2 2-4 4 4 4-2 2z\" fill=\"currentColor\"></path></g></svg>"
65247
65248/***/ }),
65249/* 1015 */,
65250/* 1016 */,
65251/* 1017 */,
65252/* 1018 */,
65253/* 1019 */,
65254/* 1020 */,
65255/* 1021 */,
65256/* 1022 */,
65257/* 1023 */,
65258/* 1024 */,
65259/* 1025 */,
65260/* 1026 */,
65261/* 1027 */,
65262/* 1028 */,
65263/* 1029 */,
65264/* 1030 */,
65265/* 1031 */,
65266/* 1032 */,
65267/* 1033 */,
65268/* 1034 */,
65269/* 1035 */,
65270/* 1036 */,
65271/* 1037 */,
65272/* 1038 */,
65273/* 1039 */,
65274/* 1040 */,
65275/* 1041 */,
65276/* 1042 */,
65277/* 1043 */,
65278/* 1044 */,
65279/* 1045 */,
65280/* 1046 */,
65281/* 1047 */,
65282/* 1048 */,
65283/* 1049 */,
65284/* 1050 */,
65285/* 1051 */,
65286/* 1052 */,
65287/* 1053 */,
65288/* 1054 */,
65289/* 1055 */,
65290/* 1056 */,
65291/* 1057 */,
65292/* 1058 */
65293/***/ (function(module, exports, __webpack_require__) {
65294
65295__webpack_require__(522);
65296__webpack_require__(60);
65297module.exports = __webpack_require__(1310);
65298
65299
65300/***/ }),
65301/* 1059 */
65302/***/ (function(module, exports) {
65303
65304module.exports = "<svg width=\"266\" height=\"48\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M264 40a2 2 0 012 2v4a2 2 0 01-2 2H78a2 2 0 01-2-2v-4a2 2 0 012-2h186zM62 0a2 2 0 012 2v36a2 2 0 01-2 2H2a2 2 0 01-2-2V2a2 2 0 012-2h60zm114 16a2 2 0 012 2v12a2 2 0 01-2 2H78a2 2 0 01-2-2V18a2 2 0 012-2h98zM107 0a2 2 0 012 2v6a2 2 0 01-2 2H78a2 2 0 01-2-2V2a2 2 0 012-2h29z\" fill=\"#F3F3F3\" fill-rule=\"evenodd\"></path></svg>"
65305
65306/***/ }),
65307/* 1060 */,
65308/* 1061 */,
65309/* 1062 */,
65310/* 1063 */,
65311/* 1064 */,
65312/* 1065 */,
65313/* 1066 */,
65314/* 1067 */,
65315/* 1068 */,
65316/* 1069 */,
65317/* 1070 */,
65318/* 1071 */,
65319/* 1072 */,
65320/* 1073 */,
65321/* 1074 */,
65322/* 1075 */,
65323/* 1076 */,
65324/* 1077 */,
65325/* 1078 */,
65326/* 1079 */,
65327/* 1080 */,
65328/* 1081 */,
65329/* 1082 */,
65330/* 1083 */,
65331/* 1084 */,
65332/* 1085 */,
65333/* 1086 */,
65334/* 1087 */,
65335/* 1088 */,
65336/* 1089 */,
65337/* 1090 */,
65338/* 1091 */,
65339/* 1092 */,
65340/* 1093 */,
65341/* 1094 */,
65342/* 1095 */,
65343/* 1096 */,
65344/* 1097 */,
65345/* 1098 */,
65346/* 1099 */,
65347/* 1100 */,
65348/* 1101 */,
65349/* 1102 */,
65350/* 1103 */,
65351/* 1104 */,
65352/* 1105 */,
65353/* 1106 */,
65354/* 1107 */,
65355/* 1108 */,
65356/* 1109 */,
65357/* 1110 */,
65358/* 1111 */,
65359/* 1112 */,
65360/* 1113 */,
65361/* 1114 */,
65362/* 1115 */,
65363/* 1116 */,
65364/* 1117 */,
65365/* 1118 */,
65366/* 1119 */,
65367/* 1120 */,
65368/* 1121 */,
65369/* 1122 */,
65370/* 1123 */,
65371/* 1124 */,
65372/* 1125 */,
65373/* 1126 */,
65374/* 1127 */,
65375/* 1128 */,
65376/* 1129 */,
65377/* 1130 */,
65378/* 1131 */,
65379/* 1132 */,
65380/* 1133 */,
65381/* 1134 */,
65382/* 1135 */,
65383/* 1136 */,
65384/* 1137 */,
65385/* 1138 */,
65386/* 1139 */,
65387/* 1140 */,
65388/* 1141 */,
65389/* 1142 */,
65390/* 1143 */,
65391/* 1144 */,
65392/* 1145 */,
65393/* 1146 */,
65394/* 1147 */,
65395/* 1148 */,
65396/* 1149 */,
65397/* 1150 */,
65398/* 1151 */,
65399/* 1152 */,
65400/* 1153 */,
65401/* 1154 */,
65402/* 1155 */,
65403/* 1156 */,
65404/* 1157 */,
65405/* 1158 */,
65406/* 1159 */,
65407/* 1160 */,
65408/* 1161 */,
65409/* 1162 */,
65410/* 1163 */,
65411/* 1164 */,
65412/* 1165 */,
65413/* 1166 */,
65414/* 1167 */,
65415/* 1168 */,
65416/* 1169 */,
65417/* 1170 */,
65418/* 1171 */,
65419/* 1172 */,
65420/* 1173 */,
65421/* 1174 */,
65422/* 1175 */,
65423/* 1176 */,
65424/* 1177 */,
65425/* 1178 */,
65426/* 1179 */,
65427/* 1180 */,
65428/* 1181 */,
65429/* 1182 */,
65430/* 1183 */,
65431/* 1184 */,
65432/* 1185 */,
65433/* 1186 */,
65434/* 1187 */,
65435/* 1188 */,
65436/* 1189 */,
65437/* 1190 */,
65438/* 1191 */,
65439/* 1192 */,
65440/* 1193 */,
65441/* 1194 */,
65442/* 1195 */,
65443/* 1196 */,
65444/* 1197 */,
65445/* 1198 */,
65446/* 1199 */,
65447/* 1200 */,
65448/* 1201 */,
65449/* 1202 */,
65450/* 1203 */,
65451/* 1204 */,
65452/* 1205 */,
65453/* 1206 */,
65454/* 1207 */,
65455/* 1208 */,
65456/* 1209 */,
65457/* 1210 */,
65458/* 1211 */,
65459/* 1212 */,
65460/* 1213 */,
65461/* 1214 */,
65462/* 1215 */,
65463/* 1216 */,
65464/* 1217 */,
65465/* 1218 */,
65466/* 1219 */,
65467/* 1220 */,
65468/* 1221 */,
65469/* 1222 */,
65470/* 1223 */,
65471/* 1224 */,
65472/* 1225 */,
65473/* 1226 */,
65474/* 1227 */,
65475/* 1228 */,
65476/* 1229 */,
65477/* 1230 */,
65478/* 1231 */,
65479/* 1232 */,
65480/* 1233 */,
65481/* 1234 */,
65482/* 1235 */,
65483/* 1236 */,
65484/* 1237 */,
65485/* 1238 */,
65486/* 1239 */,
65487/* 1240 */,
65488/* 1241 */,
65489/* 1242 */,
65490/* 1243 */,
65491/* 1244 */,
65492/* 1245 */,
65493/* 1246 */,
65494/* 1247 */,
65495/* 1248 */,
65496/* 1249 */,
65497/* 1250 */,
65498/* 1251 */,
65499/* 1252 */,
65500/* 1253 */,
65501/* 1254 */,
65502/* 1255 */,
65503/* 1256 */,
65504/* 1257 */,
65505/* 1258 */,
65506/* 1259 */,
65507/* 1260 */,
65508/* 1261 */,
65509/* 1262 */,
65510/* 1263 */,
65511/* 1264 */,
65512/* 1265 */,
65513/* 1266 */,
65514/* 1267 */,
65515/* 1268 */,
65516/* 1269 */,
65517/* 1270 */,
65518/* 1271 */,
65519/* 1272 */,
65520/* 1273 */,
65521/* 1274 */,
65522/* 1275 */,
65523/* 1276 */,
65524/* 1277 */,
65525/* 1278 */,
65526/* 1279 */,
65527/* 1280 */,
65528/* 1281 */,
65529/* 1282 */,
65530/* 1283 */,
65531/* 1284 */,
65532/* 1285 */,
65533/* 1286 */,
65534/* 1287 */,
65535/* 1288 */,
65536/* 1289 */,
65537/* 1290 */,
65538/* 1291 */,
65539/* 1292 */,
65540/* 1293 */,
65541/* 1294 */,
65542/* 1295 */,
65543/* 1296 */,
65544/* 1297 */,
65545/* 1298 */,
65546/* 1299 */,
65547/* 1300 */,
65548/* 1301 */,
65549/* 1302 */,
65550/* 1303 */,
65551/* 1304 */,
65552/* 1305 */,
65553/* 1306 */,
65554/* 1307 */,
65555/* 1308 */,
65556/* 1309 */,
65557/* 1310 */
65558/***/ (function(module, __webpack_exports__, __webpack_require__) {
65559
65560"use strict";
65561// ESM COMPAT FLAG
65562__webpack_require__.r(__webpack_exports__);
65563
65564// EXTERNAL MODULE: ./node_modules/preact-habitat/dist/preact-habitat.es.js?babel-target=legacy
65565var preact_habitat_esbabel_target_legacy = __webpack_require__(416);
65566
65567// EXTERNAL MODULE: ./src/lib/logger.ts?babel-target=legacy
65568var loggerbabel_target_legacy = __webpack_require__(10);
65569
65570// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js?babel-target=legacy
65571var es_regexp_execbabel_target_legacy = __webpack_require__(93);
65572
65573// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.search.js?babel-target=legacy
65574var es_string_searchbabel_target_legacy = __webpack_require__(254);
65575
65576// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js?babel-target=legacy
65577var es_string_splitbabel_target_legacy = __webpack_require__(252);
65578
65579// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js?babel-target=legacy
65580var extendsbabel_target_legacy = __webpack_require__(50);
65581var extendsbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(extendsbabel_target_legacy);
65582
65583// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator?babel-target=legacy
65584var regenerator_babel_target_legacy = __webpack_require__(6);
65585var regenerator_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(regenerator_babel_target_legacy);
65586
65587// EXTERNAL MODULE: ./node_modules/regenerator-runtime/runtime.js?babel-target=legacy
65588var runtimebabel_target_legacy = __webpack_require__(60);
65589
65590// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/asyncToGenerator.js?babel-target=legacy
65591var asyncToGeneratorbabel_target_legacy = __webpack_require__(13);
65592var asyncToGeneratorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(asyncToGeneratorbabel_target_legacy);
65593
65594// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/slicedToArray.js?babel-target=legacy
65595var slicedToArraybabel_target_legacy = __webpack_require__(8);
65596var slicedToArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(slicedToArraybabel_target_legacy);
65597
65598// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutProperties.js?babel-target=legacy
65599var objectWithoutPropertiesbabel_target_legacy = __webpack_require__(39);
65600var objectWithoutPropertiesbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesbabel_target_legacy);
65601
65602// EXTERNAL MODULE: ./node_modules/preact/dist/preact.module.js?babel-target=legacy
65603var preact_modulebabel_target_legacy = __webpack_require__(1);
65604
65605// EXTERNAL MODULE: ./node_modules/preact/hooks/dist/hooks.module.js?babel-target=legacy
65606var hooks_modulebabel_target_legacy = __webpack_require__(4);
65607
65608// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.js?babel-target=legacy
65609var es_symbolbabel_target_legacy = __webpack_require__(71);
65610
65611// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js?babel-target=legacy
65612var es_array_concatbabel_target_legacy = __webpack_require__(75);
65613
65614// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js?babel-target=legacy
65615var es_array_filterbabel_target_legacy = __webpack_require__(70);
65616
65617// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find.js?babel-target=legacy
65618var es_array_findbabel_target_legacy = __webpack_require__(182);
65619
65620// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js?babel-target=legacy
65621var es_array_for_eachbabel_target_legacy = __webpack_require__(87);
65622
65623// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js?babel-target=legacy
65624var es_array_iteratorbabel_target_legacy = __webpack_require__(138);
65625
65626// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.join.js?babel-target=legacy
65627var es_array_joinbabel_target_legacy = __webpack_require__(160);
65628
65629// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js?babel-target=legacy
65630var es_array_mapbabel_target_legacy = __webpack_require__(77);
65631
65632// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptor.js?babel-target=legacy
65633var es_object_get_own_property_descriptorbabel_target_legacy = __webpack_require__(98);
65634
65635// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-own-property-descriptors.js?babel-target=legacy
65636var es_object_get_own_property_descriptorsbabel_target_legacy = __webpack_require__(99);
65637
65638// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.keys.js?babel-target=legacy
65639var es_object_keysbabel_target_legacy = __webpack_require__(89);
65640
65641// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js?babel-target=legacy
65642var es_object_to_stringbabel_target_legacy = __webpack_require__(105);
65643
65644// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js?babel-target=legacy
65645var es_regexp_to_stringbabel_target_legacy = __webpack_require__(156);
65646
65647// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js?babel-target=legacy
65648var es_string_iteratorbabel_target_legacy = __webpack_require__(237);
65649
65650// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js?babel-target=legacy
65651var web_dom_collections_for_eachbabel_target_legacy = __webpack_require__(88);
65652
65653// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js?babel-target=legacy
65654var web_dom_collections_iteratorbabel_target_legacy = __webpack_require__(257);
65655
65656// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js?babel-target=legacy
65657var web_urlbabel_target_legacy = __webpack_require__(349);
65658
vendor: 4,947 bytes, lines 65659-65766
65659// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js?babel-target=legacy
65660var definePropertybabel_target_legacy = __webpack_require__(15);
65661var definePropertybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(definePropertybabel_target_legacy);
65662
65663// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toConsumableArray.js?babel-target=legacy
65664var toConsumableArraybabel_target_legacy = __webpack_require__(37);
65665var toConsumableArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toConsumableArraybabel_target_legacy);
65666
65667// EXTERNAL MODULE: ./src/api/useNowPlaying.ts?babel-target=legacy
65668var useNowPlayingbabel_target_legacy = __webpack_require__(953);
65669
65670// EXTERNAL MODULE: ./src/lib/useElementHeightCSSVariable.ts?babel-target=legacy
65671var useElementHeightCSSVariablebabel_target_legacy = __webpack_require__(954);
65672
65673// EXTERNAL MODULE: ./src/lib/init.ts?babel-target=legacy
65674var initbabel_target_legacy = __webpack_require__(478);
65675
65676// EXTERNAL MODULE: ./src/components/CookieBanner/index.ts?babel-target=legacy + 1 modules
65677var CookieBannerbabel_target_legacy = __webpack_require__(969);
65678
65679// EXTERNAL MODULE: ./src/components/IconSheet/index.ts?babel-target=legacy + 1 modules
65680var IconSheetbabel_target_legacy = __webpack_require__(482);
65681
65682// EXTERNAL MODULE: ./src/components/MenuPanel/index.ts?babel-target=legacy + 14 modules
65683var MenuPanelbabel_target_legacy = __webpack_require__(962);
65684
65685// EXTERNAL MODULE: ./src/components/NavBar/index.ts?babel-target=legacy + 3 modules
65686var NavBarbabel_target_legacy = __webpack_require__(965);
65687
65688// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.description.js?babel-target=legacy
65689var es_symbol_descriptionbabel_target_legacy = __webpack_require__(199);
65690
65691// EXTERNAL MODULE: ./node_modules/core-js/modules/es.symbol.iterator.js?babel-target=legacy
65692var es_symbol_iteratorbabel_target_legacy = __webpack_require__(458);
65693
65694// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.from.js?babel-target=legacy
65695var es_array_frombabel_target_legacy = __webpack_require__(459);
65696
65697// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js?babel-target=legacy
65698var es_array_includesbabel_target_legacy = __webpack_require__(124);
65699
65700// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js?babel-target=legacy
65701var es_array_reducebabel_target_legacy = __webpack_require__(162);
65702
65703// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js?babel-target=legacy
65704var es_array_slicebabel_target_legacy = __webpack_require__(177);
65705
65706// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js?babel-target=legacy
65707var es_function_namebabel_target_legacy = __webpack_require__(123);
65708
65709// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.includes.js?babel-target=legacy
65710var es_string_includesbabel_target_legacy = __webpack_require__(140);
65711
65712// EXTERNAL MODULE: ./src/lib/adManager.ts?babel-target=legacy
65713var adManagerbabel_target_legacy = __webpack_require__(705);
65714
65715// EXTERNAL MODULE: ./src/api/utils.ts?babel-target=legacy
65716var utilsbabel_target_legacy = __webpack_require__(48);
65717
65718// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js?babel-target=legacy
65719var es_object_assignbabel_target_legacy = __webpack_require__(406);
65720
65721// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js?babel-target=legacy
65722var classCallCheckbabel_target_legacy = __webpack_require__(233);
65723var classCallCheckbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classCallCheckbabel_target_legacy);
65724
65725// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js?babel-target=legacy
65726var createClassbabel_target_legacy = __webpack_require__(234);
65727var createClassbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(createClassbabel_target_legacy);
65728
65729// EXTERNAL MODULE: ./src/lib/fetchTimeout.js?babel-target=legacy + 1 modules
65730var fetchTimeoutbabel_target_legacy = __webpack_require__(127);
65731
65732// EXTERNAL MODULE: ./node_modules/@alugha/ima/lib/esm?babel-target=legacy + 2 modules
65733var esm_babel_target_legacy = __webpack_require__(334);
65734
65735// CONCATENATED MODULE: ./src/lib/adsWizz.ts?babel-target=legacy
65736
65737
65738
65739
65740
65741
65742
65743
65744
65745
65746
65747
65748
65749
65750
65751
65752
65753
65754
65755
65756
65757
65758
65759
65760
65761
65762
65763
65764function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
65765
65766function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); }
65766 else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
65767
65768
65769
65770
65771
65772var adsWizzbabel_target_legacy_parseIcyMetadata = function parseIcyMetadata(metadata) {
65773  var segments = metadata.split(" ");
65774  var tuples = segments.map(function (seg) {
65775    var pairs = seg.split("=").map(unescape);
65776
65777    if (pairs.length !== 2) {
65778      return null;
65779    }
65780
65781    var _pairs = slicedToArraybabel_target_legacy_default()(pairs, 2),
65782        k = _pairs[0],
65783        v = _pairs[1];
65784
65785    return definePropertybabel_target_legacy_default()({}, k, v);
65786  });
65787  return Object.assign.apply(Object, [{}].concat(toConsumableArraybabel_target_legacy_default()(tuples)));
65788};
65789var parseIcyJson = function parseIcyJson(json) {
65790  var list = json["metadata-list"];
65791
65792  if (!list) {
65793    return [];
65794  }
65795
65796  return list.map(function (meta) {
65797    var _parseIcyMetadata = adsWizzbabel_target_legacy_parseIcyMetadata(meta.metadata),
65798        adswizzContext = _parseIcyMetadata.adswizzContext,
65799        durationMilliseconds = _parseIcyMetadata.durationMilliseconds,
65800        insertionType = _parseIcyMetadata.insertionType,
65801        adId = _parseIcyMetadata.adId;
65802
65803    return {
65804      adswizzContext: adswizzContext,
65805      insertionType: insertionType,
65806      adId: parseInt(adId),
65807      duration: parseInt(durationMilliseconds),
65808      start: parseInt(meta.start)
65809    };
65810  }).filter(function (x) {
65811    return !!x.adswizzContext;
65812  });
65813};
65814var registerAdswizz = /*#__PURE__*/function () {
65815  var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
65816    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
65817      while (1) {
65818        switch (_context.prev = _context.next) {
65819          case 0:
65820            return _context.abrupt("return", Object(esm_babel_target_legacy["b" /* loadScript */])("https://synchrobox.adswizz.com/register2.php"));
65821
65822          case 1:
65823          case "end":
65824            return _context.stop();
65825        }
65826      }
65827    }, _callee);
65828  }));
65829
65830  return function registerAdswizz() {
65831    return _ref2.apply(this, arguments);
65832  };
65833}();
65834var syncListenerId = /*#__PURE__*/function () {
65835  var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
65836    return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
65837      while (1) {
65838        switch (_context2.prev = _context2.next) {
65839          case 0:
65840            return _context2.abrupt("return", Object(esm_babel_target_legacy["b" /* loadScript */])("https://cdn.adswizz.com/adswizz/js/SynchroClient2.js"));
65841
65842          case 1:
65843          case "end":
65844            return _context2.stop();
65845        }
65846      }
65847    }, _callee2);
65848  }));
65849
65850  return function syncListenerId() {
65851    return _ref3.apply(this, arguments);
65852  };
65853}();
65854var getAdswizzListenerId = /*#__PURE__*/function () {
65855  var _ref4 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee3() {
65856    var w;
65857    return regenerator_babel_target_legacy_default.a.wrap(function _callee3$(_context3) {
65858      while (1) {
65859        switch (_context3.prev = _context3.next) {
65860          case 0:
65861            w = window;
65862
65863            if (w.com_adswizz_synchro_listenerid) {
65864              _context3.next = 20;
65865              break;
65866            }
65867
65868            _context3.prev = 2;
65869            _context3.next = 5;
65870            return registerAdswizz();
65871
65872          case 5:
65873            _context3.next = 11;
65874            break;
65875
65876          case 7:
65877            _context3.prev = 7;
65878            _context3.t0 = _context3["catch"](2);
65879            Object(loggerbabel_target_legacy["e" /* warn */])("adswizz error: registering", _context3.t0);
65880            return _context3.abrupt("return", undefined);
65881
65882          case 11:
65883            _context3.prev = 11;
65884            _context3.next = 14;
65885            return syncListenerId();
65886
65887          case 14:
65888            _context3.next = 20;
65889            break;
65890
65891          case 16:
65892            _context3.prev = 16;
65893            _context3.t1 = _context3["catch"](11);
65894            Object(loggerbabel_target_legacy["e" /* warn */])("adswizz error: syncing listener id", _context3.t1);
65895            return _context3.abrupt("return", undefined);
65896
65897          case 20:
65898            return _context3.abrupt("return", w.com_adswizz_synchro_listenerid);
65899
65900          case 21:
65901          case "end":
65902            return _context3.stop();
65903        }
65904      }
65905    }, _callee3, null, [[2, 7], [11, 16]]);
65906  }));
65907
65908  return function getAdswizzListenerId() {
65909    return _ref4.apply(this, arguments);
65910  };
65911}();
65912var adsWizzbabel_target_legacy_decorateAdswizzUrl = function decorateAdswizzUrl(url, listenerId) {
65913  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
65914
65915  // Get the existing parameters off the stream url
65916  var _url$split = url.split("?"),
65917      _url$split2 = slicedToArraybabel_target_legacy_default()(_url$split, 2),
65918      domain = _url$split2[0],
65919      queryParams = _url$split2[1];
65920
65921  var qParams = new URLSearchParams(queryParams); // To avoid duplicates, these are the params which can be removed off the stream.
65922
65923  var paramsToClean = [// These are appended each decoration without fail
65924  "listenerid", "companionAds"].concat(toConsumableArraybabel_target_legacy_default()(params.map(function (x) {
65925    return x[0];
65926  }))); // If the params already exist, delete them.
65927
65928  paramsToClean.forEach(function (param) {
65929    return qParams.has(param) && qParams["delete"](param);
65930  });
65931
65932  if (listenerId) {
65933    params.push(["listenerid", listenerId]);
65934  } // Pass in the cleaned url for decoration
65935
65936
65937  var stream = Object(utilsbabel_target_legacy["b" /* decorateUrl */])("".concat(domain).concat(qParams.toString() !== "" ? "?" : "").concat(qParams.toString()), [["cb", Object(utilsbabel_target_legacy["h" /* getCachebuster */])()], ["companionAds", "true"]].concat(toConsumableArraybabel_target_legacy_default()(params)));
65938  return stream;
65939};
65940var sortAds = function sortAds(ad1, ad2) {
65941  return ad1.start - ad2.start;
65942};
65943var buildAdIframeUrl = function buildAdIframeUrl(domain, zoneId, cookieConsent, tcString, context) {
65944  return "//".concat(domain, ".deliveryengine.adswizz.com/afr?zoneId=").concat(zoneId, "&").concat(!tcString ? "aw_0_req.gdpr=".concat(cookieConsent) : "aw_0_req.userConsentV2=".concat(tcString)).concat(context ? "&context=".concat(context) : "");
65945};
65946var buildIframe = function buildIframe(domain, zoneId, cookieConsent, tcString, context) {
65947  return "<iframe frameborder=0 border=0 width=\"100%\" height=\"100%\" class=\"adswizz-iframe\" src=\"".concat(buildAdIframeUrl(domain, zoneId, cookieConsent, tcString, context), "\"></iframe>");
65948};
65949var EMPTY_AD = {
65950  content: "",
65951  width: 0,
65952  height: 0
65953};
65954
65955var adsAreIdentical = function adsAreIdentical(ad1, ad2) {
65956  return ad1 && ad2 && ad1.adId === ad2.adId && ad1.start === ad2.start;
65957};
65958/**
65959 * when instantiating this class, after creating the class, you must do it like:
65960 * const adswizzEngine = new AdsWizzEngine(adswizzProvider);
65961 * await adswizzEngine.init();
65962 * there are some async functions happening during instantiation
65963 * and this way we allow it to finish it before we start using it
65964 */
65965
65966
65967var adsWizzbabel_target_legacy_AdsWizzEngine = /*#__PURE__*/function () {
65968  function AdsWizzEngine(config) {
65969    var _this = this;
65970
65971    classCallCheckbabel_target_legacy_default()(this, AdsWizzEngine);
65972
65973    this.config = config;
65974    this.listenerId = null;
65975    this.upcomingAdBreaks = [];
65976    this.callbacks = {};
65977    this.throttle = void 0;
65978    this.fallbackAd = void 0;
65979    this.currentCompanion = void 0;
65980    this.init = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee4() {
65981      return regenerator_babel_target_legacy_default.a.wrap(function _callee4$(_context4) {
65982        while (1) {
65983          switch (_context4.prev = _context4.next) {
65984            case 0:
65985              _context4.next = 2;
65986              return _this.setListenerId();
65987
65988            case 2:
65989            case "end":
65990              return _context4.stop();
65991          }
65992        }
65993      }, _callee4);
65994    }));
65995
65996    this.updateConsentString = function (tcString) {};
65997
65998    this.decorateStreamUrl = function (url, params) {
65999      return adsWizzbabel_target_legacy_decorateAdswizzUrl(url, _this.listenerId, params);
66000    };
66001
66002    this.onTime = function (currentTime, duration) {
66003      if (_this.checkThrottle()) {
66004        try {
66005          _this.getMetadata();
66006        } catch (err) {
66007          Object(loggerbabel_target_legacy["e" /* warn */])("Metadata error", err);
66008        }
66009      }
66010
66011      var ad = _this.findNextAd(currentTime);
66012
66013      if (!ad || adsAreIdentical(ad, _this.currentCompanion) || !_this.callbacks.onCompanionAds) {
66014        return;
66015      }
66016
66017      _this.currentCompanion = ad;
66018
66019      _this.callbacks.onCompanionAds("rect", [_this.getAd(ad.adswizzContext)]);
66020
66021      window.setTimeout(_this.adEnded, ad.duration);
66022    };
66023
66024    this.getAd = function (context) {
66025      return {
66026        content: buildIframe(_this.config.domain, _this.config.companionAdZoneId, _this.config.cookieConsent, _this.config.tcString, context),
66027        width: 300,
66028        height: 250
66029      };
66030    };
66031
66032    this.adEnded = function () {
66033      Object(loggerbabel_target_legacy["c" /* log */])("Ad end");
66034      _this.currentCompanion = undefined;
66035
66036      if (_this.callbacks.onCompanionAds) {
66037        _this.callbacks.onCompanionAds("rect", [_this.fallbackAd || EMPTY_AD]);
66038      }
66039    };
66040
66041    this.findNextAd = function (before) {
66042      var millis = before * 1000;
66043
66044      var _this$upcomingAdBreak = _this.upcomingAdBreaks.filter(function (cuedAd) {
66045        return cuedAd.start <= millis;
66046      }).sort(sortAds),
66047          _this$upcomingAdBreak2 = slicedToArraybabel_target_legacy_default()(_this$upcomingAdBreak, 1),
66048          current = _this$upcomingAdBreak2[0];
66049
66050      _this.upcomingAdBreaks = _this.upcomingAdBreaks.filter(function (cuedAd) {
66051        return cuedAd.start > millis;
66052      });
66053      return current;
66054    };
66055
66056    this.checkThrottle = function () {
66057      if (_this.throttle) {
66058        return false;
66059      }
66060
66061      _this.throttle = window.setTimeout(function () {
66062        return _this.throttle = undefined;
66063      }, 3000);
66064      return true;
66065    };
66066
66067    this.getMetadata = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee5() {
66068      var response, json, result;
66069      return regenerator_babel_target_legacy_default.a.wrap(function _callee5$(_context5) {
66070        while (1) {
66071          switch (_context5.prev = _context5.next) {
66072            case 0:
66073              if (_this.config.metadataUrl) {
66074                _context5.next = 2;
66075                break;
66076              }
66077
66078              throw new Error("No metadata URL");
66079
66080            case 2:
66081              _context5.next = 4;
66082              return Object(fetchTimeoutbabel_target_legacy["b" /* fetchTimeout */])(Object(utilsbabel_target_legacy["b" /* decorateUrl */])(_this.config.metadataUrl, [["type", "json"], ["cb", Object(utilsbabel_target_legacy["h" /* getCachebuster */])()], ["details", "1"]]), {
66083                credentials: "include"
66084              }, 1000);
66085
66086            case 4:
66087              response = _context5.sent;
66088              _context5.next = 7;
66089              return response.ok;
66090
66091            case 7:
66092              if (_context5.sent) {
66093                _context5.next = 9;
66094                break;
66095              }
66096
66097              throw new Error("No response received from ad provider");
66098
66099            case 9:
66100              _context5.next = 11;
66101              return response.json();
66102
66103            case 11:
66104              json = _context5.sent;
66105              result = parseIcyJson(json);
66106
66107              if (result && result.length) {
66108                Object(loggerbabel_target_legacy["c" /* log */])("Got ads", result);
66109
66110                _this.insertAds(result);
66111              }
66112
66113            case 14:
66114            case "end":
66115              return _context5.stop();
66116          }
66117        }
66118      }, _callee5);
66119    }));
66120
66121    this.insertAds = function (ads) {
66122      _this.upcomingAdBreaks = [].concat(toConsumableArraybabel_target_legacy_default()(_this.upcomingAdBreaks), toConsumableArraybabel_target_legacy_default()(ads.filter(function (ad) {
66123        return !_this.upcomingAdBreaks.find(function (old) {
66124          return !adsAreIdentical(ad, old);
66125        }) && !adsAreIdentical(ad, _this.currentCompanion);
66126      }))).sort(sortAds);
66127    };
66128
66129    this.setListenerId = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee6() {
66130      return regenerator_babel_target_legacy_default.a.wrap(function _callee6$(_context6) {
66131        while (1) {
66132          switch (_context6.prev = _context6.next) {
66133            case 0:
66134              _context6.next = 2;
66135              return getAdswizzListenerId();
66136
66137            case 2:
66138              _context6.t0 = _context6.sent;
66139
66140              if (_context6.t0) {
66141                _context6.next = 5;
66142                break;
66143              }
66144
66145              _context6.t0 = null;
66146
66147            case 5:
66148              return _context6.abrupt("return", _this.listenerId = _context6.t0);
66149
66150            case 6:
66151            case "end":
66152              return _context6.stop();
66153          }
66154        }
66155      }, _callee6);
66156    }));
66157
66158    if (config.fallbackAdZoneId) {
66159      this.fallbackAd = {
66160        content: buildIframe(config.domain, config.fallbackAdZoneId, config.cookieConsent, config.tcString),
66161        width: 400,
66162        height: 350
66163      };
66164    }
66165  }
66166
66167  createClassbabel_target_legacy_default()(AdsWizzEngine, [{
66168    key: "setCallbacks",
66169    value: function setCallbacks(callbacks) {
66170      this.callbacks = _objectSpread(_objectSpread({}, this.callbacks), callbacks);
66171
66172      if (!this.currentCompanion && this.fallbackAd && callbacks.onCompanionAds) {
66173        callbacks.onCompanionAds("rect", [this.fallbackAd]);
66174      }
66175    }
66176  }]);
66177
66178  return AdsWizzEngine;
66179}();
66180// EXTERNAL MODULE: ./src/components/AudioEngine/AudioEngine.tsx?babel-target=legacy + 7 modules
66181var AudioEnginebabel_target_legacy = __webpack_require__(944);
66182
66183// EXTERNAL MODULE: ./src/components/StationError/index.ts?babel-target=legacy + 1 modules
66184var StationErrorbabel_target_legacy = __webpack_require__(788);
66185
66186// EXTERNAL MODULE: ./src/components/TransportControls/index.ts?babel-target=legacy + 11 modules
66187var TransportControlsbabel_target_legacy = __webpack_require__(784);
66188
66189// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.slice.js?babel-target=legacy
66190var es_array_buffer_slicebabel_target_legacy = __webpack_require__(492);
66191
66192// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js?babel-target=legacy
66193var es_string_replacebabel_target_legacy = __webpack_require__(269);
66194
66195// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js?babel-target=legacy
66196var es_typed_array_uint8_arraybabel_target_legacy = __webpack_require__(493);
66197
66198// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js?babel-target=legacy
66199var es_typed_array_copy_withinbabel_target_legacy = __webpack_require__(494);
66200
66201// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js?babel-target=legacy
66202var es_typed_array_everybabel_target_legacy = __webpack_require__(495);
66203
66204// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js?babel-target=legacy
66205var es_typed_array_fillbabel_target_legacy = __webpack_require__(496);
66206
66207// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js?babel-target=legacy
66208var es_typed_array_filterbabel_target_legacy = __webpack_require__(497);
66209
66210// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js?babel-target=legacy
66211var es_typed_array_findbabel_target_legacy = __webpack_require__(498);
66212
66213// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js?babel-target=legacy
66214var es_typed_array_find_indexbabel_target_legacy = __webpack_require__(499);
66215
66216// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js?babel-target=legacy
66217var es_typed_array_for_eachbabel_target_legacy = __webpack_require__(500);
66218
66219// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js?babel-target=legacy
66220var es_typed_array_includesbabel_target_legacy = __webpack_require__(501);
66221
66222// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js?babel-target=legacy
66223var es_typed_array_index_ofbabel_target_legacy = __webpack_require__(502);
66224
66225// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js?babel-target=legacy
66226var es_typed_array_iteratorbabel_target_legacy = __webpack_require__(503);
66227
66228// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js?babel-target=legacy
66229var es_typed_array_joinbabel_target_legacy = __webpack_require__(504);
66230
66231// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js?babel-target=legacy
66232var es_typed_array_last_index_ofbabel_target_legacy = __webpack_require__(505);
66233
66234// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js?babel-target=legacy
66235var es_typed_array_mapbabel_target_legacy = __webpack_require__(506);
66236
66237// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js?babel-target=legacy
66238var es_typed_array_reducebabel_target_legacy = __webpack_require__(507);
66239
66240// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js?babel-target=legacy
66241var es_typed_array_reduce_rightbabel_target_legacy = __webpack_require__(508);
66242
66243// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js?babel-target=legacy
66244var es_typed_array_reversebabel_target_legacy = __webpack_require__(509);
66245
66246// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js?babel-target=legacy
66247var es_typed_array_setbabel_target_legacy = __webpack_require__(510);
66248
66249// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js?babel-target=legacy
66250var es_typed_array_slicebabel_target_legacy = __webpack_require__(511);
66251
66252// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js?babel-target=legacy
66253var es_typed_array_somebabel_target_legacy = __webpack_require__(512);
66254
66255// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js?babel-target=legacy
66256var es_typed_array_sortbabel_target_legacy = __webpack_require__(513);
66257
66258// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js?babel-target=legacy
66259var es_typed_array_subarraybabel_target_legacy = __webpack_require__(514);
66260
66261// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js?babel-target=legacy
66262var es_typed_array_to_locale_stringbabel_target_legacy = __webpack_require__(515);
66263
66264// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js?babel-target=legacy
66265var es_typed_array_to_stringbabel_target_legacy = __webpack_require__(516);
66266
66267// CONCATENATED MODULE: ./src/lib/triton.ts?babel-target=legacy
66268
66269
66270
66271
66272
66273
66274
66275
66276
66277
66278
66279
66280
66281
66282
66283
66284
66285
66286
66287
66288
66289
66290
66291
66292
66293
66294
66295
66296
66297
66298
66299
66300
66301
66302
66303
66304
66305
66306
66307
66308
66309
66310
66311
66312
66313
66314
66315
66316function tritonbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
66317
66318function tritonbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { tritonbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { tritonbabel_target_legacy_ownKeys(Object(source)).forEac
66318h(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
66319
66320
66321
66322var tritonbabel_target_legacy_crypto = window.crypto || window.msCrypto;
66323
66324var uuid = function uuid() {
66325  return "".concat(1e7, "-", 1e3, "-", 4e3, "-", 8e3, "-", 1e11).replace(/[018]/g, function (c) {
66326    return (parseInt(c) ^ tritonbabel_target_legacy_crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> parseInt(c) / 4).toString(16);
66327  });
66328};
66329
66330var tritonbabel_target_legacy_sortAds = function sortAds(ad1, ad2) {
66331  return ad1.start - ad2.start;
66332};
66333var tritonbabel_target_legacy_buildIframe = function buildIframe(url) {
66334  return "<iframe frameborder=0 border=0 width=\"100%\" height=\"100%\" class=\"adswizz-iframe\" src=\"".concat(url, "\"></iframe>");
66335};
66336var tritonbabel_target_legacy_TritonEngine = /*#__PURE__*/function () {
66337  function TritonEngine(config) {
66338    var _this = this;
66339
66340    classCallCheckbabel_target_legacy_default()(this, TritonEngine);
66341
66342    this.config = config;
66343    this.upcomingAdBreaks = [];
66344    this.callbacks = {};
66345    this.currentCompanion = void 0;
66346    this.uuid = void 0;
66347    this.sbmStream = void 0;
66348    this.seenBytes = 0;
66349
66350    this.decorateStreamUrl = function (url) {
66351      return Object(utilsbabel_target_legacy["b" /* decorateUrl */])(url, [].concat(toConsumableArraybabel_target_legacy_default()(_this.getUrlParams()), [["banners", "300x250"], ["pname", "rpweb"]]));
66352    };
66353
66354    this.handleAd = function (ad) {
66355      if (!ad.parameters.ad_url) {
66356        return;
66357      }
66358
66359      var newAd = {
66360        start: ad.timestamp,
66361        adUrl: ad.parameters.ad_url.substr(1),
66362        duration: parseInt(ad.parameters.cue_time_duration)
66363      };
66364
66365      _this.upcomingAdBreaks.push(newAd);
66366    };
66367
66368    this.handleCuePoint = function (data) {
66369      if (data.name === "track") {
66370        Object(loggerbabel_target_legacy["c" /* log */])("track", data);
66371        return;
66372      }
66373
66374      Object(loggerbabel_target_legacy["c" /* log */])("got ad", data);
66375
66376      _this.handleAd(data);
66377    };
66378
66379    this.onMetadata = function (e) {
66380      var xhr = _this.sbmStream;
66381
66382      if (!xhr) {
66383        Object(loggerbabel_target_legacy["e" /* warn */])("Missing XHR");
66384        return;
66385      }
66386
66387      Object(loggerbabel_target_legacy["c" /* log */])("state change.. state: ", xhr.readyState);
66388
66389      if (xhr.readyState === 3) {
66390        try {
66391          var newData = xhr.response.substr(_this.seenBytes);
66392          var cleaned = newData.split("\n").map(function (line) {
66393            return line.substr(6);
66394          }).join("").split("}{").join("},{");
66395          Object(loggerbabel_target_legacy["c" /* log */])(cleaned);
66396          var obj = JSON.parse("[".concat(cleaned, "]"));
66397          obj.map(_this.handleCuePoint);
66398        } catch (e) {
66399          Object(loggerbabel_target_legacy["e" /* warn */])(e);
66400        }
66401
66402        _this.seenBytes = xhr.responseText.length;
66403        Object(loggerbabel_target_legacy["c" /* log */])("seenBytes: ".concat(_this.seenBytes));
66404      }
66405    };
66406
66407    this.onTime = function (currentTime, duration) {
66408      if (!_this.sbmStream) {
66409        Object(loggerbabel_target_legacy["c" /* log */])("connecting to sbm");
66410
66411        _this.connectToSbm();
66412
66413        return;
66414      }
66415
66416      var ad = _this.findNextAd(currentTime);
66417
66418      if (!ad || !_this.callbacks.onCompanionAds) {
66419        return;
66420      }
66421
66422      _this.currentCompanion = ad;
66423
66424      _this.callbacks.onCompanionAds("rect", [_this.getAd(ad.adUrl)]);
66425
66426      window.setTimeout(_this.adEnded, ad.duration);
66427    };
66428
66429    this.getAd = function (url) {
66430      return {
66431        content: tritonbabel_target_legacy_buildIframe(url),
66432        width: 300,
66433        height: 250
66434      };
66435    };
66436
66437    this.adEnded = function () {
66438      Object(loggerbabel_target_legacy["c" /* log */])("Ad end");
66439      _this.currentCompanion = undefined;
66440
66441      if (_this.callbacks.onCompanionAds) {
66442        _this.callbacks.onCompanionAds("rect", []);
66443      }
66444    };
66445
66446    this.findNextAd = function (before) {
66447      var millis = before * 1000;
66448
66449      var _this$upcomingAdBreak = _this.upcomingAdBreaks.filter(function (cuedAd) {
66450        return cuedAd.start <= millis;
66451      }).sort(tritonbabel_target_legacy_sortAds),
66452          _this$upcomingAdBreak2 = slicedToArraybabel_target_legacy_default()(_this$upcomingAdBreak, 1),
66453          current = _this$upcomingAdBreak2[0];
66454
66455      _this.upcomingAdBreaks = _this.upcomingAdBreaks.filter(function (cuedAd) {
66456        return cuedAd.start > millis;
66457      });
66458      return current;
66459    };
66460
66461    this.setSbmId = function () {
66462      return _this.uuid = uuid();
66463    };
66464
66465    this.setSbmId();
66466  }
66467
66468  createClassbabel_target_legacy_default()(TritonEngine, [{
66469    key: "setCallbacks",
66470    value: function setCallbacks(callbacks) {
66471      this.callbacks = tritonbabel_target_legacy_objectSpread(tritonbabel_target_legacy_objectSpread({}, this.callbacks), callbacks);
66472    }
66473  }, {
66474    key: "getUrlParams",
66475    value: function getUrlParams() {
66476      var urlParams = [["sbmid", this.uuid]];
66477
66478      if (this.config.tcString) {
66479        urlParams.push(["gdpr", "1"], ["gdpr_consent", this.config.tcString]);
66480      }
66481
66482      return urlParams;
66483    }
66484  }, {
66485    key: "connectToSbm",
66486    value: function connectToSbm() {
66487      this.sbmStream = new XMLHttpRequest();
66488      this.sbmStream.open("GET", Object(utilsbabel_target_legacy["b" /* decorateUrl */])(this.config.metadataUrl, this.getUrlParams()));
66489      this.sbmStream.addEventListener("readystatechange", this.onMetadata);
66490      this.sbmStream.send();
66491    }
66492  }, {
66493    key: "onPlayStatusChanged",
66494    value: function onPlayStatusChanged(play) {
66495      // close sbmSTream when paused, will reopen inm this.onTime when play is resumed
66496      if (!play && this.sbmStream) {
66497        this.sbmStream.abort();
66498        this.sbmStream = null;
66499      }
66500    }
66501  }]);
66502
66503  return TritonEngine;
66504}();
66505// CONCATENATED MODULE: ./src/lib/vast.ts?babel-target=legacy
66506
66507
66508
66509
66510
66511
66512
66513
66514
66515
66516
66517
66518
66519var PrerollState;
66520
66521(function (PrerollState) {
66522  PrerollState[PrerollState["NOT_INITIALIZED"] = 0] = "NOT_INITIALIZED";
66523  PrerollState[PrerollState["NOT_USED"] = 1] = "NOT_USED";
66524  PrerollState[PrerollState["WILL_REQUEST"] = 2] = "WILL_REQUEST";
66525  PrerollState[PrerollState["REQUESTED"] = 3] = "REQUESTED";
66526  PrerollState[PrerollState["ABOUT_TO_START"] = 4] = "ABOUT_TO_START";
66527  PrerollState[PrerollState["NONE_AVAILABLE"] = 5] = "NONE_AVAILABLE";
66528  PrerollState[PrerollState["PLAYING"] = 6] = "PLAYING";
66529  PrerollState[PrerollState["PLAYED"] = 7] = "PLAYED";
66530  PrerollState[PrerollState["FAILED"] = 8] = "FAILED";
66531  PrerollState[PrerollState["CALLED_RESULT_CALLBACK"] = 9] = "CALLED_RESULT_CALLBACK";
66532})(PrerollState || (PrerollState = {}));
66533
66534var vastbabel_target_legacy_VastEngine = /*#__PURE__*/function () {
66535  /**
66536   * Values over 5000 might create problems, because google.ima uses its own default timeout of 5000.
66537   * If changed, Netlify docs need to be updated accordingly.
66538   * @private
66539   */
66540
66541  /**
66542   * This state variable keeps track of the VAST preroll.
66543   * It is required to call AdEngineCallbacks.onPrerollPlayResult at the right times with the right value.
66544   *
66545   * {@see Player} also has a state variable to track VAST preroll. This was not merged into one state,
66546   * because {@see Player} and {@see VastEngine} transition between the states at different points.
66547   * @private
66548   */
66549  function VastEngine(config, videoContainer, videoTag, companionAdSlots) {
66550    var _this = this;
66551
66552    var vastPrerollShouldPlayBeforeStream = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
66553
66554    classCallCheckbabel_target_legacy_default()(this, VastEngine);
66555
66556    this.config = config;
66557    this.videoContainer = videoContainer;
66558    this.videoTag = videoTag;
66559    this.companionAdSlots = companionAdSlots;
66560    this.startedLoad = false;
66561    this.callbacks = void 0;
66562    this.ima = void 0;
66563    this.adContainer = void 0;
66564    this.adsLoader = void 0;
66565    this.adsManager = void 0;
66566    this.playedAd = false;
66567    this.disable = false;
66568    this.aborting = false;
66569    this.adTimeoutRef = void 0;
66570    this.audioElementProxy = {
66571      currentTime: 0,
66572      duration: 0
66573    };
66574    this.prerollState = PrerollState.NOT_INITIALIZED;
66575
66576    this.setCallbacks = function (callbacks) {
66577      _this.callbacks = callbacks;
66578    };
66579
66580    this.onTime = /*#__PURE__*/function () {
66581      var _ref = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee(currentTime, duration) {
66582        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
66583          while (1) {
66584            switch (_context.prev = _context.next) {
66585              case 0:
66586                _this.audioElementProxy.currentTime = currentTime;
66587                _this.audioElementProxy.duration = duration;
66588
66589                if (!_this.playedAd && _this.adsLoader && !_this.disable) {
66590                  _this.requestAds();
66591                }
66592
66593              case 3:
66594              case "end":
66595                return _context.stop();
66596            }
66597          }
66598        }, _callee);
66599      }));
66600
66601      return function (_x, _x2) {
66602        return _ref.apply(this, arguments);
66603      };
66604    }();
66605
66606    this.onPlayStatusChanged = function (play) {
66607      Object(loggerbabel_target_legacy["c" /* log */])("VAST play status changed", play);
66608
66609      if (play) {
66610        _this.requestAds();
66611      }
66612    };
66613
66614    this.setupAds = /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
66615      return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
66616        while (1) {
66617          switch (_context2.prev = _context2.next) {
66618            case 0:
66619              Object(loggerbabel_target_legacy["c" /* log */])("Setup VAST ads");
66620
66621              if (!_this.startedLoad) {
66622                _context2.next = 4;
66623                break;
66624              }
66625
66626              Object(loggerbabel_target_legacy["c" /* log */])("started load");
66627              return _context2.abrupt("return");
66628
66629            case 4:
66630              _this.startedLoad = true;
66631              _context2.prev = 5;
66632              _context2.next = 8;
66633              return Object(esm_babel_target_legacy["a" /* loadImaSdk */])();
66634
66635            case 8:
66636              _this.ima = _context2.sent;
66637              _context2.next = 14;
66638              break;
66639
66640            case 11:
66641              _context2.prev = 11;
66642              _context2.t0 = _context2["catch"](5);
66643              throw new Error("Loading IMA SDK failed, maybe because of an ad blocker.");
66644
66645            case 14:
66646              if (_this.videoContainer.current) {
66647                _context2.next = 17;
66648                break;
66649              }
66650
66651              Object(loggerbabel_target_legacy["e" /* warn */])("No video container");
66652              return _context2.abrupt("return");
66653
66654            case 17:
66655              _this.adContainer = new _this.ima.AdDisplayContainer(_this.videoContainer.current, _this.videoTag.current);
66656              _this.adsLoader = new _this.ima.AdsLoader(_this.adContainer);
66657
66658              _this.adsLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, _this.onAdsManagerLoaded);
66659
66660              _this.adsLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, _this.errorHandler);
66661
66662            case 21:
66663            case "end":
66664              return _context2.stop();
66665          }
66666        }
66667      }, _callee2, null, [[5, 11]]);
66668    }));
66669
66670    this.errorHandler = function (event) {
66671      Object(loggerbabel_target_legacy["e" /* warn */])("Ad error", event.getError());
66672      _this.disable = true;
66673
66674      if (_this.prerollState !== PrerollState.NOT_USED && _this.prerollState !== PrerollState.CALLED_RESULT_CALLBACK) {
66675        _this.updatePrerollState(PrerollState.FAILED);
66676      }
66677
66678      _this.abort();
66679    };
66680
66681    this.clearTimeout = function () {
66682      if (!_this.adTimeoutRef) {
66683        return;
66684      }
66685
66686      Object(loggerbabel_target_legacy["c" /* log */])("Clearing timeout of VastEngine");
66687      window.clearTimeout(_this.adTimeoutRef);
66688      _this.adTimeoutRef = undefined;
66689    };
66690
66691    this.startAdsTimeout = function () {
66692      var interval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : VastEngine.AD_TIMEOUT_INTERVAL;
66693
66694      if (_this.adTimeoutRef) {
66695        Object(loggerbabel_target_legacy["c" /* log */])("Already waiting");
66696        return;
66697      }
66698
66699      _this.adTimeoutRef = window.setTimeout(_this.timeoutAd, interval);
66700    };
66701
66702    this.timeoutAd = function () {
66703      Object(loggerbabel_target_legacy["e" /* warn */])("Ad timeout");
66704      _this.aborting = false;
66705      _this.disable = true;
66706      _this.adTimeoutRef = undefined;
66707
66708      if (_this.prerollState !== PrerollState.NOT_INITIALIZED && _this.prerollState !== PrerollState.NOT_USED && _this.prerollState !== PrerollState.NONE_AVAILABLE) {
66709        _this.updatePrerollState(PrerollState.FAILED);
66710      }
66711
66712      _this.requestPlay();
66713    };
66714
66715    this.requestAds = function () {
66716      var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
66717
66718      if (_this.playedAd && !force) {
66719        Object(loggerbabel_target_legacy["c" /* log */])("Already played ad");
66720
66721        _this.requestPlay();
66722
66723        return;
66724      }
66725
66726      if (!_this.adsLoader || _this.disable) {
66727        Object(loggerbabel_target_legacy["c" /* log */])("No ad loader or ads disabled");
66728
66729        _this.abort();
66730
66731        return;
66732      }
66733
66734      Object(loggerbabel_target_legacy["c" /* log */])("Requesting ad");
66735      _this.playedAd = true;
66736      var adsRequest = new google.ima.AdsRequest();
66737      adsRequest.adTagUrl = _this.config.tag;
66738      adsRequest.linearAdSlotWidth = 375;
66739      adsRequest.linearAdSlotHeight = 200;
66740      adsRequest.nonLinearAdSlotWidth = 375;
66741      adsRequest.nonLinearAdSlotHeight = 200;
66742      adsRequest.forceNonLinearFullSlot = false;
66743
66744      if (_this.prerollState === PrerollState.WILL_REQUEST) {
66745        _this.updatePrerollState(PrerollState.REQUESTED);
66746      }
66747
66748      _this.adsLoader.requestAds(adsRequest);
66749
66750      _this.startAdsTimeout();
66751    };
66752
66753    this.eventHandler = function (event) {
66754      return Object(loggerbabel_target_legacy["c" /* log */])(event, event.getAd());
66755    };
66756
66757    this.adLoaded = function (event) {
66758      var ad = event.getAd(); // Non-linear ads are not supported.
66759      // Therefore, if the ad is linear -> abort playback.
66760
66761      if (ad && !ad.isLinear()) {
66762        _this.abort();
66763      }
66764    };
66765
66766    this.completeOrSkippedHandler = function () {
66767      if (_this.prerollState === PrerollState.PLAYING) {
66768        /**
66769         * Note: Not every VAST ad can be skipped, the ad publisher must explicitly configure it to be skippable.
66770         * Therefore, "skipped" also counts as "played".
66771         */
66772        _this.updatePrerollState(PrerollState.PLAYED);
66773      }
66774    };
66775
66776    this.requestPause = function () {
66777      if (_this.callbacks && _this.callbacks.requestStreamPause) {
66778        _this.callbacks.requestStreamPause();
66779      }
66780    };
66781
66782    this.requestPlay = function () {
66783      var _this$callbacks;
66784
66785      _this.clearTimeout();
66786      /**
66787       * If preroll requesting/playback has finished and VastEngine's parent component
66788       * needs to be informed of the result, call the onPrerollPlayResult() callback.
66789       * In all other cases, call requestStreamPlayback() callback;
66790       */
66791
66792
66793      if ((_this$callbacks = _this.callbacks) === null || _this$callbacks === void 0 ? void 0 : _this$callbacks.onPrerollPlayResult) {
66794        if (_this.prerollState === PrerollState.FAILED || _this.prerollState === PrerollState.NONE_AVAILABLE) {
66795          _this.callbacks.onPrerollPlayResult(false);
66796
66797          _this.prerollState = PrerollState.CALLED_RESULT_CALLBACK;
66798          return;
66799        } else if (_this.prerollState === PrerollState.PLAYED) {
66800          _this.callbacks.onPrerollPlayResult(true);
66801
66802          _this.prerollState = PrerollState.CALLED_RESULT_CALLBACK;
66803          return;
66804        }
66805      }
66806
66807      if (_this.callbacks && _this.callbacks.requestStreamPlay) {
66808        _this.callbacks.requestStreamPlay();
66809      }
66810    };
66811
66812    this.abort = function () {
66813      if (!_this.adsManager) {
66814        _this.requestPlay();
66815
66816        return;
66817      }
66818
66819      Object(loggerbabel_target_legacy["c" /* log */])("adsManager stop");
66820
66821      _this.adsManager.stop(); // Give the SDK 500ms to handle stopping, otherwise we do it
66822
66823
66824      _this.aborting = true;
66825
66826      _this.startAdsTimeout(500);
66827    };
66828
66829    this.startHandler = function (event) {
66830      Object(loggerbabel_target_legacy["c" /* log */])("Start VAST ad", event);
66831
66832      if (!_this.aborting) {
66833        _this.clearTimeout();
66834      }
66835
66836      var ad = event.getAd();
66837
66838      if (!ad) {
66839        Object(loggerbabel_target_legacy["c" /* log */])("No ad");
66840        return;
66841      }
66842
66843      Object(loggerbabel_target_legacy["c" /* log */])({
66844        ad: ad
66845      });
66846
66847      if (_this.prerollState === PrerollState.ABOUT_TO_START) {
66848        _this.updatePrerollState(PrerollState.PLAYING);
66849      }
66850
66851      if (!_this.companionAdSlots || !_this.callbacks || !_this.callbacks.onCompanionAds) {
66852        Object(loggerbabel_target_legacy["c" /* log */])("No companion ad handler");
66853        return;
66854      }
66855
66856      _this.companionAdSlots.forEach(function (_ref3) {
66857        var width = _ref3.width,
66858            height = _ref3.height,
66859            id = _ref3.id;
66860        var companions = ad.getCompanionAds(width, height);
66861
66862        if (!_this.callbacks || !_this.callbacks.onCompanionAds) {
66863          return;
66864        }
66865
66866        _this.callbacks.onCompanionAds(id, companions.map(function (companion) {
66867          return {
66868            width: companion.getWidth(),
66869            height: companion.getHeight(),
66870            content: companion.getContent()
66871          };
66872        }));
66873      });
66874    };
66875
66876    this.clickHandler = function (event) {
66877      var ad = event.getAd();
66878
66879      if (!ad) {
66880        return;
66881      }
66882
66883      Object(loggerbabel_target_legacy["c" /* log */])("Click ad", ad);
66884    };
66885
66886    this.onAdsManagerLoaded = function (adsManagerLoadedEvent) {
66887      if (!_this.adContainer) {
66888        Object(loggerbabel_target_legacy["c" /* log */])("No VAST video element");
66889        return;
66890      }
66891      /**
66892       * If a timeoutAd() was already triggered, don't start playing the ad(s)
66893       */
66894
66895
66896      if (_this.disable) {
66897        Object(loggerbabel_target_legacy["c" /* log */])("VastEngine was disabled, not playing any ads");
66898        return;
66899      }
66900
66901      var renderingSettings = new google.ima.AdsRenderingSettings();
66902      _this.adsManager = adsManagerLoadedEvent.getAdsManager(_this.audioElementProxy, renderingSettings);
66903
66904      _this.adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, _this.startHandler);
66905
66906      _this.adsManager.addEventListener(google.ima.AdEvent.Type.LOG, _this.eventHandler);
66907
66908      _this.adsManager.addEventListener(google.ima.AdEvent.Type.CLICK, _this.clickHandler);
66909
66910      _this.adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, _this.adLoaded);
66911
66912      _this.adsManager.addEventListener(google.ima.AdEvent.Type.ALL_ADS_COMPLETED, _this.eventHandler);
66913
66914      _this.adsManager.addEventListener(google.ima.AdEvent.Type.AD_METADATA, _this.eventHandler);
66915
66916      _this.adsManager.addEventListener(google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, function () {
66917        Object(loggerbabel_target_legacy["c" /* log */])("CONTENT_PAUSE_REQUESTED"); // Bugfix:
66918        // Sometimes VastEngine's this.timeoutAd() was triggered between google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED and google.ima.AdEvent.Type.STARTED
66919        // That led to an unstable state where both 1. adTimeout was triggered and 2. the ad was played.
66920        // VastEngine's parent component then behaved as if no ad was playing while VastEngine behaved like an ad was playing.
66921        // Consequently, the stream and ad played at the same time.
66922
66923        _this.clearTimeout();
66924
66925        _this.requestPause();
66926      });
66927
66928      _this.adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, _this.completeOrSkippedHandler);
66929
66930      _this.adsManager.addEventListener(google.ima.AdEvent.Type.SKIPPED, _this.completeOrSkippedHandler);
66931
66932      _this.adsManager.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, function () {
66933        Object(loggerbabel_target_legacy["c" /* log */])("CONTENT_RESUME_REQUESTED");
66934
66935        _this.requestPlay();
66936      });
66937
66938      _this.adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, _this.errorHandler);
66939
66940      _this.adContainer.initialize();
66941
66942      Object(loggerbabel_target_legacy["c" /* log */])("About to start ad");
66943
66944      try {
66945        _this.adsManager.init(640, 360, google.ima.ViewMode.NORMAL);
66946
66947        if (_this.prerollState === PrerollState.REQUESTED) {
66948          var hasPreroll = VastEngine.checkForPreroll(_this.adsManager);
66949
66950          _this.updatePrerollState(hasPreroll ? PrerollState.ABOUT_TO_START : PrerollState.NONE_AVAILABLE);
66951        }
66952
66953        _this.adsManager.start();
66954      } catch (adError) {
66955        Object(loggerbabel_target_legacy["e" /* warn */])("Ad error", adError);
66956
66957        _this.updatePrerollState(PrerollState.FAILED);
66958
66959        _this.abort();
66960      }
66961    };
66962
66963    /**
66964     * Use dedicated constructor argument instead of config.playPrerollBeforeStream,
66965     * because not all parent components of VastEngine support the feature.
66966     * e.g. if a station enabled it in their EmbeddedPlayer JSON config, ad playback would not work properly.
66967     */
66968    this.updatePrerollState(vastPrerollShouldPlayBeforeStream === true ? PrerollState.WILL_REQUEST : PrerollState.NOT_USED);
66969  }
66970
66971  createClassbabel_target_legacy_default()(VastEngine, [{
66972    key: "updatePrerollState",
66973
66974    /**
66975     * Update the preroll state.
66976     * @param prerollState
66977     * @private
66978     */
66979    value: function updatePrerollState(prerollState) {
66980      Object(loggerbabel_target_legacy["c" /* log */])("prerollState changed from ".concat(PrerollState[this.prerollState], " to ").concat(PrerollState[prerollState]));
66981      this.prerollState = prerollState;
66982    }
66983    /**
66984     * Check if the given AdsManager has a preroll Ad available
66985     * @param adsManager The AdsManager
66986     * @private
66987     * @return True, if there is a preroll, false otherwise.
66988     */
66989
66990  }], [{
66991    key: "checkForPreroll",
66992    value: function checkForPreroll(adsManager) {
66993      /**
66994       * This class supports VAST Prerolls and Midrolls. Postrolls are not supported.
66995       * Additionally, because of how this class is used within radioplayer
66995-web-player, the following holds true:
66996       * 1. If VastProvider.playPrerollBeforeStream=false: A preroll might not be played before the actual stream, but up to several seconds after actual content has started.
66997       * 2. If VastProvider.playPrerollBeforeStream=false: A preroll will always be played before the actual stream is loaded/played.
66998       * 3. Midrolls are only supported if VMAP is used.
66999       * 4. If VMAP is not used, each VastEngine instance issues only a single VAST request during its lifetime. This will be played as Preroll.
67000       *
67001       * To detect if a VAST response is a Preroll or not, the following heuristic is used:
67002       * 1. If the VAST server responds with a single <Ad> then AdsManager#getCuePoints() will return an empty array. The ad is a preroll.
67003       * 2. If the VAST server responds with a <vmap:VMAP> then AdsManager#getCuePoint() will return a non-empty array. To determine, whether a preroll is included, the content of the array has to be checked.
67004       */
67005      var PREROLL_CUEPOINT = 0; // timeOffset of a Preroll is 0
67006
67007      var isSingleAd = adsManager.getCuePoints().length === 0;
67008      var isVMAPWithPreroll = adsManager.getCuePoints().includes(PREROLL_CUEPOINT);
67009      return isSingleAd || isVMAPWithPreroll;
67010    }
67011  }]);
67012
67013  return VastEngine;
67014}();
67015vastbabel_target_legacy_VastEngine.AD_TIMEOUT_INTERVAL = 3000;
67016// EXTERNAL MODULE: ./src/lib/APIManager/APIManager.ts?babel-target=legacy
67017var APIManagerbabel_target_legacy = __webpack_require__(32);
67018
67019// EXTERNAL MODULE: ./src/components/Player/Player.module.css
67020var Player_module = __webpack_require__(489);
67021var Player_module_default = /*#__PURE__*/__webpack_require__.n(Player_module);
67022
67023// EXTERNAL MODULE: ./src/lib/APIManager/APIProvider.tsx?babel-target=legacy
67024var APIProviderbabel_target_legacy = __webpack_require__(525);
67025
67026// EXTERNAL MODULE: ./src/lib/APIManager/useAPI.ts?babel-target=legacy
67027var useAPIbabel_target_legacy = __webpack_require__(44);
67028
67029// EXTERNAL MODULE: ./src/lib/Analytics/index.ts?babel-target=legacy + 3 modules
67030var Analyticsbabel_target_legacy = __webpack_require__(184);
67031
67032// EXTERNAL MODULE: ./src/lib/EventBus/index.ts?babel-target=legacy
67033var EventBusbabel_target_legacy = __webpack_require__(152);
67034
67035// EXTERNAL MODULE: ./src/lib/useVolume.ts?babel-target=legacy
67036var useVolumebabel_target_legacy = __webpack_require__(751);
67037
67038// CONCATENATED MODULE: ./src/components/Player/Player.tsx?babel-target=legacy
67039
67040
67041
67042
67043
67044
67045
67046
67047
67048
67049
67050
67051
67052
67053
67054
67055
67056
67057
67058
67059
67060
67061
67062
67063
67064
67065
67066
67067
67068
67069function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
67070
67071function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
67072
67073function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
67074
67075function Playerbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
67076
67077function Playerbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Playerbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Playerbabel_target_legacy_ownKeys(Object(source)).forEac
67077h(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
67078
67079
67080
67081
67082
67083
67084
67085
67086
67087
67088
67089
67090
67091
67092
67093
67094
67095
67096
67097var VastPrerollState;
67098/**
67099 * AdProviderStatus needs to be stored, because AudioEngine must not load streams before all adEngines are properly initialized.
67100 * Otherwise AudioEngine will load streams too soon and attach no or only partial query params.
67101 *
67102 * Legal state changes:
67103 * NOT_USED -> NOT_YET_INITIALIZED
67104 * NOT_YET_INITIALIZED -> INITIALIZING
67105 * INITIALIZING -> BLOCKED, READY
67106 */
67107
67108(function (VastPrerollState) {
67109  VastPrerollState[VastPrerollState["NOT_INITIALIZED"] = 0] = "NOT_INITIALIZED";
67110  VastPrerollState[VastPrerollState["NOT_USED"] = 1] = "NOT_USED";
67111  VastPrerollState[VastPrerollState["WILL_REQUEST"] = 2] = "WILL_REQUEST";
67112  VastPrerollState[VastPrerollState["REQUESTED"] = 3] = "REQUESTED";
67113  VastPrerollState[VastPrerollState["SUCCESSFULLY_PLAYED"] = 4] = "SUCCESSFULLY_PLAYED";
67114  VastPrerollState[VastPrerollState["NONE_OR_FAILED"] = 5] = "NONE_OR_FAILED";
67115})(VastPrerollState || (VastPrerollState = {}));
67116
67117var AdProviderStatus;
67118
67119(function (AdProviderStatus) {
67120  AdProviderStatus[AdProviderStatus["NOT_USED"] = 0] = "NOT_USED";
67121  AdProviderStatus[AdProviderStatus["BLOCKED"] = 1] = "BLOCKED";
67122  AdProviderStatus[AdProviderStatus["NOT_YET_INITIALIZED"] = 2] = "NOT_YET_INITIALIZED";
67123  AdProviderStatus[AdProviderStatus["INITIALIZING"] = 3] = "INITIALIZING";
67124  AdProviderStatus[AdProviderStatus["READY"] = 4] = "READY";
67125})(AdProviderStatus || (AdProviderStatus = {}));
67126
67127var Playerbabel_target_legacy_Player = function Player(_ref) {
67128  var _state$cookie;
67129
67130  var streams = _ref.streams,
67131      _ref$adProviders = _ref.adProviders,
67132      adProviders = _ref$adProviders === void 0 ? [] : _ref$adProviders,
67133      _ref$adVideoWidth = _ref.adVideoWidth,
67134      adVideoWidth = _ref$adVideoWidth === void 0 ? 640 : _ref$adVideoWidth,
67135      autoplay = _ref.autoplay,
67136      rpId = _ref.rpId,
67137      onCompanionAds = _ref.onCompanionAds,
67138      isOnDemand = _ref.isOnDemand,
67139      theme = _ref.theme,
67140      stationLogo = _ref.stationLogo,
67141      stationUrl = _ref.stationUrl,
67142      stationName = _ref.stationName,
67143      onStreamError = _ref.onStreamError,
67144      disableLiveSeek = _ref.disableLiveSeek,
67145      disableScrubber = _ref.disableScrubber,
67146      disablePlaybackButtons = _ref.disablePlaybackButtons,
67147      playLocked = _ref.playLocked,
67148      streamParams = _ref.streamParams;
67149
67150  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
67151      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
67152      state = _useAPI2[0];
67153
67154  var tcString = state.tcString;
67155
67156  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67157      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
67158      retriggeredPlayRequestOnPlayUnlock = _useState2[0],
67159      setRetriggeredPlayRequestOnPlayUnlock = _useState2[1];
67160
67161  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67162      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
67163      playRequested = _useState4[0],
67164      setPlayRequested = _useState4[1];
67165  /**
67166   * Used to track the state of the VAST preroll.
67167   *
67168   * By default (i.e. VastProvider.playPrerollBeforeStream=false),
67169   * VAST ads simply pause the currently playing stream once they arrive at the client ({@see VastEngine}).
67170   * However, some stations require, that VAST prerolls are played before (!) the stream is loaded/played.
67171   * These stations are using VAST + AdsWizz AIS and require the following use case to be supported:
67172   *
67173   * 0. Station configures VastProvider.playPrerollBeforeStream=true
67174   * 1. User clicks play
67175   * 2. Step 1 triggers only:
67176   * 2a. VAST XML is requested
67177   * 3. Stream is not requested/played yet
67178   * 4. Case 1: VAST XML is received and contains a preroll:
67179   *      4a. Play VAST preroll
67180   *      4b. Attach parameter to stream URL that suppresses in-stream preroll ad.
67181   *      4c. Start stream with modified URL
67182   *      4d. Stream plays without in-stream preroll ad
67183   * 4. Case 2: VAST is not configured, XML is not received, contains 
67183no ad or other error occurs:
67184   *      4a. Start stream with unmodified URL
67185   *      4b. Stream plays with in-stream preroll ad
67186   */
67187
67188
67189  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(VastPrerollState.NOT_INITIALIZED),
67190      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
67191      vastPrerollState = _useState6[0],
67192      setVastPrerollState = _useState6[1];
67193
67194  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67195      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 2),
67196      adEngineInitializationTimedOut = _useState8[0],
67197      setAdEngineInitializationTimedOut = _useState8[1];
67198
67199  var _useState9 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67200      _useState10 = slicedToArraybabel_target_legacy_default()(_useState9, 2),
67201      awaitingAdEngineInitializationTimeOut = _useState10[0],
67202      setAwaitingAdEngineInitializationTimeOut = _useState10[1];
67203
67204  var _useState11 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67205      _useState12 = slicedToArraybabel_target_legacy_default()(_useState11, 2),
67206      allAdEnginesReady = _useState12[0],
67207      setAllAdEnginesReady = _useState12[1];
67208
67209  var _useState13 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67210      _useState14 = slicedToArraybabel_target_legacy_default()(_useState13, 2),
67211      initAdEngines = _useState14[0],
67212      setInitAdEngines = _useState14[1];
67213
67214  var adswizzProvider = (adProviders || []).find(function (provider) {
67215    return provider.type === "adswizz";
67216  });
67217
67218  var _useState15 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(AdProviderStatus.NOT_USED),
67219      _useState16 = slicedToArraybabel_target_legacy_default()(_useState15, 2),
67220      adsWizzProviderStatus = _useState16[0],
67221      setAdsWizzProviderStatus = _useState16[1];
67222
67223  var vastProvider = (adProviders || []).find(function (provider) {
67224    return provider.type === "vast";
67225  });
67226
67227  var _useState17 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(AdProviderStatus.NOT_USED),
67228      _useState18 = slicedToArraybabel_target_legacy_default()(_useState17, 2),
67229      vastProviderStatus = _useState18[0],
67230      setVastProviderStatus = _useState18[1];
67231
67232  var tritonProvider = (adProviders || []).find(function (provider) {
67233    return provider.type === "triton";
67234  });
67235
67236  var _useState19 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(AdProviderStatus.NOT_USED),
67237      _useState20 = slicedToArraybabel_target_legacy_default()(_useState19, 2),
67238      tritonProviderStatus = _useState20[0],
67239      setTritonProviderStatus = _useState20[1];
67240  /**
67241   * Update adProviderStatuses.
67242   */
67243
67244
67245  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67246    var newAdsWizzProviderStatus = adsWizzProviderStatus;
67247    var newVastProviderStatus = vastProviderStatus;
67248    var newTritonProviderStatus = tritonProviderStatus;
67249
67250    if (adswizzProvider != null && adsWizzProviderStatus === AdProviderStatus.NOT_USED) {
67251      newAdsWizzProviderStatus = AdProviderStatus.NOT_YET_INITIALIZED;
67252    }
67253
67254    if (vastProvider != null && vastProviderStatus === AdProviderStatus.NOT_USED) {
67255      newVastProviderStatus = AdProviderStatus.NOT_YET_INITIALIZED;
67256    }
67257
67258    if (tritonProvider != null && tritonProviderStatus === AdProviderStatus.NOT_USED) {
67259      Object(loggerbabel_target_legacy["c" /* log */])("triton used");
67260      newTritonProviderStatus = AdProviderStatus.NOT_YET_INITIALIZED;
67261    }
67262
67263    setAdsWizzProviderStatus(newAdsWizzProviderStatus);
67264    setVastProviderStatus(newVastProviderStatus);
67265    setTritonProviderStatus(newTritonProviderStatus); // Don't use state variables, they might still hold the old value.
67266
67267    var allAdEngines = [newAdsWizzProviderStatus, newVastProviderStatus, newTritonProviderStatus];
67268    var allAdEnginesReady = adEngineInitializationTimedOut || allAdEngines.length === allAdEngines.filter(function (status) {
67269      return status === AdProviderStatus.NOT_USED || status === AdProviderStatus.BLOCKED || status === AdProviderStatus.READY;
67270    }).length;
67271
67272    if (allAdEnginesReady) {
67273      var logStatement = "All ad engines are ready.";
67274
67275      if (adEngineInitializationTimedOut) {
67276        logStatement += " Initialization timed out.";
67277      }
67278
67279      Object(loggerbabel_target_legacy["c" /* log */])(logStatement);
67280    }
67281
67282    setAllAdEnginesReady(allAdEnginesReady);
67283  }, [adswizzProvider, vastProvider, tritonProvider, adsWizzProviderStatus, vastProviderStatus, tritonProviderStatus, adEngineInitializationTimedOut]);
67284  /**
67285   * Initialization of AdEngines might fail or take too long.
67286   * This should not prevent playback totally.
67287   * Therefore, once playLocked = false, playback should start after some time, even if ad engines aren't ready.
67288   */
67289
67290  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67291    if (!playLocked && initAdEngines) {
67292      // Give ad engines 1 second to initialize
67293      var timeoutLength = 1000;
67294      var timeoutId = window.setTimeout(function () {
67295        window.setTimeout(function () {
67296          Object(loggerbabel_target_legacy["c" /* log */])("Stop preventing playback. Ad engines' initialization is either done or has timed out");
67297          setAdEngineInitializationTimedOut(true);
67298        }, timeoutLength);
67299      });
67300      return function () {
67301        window.clearTimeout(timeoutId);
67302      };
67303    } // Dependency array must not contain more than playLocked, which only changes value once -> otherwise timeout will be reset on state changes!
67304
67305  }, [initAdEngines, playLocked]);
67306
67307  var _useAnalytics = Object(Analyticsbabel_target_legacy["b" /* useAnalytics */])(),
67308      onTrackedEvent = _useAnalytics.onTrackedEvent;
67309
67310  var _useVolume = Object(useVolumebabel_target_legacy["a" /* useVolume */])(),
67311      _useVolume2 = slicedToArraybabel_target_legacy_default()(_useVolume, 2),
67312      volume = _useVolume2[0],
67313      setVolume = _useVolume2[1];
67314
67315  var doSetVolume = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (vol) {
67316    if (vol === 0) {
67317      onTrackedEvent("mute", rpId);
67318    } else if (volume === 0) {
67319      onTrackedEvent("unmute", rpId, {
67320        volume: vol
67321      });
67322    }
67323
67324    setVolume(vol);
67325  }, [volume, setVolume, onTrackedEvent, rpId]);
67326
67327  var _useState21 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
67328      _useState22 = slicedToArraybabel_target_legacy_default()(_useState21, 2),
67329      adEngines = _useState22[0],
67330      setAdEngines = _useState22[1];
67331
67332  var _useState23 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(null),
67333      _useState24 = slicedToArraybabel_target_legacy_default()(_useState23, 2),
67334      audioEngine = _useState24[0],
67335      setAudioEngine = _useState24[1];
67336
67337  var onAudioEngineRefChange = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (newAudioEngine) {
67338    setAudioEngine(newAudioEngine);
67339  }, []);
67340  var videoAdHolder = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
67341
67342  var _useState25 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67343      _useState26 = slicedToArraybabel_target_legacy_default()(_useState25, 2),
67344      videoAdPlaying = _useState26[0],
67345      setVideoAdPlaying = _useState26[1];
67346
67347  var videoRef = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
67348
67349  var _useState27 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
67350      _useState28 = slicedToArraybabel_target_legacy_default()(_useState27, 2),
67351      start = _useState28[0],
67352      setStart = _useState28[1];
67353
67354  var _useState29 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
67355      _useState30 = slicedToArraybabel_target_legacy_default()(_useState29, 2),
67356      time = _useState30[0],
67357      setTime = _useState30[1];
67358
67359  var _useState31 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
67360      _useState32 = slicedToArraybabel_target_legacy_default()(_useState31, 2),
67361      end = _useState32[0],
67362      setEnd = _useState32[1];
67363
67364  var _useState33 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67365      _useState34 = slicedToArraybabel_target_legacy_default()(_useState33, 2),
67366      live = _useState34[0],
67367      setLive = _useState34[1];
67368
67369  var _useState35 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67370      _useState36 = slicedToArraybabel_target_legacy_default()(_useState35, 2),
67371      seekable = _useState36[0],
67372      setSeekable = _useState36[1];
67373
67374  var _useState37 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67375      _useState38 = slicedToArraybabel_target_legacy_default()(_useState37, 2),
67376      stalled = _useState38[0],
67377      setStalled = _useState38[1];
67378
67379  var _useState39 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(undefined),
67380      _useState40 = slicedToArraybabel_target_legacy_default()(_useState39, 2),
67381      nowplaying = _useState40[0],
67382      setNowplaying = _useState40[1];
67383
67384  var _useEventBus = Object(EventBusbabel_target_legacy["b" /* useEventBus */])(),
67385      emitter = _useEventBus.emitter,
67386      emit = _useEventBus.emit;
67387
67388  var _useState41 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(true),
67389      _useState42 = slicedToArraybabel_target_legacy_default()(_useState41, 2),
67390      pulsate = _useState42[0],
67391      setPulsate = _useState42[1];
67392
67393  var requestStreamPause = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67394    setVideoAdPlaying(true);
67395
67396    if (audioEngine) {
67397      audioEngine.adPlayerRequestPause();
67398    }
67399  }, [audioEngine]);
67400  var receivedCompanionAd = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (id, ads) {
67401    onCompanionAds && onCompanionAds(id, ads);
67402    emit("receivedcompanionads", {
67403      id: id,
67404      ads: ads
67405    });
67406  }, [emit, onCompanionAds]);
67407  var cmpConsentFailed = state.cmpConsentFailed;
67408  var getStreamParamsAsArray = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67409    var queryParams = Object.keys(streamParams).map(function (x) {
67410      return [x, streamParams[x]];
67411    }); // Adswizz requires the consent string, if it's not been provided as a param, we should include it.
67412
67413    if (adProviders.map(function (x) {
67414      return x.type;
67415    }).includes("adswizz") && !Object.keys(streamParams).includes("aw_0_req.userConsentV2") && typeof tcString === "string") return [].concat(toConsumableArraybabel_target_legacy_default()(queryParams), [["aw_0_req.userConsentV2", tcString]]);else if ( // If it's not a string and we've not received it, gdpr should be refused
67416    adProviders.map(function (x) {
67417      return x.type;
67418    }).includes("adswizz") && !Object.keys(streamParams).includes("aw_0_req.userConsentV2") && cmpConsentFailed) return [].concat(toConsumableArraybabel_target_legacy_default()(queryParams), [["aw_0_req.gdpr", "false"]]);
67419    return queryParams;
67420  }, [adProviders, cmpConsentFailed, streamParams, tcString]);
67421  var requestStreamPlay = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67422    setVideoAdPlaying(false);
67423    Object(loggerbabel_target_legacy["c" /* log */])("adplayer", videoRef.current);
67424
67425    if (videoRef.current) {
67426      videoRef.current.pause();
67427    }
67428
67429    if (audioEngine) {
67430      audioEngine.adPlayerRequestPlay();
67431    }
67432  }, [audioEngine]);
67433  var adEnginesDecorateUrl = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (url) {
67434    return [].concat(toConsumableArraybabel_target_legacy_default()(adEngines), [utilsbabel_target_legacy["c" /* decorator */]]).reduce(function (prev, next) {
67435      return next.decorateStreamUrl ? next.decorateStreamUrl(prev, getStreamParamsAsArray()) : prev;
67436    }, url);
67437  }, [adEngines, getStreamParamsAsArray]);
67438  var suppressAISPrerollParam = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
67439    /**
67440     * Attaching parameter context=fHA6LTE= to an AIS (Standalone or Plugin version) stream URL,
67441     * suppresses in-stream prerolls.
67442     * This is not documented well by AdsWizz, but supported by all AIS installations according to german publisher RMS, who use
67443     * that parameter in production.
67444     */
67445    return vastPrerollState === VastPrerollState.SUCCESSFULLY_PLAYED ? ["context", "fHA6LTE="] : ["", ""];
67446  }, [vastPrerollState]);
67447  var decoratedStreams = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
67448    return streams.map(function (stream) {
67449      var newUrl = Object(utilsbabel_target_legacy["b" /* decorateUrl */])(stream.url, [suppressAISPrerollParam]);
67450      newUrl = adEngines.length > 0 ? adEnginesDecorateUrl(newUrl) : Object(utilsbabel_target_legacy["b" /* decorateUrl */])(newUrl, getStreamParamsAsArray());
67451      return Playerbabel_target_legacy_objectSpread(Playerbabel_target_legacy_objectSpread({}, stream), {}, {
67452        url: newUrl
67453      });
67454    });
67455  }, [streams, suppressAISPrerollParam, adEngines.length, adEnginesDecorateUrl, getStreamParamsAsArray]);
67456
67457  var _useState43 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(window.outerWidth),
67458      _useState44 = slicedToArraybabel_target_legacy_default()(_useState43, 2),
67459      currentWidth = _useState44[0],
67460      setCurrentWidth = _useState44[1];
67461
67462  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67463    var expandToFitVideo = function expandToFitVideo() {
67464      var paddedVideoWidth = adVideoWidth + 30;
67465
67466      if (videoAdPlaying && currentWidth < paddedVideoWidth) {
67467        setCurrentWidth(window.outerWidth);
67468        window.resizeTo(paddedVideoWidth, window.outerHeight);
67469      } else if (window.outerWidth !== currentWidth) {
67470        window.resizeTo(currentWidth, window.outerHeight);
67471      }
67472    };
67473
67474    expandToFitVideo();
67475  }, [videoAdPlaying, currentWidth, adVideoWidth]);
67476
67477  var _useState45 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(true),
67478      _useState46 = slicedToArraybabel_target_legacy_default()(_useState45, 2),
67479      paused = _useState46[0],
67480      setPaused = _useState46[1];
67481
67482  var onPlayStatusChanged = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (play) {
67483    if (play) {
67484      setPulsate(false);
67485    }
67486
67487    Object(loggerbabel_target_legacy["c" /* log */])("play status changed", play);
67488    emit(play ? "play" : "pause");
67489    setPaused(!play);
67490    adEngines.forEach(function (engine) {
67491      if (engine.onPlayStatusChanged) {
67492        engine.onPlayStatusChanged(play);
67493      }
67494    });
67495  }, [adEngines, emit]);
67496
67497  var _useState47 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67498      _useState48 = slicedToArraybabel_target_legacy_default()(_useState47, 2),
67499      awaitingTcString = _useState48[0],
67500      setAwaitingTcString = _useState48[1];
67501
67502  var _useState49 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
67503      _useState50 = slicedToArraybabel_target_legacy_default()(_useState49, 2),
67504      hasPlayedAd = _useState50[0],
67505      setHasPlayedAd = _useState50[1];
67506
67507  var unmuteIfTriton = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67508    if (volume === 0 && tritonProvider) setVolume(0.2);
67509  }, [setVolume, tritonProvider, volume]);
67510  /**
67511   * Checks if a VAST Preroll should be played before the stream.
67512   * If yes: {@see VastEngine} will be asked to request and play an ad.
67513   *
67514   * @return True if a VAST Preroll was requested, false otherwise
67515   */
67516
67517  var tryPlayingVastPrerollBeforePlayingStream = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67518    if (vastProviderStatus === AdProviderStatus.READY && vastPrerollState === VastPrerollState.WILL_REQUEST) {
67519      if (adEngines.length !== 1) {
67520        Object(loggerbabel_target_legacy["e" /* warn */])("AIS Preroll will not be suppressed, because more than one adEngine was configured. Parameter playPrerollBeforeStream is ignored.");
67521        setVastPrerollState(VastPrerollState.NONE_OR_FAILED);
67522        return false;
67523      } else if (adEngines[0] instanceof vastbabel_target_legacy_VastEngine !== true) {
67524        Object(loggerbabel_target_legacy["b" /* error */])("AIS Preroll will not be suppressed, because VastEngine was not available");
67525        return false;
67526      } else {
67527        var vastEngine = adEngines[0];
67528
67529        if (vastEngine.onPlayStatusChanged) {
67530          setVastPrerollState(VastPrerollState.REQUESTED);
67531          vastEngine.onPlayStatusChanged(true);
67532          return true;
67533        } else {
67534          setVastPrerollState(VastPrerollState.NONE_OR_FAILED);
67535          return false;
67536        }
67537      }
67538    }
67539
67540    return false;
67541  }, [adEngines, vastPrerollState, vastProviderStatus]);
67542  var requestPlay = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (play) {
67543    // Store the value of play, if it changed from last invocation
67544    // Required to start playback, if it was previously requested but locked (see the useEffect() below).
67545    if (play !== playRequested) {
67546      setPlayRequested(play);
67547    }
67548
67549    if (play && playLocked) {
67550      Object(loggerbabel_target_legacy["c" /* log */])("Play was requested but is locked. Not playing!");
67551      return;
67552    }
67553
67554    if (play && typeof tcString === "boolean" && tcString) {
67555      setStalled(true);
67556      setAwaitingTcString(true);
67557      return;
67558    }
67559
67560    if (play && !allAdEnginesReady) {
67561      Object(loggerbabel_target_legacy["c" /* log */])("Play was requested but not all ad engines are ready. Not playing!");
67562      setAwaitingAdEngineInitializationTimeOut(true);
67563    } else {
67564      Object(loggerbabel_target_legacy["c" /* log */])("Request play", play);
67565
67566      if (vastPrerollState === VastPrerollState.WILL_REQUEST) {
67567        var willTry = tryPlayingVastPrerollBeforePlayingStream();
67568
67569        if (willTry) {
67570          Object(loggerbabel_target_legacy["c" /* log */])("Play was requested but first a VAST preroll will be tried to be played");
67571          return;
67572        } else {
67573          setVastPrerollState(VastPrerollState.NONE_OR_FAILED);
67574        }
67575      }
67576
67577      if (play) {
67578        unmuteIfTriton();
67579        onTrackedEvent("start", rpId);
67580        setPulsate(false);
67581      } else {
67582        onTrackedEvent(seekable ? "pause" : "stop", rpId);
67583      }
67584
67585      if (!audioEngine) {
67586        Object(loggerbabel_target_legacy["e" /* warn */])("No audio engine");
67587        return;
67588      }
67589
67590      if (play && !hasPlayedAd && videoRef.current) {
67591        Object(loggerbabel_target_legacy["c" /* log */])("Trying to play ad");
67592        audioEngine.brieflyMute();
67593        videoRef.current.play();
67594        setHasPlayedAd(true);
67595      }
67596
67597      Object(loggerbabel_target_legacy["c" /* log */])("Toggling audio", play);
67598      audioEngine.toggleAudio(play);
67599    }
67600  }, [playRequested, playLocked, tcString, allAdEnginesReady, vastPrerollState, audioEngine, hasPlayedAd, tryPlayingVastPrerollBeforePlayingStream, unmuteIfTriton, onTrackedEvent, rpId, seekable]);
67601  /**
67602   * If VastProvider.playPrerollBeforeStream is configured as true,
67603   * {@see VastEngine} will inform {@see Player}, once it has (not) successfully played a preroll.
67604   */
67605
67606  var onPrerollPlayResult = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (successfullyPlayed) {
67607    if (successfullyPlayed) {
67608      setVastPrerollState(VastPrerollState.SUCCESSFULLY_PLAYED);
67609    } else {
67610      setVastPrerollState(VastPrerollState.NONE_OR_FAILED);
67611    }
67612
67613    requestPlay(true);
67614  }, [requestPlay]);
67615  /**
67616   * Update adEngines' callbacks.
67617   * The AdEngines are not React components and their callbacks are not passed as props.
67618   * Therefore, they need to be updated explicitly, whenever they change.
67619   * */
67620
67621  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67622    if (adEngines !== undefined && adEngines.length > 0) {
67623      var _iterator = _createForOfIteratorHelper(adEngines),
67624          _step;
67625
67626      try {
67627        for (_iterator.s(); !(_step = _iterator.n()).done;) {
67628          var engine = _step.value;
67629          engine.setCallbacks({
67630            requestStreamPause: requestStreamPause,
67631            requestStreamPlay: requestStreamPlay,
67632            onCompanionAds: onCompanionAds,
67633            onPrerollPlayResult: onPrerollPlayResult
67634          });
67635        }
67636      } catch (err) {
67637        _iterator.e(err);
67638      } finally {
67639        _iterator.f();
67640      }
67641    }
67642  }, [adEngines, onCompanionAds, onPrerollPlayResult, requestStreamPause, requestStreamPlay]);
67643  /**
67644   * Request play again, if it was request previously but not started because ad engines weren't ready yet.
67645   */
67646
67647  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67648    if (awaitingAdEngineInitializationTimeOut && (adEngineInitializationTimedOut || allAdEnginesReady)) {
67649      Object(loggerbabel_target_legacy["c" /* log */])("Ad engines initialization finished or timed out, requesting play again");
67650      setAwaitingAdEngineInitializationTimeOut(false);
67651      requestPlay(true);
67652    }
67653  }, [adEngineInitializationTimedOut, allAdEnginesReady, awaitingAdEngineInitializationTimeOut, requestPlay]);
67654  var adEngineTimer = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
67655  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67656    if (typeof tcString === "string") {
67657      clearTimeout(adEngineTimer.current);
67658      setInitAdEngines(true);
67659    } else {
67660      adEngineTimer.current = setTimeout(function () {
67661        Object(loggerbabel_target_legacy["c" /* log */])("Consent timeout has passed, ad engines safe to initialise");
67662        setInitAdEngines(true);
67663      }, APIProviderbabel_target_legacy["b" /* tcWaitTimeout */] + 300); // Wait for CMP configuration to finish or fail
67664    }
67665
67666    return function () {
67667      return clearTimeout(adEngineTimer.current);
67668    };
67669  }, [tcString]);
67670  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67671    var initAdswizz = /*#__PURE__*/function () {
67672      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
67673        var hasSetCookiePolicy, cookieConsent, adswizzEngine;
67674        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
67675          while (1) {
67676            switch (_context.prev = _context.next) {
67677              case 0:
67678                if (!(tcString === true)) {
67679                  _context.next = 4;
67680                  break;
67681                }
67682
67683                return _context.abrupt("return");
67684
67685              case 4:
67686                if (tcString === false) {
67687                  Object(loggerbabel_target_legacy["c" /* log */])("Initialising Adswizz - not expecting a consent string");
67688                }
67689
67690              case 5:
67691                if (!(audioEngine && adswizzProvider && adswizzProvider.type === "adswizz")) {
67692                  _context.next = 19;
67693                  break;
67694                }
67695
67696                if (!Object(adManagerbabel_target_legacy["b" /* adsBlockedSync */])()) {
67697                  _context.next = 10;
67698                  break;
67699                }
67700
67701                Object(loggerbabel_target_legacy["c" /* log */])("blocked");
67702                setAdsWizzProviderStatus(AdProviderStatus.BLOCKED);
67703                return _context.abrupt("return");
67704
67705              case 10:
67706                hasSetCookiePolicy = localStorage.getItem("hasSetCookiePolicy");
67707                cookieConsent = !!hasSetCookiePolicy && !!state.cookie.policy && Object(APIManagerbabel_target_legacy["e" /* evaluateCookieConsent */])("performance", state.cookie.policy);
67708                adswizzEngine = new adsWizzbabel_target_legacy_AdsWizzEngine(Playerbabel_target_legacy_objectSpread(Playerbabel_target_legacy_objectSpread({}, adswizzProvider), {}, {
67709                  cookieConsent: cookieConsent,
67710                  tcString: tcString || undefined
67711                }));
67712                _context.next = 15;
67713                return adswizzEngine.init();
67714
67715              case 15:
67716                adswizzEngine.setCallbacks({
67717                  requestStreamPause: requestStreamPause,
67718                  requestStreamPlay: requestStreamPlay,
67719                  onCompanionAds: receivedCompanionAd
67720                });
67721                setAdEngines(function (adEngines) {
67722                  return [].concat(toConsumableArraybabel_target_legacy_default()(adEngines), [adswizzEngine]);
67723                });
67724                Object(loggerbabel_target_legacy["c" /* log */])("initAdswizz done");
67725                setAdsWizzProviderStatus(AdProviderStatus.READY);
67726
67727              case 19:
67728              case "end":
67729                return _context.stop();
67730            }
67731          }
67732        }, _callee);
67733      }));
67734
67735      return function initAdswizz() {
67736        return _ref2.apply(this, arguments);
67737      };
67738    }();
67739
67740    if (!playLocked && initAdEngines && (adsWizzProviderStatus === AdProviderStatus.NOT_YET_INITIALIZED || adsWizzProviderStatus === AdProviderStatus.INITIALIZING)) {
67741      setAdsWizzProviderStatus(AdProviderStatus.INITIALIZING);
67742      initAdswizz();
67743    }
67744  }, [adswizzProvider, requestStreamPause, requestStreamPlay, receivedCompanionAd, state.cookie.policy, tcString, audioEngine, playLocked, vastProviderStatus, adsWizzProviderStatus, initAdEngines]);
67745  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67746    var initTriton = function initTriton() {
67747      if (tcString === true) return; // we are waiting for consent
67748
67749      if (audioEngine && tritonProvider && tritonProvider.type === "triton") {
67750        if (Object(adManagerbabel_target_legacy["b" /* adsBlockedSync */])()) {
67751          Object(loggerbabel_target_legacy["c" /* log */])("blocked");
67752          setTritonProviderStatus(AdProviderStatus.BLOCKED);
67753          return;
67754        }
67755
67756        var tritonEngine = new tritonbabel_target_legacy_TritonEngine(Playerbabel_target_legacy_objectSpread(Playerbabel_target_legacy_objectSpread({}, tritonProvider), {}, {
67757          tcString: tcString || undefined
67758        }));
67759        tritonEngine.setCallbacks({
67760          requestStreamPause: requestStreamPause,
67761          requestStreamPlay: requestStreamPlay,
67762          onCompanionAds: receivedCompanionAd
67763        });
67764        setAdEngines(function (adEngines) {
67765          return [].concat(toConsumableArraybabel_target_legacy_default()(adEngines), [tritonEngine]);
67766        });
67767        Object(loggerbabel_target_legacy["c" /* log */])("initTriton is done");
67768        setTritonProviderStatus(AdProviderStatus.READY);
67769      }
67770    };
67771
67772    if (!playLocked && initAdEngines && (tritonProviderStatus === AdProviderStatus.NOT_YET_INITIALIZED || tritonProviderStatus === AdProviderStatus.INITIALIZING)) {
67773      setTritonProviderStatus(AdProviderStatus.INITIALIZING);
67774      initTriton();
67775    }
67776  }, [requestStreamPause, requestStreamPlay, receivedCompanionAd, tritonProvider, tcString, audioEngine, playLocked, tritonProviderStatus, initAdEngines]);
67777  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67778    var initVast = /*#__PURE__*/function () {
67779      var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
67780        var vastEngine;
67781        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
67782          while (1) {
67783            switch (_context2.prev = _context2.next) {
67784              case 0:
67785                Object(loggerbabel_target_legacy["c" /* log */])("maybe vast", videoAdHolder.current, vastProvider);
67786
67787                if (!(videoAdHolder.current && audioEngine && vastProvider && vastProvider.type === "vast")) {
67788                  _context2.next = 25;
67789                  break;
67790                }
67791
67792                Object(loggerbabel_target_legacy["c" /* log */])("yes vast");
67793
67794                if (!Object(adManagerbabel_target_legacy["b" /* adsBlockedSync */])()) {
67795                  _context2.next = 7;
67796                  break;
67797                }
67798
67799                Object(loggerbabel_target_legacy["c" /* log */])("vast blocked");
67800                setVastProviderStatus(AdProviderStatus.BLOCKED);
67801                return _context2.abrupt("return");
67802
67803              case 7:
67804                Object(loggerbabel_target_legacy["c" /* log */])("loaded vast");
67805                vastEngine = new vastbabel_target_legacy_VastEngine(vastProvider, videoAdHolder, videoRef, [{
67806                  width: 300,
67807                  height: 250,
67808                  id: "rect"
67809                }], vastProvider.playPrerollBeforeStream);
67810                vastEngine.setCallbacks({
67811                  requestStreamPause: requestStreamPause,
67812                  requestStreamPlay: requestStreamPlay,
67813                  onCompanionAds: receivedCompanionAd,
67814                  onPrerollPlayResult: onPrerollPlayResult
67815                });
67816                _context2.prev = 10;
67817                _context2.next = 13;
67818                return vastEngine.setupAds();
67819
67820              case 13:
67821                _context2.next = 21;
67822                break;
67823
67824              case 15:
67825                _context2.prev = 15;
67826                _context2.t0 = _context2["catch"](10);
67827                Object(loggerbabel_target_legacy["e" /* warn */])(_context2.t0);
67828                setVastPrerollState(VastPrerollState.NONE_OR_FAILED);
67829                setVastProviderStatus(AdProviderStatus.BLOCKED);
67830                return _context2.abrupt("return");
67831
67832              case 21:
67833                setAdEngines(function (adEngines) {
67834                  return [].concat(toConsumableArraybabel_target_legacy_default()(adEngines), [vastEngine]);
67835                });
67836                Object(loggerbabel_target_legacy["c" /* log */])("initVast is done");
67837
67838                if (vastProvider.playPrerollBeforeStream === true) {
67839                  setVastPrerollState(VastPrerollState.WILL_REQUEST);
67840                } else {
67841                  setVastPrerollState(VastPrerollState.NOT_USED);
67842                }
67843
67844                setVastProviderStatus(AdProviderStatus.READY);
67845
67846              case 25:
67847              case "end":
67848                return _context2.stop();
67849            }
67850          }
67851        }, _callee2, null, [[10, 15]]);
67852      }));
67853
67854      return function initVast() {
67855        return _ref3.apply(this, arguments);
67856      };
67857    }();
67858
67859    if (!playLocked && initAdEngines && vastProviderStatus === AdProviderStatus.NOT_YET_INITIALIZED) {
67860      setVastProviderStatus(AdProviderStatus.INITIALIZING);
67861      initVast();
67862    }
67863  }, [videoAdHolder, audioEngine, vastProvider, requestStreamPause, requestStreamPlay, receivedCompanionAd, tcString, playLocked, vastProviderStatus, initAdEngines, onPrerollPlayResult]);
67864  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67865    if (awaitingTcString && cmpConsentFailed) {
67866      requestPlay(true);
67867      setAwaitingTcString(false);
67868    } else if (awaitingTcString && typeof tcString === "string") {
67869      requestPlay(true);
67870      setAwaitingTcString(false);
67871    }
67872  }, [cmpConsentFailed, awaitingTcString, requestPlay, tcString]);
67873  var requestSeek = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (seekTo) {
67874    setTime(seekTo);
67875
67876    if (!audioEngine) {
67877      return;
67878    }
67879
67880    audioEngine.seek(seekTo);
67881  }, [audioEngine]);
67882  var skipForward = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (skipBy) {
67883    if (!audioEngine) {
67884      return;
67885    }
67886
67887    audioEngine.skipForward(skipBy);
67888  }, [audioEngine]);
67889  var skipBack = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (skipBy) {
67890    if (!audioEngine) {
67891      return;
67892    }
67893
67894    audioEngine.skipBack(skipBy);
67895  }, [audioEngine]);
67896  var skipToLive = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67897    if (!audioEngine) {
67898      return;
67899    }
67900
67901    audioEngine.skipToEnd();
67902  }, [audioEngine]);
67903  var skipToStart = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
67904    if (!audioEngine) {
67905      return;
67906    }
67907
67908    audioEngine.skipToStart();
67909  }, [audioEngine]);
67910  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67911    if (!emitter) {
67912      return;
67913    }
67914
67915    var play = function play() {
67916      return requestPlay(true);
67917    };
67918
67919    var pause = function pause() {
67920      return requestPlay(false);
67921    };
67922
67923    emitter.on("nowplaying", setNowplaying);
67924    emitter.on("requestplay", play);
67925    emitter.on("requestpause", pause);
67926    emitter.on("requestseek", requestSeek);
67927    emitter.on("requestskipback", skipBack);
67928    emitter.on("requestskipforward", skipForward);
67929    emitter.on("requestskiptostart", skipToStart);
67930    emitter.on("requestskiptolive", skipToLive);
67931    emitter.on("requestsetvolume", doSetVolume);
67932    return function () {
67933      emitter.off("nowplaying", setNowplaying);
67934      emitter.off("requestplay", play);
67935      emitter.off("requestpause", pause);
67936      emitter.off("requestseek", requestSeek);
67937      emitter.off("requestskipback", skipBack);
67938      emitter.off("requestskipforward", skipForward);
67939      emitter.off("requestskiptostart", skipToStart);
67940      emitter.off("requestskiptolive", skipToLive);
67941      emitter.off("requestsetvolume", doSetVolume);
67942    };
67943  }, [doSetVolume, emitter, onCompanionAds, requestPlay, requestSeek, skipBack, skipForward, skipToLive, skipToStart]);
67944  var onTimeUpdated = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (status) {
67945    if (!status.paused && status.time > 1) {
67946      adEngines.forEach(function (engine) {
67947        if (engine.onTime) {
67948          engine.onTime(status.time, status.end);
67949        }
67950      });
67951    }
67952
67953    emit("time", status);
67954    setTime(status.time || 0);
67955    setLive(!!status.live);
67956    setSeekable(!!status.seekable);
67957
67958    if (status.seekable) {
67959      setEnd(status.end);
67960      setStart(status.start);
67961    }
67962
67963    setStalled(!!status.stalled);
67964  }, [adEngines, emit]);
67965  var useNP = nowplaying && nowplaying.pi && nowplaying.pi.startTime;
67966  var showStart = useNP ? parseInt(useNP) : undefined;
67967  var showEnd = useNP ? parseInt(nowplaying && nowplaying.pi && nowplaying.pi.stopTime || "") : undefined;
67968  /**
67969   * Call requestPlay if playback becomes unlocked after requestPlay was already called.
67970   * This provides support for the following scenario:
67971   * 1. Playback is locked
67972   * 2. User (or IFrame code) requests playback
67973   * 3. requestPlayback is called, but playback is not started, because it is locked
67974   * 4. Time (e.g. several seconds) passes
67975   * 5. Playback is unlocked
67976   * 6. Playback starts without user (or IFrame code) requesting playback again
67977   */
67978
67979  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
67980    if (!playLocked && playRequested && !retriggeredPlayRequestOnPlayUnlock) {
67981      // Bugfix: Prevent start of stream playback while Ad is playing.
67982      // This happened because this useEffect is called in sub-second intervals (namely everytime requestPlay changes, which happens on every onTimeUpdated).
67983      // The ad was playing, this useEffect called requestPlay(true) and therefore the stream started playing.
67984      // The fix is: Use retriggeredPlayRequestOnPlayUnlock to remember that we already retriggered playRequest after playback was unlocked.
67985      Object(loggerbabel_target_legacy["c" /* log */])("retriggering requestPlay!");
67986      setRetriggeredPlayRequestOnPlayUnlock(true);
67987      requestPlay(true);
67988    }
67989  }, [playRequested, playLocked, requestPlay, retriggeredPlayRequestOnPlayUnlock]);
67990  var vastWontChangeStreamParameters = // If ad engine initialization has timed out, don't wait for changes to stream parameters.
67991  adEngineInitializationTimedOut || // Infer if vast ad provider will modify stream parameters.
67992  vastProviderStatus === AdProviderStatus.NOT_USED || vastProviderStatus === AdProviderStatus.BLOCKED || vastProviderStatus === AdProviderStatus.READY && (vastPrerollState === VastPrerollState.NOT_USED || vastPrerollState === VastPrerollState.NONE_OR_FAILED || vastPrerollState === VastPrerollState.SUCCESSFULLY_PLAYED);
67993  var audioEngineStreamsReady = !playLocked && allAdEnginesReady && vastWontChangeStreamParameters;
67994
67995  if (state === null || state === void 0 ? void 0 : (_state$cookie = state.cookie) === null || _state$cookie === void 0 ? void 0 : _state$cookie.dead) {
67996    return Object(preact_modulebabel_target_legacy["h"])(StationErrorbabel_target_legacy["a" /* StationError */], null);
67997  }
67998
67999  return Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, disablePlaybackButtons && disableScrubber || Object(preact_modulebabel_target_legacy["h"])(TransportControlsbabel_target_legacy["a" /* TransportControls */], {
68000    key: "transportControls",
68001    start: start,
68002    end: end,
68003    time: time,
68004    showStart: showStart,
68005    showEnd: showEnd,
68006    live: live,
68007    paused: paused,
68008    seekable: seekable && !disableLiveSeek,
68009    requestPlay: requestPlay,
68010    requestSeek: requestSeek,
68011    skipBack: skipBack,
68012    skipForward: skipForward,
68013    skipToLive: skipToLive,
68014    skipToStart: skipToStart,
68015    volume: volume,
68016    setVolume: doSetVolume,
68017    stalled: stalled || vastPrerollState === VastPrerollState.REQUESTED,
68018    rpId: rpId,
68019    disabled: videoAdPlaying,
68020    darkTheme: theme === "DARK",
68021    logo: stationLogo,
68022    stationUrl: stationUrl,
68023    stationName: stationName,
68024    attention: pulsate && vastPrerollState !== VastPrerollState.REQUESTED,
68025    disablePlaybackButtons: disablePlaybackButtons
68026    /*
68027     Show play button only if clicking it will trigger playback immediately (e.g. not within a setTimeout()).
68028     Rationale: Safari blocks playback from JavaScript if it's no immediate consequence of button click.
68029     */
68030    ,
68031    showPlayButton: audioEngineStreamsReady,
68032    disableScrubber: disableScrubber
68033  }), Object(preact_modulebabel_target_legacy["h"])(AudioEnginebabel_target_legacy["a" /* AudioEngine */], {
68034    key: decoratedStreams[0].url,
68035    ref: onAudioEngineRefChange,
68036    autoplay: autoplay,
68037    streams: decoratedStreams,
68038    onPlayStatusChanged: onPlayStatusChanged,
68039    onTimeUpdated: onTimeUpdated,
68040    volume: volume,
68041    isOnDemand: isOnDemand,
68042    onStreamError: onStreamError,
68043    usingTriton: !!tritonProvider,
68044    preventLoadingStreams: !audioEngineStreamsReady
68045  }), Object(preact_modulebabel_target_legacy["h"])("div", {
68046    key: "videoOverlay",
68047    className: videoAdPlaying ? Player_module_default.a.videoAdOverlay : Player_module_default.a.hidden
68048  }, vastProvider && Object(preact_modulebabel_target_legacy["h"])("div", {
68049    className: Player_module_default.a.videowrap,
68050    ref: videoAdHolder
68051  }, Object(preact_modulebabel_target_legacy["h"])("video", {
68052    className: Player_module_default.a.video,
68053    ref: videoRef,
68054    width: adVideoWidth,
68055    height: "360"
68056  }))));
68057};
68058/* harmony default export */ var Playerbabel_target_legacy = (Playerbabel_target_legacy_Player);
68059// CONCATENATED MODULE: ./src/components/Player/index.ts?babel-target=legacy
68060
68061// EXTERNAL MODULE: ./src/components/SearchPanel/index.ts?babel-target=legacy + 3 modules
68062var SearchPanelbabel_target_legacy = __webpack_require__(966);
68063
68064// EXTERNAL MODULE: ./src/components/WidgetSpace/WidgetSpace.module.scss
68065var WidgetSpace_module = __webpack_require__(300);
68066var WidgetSpace_module_default = /*#__PURE__*/__webpack_require__.n(WidgetSpace_module);
68067
68068// CONCATENATED MODULE: ./src/components/CompanionAdHolder/CompanionAdHolder.tsx?babel-target=legacy
68069
68070
68071
68072var CompanionAdHolderbabel_target_legacy_CompanionAdHolder = function CompanionAdHolder(_ref) {
68073  var ads = _ref.ads,
68074      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["ads"]);
68075
68076  return ads && !!ads.length ? Object(preact_modulebabel_target_legacy["h"])("div", extendsbabel_target_legacy_default()({}, props, {
68077    dangerouslySetInnerHTML: {
68078      __html: typeof ads === "string" ? ads : ads[0]
68079    }
68080  })) : null;
68081};
68082/* harmony default export */ var CompanionAdHolderbabel_target_legacy = (CompanionAdHolderbabel_target_legacy_CompanionAdHolder);
68083// CONCATENATED MODULE: ./src/components/CompanionAdHolder/index.ts?babel-target=legacy
68084
68085// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/toArray.js?babel-target=legacy
68086var toArraybabel_target_legacy = __webpack_require__(780);
68087var toArraybabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(toArraybabel_target_legacy);
68088
68089// EXTERNAL MODULE: ./src/components/NowPlayingWidget/NowPlayingWidget.module.scss
68090var NowPlayingWidget_module = __webpack_require__(86);
68091var NowPlayingWidget_module_default = /*#__PURE__*/__webpack_require__.n(NowPlayingWidget_module);
68092
68093// EXTERNAL MODULE: ./src/components/LiveIcon/index.ts?babel-target=legacy + 1 modules
68094var LiveIconbabel_target_legacy = __webpack_require__(305);
68095
68096// EXTERNAL MODULE: ./node_modules/classnames?babel-target=legacy
68097var classnames_babel_target_legacy = __webpack_require__(27);
68098var classnames_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(classnames_babel_target_legacy);
68099
68100// EXTERNAL MODULE: ./src/components/SongBox/SongBox.module.scss
68101var SongBox_module = __webpack_require__(136);
68102var SongBox_module_default = /*#__PURE__*/__webpack_require__.n(SongBox_module);
68103
68104// EXTERNAL MODULE: ./src/components/EqualizerIcon/EqualizerIcon.module.scss
68105var EqualizerIcon_module = __webpack_require__(301);
68106var EqualizerIcon_module_default = /*#__PURE__*/__webpack_require__.n(EqualizerIcon_module);
68107
68108// CONCATENATED MODULE: ./src/components/EqualizerIcon/EqualizerIcon.tsx?babel-target=legacy
68109
68110
68111
68112 // Based on https://codepen.io/adamdoti/pen/wWXLpZ
68113
68114var EqualizerIconbabel_target_legacy_EqualizerIcon = function EqualizerIcon(props) {
68115  return Object(preact_modulebabel_target_legacy["h"])("svg", extendsbabel_target_legacy_default()({
68116    width: "12",
68117    height: "12",
68118    xmlns: "http://www.w3.org/2000/svg"
68119  }, props), Object(preact_modulebabel_target_legacy["h"])("rect", {
68120    className: classnames_babel_target_legacy_default()(EqualizerIcon_module_default.a.bar, EqualizerIcon_module_default.a.eq1),
68121    x: "1",
68122    y: "5",
68123    width: "2",
68124    height: "7"
68125  }), Object(preact_modulebabel_target_legacy["h"])("rect", {
68126    className: classnames_babel_target_legacy_default()(EqualizerIcon_module_default.a.bar, EqualizerIcon_module_default.a.eq2),
68127    x: "4",
68128    y: "0",
68129    width: "2",
68130    height: "12"
68131  }), Object(preact_modulebabel_target_legacy["h"])("rect", {
68132    className: classnames_babel_target_legacy_default()(EqualizerIcon_module_default.a.bar, EqualizerIcon_module_default.a.eq3),
68133    x: "7",
68134    y: "7",
68135    width: "2",
68136    height: "5"
68137  }), Object(preact_modulebabel_target_legacy["h"])("rect", {
68138    className: classnames_babel_target_legacy_default()(EqualizerIcon_module_default.a.bar, EqualizerIcon_module_default.a.eq4),
68139    x: "10",
68140    y: "4",
68141    width: "2",
68142    height: "8"
68143  }));
68144};
68145/* harmony default export */ var EqualizerIconbabel_target_legacy = (EqualizerIconbabel_target_legacy_EqualizerIcon);
68146// CONCATENATED MODULE: ./src/components/EqualizerIcon/index.ts?babel-target=legacy
68147
68148// EXTERNAL MODULE: ./node_modules/react-i18next/dist/es?babel-target=legacy + 9 modules
68149var es_babel_target_legacy = __webpack_require__(25);
68150
68151// EXTERNAL MODULE: ./src/components/IconSprite/index.ts?babel-target=legacy + 1 modules
68152var IconSpritebabel_target_legacy = __webpack_require__(131);
68153
68154// CONCATENATED MODULE: ./src/components/SongBox/SongBox.tsx?babel-target=legacy
68155
68156
68157
68158
68159
68160
68161
68162
68163
68164
68165
68166
68167
68168var makeSongActionLink = function makeSongActionLink(song, action) {
68169  return action.baseurl.replace("[artist]", encodeURIComponent(song.artistName || "")).replace("[title]", encodeURIComponent(song.name || ""));
68170};
68171var icons = {
68172  DOWNLOAD: "songaction-download",
68173  INFO: "songaction-info",
68174  BUY: "songaction-buy",
68175  RATE: "songaction-rate",
68176  ADD: "songaction-add"
68177};
68178var SongBoxbabel_target_legacy_SongBox = function SongBox(_ref) {
68179  var _moduleClassSelector, _nowPlayingClassSelec;
68180
68181  var song = _ref.song,
68182      currentSong = _ref.currentSong,
68183      narrow = _ref.narrow,
68184      className = _ref.className,
68185      songAction = _ref.songAction,
68186      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["song", "currentSong", "narrow", "className", "songAction"]);
68187
68188  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68189      t = _useTranslation.t;
68190
68191  var labels = {
68192    DOWNLOAD: t("SONG_ACTION_DOWNLOAD"),
68193    INFO: t("SONG_ACTION_INFO"),
68194    BUY: t("SONG_ACTION_BUY"),
68195    RATE: t("SONG_ACTION_RATE"),
68196    ADD: t("SONG_ACTION_ADD")
68197  };
68198  var img = song.songArtURL && Object(preact_modulebabel_target_legacy["h"])("img", {
68199    src: song.songArtURL,
68200    alt: song.artistName,
68201    className: SongBox_module_default.a.img
68202  });
68203  var songStatus = currentSong ? Object(preact_modulebabel_target_legacy["h"])("h5", {
68204    className: classnames_babel_target_legacy_default()(SongBox_module_default.a.label, !songAction && SongBox_module_default.a.noAction)
68205  }, t("LABEL_NOW_PLAYING"), " ", Object(preact_modulebabel_target_legacy["h"])(EqualizerIconbabel_target_legacy_EqualizerIcon, null)) : Object(preact_modulebabel_target_legacy["h"])("p", {
68206    className: classnames_babel_target_legacy_default()(SongBox_module_default.a.time, !songAction && SongBox_module_default.a.noAction)
68207  }, Object(utilsbabel_target_legacy["f" /* formatLocaleTime */])(parseInt(song.startTime)));
68208  var songArtURL = song.songArtURL;
68209  var moduleClassSelector = (_moduleClassSelector = {}, definePropertybabel_target_legacy_default()(_moduleClassSelector, SongBox_module_default.a.noActionNoArt, !songAction && !songArtURL), definePropertybabel_target_legacy_default()(_moduleClassSelector, SongBox_module_default.a.noAction, !songAction && songArtURL), definePropertybabel_target_legacy_default()(_moduleClassSelector, SongBox_module_default.a.noArt, songAction && !songArtURL), _moduleClassSelector);
68210  var currentOrNarrow = Boolean(currentSong || narrow);
68211  var hasAlbumArt = Boolean(songArtURL);
68212  var nowPlayingClassSelector = (_nowPlayingClassSelec = {}, definePropertybabel_target_legacy_default()(_nowPlayingClassSelec, SongBox_module_default.a.details, !currentOrNarrow && hasAlbumArt), definePropertybabel_target_legacy_default()(_nowPlayingClassSelec, SongBox_module_default.a.detailsNowPlaying, currentOrNarrow && hasAlbumArt), definePropertybabel_target_legacy_default()(_nowPlayingClassSelec, SongBox_module_default.a.detailsNowPlayinNoAlbumArt, currentOrNarrow && !hasAlbumArt), definePropertybabel_target_legacy_default()(_nowPlayingClassSelec, SongBox_module_default.a.detailsNoAlbumArt, !currentOrNarrow && !hasAlbumArt), _nowPlayingClassSelec);
68213  return Object(preact_modulebabel_target_legacy["h"])("div", extendsbabel_target_legacy_default()({
68214    className: classnames_babel_target_legacy_default()(className, SongBox_module_default.a.wrap, module
68214ClassSelector)
68215  }, props), img, Object(preact_modulebabel_target_legacy["h"])("div", {
68216    className: classnames_babel_target_legacy_default()(nowPlayingClassSelector)
68217  }, songAction && Object(preact_modulebabel_target_legacy["h"])("a", {
68218    href: makeSongActionLink(song, songAction),
68219    target: "parent",
68220    rel: "noreferrer noopener",
68221    className: classnames_babel_target_legacy_default()(SongBox_module_default.a.songActionWrap)
68222  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68223    className: classnames_babel_target_legacy_default()(SongBox_module_default.a.songAction)
68224  }, Object(preact_modulebabel_target_legacy["h"])("span", {
68225    className: SongBox_module_default.a.songActionLabel
68226  }, labels[songAction.type]), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
68227    name: icons[songAction.type]
68228  }))), songStatus, Object(preact_modulebabel_target_legacy["h"])("p", {
68229    className: SongBox_module_default.a.title,
68230    title: song.name
68231  }, song.name), Object(preact_modulebabel_target_legacy["h"])("p", {
68232    className: SongBox_module_default.a.artist,
68233    title: song.artistName
68234  }, t("LABEL_BY_ARTIST", {
68235    artist: song.artistName
68236  }))));
68237};
68238/* harmony default export */ var SongBoxbabel_target_legacy = (SongBoxbabel_target_legacy_SongBox);
68239// CONCATENATED MODULE: ./src/components/SongBox/index.ts?babel-target=legacy
68240
68241// EXTERNAL MODULE: ./src/components/RPIcon/index.ts?babel-target=legacy + 1 modules
68242var RPIconbabel_target_legacy = __webpack_require__(42);
68243
68244// EXTERNAL MODULE: ./src/components/MiniSongBox/MiniSongBox.module.scss
68245var MiniSongBox_module = __webpack_require__(417);
68246var MiniSongBox_module_default = /*#__PURE__*/__webpack_require__.n(MiniSongBox_module);
68247
68248// CONCATENATED MODULE: ./src/components/MiniSongBox/MiniSongBox.tsx?babel-target=legacy
68249
68250
68251
68252
68253
68254
68255
68256
68257var MiniSongBoxbabel_target_legacy_MiniSongBox = function MiniSongBox(_ref) {
68258  var song = _ref.song,
68259      className = _ref.className,
68260      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["song", "className"]);
68261
68262  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68263      t = _useTranslation.t;
68264
68265  return Object(preact_modulebabel_target_legacy["h"])("div", extendsbabel_target_legacy_default()({
68266    className: classnames_babel_target_legacy_default()(className, MiniSongBox_module_default.a.wrap)
68267  }, props), song.songArtURL && Object(preact_modulebabel_target_legacy["h"])("img", {
68268    src: song.songArtURL,
68269    alt: song.artistName,
68270    className: MiniSongBox_module_default.a.img
68271  }), Object(preact_modulebabel_target_legacy["h"])("h5", {
68272    className: MiniSongBox_module_default.a.label
68273  }, Object(preact_modulebabel_target_legacy["h"])(EqualizerIconbabel_target_legacy_EqualizerIcon, null)), Object(preact_modulebabel_target_legacy["h"])("p", {
68274    className: MiniSongBox_module_default.a.title,
68275    title: song.name
68276  }, song.name), Object(preact_modulebabel_target_legacy["h"])("p", {
68277    className: MiniSongBox_module_default.a.artist,
68278    title: song.artistName
68279  }, t("LABEL_BY_ARTIST", {
68280    artist: song.artistName
68281  })));
68282};
68283/* harmony default export */ var MiniSongBoxbabel_target_legacy = (MiniSongBoxbabel_target_legacy_MiniSongBox);
68284// CONCATENATED MODULE: ./src/components/MiniSongBox/index.ts?babel-target=legacy
68285
68286// CONCATENATED MODULE: ./src/components/NowPlayingWidget/NowPlayingWidget.tsx?babel-target=legacy
68287
68288
68289
68290
68291
68292
68293
68294
68295
68296
68297
68298
68299
68300
68301
68302
68303
68304
68305
68306var NowPlayingWidgetbabel_target_legacy_NowPlayingWidget = function NowPlayingWidget(_ref) {
68307  var nowPlaying = _ref.nowPlaying,
68308      stacked = _ref.stacked,
68309      compact = _ref.compact;
68310  var img;
68311  var name;
68312  var subtitle;
68313  var description;
68314  var time;
68315
68316  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
68317      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
68318      expanded = _useState2[0],
68319      setExpanded = _useState2[1];
68320
68321  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68322      t = _useTranslation.t;
68323
68324  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
68325      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
68326      state = _useAPI2[0];
68327
68328  var toggle = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
68329    return setExpanded(function (e) {
68330      return !e;
68331    });
68332  }, []);
68333
68334  if (!nowPlaying) {
68335    return Object(preact_modulebabel_target_legacy["h"])("div", {
68336      className: NowPlayingWidget_module_default.a.wrap
68337    }, Object(preact_modulebabel_target_legacy["h"])("h2", {
68338      className: NowPlayingWidget_module_default.a.header
68339    }, " "), Object(preact_modulebabel_target_legacy["h"])("figure", {
68340      className: NowPlayingWidget_module_default.a.figure
68341    }), Object(preact_modulebabel_target_legacy["h"])("div", {
68342      className: NowPlayingWidget_module_default.a.details
68343    }, Object(preact_modulebabel_target_legacy["h"])("p", {
68344      className: NowPlayingWidget_module_default.a.time
68345    }
68345)));
68346  }
68347
68348  var isPlayingSong;
68349  var currentSong;
68350  var history;
68351  var isOD = false;
68352
68353  if ("streams" in nowPlaying) {
68354    isOD = true;
68355
68356    if (nowPlaying.seriesName) {
68357      name = nowPlaying.seriesName;
68358      subtitle = nowPlaying.episodeName;
68359    } else {
68360      name = nowPlaying.episodeName;
68361    }
68362
68363    description = nowPlaying.description;
68364    img = nowPlaying.imageUrl;
68365
68366    if (nowPlaying.startTime) {
68367      var secs = parseInt(nowPlaying.startTime);
68368
68369      if (secs) {
68370        time = Object(utilsbabel_target_legacy["e" /* formatLocaleDateTime */])(new Date(secs * 1000));
68371      }
68372    }
68373
68374    if (!time && nowPlaying.startTimeString) {
68375      var date = new Date(nowPlaying.startTimeString);
68376
68377      if (date) {
68378        time = Object(utilsbabel_target_legacy["e" /* formatLocaleDateTime */])(date);
68379      }
68380    }
68381  } else {
68382    if (nowPlaying.pi) {
68383      time = Object(utilsbabel_target_legacy["g" /* formatProgrammeTime */])(nowPlaying.pi);
68384    }
68385
68386    name = nowPlaying.pi ? nowPlaying.pi.programmeName : nowPlaying.now && nowPlaying.now.serviceName || "";
68387    description = nowPlaying.pi ? nowPlaying.pi.programmeDescription : nowPlaying.now && nowPlaying.now.serviceDescription || "";
68388    img = nowPlaying.pi ? nowPlaying.pi.imageUrl : nowPlaying.now && nowPlaying.now.imageUrl || "";
68389    isPlayingSong = nowPlaying.now && "song" in nowPlaying.now;
68390    history = nowPlaying.previous;
68391
68392    if (history) {
68393      history = history.sort(function (a, b) {
68394        return parseInt(b.startTime) - parseInt(a.startTime) || 0;
68395      });
68396    }
68397
68398    if (isPlayingSong) {
68399      currentSong = nowPlaying.now;
68400    } else if (history && history.length) {
68401      var _history = history;
68402
68403      var _history2 = toArraybabel_target_legacy_default()(_history);
68404
68405      currentSong = _history2[0];
68406      history = _history2.slice(1);
68407    }
68408  }
68409
68410  return Object(preact_modulebabel_target_legacy["h"])("div", {
68411    className: classnames_babel_target_legacy_default()(NowPlayingWidget_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, NowPlayingWidget_module_default.a.stacked, stacked))
68412  }, Object(preact_modulebabel_target_legacy["h"])("h4", {
68413    className: NowPlayingWidget_module_default.a.header
68414  }, isOD ? Object(preact_modulebabel_target_legacy["h"])("span", {
68415    className: NowPlayingWidget_module_default.a.od
68416  }, t("LABEL_ON_DEMAND")) : Object(preact_modulebabel_target_legacy["h"])("span", {
68417    className: NowPlayingWidget_module_default.a.live
68418  }, Object(preact_modulebabel_target_legacy["h"])(LiveIconbabel_target_legacy["a" /* LiveIcon */], {
68419    animate: true
68420  }), t("LABEL_LIVE")), t("LABEL_YOURE_LISTENING")), Object(preact_modulebabel_target_legacy["h"])("div", {
68421    className: classnames_babel_target_legacy_default()(NowPlayingWidget_module_default.a.body, definePropertybabel_target_legacy_default()({}, NowPlayingWidget_module_default.a.compact, compact))
68422  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68423    className: classnames_babel_target_legacy_default()(NowPlayingWidget_module_default.a.details, definePropertybabel_target_legacy_default()({}, NowPlayingWidget_module_default.a.hiddenWhenExpanded, expanded))
68424  }, Object(preact_modulebabel_target_legacy["h"])("figure", {
68425    className: NowPlayingWidget_module_default.a.figure
68426  }, img && Object(preact_modulebabel_target_legacy["h"])("img", {
68427    src: img,
68428    alt: name
68429  })), Object(preact_modulebabel_target_legacy["h"])("div", {
68430    className: NowPlayingWidget_module_default.a.info
68431  }, Object(preact_modulebabel_target_legacy["h"])("p", {
68432    className: NowPlayingWidget_module_default.a.time
68433  }, time && !expanded && Object(preact_modulebabel_target_legacy["h"])("span", null, time)), Object(preact_modulebabel_target_legacy["h"])("p", {
68434    className: NowPlayingWidget_module_default.a.title
68435  }, name), subtitle && Object(preact_modulebabel_target_legacy["h"])("p", {
68436    className: NowPlayingWidget_module_default.a.subtitle
68437  }, subtitle), Object(preact_modulebabel_target_legacy["h"])("p", {
68438    className: NowPlayingWidget_module_default.a.description
68439  }, description))), currentSong && (compact ? Object(preact_modulebabel_target_legacy["h"])(MiniSongBoxbabel_target_legacy_MiniSongBox, {
68440    song: currentSong
68441  }) : Object(preact_modulebabel_target_legacy["h"])("section", {
68442    className: classnames_babel_target_legacy_default()(NowPlayingWidget_module_default.a.nowPlaying, definePropertybabel_target_legacy_default()({}, NowPlayingWidget_module_default.a.expanded, expanded))
68443  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68444    className: NowPlayingWidget_module_default.a.current
68445  }, Object(preact_modulebabel_target_legacy["h"])(SongBoxbabel_target_legacy_SongBox, {
68446    key: currentSong.name,
68447    song: currentSong,
68448    currentSong: isPlayingSong,
68449    narrow: true,
68450    className: NowPlayingWidget_module_default.a.songbox,
68451    songAction: state.cookie.songaction
68452  }), Object(preact_modulebabel_target_legacy["h"])("button", {
68453    "aria-label": "Show recently played songs",
68454    onClick: toggle
68455  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
68456    src: __webpack_require__(896),
68457    colour: "white"
68458  }))), expanded && history && Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])("div", {
68459    className: NowPlayingWidget_module_default.a.list
68460  }, history.map(function (song) {
68461    return Object(preact_modulebabel_target_legacy["h"])(SongBoxbabel_target_legacy_SongBox, {
68462      key: song.name,
68463      song: song,
68464      className: NowPlayingWidget_module_default.a.oldsong,
68465      songAction: state.cookie.songaction
68466    });
68467  })), Object(preact_modulebabel_target_legacy["h"])("div", {
68468    className: NowPlayingWidget_module_default.a.fade
68469  }))))));
68470};
68471/* harmony default export */ var NowPlayingWidgetbabel_target_legacy = (NowPlayingWidgetbabel_target_legacy_NowPlayingWidget);
68472// CONCATENATED MODULE: ./src/components/NowPlayingWidget/index.ts?babel-target=legacy
68473
68474// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.starts-with.js?babel-target=legacy
68475var es_string_starts_withbabel_target_legacy = __webpack_require__(461);
68476
68477// EXTERNAL MODULE: ./src/components/IframeWidget/IframeWidget.module.scss
68478var IframeWidget_module = __webpack_require__(704);
68479var IframeWidget_module_default = /*#__PURE__*/__webpack_require__.n(IframeWidget_module);
68480
68481// EXTERNAL MODULE: ./src/lib/EventBus/useEventBus.ts?babel-target=legacy
68482var useEventBusbabel_target_legacy = __webpack_require__(430);
68483
68484// CONCATENATED MODULE: ./src/components/IframeWidget/IframeWidget.tsx?babel-target=legacy
68485
68486
68487
68488
68489/* eslint-disable @typescript-eslint/no-explicit-any */
68490
68491
68492
68493
68494
68495
68496var IframeWidgetbabel_target_legacy_IframeWidget = function IframeWidget(_ref) {
68497  var src = _ref.src,
68498      className = _ref.className,
68499      enableMessaging = _ref.enableMessaging,
68500      narrow = _ref.narrow,
68501      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["src", "className", "enableMessaging", "narrow"]);
68502
68503  var _useEventBus = Object(useEventBusbabel_target_legacy["a" /* useEventBus */])(),
68504      emitter = _useEventBus.emitter;
68505
68506  var ref = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
68507  var current = ref.current;
68508  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
68509    if (!enableMessaging) {
68510      return;
68511    }
68512
68513    Object(loggerbabel_target_legacy["c" /* log */])("setting up frame handlers");
68514
68515    if (!emitter) {
68516      return;
68517    }
68518
68519    var iframe = current && current.contentWindow;
68520
68521    var handler = function handler(type, payload) {
68522      if (!type.startsWith("request") && iframe) {
68523        iframe.postMessage({
68524          type: type,
68525          payload: payload
68526        }, "*");
68527      }
68528    };
68529
68530    emitter.on("*", handler);
68531
68532    var messageHandler = function messageHandler(_ref2) {
68533      var data = _ref2.data;
68534      var payload = data.payload,
68535          type = data.type;
68536      Object(loggerbabel_target_legacy["c" /* log */])("Received message", data);
68537
68538      if (type && type.startsWith("request")) {
68539        emitter.emit(type, payload);
68540      }
68541    };
68542
68543    Object(loggerbabel_target_legacy["c" /* log */])("adding iframe handler");
68544    window.addEventListener("message", messageHandler);
68545    return function () {
68546      Object(loggerbabel_target_legacy["c" /* log */])("removing frame handlers");
68547      emitter.off("*", handler);
68548      window.removeEventListener("message", messageHandler);
68549    };
68550  }, [current, emitter, enableMessaging, src]);
68551  return Object(preact_modulebabel_target_legacy["h"])("div", extendsbabel_target_legacy_default()({
68552    className: classnames_babel_target_legacy_default()(IframeWidget_module_default.a.wrap, narrow && IframeWidget_module_default.a.narrow, className)
68553  }, props), Object(preact_modulebabel_target_legacy["h"])("iframe", {
68554    src: src,
68555    className: IframeWidget_module_default.a.frame,
68556    title: "Widgets",
68557    ref: ref
68558  }));
68559};
68560/* harmony default export */ var IframeWidgetbabel_target_legacy = (IframeWidgetbabel_target_legacy_IframeWidget);
68561// CONCATENATED MODULE: ./src/components/IframeWidget/index.ts?babel-target=legacy
68562
68563// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.find-index.js?babel-target=legacy
68564var es_array_find_indexbabel_target_legacy = __webpack_require__(343);
68565
68566// EXTERNAL MODULE: ./src/components/ScheduleWidget/ScheduleWidget.module.scss
68567var ScheduleWidget_module = __webpack_require__(248);
68568var ScheduleWidget_module_default = /*#__PURE__*/__webpack_require__.n(ScheduleWidget_module);
68569
68570// EXTERNAL MODULE: ./src/components/ProgrammeCard/ProgrammeCard.module.scss
68571var ProgrammeCard_module = __webpack_require__(259);
68572var ProgrammeCard_module_default = /*#__PURE__*/__webpack_require__.n(ProgrammeCard_module);
68573
68574// CONCATENATED MODULE: ./src/components/ProgrammeCard/ProgrammeCard.tsx?babel-target=legacy
68575
68576
68577
68578
68579
68580
68581
68582
68583
68584var ProgrammeCardbabel_target_legacy_ProgrammeCard = function ProgrammeCard(_ref) {
68585  var programme = _ref.programme,
68586      live = _ref.live,
68587      past = _ref.past;
68588  var imageUrl = programme.imageUrl,
68589      startTime = programme.startTime,
68590      programmeName = programme.programmeName,
68591      programmeDescription = programme.programmeDescription;
68592  var time = parseInt(startTime);
68593
68594  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68595      t = _useTranslation.t;
68596
68597  return Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])("div", {
68598    className: classnames_babel_target_legacy_default()(ProgrammeCard_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, ProgrammeCard_module_default.a.past, past))
68599  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68600    className: ProgrammeCard_module_default.a.imgbox
68601  }, Object(preact_modulebabel_target_legacy["h"])("img", {
68602    src: imageUrl,
68603    alt: programmeName
68604  })), Object(preact_modulebabel_target_legacy["h"])("div", {
68605    className: ProgrammeCard_module_default.a.info
68606  }, Object(preact_modulebabel_target_legacy["h"])("p", {
68607    className: ProgrammeCard_module_default.a.time // title={
68608    //     time
68609    //         ? new Date(time * 1000).toISOString()
68610    //         : undefined
68611    // }
68612
68613  }, time ? Object(utilsbabel_target_legacy["f" /* formatLocaleTime */])(time) : "", " ", live && Ob
68613ject(preact_modulebabel_target_legacy["h"])("span", {
68614    className: ProgrammeCard_module_default.a.live
68615  }, Object(preact_modulebabel_target_legacy["h"])(LiveIconbabel_target_legacy["a" /* LiveIcon */], {
68616    animate: true
68617  }), t("LABEL_LIVE"))), Object(preact_modulebabel_target_legacy["h"])("h4", {
68618    className: ProgrammeCard_module_default.a.title
68619  }, programmeName), Object(preact_modulebabel_target_legacy["h"])("p", {
68620    className: ProgrammeCard_module_default.a.description
68621  }, programmeDescription))), live ? Object(preact_modulebabel_target_legacy["h"])("div", {
68622    className: ProgrammeCard_module_default.a.next
68623  }, Object(preact_modulebabel_target_legacy["h"])("p", null, t("LABEL_UP_NEXT"))) : Object(preact_modulebabel_target_legacy["h"])("span", null));
68624};
68625/* harmony default export */ var ProgrammeCardbabel_target_legacy = (ProgrammeCardbabel_target_legacy_ProgrammeCard);
68626// CONCATENATED MODULE: ./src/components/ProgrammeCard/index.ts?babel-target=legacy
68627
68628// EXTERNAL MODULE: ./src/components/Spinner/index.ts?babel-target=legacy + 1 modules
68629var Spinnerbabel_target_legacy = __webpack_require__(236);
68630
68631// EXTERNAL MODULE: ./src/api/useBackgrounded.ts?babel-target=legacy
68632var useBackgroundedbabel_target_legacy = __webpack_require__(779);
68633
68634// CONCATENATED MODULE: ./src/components/ScheduleWidget/ScheduleWidget.tsx?babel-target=legacy
68635
68636
68637
68638
68639
68640
68641
68642
68643
68644
68645
68646
68647
68648
68649
68650
68651
68652
68653
68654
68655var now = Date.now();
68656var midnight = Object(utilsbabel_target_legacy["i" /* getMidnightTonight */])();
68657
68658var isPast = function isPast(timeStr) {
68659  return parseInt(timeStr) * 1000 < now;
68660};
68661
68662var isOnNow = function isOnNow(programme) {
68663  return isPast(programme.startTime) && !isPast(programme.stopTime);
68664};
68665
68666var isToday = function isToday(programme) {
68667  return parseInt(programme.startTime) < midnight;
68668};
68669
68670var isTomorrow = function isTomorrow(programme) {
68671  return !isToday(programme);
68672};
68673
68674var ScheduleWidgetbabel_target_legacy_ScheduleWidget = function ScheduleWidget(_ref) {
68675  var stacked = _ref.stacked;
68676  var list = Object(hooks_modulebabel_target_legacy["i" /* useRef */])();
68677
68678  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(0),
68679      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
68680      tabIndex = _useState2[0],
68681      setTabIndex = _useState2[1];
68682
68683  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
68684      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
68685      state = _useAPI2[0];
68686
68687  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
68688      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
68689      programmes = _useState4[0],
68690      setProgrammes = _useState4[1];
68691
68692  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68693      t = _useTranslation.t;
68694
68695  var todaySelected = tabIndex === 0;
68696  var liveItem = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
68697    return programmes.findIndex(isOnNow);
68698  }, [programmes]);
68699  var today = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
68700    return programmes.filter(isToday);
68701  }, [programmes]);
68702  var tomorrow = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
68703    return programmes.filter(isTomorrow);
68704  }, [programmes]);
68705  var getSchedule = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])( /*#__PURE__*/asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
68706    var result;
68707    return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
68708      while (1) {
68709        switch (_context.prev = _context.next) {
68710          case 0:
68711            if (!(!state.nowPlayingUrl || !state.rpId)) {
68712              _context.next = 2;
68713              break;
68714            }
68715
68716            return _context.abrupt("return");
68717
68718          case 2:
68719            _context.next = 4;
68720            return Object(APIManagerbabel_target_legacy["r" /* loadSchedule */])(state.nowPlayingUrl, state.rpId);
68721
68722          case 4:
68723            result = _context.sent;
68724            setProgrammes(result);
68725
68726          case 6:
68727          case "end":
68728            return _context.stop();
68729        }
68730      }
68731    }, _callee);
68732  })), [state.nowPlayingUrl, state.rpId]);
68733  var backgrounded = Object(useBackgroundedbabel_target_legacy["a" /* useBackgrounded */])();
68734  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
68735    if (backgrounded) {
68736      return;
68737    }
68738
68739    var interval = window.setInterval(getSchedule, 60000);
68740    getSchedule();
68741    return function () {
68742      return window.clearInterval(interval);
68743    };
68744  }, [getSchedule, backgrounded]);
68745
68746  var renderRow = function renderRow(row, idx) {
68747    return Object(preact_modulebabel_target_legacy["h"])(ProgrammeCardbabel_target_legacy_ProgrammeCard, {
68748      programme: row,
68749      "data-index": idx,
68750      live: tabIndex === 0 && idx === liveItem,
68751      past: isPast(row.stopTime)
68752    });
68753  };
68754
68755  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
68756    if (list.current) {
68757      list.current.scrollTop = Math.max((liveItem - 1) * 70 - 40, 0);
68758    }
68759  }, [liveItem, list, tabIndex]);
68760  return programmes.length ? Object(preact_modulebabel_target_legacy["h"])("div", {
68761    className: classnames_babel_target_legacy_default()(ScheduleWidget_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, ScheduleWidget_module_default.a.stacked, stacked))
68762  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
68763    className: ScheduleWidget_module_default.a.header
68764  }, t("LABEL_MORE_FROM", {
68765    serviceName: today[0].serviceName
68766  })), !!tomorrow.length && Object(preact_modulebabel_target_legacy["h"])("div", {
68767    role: "tablist",
68768    className: ScheduleWidget_module_default.a.tabs
68769  }, Object(preact_modulebabel_target_legacy["h"])("button", {
68770    role: "tab",
68771    onClick: function onClick() {
68772      return setTabIndex(0);
68773    },
68774    "aria-selected": !tabIndex
68775  }, t("LABEL_TODAY")), Object(preact_modulebabel_target_legacy["h"])("button", {
68776    role: "tab",
68777    onClick: function onClick() {
68778      return setTabIndex(1);
68779    },
68780    "aria-selected": !!tabIndex
68781  }, t("LABEL_TOMORROW"))), Object(preact_modulebabel_target_legacy["h"])("div", {
68782    className: ScheduleWidget_module_default.a.head
68783  }), Object(preact_modulebabel_target_legacy["h"])("div", {
68784    className: ScheduleWidget_module_default.a.list,
68785    ref: list
68786  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68787    className: ScheduleWidget_module_default.a.gradient
68788  }), (todaySelected ? today : tomorrow).map(renderRow))) : Object(preact_modulebabel_target_legacy["h"])("div", {
68789    className: classnames_babel_target_legacy_default()(ScheduleWidget_module_default.a.wrap, ScheduleWidget_module_default.a.placeholder)
68790  }, Object(preact_modulebabel_target_legacy["h"])(Spinnerbabel_target_legacy["a" /* Spinner */], {
68791    className: ScheduleWidget_module_default.a.spinner
68792  }), Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
68793    src: __webpack_require__(1059)
68794  }));
68795};
68796/* harmony default export */ var ScheduleWidgetbabel_target_legacy = (ScheduleWidgetbabel_target_legacy_ScheduleWidget);
68797// CONCATENATED MODULE: ./src/components/ScheduleWidget/index.ts?babel-target=legacy
68798
68799// EXTERNAL MODULE: ./src/components/OnDemandWidget/OnDemandWidget.module.scss
68800var OnDemandWidget_module = __webpack_require__(345);
68801var OnDemandWidget_module_default = /*#__PURE__*/__webpack_require__.n(OnDemandWidget_module);
68802
68803// EXTERNAL MODULE: ./node_modules/@aerian/preact-virtual-list/dist/preact-virtual-list.js?babel-target=legacy
68804var preact_virtual_listbabel_target_legacy = __webpack_require__(121);
68805var preact_virtual_listbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(preact_virtual_listbabel_target_legacy);
68806
68807// EXTERNAL MODULE: ./src/components/OnDemandListItem/OnDemandListItem.module.scss
68808var OnDemandListItem_module = __webpack_require__(260);
68809var OnDemandListItem_module_default = /*#__PURE__*/__webpack_require__.n(OnDemandListItem_module);
68810
68811// CONCATENATED MODULE: ./src/components/OnDemandListItem/OnDemandListItem.tsx?babel-target=legacy
68812
68813
68814
68815
68816
68817
68818
68819var OnDemandListItembabel_target_legacy_OnDemandListItem = function OnDemandListItem(_ref) {
68820  var programme = _ref.programme;
68821  var time = parseInt(programme.odStartTime);
68822  return Object(preact_modulebabel_target_legacy["h"])("a", {
68823    className: OnDemandListItem_module_default.a.wrap,
68824    href: programme.consoleUrl
68825  }, Object(preact_modulebabel_target_legacy["h"])("div", {
68826    className: OnDemandListItem_module_default.a.body
68827  }, Object(preact_modulebabel_target_legacy["h"])("h4", {
68828    className: OnDemandListItem_module_default.a.title,
68829    title: programme.name
68830  }, programme.name), Object(preact_modulebabel_target_legacy["h"])("p", {
68831    className: OnDemandListItem_module_default.a.episode,
68832    title: programme.description
68833  }
68833, programme.description), time && Object(preact_modulebabel_target_legacy["h"])("p", {
68834    className: OnDemandListItem_module_default.a.date
68835  }, Object(utilsbabel_target_legacy["d" /* formatLocaleDate */])(time))), Object(preact_modulebabel_target_legacy["h"])("div", {
68836    className: OnDemandListItem_module_default.a.buttonarea
68837  }, Object(preact_modulebabel_target_legacy["h"])("a", {
68838    href: programme.consoleUrl,
68839    className: OnDemandListItem_module_default.a.play
68840  }, Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
68841    className: OnDemandListItem_module_default.a.nohover,
68842    name: "small-play"
68843  }), Object(preact_modulebabel_target_legacy["h"])(IconSpritebabel_target_legacy["a" /* IconSprite */], {
68844    className: OnDemandListItem_module_default.a.hover,
68845    name: "small-play-circle"
68846  }))));
68847};
68848/* harmony default export */ var OnDemandListItembabel_target_legacy = (OnDemandListItembabel_target_legacy_OnDemandListItem);
68849// CONCATENATED MODULE: ./src/components/OnDemandListItem/index.ts?babel-target=legacy
68850
68851// CONCATENATED MODULE: ./src/components/OnDemandWidget/OnDemandWidget.tsx?babel-target=legacy
68852
68853
68854
68855
68856
68857
68858
68859
68860
68861
68862
68863
68864
68865
68866var ROW_HEIGHT = 80;
68867
68868var OnDemandWidgetbabel_target_legacy_renderRow = function renderRow(item) {
68869  return Object(preact_modulebabel_target_legacy["h"])(OnDemandListItembabel_target_legacy_OnDemandListItem, {
68870    programme: item
68871  });
68872};
68873
68874var OnDemandWidgetbabel_target_legacy_OnDemandWidget = function OnDemandWidget(_ref) {
68875  var stacked = _ref.stacked;
68876
68877  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
68878      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
68879      programmes = _useState2[0],
68880      setProgrammes = _useState2[1];
68881
68882  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
68883      t = _useTranslation.t;
68884
68885  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
68886      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
68887      state = _useAPI2[0];
68888
68889  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
68890    var getOnDemand = /*#__PURE__*/function () {
68891      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
68892        var result;
68893        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
68894          while (1) {
68895            switch (_context.prev = _context.next) {
68896              case 0:
68897                if (!(!state.queryProxyUrl || !state.rpId)) {
68898                  _context.next = 2;
68899                  break;
68900                }
68901
68902                return _context.abrupt("return");
68903
68904              case 2:
68905                _context.next = 4;
68906                return Object(APIManagerbabel_target_legacy["o" /* loadOnDemand */])(state.queryProxyUrl, state.rpId);
68907
68908              case 4:
68909                result = _context.sent;
68910                setProgrammes(result);
68911
68912              case 6:
68913              case "end":
68914                return _context.stop();
68915            }
68916          }
68917        }, _callee);
68918      }));
68919
68920      return function getOnDemand() {
68921        return _ref2.apply(this, arguments);
68922      };
68923    }();
68924
68925    getOnDemand();
68926  }, [state.queryProxyUrl, state.rpId]);
68927  return Object(preact_modulebabel_target_legacy["h"])("div", {
68928    className: classnames_babel_target_legacy_default()(OnDemandWidget_module_default.a.wrap, definePropertybabel_target_legacy_default()({}, OnDemandWidget_module_default.a.stacked, stacked))
68929  }, Object(preact_modulebabel_target_legacy["h"])("h2", {
68930    className: OnDemandWidget_module_default.a.header
68931  }, t("LABEL_ON_DEMAND")), Object(preact_modulebabel_target_legacy["h"])("div", {
68932    className: OnDemandWidget_module_default.a.gradient
68933  }), Object(preact_modulebabel_target_legacy["h"])(preact_virtual_listbabel_target_legacy_default.a, {
68934    className: OnDemandWidget_module_default.a.list,
68935    data: programmes,
68936    renderRow: OnDemandWidgetbabel_target_legacy_renderRow,
68937    rowHeight: ROW_HEIGHT,
68938    overscanCount: 10,
68939    sync: true
68940  }), Object(preact_modulebabel_target_legacy["h"])("div", {
68941    className: OnDemandWidget_module_default.a.gradientBottom
68942  }));
68943};
68944/* harmony default export */ var OnDemandWidgetbabel_target_legacy = (OnDemandWidgetbabel_target_legacy_OnDemandWidget);
68945// CONCATENATED MODULE: ./src/components/OnDemandWidget/index.ts?babel-target=legacy
68946
68947// EXTERNAL MODULE: ./src/components/GptWrapper/index.ts?babel-target=legacy + 1 modules
68948var GptWrapperbabel_target_legacy = __webpack_require__(786);
68949
68950// CONCATENATED MODULE: ./src/components/WidgetSpace/WidgetSpace.tsx?babel-target=legacy
68951
68952
68953
68954
68955
68956
68957/* eslint-disable jsx-a11y/heading-has-content */
68958
68959
68960
68961
68962
68963
68964
68965
68966
68967
68968
68969var WidgetSpacebabel_target_legacy_WidgetSpace = function WidgetSpace(_ref) {
68970  var _state$cookie, _classNames;
68971
68972  var companionAd = _ref.companionAd,
68973      nowPlaying = _ref.nowPlaying,
68974      _ref$widgets = _ref.widgets,
68975      widgets = _ref$widgets === void 0 ? [] : _ref$widgets,
68976      iframeSrc = _ref.iframeSrc,
68977      gptTag = _ref.gptTag,
68978      enableIframeMessaging = _ref.enableIframeMessaging,
68979      fullHeight = _ref.fullHeight,
68980      backgroundColour = _ref.backgroundColour,
68981      widgetOverrides = _ref.widgetOverrides,
68982      stationName = _ref.stationName;
68983
68984  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
68985      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
68986      state = _useAPI2[0];
68987
68988  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(window.innerWidth),
68989      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
68990      windowWidth = _useState2[0],
68991      updateWindowWidth = _useState2[1];
68992
68993  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
68994      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
68995      stackedWidgets = _useState4[0],
68996      updateStackedWidgets = _useState4[1];
68997
68998  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(widgets.includes("OD")),
68999      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 1),
69000      adInOnDemand = _useState6[0];
69001
69002  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(!adInOnDemand && widgets.includes("SC")),
69003      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 1),
69004      adInSchedule = _useState8[0];
69005
69006  var _useState9 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(!adInSchedule && !adInOnDemand),
69007      _useState10 = slicedToArraybabel_target_legacy_default()(_useState9, 1),
69008      adInNowPlaying = _useState10[0];
69009
69010  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69011    var trimWidgets = function trimWidgets() {
69012      // we don't want to render more than 3 widgets,
69013      // so we're trimming off anything more
69014      widgets.length = widgets.length > 3 ? 3 : widgets.length;
69015    };
69016
69017    trimWidgets();
69018  }, [widgets]);
69019  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69020    var updateWindowWidthFunction = function updateWindowWidthFunction() {
69021      updateWindowWidth(window.innerWidth);
69022    };
69023
69024    var widgetsShouldStack = function widgetsShouldStack() {
69025      if (widgets.length === 1 || widgets.length === 2 && windowWidth > 650 || widgets.length === 3 && windowWidth > 950) {
69026        return false;
69027      } else {
69028        return true;
69029      }
69030    };
69031
69032    updateStackedWidgets(widgetsShouldStack);
69033    window.addEventListener("resize", updateWindowWidthFunction, false);
69034    return function () {
69035      // widgetList listeners cleanup
69036      window.removeEventListener("resize", updateWindowWidthFunction, false);
69037    };
69038  }, [widgets.length, windowWidth]);
69039  var ad = companionAd ? Object(preact_modulebabel_target_legacy["h"])("section", {
69040    className: WidgetSpace_module_default.a.companion
69041  }, Object(preact_modulebabel_target_legacy["h"])(CompanionAdHolderbabel_target_legacy_CompanionAdHolder, {
69042    ads: companionAd
69043  })) : gptTag && gptTag.adUnitPath && Object(preact_modulebabel_target_legacy["h"])(GptWrapperbabel_target_legacy["a" /* GptWrapper */], {
69044    adUnitPath: gptTag.adUnitPath,
69045    refreshInterval: gptTag.refreshInterval,
69046    targeting: gptTag.targeting
69047  });
69048  var renderNarrowIframe = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (type) {
69049    return widgetOverrides && Object(preact_modulebabel_target_legacy["h"])(IframeWidgetbabel_target_legacy_IframeWidget, {
69050      src: widgetOverrides[type].source || "about:blank",
69051      enableMessaging: widgetOverrides[type].messaging,
69052      narrow: true
69053    });
69054  }, [widgetOverrides]);
69055  var checkWidgetOverride = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (type) {
69056    return widgetOverrides && widgetOverrides[type];
69057  }, [widgetOverrides]);
69058  var buildWidget = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (widgetContent, type) {
69059    return Object(preact_modulebabel_target_legacy["h"])("div", {
69060      className: classnames_babel_target_legacy_default()([WidgetSpace_module_default.a.widgetColumn, stackedWidgets && WidgetSpace_module_default.a.stackedWidgetColumn]),
69061      key: type
69062    }, checkWidgetOverride(type) ? renderNarrowIframe(type) : widgetContent);
69063  }, [checkWidgetOverride, renderNarrowIframe, stackedWidgets]);
69064  var renderWidget = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (type) {
69065    if (!type) return;
69066
69067    switch (type) {
69068      case "NP":
69069        return buildWidget(Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])(NowPlayingWidgetbabel_target_legacy_NowPlayingWidget, {
69070          nowPlaying: nowPlaying,
69071          stacked: stackedWidgets,
69072          compact: adInNowPlaying && !!ad
69073        }), adInNowPlaying && ad), type);
69074
69075      case "SC":
69076        return buildWidget(Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])(ScheduleWidgetbabel_target_legacy_ScheduleWidget, {
69077          stacked: stackedWidgets
69078        }), adInSchedule && ad), type);
69079
69080      case "OD":
69081        return buildWidget(Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, Object(preact_modulebabel_target_legacy["h"])(OnDemandWidgetbabel_target_legacy_OnDemandWidget, {
69082          stacked: stackedWidgets
69083        }), adInOnDemand && ad), type);
69084
69085      case "IF":
69086        return Object(preact_modulebabel_target_legacy["h"])(IframeWidgetbabel_target_legacy_IframeWidget, {
69087          src: iframeSrc || "about:blank",
69088          enableMessaging: enableIframeMessaging
69089        });
69090
69091      default:
69092        //as a default behaviour we will try to render the widget as an iframe if the type is unknown
69093        return buildWidget(Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null), type);
69094    }
69095  }, [ad, adInNowPlaying, adInOnDemand, adInSchedule, buildWidget, enableIframeMessaging, iframeSrc, nowPlaying, stackedWidgets]);
69096  var style = {};
69097
69098  if (backgroundColour) {
69099    style.backgroundColor = backgroundColour;
69100  }
69101
69102  if (state === null || state === void 0 ? void 0 : (_state$cookie = state.cookie) === null || _state$cookie === void 0 ? void 0 : _state$cookie.dead) {
69103    return null;
69104  }
69105
69106  return Object(preact_modulebabel_target_legacy["h"])("main", {
69107    className: WidgetSpace_module_default.a.wrap,
69108    style: style
69109  }, Object(preact_modulebabel_target_legacy["h"])("h1", {
69110    id: "main-content",
69111    className: WidgetSpace_module_default.a.hiddenH1,
69112    tabIndex: -1
69113  }, stationName), Object(preact_modulebabel_target_legacy["h"])("div", {
69114    className: classnames_babel_target_legacy_default()(WidgetSpace_module_default.a.inner, (_classNames = {}, definePropertybabel_target_legacy_default()(_classNames, WidgetSpace_module_default.a.widgetsInline, stackedWidgets === false), definePropertybabel_target_legacy_default()(_classNames, WidgetSpace_module_default.a.full, fullHeight), _classNames))
69115  }, widgets.includes("IF") ? renderWidget("IF") : Object(preact_modulebabel_target_legacy["h"])(preact_modulebabel_target_legacy["Fragment"], null, widgets.map(function (widget) {
69116    return renderWidget(widget);
69117  }))));
69118};
69119/* harmony default export */ var WidgetSpacebabel_target_legacy = (WidgetSpacebabel_target_legacy_Wi
69119dgetSpace);
69120// CONCATENATED MODULE: ./src/components/WidgetSpace/index.ts?babel-target=legacy
69121
69122// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.link.js?babel-target=legacy
69123var es_string_linkbabel_target_legacy = __webpack_require__(426);
69124
69125// EXTERNAL MODULE: ./src/components/SoundOfSilence/SoundOfSilence.module.scss
69126var SoundOfSilence_module = __webpack_require__(322);
69127var SoundOfSilence_module_default = /*#__PURE__*/__webpack_require__.n(SoundOfSilence_module);
69128
69129// EXTERNAL MODULE: ./src/lib/Trans/Trans.js?babel-target=legacy + 2 modules
69130var Transbabel_target_legacy = __webpack_require__(333);
69131
69132// CONCATENATED MODULE: ./src/components/SoundOfSilence/SoundOfSilence.tsx?babel-target=legacy
69133
69134
69135/* eslint-disable react/jsx-no-literals */
69136
69137
69138
69139
69140
69141var SoundOfSilencebabel_target_legacy_SoundOfSilence = function SoundOfSilence() {
69142  var _useTranslation = Object(es_babel_target_legacy["c" /* useTranslation */])(),
69143      t = _useTranslation.t,
69144      i18n = _useTranslation.i18n;
69145
69146  return Object(preact_modulebabel_target_legacy["h"])("div", {
69147    className: SoundOfSilence_module_default.a.background
69148  }, Object(preact_modulebabel_target_legacy["h"])("section", {
69149    className: SoundOfSilence_module_default.a.container
69150  }, Object(preact_modulebabel_target_legacy["h"])("div", {
69151    className: SoundOfSilence_module_default.a.icon
69152  }, Object(preact_modulebabel_target_legacy["h"])(RPIconbabel_target_legacy["a" /* RPIcon */], {
69153    src: __webpack_require__(974)
69154  })), Object(preact_modulebabel_target_legacy["h"])("p", {
69155    className: SoundOfSilence_module_default.a.lyrics
69156  }, t("SOUND_OF_SILENCE_LYRIC")), Object(preact_modulebabel_target_legacy["h"])("h1", {
69157    className: SoundOfSilence_module_default.a.title
69158  }, t("SOUND_OF_SILENCE_TITLE")), Object(preact_modulebabel_target_legacy["h"])("div", {
69159    className: SoundOfSilence_module_default.a.copyContainer
69160  }, Object(preact_modulebabel_target_legacy["h"])("p", null, t("SOUND_OF_SILENCE_COPY_1")), Object(preact_modulebabel_target_legacy["h"])("p", null, t("SOUND_OF_SILENCE_COPY_2")), Object(preact_modulebabel_target_legacy["h"])("p", null, Object(preact_modulebabel_target_legacy["h"])(Transbabel_target_legacy["a" /* Trans */], {
69161    i18nKey: "SOUND_OF_SILENCE_APP_LINK",
69162    i18n: i18n
69163  }, "You can try using a different browser but if your device doesn't support this, why not", " ", Object(preact_modulebabel_target_legacy["h"])("a", {
69164    href: t("SOUND_OF_SILENCE_URL"),
69165    target: "_blank",
69166    rel: "noopener noreferrer",
69167    className: SoundOfSilence_module_default.a.link
69168  }, "download our free app"), " ", "for phones and tablet.")))));
69169};
69170// CONCATENATED MODULE: ./src/components/SoundOfSilence/index.ts?babel-target=legacy
69171
69172// EXTERNAL MODULE: ./src/components/App/App.module.scss
69173var App_module = __webpack_require__(950);
69174var App_module_default = /*#__PURE__*/__webpack_require__.n(App_module);
69175
69176// EXTERNAL MODULE: ./src/lib/i18n.ts?babel-target=legacy + 21 modules
69177var i18nbabel_target_legacy = __webpack_require__(321);
69178
69179// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js?babel-target=legacy
69180var tinycolorbabel_target_legacy = __webpack_require__(792);
69181var tinycolorbabel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(tinycolorbabel_target_legacy);
69182
69183// EXTERNAL MODULE: ./node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js?babel-target=legacy
69184var css_vars_ponyfill_esmbabel_target_legacy = __webpack_require__(958);
69185
69186// EXTERNAL MODULE: ./src/components/AnnouncementBanner/index.ts?babel-target=legacy + 1 modules
69187var AnnouncementBannerbabel_target_legacy = __webpack_require__(970);
69188
69189// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.ends-with.js?babel-target=legacy
69190var es_string_ends_withbabel_target_legacy = __webpack_require__(266);
69191
69192// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js?babel-target=legacy
69193var es_string_matchbabel_target_legacy = __webpack_require__(302);
69194
69195// EXTERNAL MODULE: ./node_modules/lodash.clonedeep?babel-target=legacy
69196var lodash_clonedeep_babel_target_legacy = __webpack_require__(983);
69197var lodash_clonedeep_babel_target_legacy_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep_babel_target_legacy);
69198
69199// CONCATENATED MODULE: ./src/lib/playbackConfigUtils.ts?babel-target=legacy
69200
69201
69202
69203
69204
69205
69206
69207
69208
69209
69210
69211
69212
69213
69214
69215
69216
69217function playbackConfigUtilsbabel_target_legacy_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = playbackConfigUtilsbabel_target_legacy_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
69218
69219function playbackConfigUtilsbabel_target_legacy_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return playbackConfigUtilsbabel_target_legacy_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return playbackConfigUtilsbabel_target_legacy_arrayLikeToArray(o, minLen); }
69220
69221function playbackConfigUtilsbabel_target_legacy_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
69222
69223
69224
69225
69226/**
69227 * Ask console to unlock playback.
69228 */
69229var playbackConfigUtilsbabel_target_legacy_unlockPlay = function unlockPlay() {
69230  window.dispatchEvent(new CustomEvent("radioplayer_unlockPlay"));
69231  Object(loggerbabel_target_legacy["c" /* log */])("Play unlocked by external <script>.");
69232};
69233
69234var addParam = function addParam(url, param) {
69235  // Copied from src/api/utils.ts
69236  var result = url.match(/(https?:)?\/\/(.+)/);
69237
69238  if (!result || result.length < 3) {
69239    return url;
69240  }
69241
69242  var domain = result[2];
69243  var _char = "?";
69244
69245  if (domain.endsWith("/")) {
69246    _char = "?";
69247  } else if (domain.endsWith(";")) {
69248    _char = "";
69249  } else if (domain.includes("?")) {
69250    _char = "&";
69251  }
69252
69253  return url + _char + param;
69254};
69255/**
69256 * Send modified streams back to console
69257 */
69258
69259
69260var playbackConfigUtilsbabel_target_legacy_sendNewStreamsToConsole = function sendNewStreamsToConsole(streams, adProviders) {
69261  // Update playback configuration
69262  window.radioplayer_playbackConfigurationFromExternalScript = {
69263    streams: streams,
69264    adProviders: adProviders
69265  };
69266  Object(loggerbabel_target_legacy["c" /* log */])("Sent modified stream URLs and adProviders to web player!");
69267};
69268/**
69269 * Triggers an event which is picked up by the player. queryParams is collected and stored in state of the Player component.
69270 * @param {} queryParams
69271 */
69272
69273
69274var syncQueryParamsWithConsole = function syncQueryParamsWithConsole(queryParams) {
69275  window.dispatchEvent(new CustomEvent("radioplayer_syncQueryParams", {
69276    detail: queryParams
69277  }));
69278};
69279
69280var streamModifierUtils = {
69281  unlockPlay: playbackConfigUtilsbabel_target_legacy_unlockPlay,
69282  addParam: addParam,
69283  sendNewStreamsToConsole: playbackConfigUtilsbabel_target_legacy_sendNewStreamsToConsole,
69284  syncQueryParamsWithConsole: syncQueryParamsWithConsole
69285};
69286/**
69287 * Provide playbackConfiguration to external scripts via global variable.
69288 * @param playbackConfig The playbackConfiguration
69289 */
69290
69291var playbackConfigUtilsbabel_target_legacy_writePlaybackConfigurationFromConsole = function writePlaybackConfigurationFromConsole(playbackConfig) {
69292  /**
69293   * Store a deep clone in global variable. Reason: External scripts should not be able to modify internals (i.e. the arrays).
69294   */
69295  window.radioplayer_playbackConfigurationFromConsole = lodash_clonedeep_babel_target_legacy_default()(playbackConfig // eslint-disable-next-line @typescript-eslint/no-explicit-any
69296  );
69297};
69298/**
69299 * Store playbackConfiguration from external scripts in global variable.
69300 * @param playbackConfig The playbackConfiguration
69301 */
69302
69303var playbackConfigUtilsbabel_target_legacy_writePlaybackConfigurationFromExternalScript = function writePlaybackConfigurationFromExternalScript(playbackConfig) {
69304  /**
69305   * Store a deep clone in global variable. Reason: External scripts should not be able to modify internals (i.e. the arrays).
69306   */
69307  window.radioplayer_playbackConfigurationFromExternalScript = lodash_clonedeep_babel_target_legacy_default()(playbackConfig // eslint-disable-next-line @typescript-eslint/no-explicit-any
69308  );
69309};
69310/**
69311 * Create a new playbackConfiguration.
69312 * @param onDemandItem If the console is playing an OnDemandItem (and not a stream), that item needs to be passed.
69313 * @param streams An array of Streams. Can be empty (e.g. for stations that want to set their streams via external <script>, not via SCP or config passed to preact-habitat.)
69314 * @param adProviders Ad array of AdProviders. Can be empty (e.g. for stations without ads or stations that want to set their adProviders via external <script>, not via SCP or config passed to preact-habitat).
69315 */
69316
69317var createPlaybackConfiguration = function createPlaybackConfiguration(onDemandItem, streams, adProviders) {
69318  var playbackConfig = {
69319    isOdItem: onDemandItem != null,
69320    streams: onDemandItem != null ? onDemandItem.streams : streams,
69321    adProviders: adProviders
69322  };
69323  return playbackConfig;
69324};
69325/**
69326 * Sanity-check and parse playbackConfiguration set by external <script>.
69327 * @param unclonedPlaybackConfiguration A raw (i.e. not sanity-checked) object, that should (but may not) contain a valid playback configuration.
69328 * @return undefined if playbackConfiguration was invalid, otherwise an object of type PlaybackConfiguration
69329 */
69330
69331var playbackConfigUtilsbabel_target_legacy_parseRawPlaybackConfiguration = function parseRawPlaybackConfiguration(unclonedPlaybackConfiguration) {
69332  // Deep cloning ensures external scripts can't modify the arrays anymore.
69333  var playbackConfiguration = lodash_clonedeep_babel_target_legacy_default()(unclonedPlaybackConfiguration);
69334  var parsedStreams = undefined;
69335  var parsedAdProviders = undefined; // Sanity checks: streams
69336
69337  if (playbackConfiguration != null && playbackConfiguration.streams != null && Array.isArray(playbackConfiguration.streams) && playbackConfiguration.streams.length > 0) {
69338    var newStreams = [];
69339
69340    var _iterator = playbackConfigUtilsbabel_target_legacy_createForOfIteratorHelper(playbackConfiguration.streams),
69341        _step;
69342
69343    try {
69344      for (_iterator.s(); !(_step = _iterator.n()).done;) {
69345        var stream = _step.value;
69346
69347        if (typeof (stream === null || stream === void 0 ? void 0 : stream.format) === "string" && stream.format.length > 0 && typeof (stream === null || stream === void 0 ? void 0 : stream.url) === "string" && stream.url.length > 0) {
69348          var newStream = stream;
69349          newStreams.push(newStream);
69350        }
69351      }
69352    } catch (err) {
69353      _iterator.e(err);
69354    } finally {
69355      _iterator.f();
69356    }
69357
69358    if (newStreams.length === 0) {
69359      Object(loggerbabel_target_legacy["c" /* log */])("playbackConfiguration from external script contained 0 valid streams");
69360    } else {
69361      parsedStreams = newStreams;
69362    }
69363  }
69363 // Sanity checks: adProviders
69364
69365
69366  if (playbackConfiguration != null && playbackConfiguration.adProviders != null && Array.isArray(playbackConfiguration.adProviders) && playbackConfiguration.adProviders.length > 0) {
69367    var newAdProviders = [];
69368
69369    var _iterator2 = playbackConfigUtilsbabel_target_legacy_createForOfIteratorHelper(playbackConfiguration.adProviders),
69370        _step2;
69371
69372    try {
69373      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
69374        var adProvider = _step2.value;
69375        // Possible improvement: detailed sanity checks of adProviders
69376        var newAdProvider = adProvider;
69377        newAdProviders.push(newAdProvider);
69378      }
69379    } catch (err) {
69380      _iterator2.e(err);
69381    } finally {
69382      _iterator2.f();
69383    }
69384
69385    if (newAdProviders.length === 0) {
69386      Object(loggerbabel_target_legacy["c" /* log */])("playbackConfiguration from external script contained 0 adProviders");
69387    } else {
69388      parsedAdProviders = newAdProviders;
69389    }
69390  }
69391
69392  if (parsedStreams === undefined && parsedAdProviders === undefined) {
69393    return undefined;
69394  } else {
69395    return {
69396      isOdItem: undefined,
69397      streams: parsedStreams,
69398      adProviders: parsedAdProviders
69399    };
69400  }
69401};
69402// CONCATENATED MODULE: ./src/lib/useAdswizzVast.tsx?babel-target=legacy
69403
69404
69405
69406
69407
69408
69409
69410
69411
69412
69413
69414
69415
69416
69417
69418
69419
69420function useAdswizzVastbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
69421
69422function useAdswizzVastbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { useAdswizzVastbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { useAdswizzVastbabel_target_legacy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
69423
69424
69425
69426var useAdswizzVastbabel_target_legacy_useAdswizzVastDecorators = function useAdswizzVastDecorators(_ref) {
69427  var tcString = _ref.tcString,
69428      adProviders = _ref.adProviders;
69429
69430  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(adProviders || []),
69431      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
69432      decoratedAdProviders = _useState2[0],
69433      setDecoratedAdProviders = _useState2[1];
69434
69435  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(""),
69436      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
69437      listenerId = _useState4[0],
69438      setListenerId = _useState4[1];
69439
69440  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(5),
69441      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
69442      listenerIdCheck = _useState6[0],
69443      setListenerIdCheck = _useState6[1];
69444
69445  var listenerIdTimeout = Object(hooks_modulebabel_target_legacy["i" /* useRef */])(null); // If we don't have a listenerId, try to get one
69446
69447  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69448    var getListenerId = /*#__PURE__*/function () {
69449      var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
69450        var id;
69451        return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
69452          while (1) {
69453            switch (_context.prev = _context.next) {
69454              case 0:
69455                _context.next = 2;
69456                return getAdswizzListenerId();
69457
69458              case 2:
69459                id = _context.sent;
69460
69461                if (!id || id.length === 0) {
69462                  listenerIdTimeout.current = setTimeout(function () {
69463                    return setListenerIdCheck(listenerIdCheck - 1);
69464                  }, 2500 // Try every 2.5 seconds up to 5 times before assuming it's not going to happen
69465                  );
69466                } else {
69467                  setListenerId(id);
69468                }
69469
69470              case 4:
69471              case "end":
69472                return _context.stop();
69473            }
69474          }
69475        }, _callee);
69476      }));
69477
69478      return function getListenerId() {
69479        return _ref2.apply(this, arguments);
69480      };
69481    }();
69482
69483    if (listenerIdCheck > 0 && listenerId === "") {
69484      getListenerId();
69485    }
69486  }, [listenerId, listenerIdCheck]);
69487  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69488    var decorateAdProvidersWithAdswizzVast = /*#__PURE__*/function () {
69489      var _ref3 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee2() {
69490        var decorated;
69491        return regenerator_babel_target_legacy_default.a.wrap(function _callee2$(_context2) {
69492          while (1) {
69493            switch (_context2.prev = _context2.next) {
69494              case 0:
69495                try {
69496                  decorated = (adProviders === null || adProviders === void 0 ? void 0 : adProvi
69496ders.map(function (provider) {
69497                    var _provider$tag;
69498
69499                    if (provider.type !== "vast") return provider; // If the provider is an adswizz provider, decorate it with the listenerId and tcString
69500
69501                    if ((_provider$tag = provider.tag) === null || _provider$tag === void 0 ? void 0 : _provider$tag.includes("adswizz")) {
69502                      return useAdswizzVastbabel_target_legacy_objectSpread(useAdswizzVastbabel_target_legacy_objectSpread({}, provider), {}, {
69503                        tag: "".concat(provider.tag, "?listenerid=").concat(listenerId, "&aw_0_req.userConsentV2=").concat(tcString)
69504                      });
69505                    }
69506
69507                    return provider;
69508                  })) || [];
69509                  setDecoratedAdProviders(decorated);
69510                } catch (error) {
69511                  console.log("decorateAdProvidersWithAdswizzVast ERROR", error);
69512                }
69513
69514              case 1:
69515              case "end":
69516                return _context2.stop();
69517            }
69518          }
69519        }, _callee2);
69520      }));
69521
69522      return function decorateAdProvidersWithAdswizzVast() {
69523        return _ref3.apply(this, arguments);
69524      };
69525    }(); // This is likely to be run when adProviders updates and it's not been decorated yet
69526
69527
69528    if (tcString === false || tcString === true || listenerId.length === 0 || adProviders.length === 0) {
69529      setDecoratedAdProviders(adProviders);
69530      return;
69531    }
69532
69533    decorateAdProvidersWithAdswizzVast();
69534  }, [tcString, listenerId, adProviders]);
69535  return {
69536    decoratedAdProviders: decoratedAdProviders
69537  };
69538};
69539// CONCATENATED MODULE: ./src/components/App/App.tsx?babel-target=legacy
69540
69541
69542
69543
69544
69545
69546
69547
69548
69549
69550
69551
69552
69553
69554
69555
69556
69557
69558
69559
69560
69561
69562
69563
69564function Appbabel_target_legacy_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
69565
69566function Appbabel_target_legacy_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Appbabel_target_legacy_ownKeys(Object(source), true).forEach(function (key) { definePropertybabel_target_legacy_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Appbabel_target_legacy_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
69567
69568
69569
69570
69571
69572
69573
69574
69575
69576
69577
69578
69579
69580
69581
69582
69583 //gzipped 5.3K maybe we can do something better
69584
69585
69586
69587
69588
69589
69590
69591
69592
69593
69594var EventNames;
69595
69596(function (EventNames) {
69597  EventNames["UnlockPlay"] = "radioplayer_unlockPlay";
69598  EventNames["ReadyToReceiveEvents"] = "radioplayer_readyToReceiveEvents";
69599  EventNames["SyncQueryParams"] = "radioplayer_syncQueryParams";
69600})(EventNames || (EventNames = {}));
69601
69602var Appbabel_target_legacy_App = function App(_ref) {
69603  var adProvidersFromConfig = _ref.adProviders,
69604      cmp = _ref.cmp,
69605      disableLiveSeek = _ref.disableLiveSeek,
69606      disablePlaybackButtons = _ref.disablePlaybackButtons,
69607      disableScrubber = _ref.disableScrubber,
69608      enableIframeMessaging = _ref.enableIframeMessaging,
69609      fallback = _ref.fallback,
69610      id = _ref.id,
69611      iframeSrc = _ref.iframeSrc,
69612      lang = _ref.lang,
69613      _ref$localeRootUrl = _ref.localeRootUrl,
69614      localeRootUrl = _ref$localeRootUrl === void 0 ? "." : _ref$localeRootUrl,
69615      mapi = _ref.mapi,
69616      np = _ref.np,
69617      onDemandItem = _ref.onDemandItem,
69618      _ref$rpLogo = _ref.rpLogo,
69619      rpLogo = _ref$rpLogo === void 0 ? "assets/radioplayer.svg" : _ref$rpLogo,
69620      stationLogo = _ref.stationLogo,
69621      stationUrl = _ref.stationUrl,
69622      theme = _ref.theme,
69623      themeColour = _ref.themeColour,
69624      widgetBackground = _ref.widgetBackground,
69625      _ref$widgetTheme = _ref.widgetTheme,
69626      widgetTheme = _ref$widgetTheme === void 0 ? "LIGHT" : _ref$widgetTheme,
69627      _ref$widgets = _ref.widgets,
69628      widgets = _ref$widgets === void 0 ? ["NP"] : _ref$widgets,
69629      widgetColour = _ref.widgetColour,
69630      widgetHeaderColour = _ref.widgetHeaderColour,
69631      widgetOverrides = _ref.widgetOverrides,
69632      playLockedFromConfig = _ref.playLocked,
69633      _ref$numberOfUnlocker = _ref.numberOfUnlockers,
69634      numberOfUnlockers = _ref$numberOfUnlocker === void 0 ? 1 : _ref$numberOfUnlocker;
69635
69636  var _useAPI = Object(useAPIbabel_target_legacy["a" /* useAPI */])(),
69637      _useAPI2 = slicedToArraybabel_target_legacy_default()(_useAPI, 1),
69638      state = _useAPI2[0];
69639
69640  var tcString = state.tcString;
69641
69642  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
69643      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
69644      streams = _useState2[0],
69645      setStreams = _useState2[1];
69646
69647  var _useState3 = Object(hooks_modulebabel_target_legacy["j" /* useState */])([]),
69648      _useState4 = slicedToArraybabel_target_legacy_default()(_useState3, 2),
69649      adProviders = _useState4[0],
69650      setAdProviders = _useState4[1];
69651
69652  var _useState5 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(undefined),
69653      _useState6 = slicedToArraybabel_target_legacy_default()(_useState5, 2),
69654      gptTag = _useState6[0],
69655      setGptTag = _useState6[1];
69656
69657  var _useState7 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
69658      _useState8 = slicedToArraybabel_target_legacy_default()(_useState7, 2),
69659      showMenu = _useState8[0],
69660      setShowMenu = _useState8[1];
69661
69662  var _useState9 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
69663      _useState10 = slicedToArraybabel_target_legacy_default()(_useState9, 2),
69664      showSearch = _useState10[0],
69665      setShowSearch = _useState10[1];
69666
69667  var _useAnalytics = Object(Analyticsbabel_target_legacy["b" /* useAnalytics */])(),
69668      sendEvent = _useAnalytics.sendEvent;
69669
69670  var _useState11 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(undefined),
69671      _useState12 = slicedToArraybabel_target_legacy_default()(_useState11, 2),
69672      companionAd = _useState12[0],
69673      setCompanionAd = _useState12[1];
69674
69675  var _useState13 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
69676      _useState14 = slicedToArraybabel_target_legacy_default()(_useState13, 2),
69677      streamError = _useState14[0],
69678      setStreamError = _useState14[1];
69679
69680  var _useState15 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
69681      _useState16 = slicedToArraybabel_target_legacy_default()(_useState15, 2),
69682      i18nInitialized = _useState16[0],
69683      setI18nInitialized = _useState16[1]; // Watch out: Several useEffects depend on appInitialized changing only once (from false to true)
69684
69685
69686  var _useState17 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(false),
69687      _useState18 = slicedToArraybabel_target_legacy_default()(_useState17, 2),
69688      appInitialized = _useState18[0],
69689      setAppInitialized = _useState18[1];
69690
69691  var _useState19 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(undefined),
69692      _useState20 = slicedToArraybabel_target_legacy_default()(_useState19, 2),
69693      originalPlaybackConfiguration = _useState20[0],
69694      setOriginalPlaybackConfiguration = _useState20[1];
69695
69696  var _useEventBus = Object(EventBusbabel_target_legacy["b" /* useEventBus */])(),
69697      emitter = _useEventBus.emitter,
69698      emit = _useEventBus.emit;
69699
69700  var playbackConfigurationEmitter = Object(hooks_modulebabel_target_legacy["i" /* useRef */])(undefined); // Not an anti-pattern, used for initialization and updated only within App.tsx itself. (c.f. https://medium.com/@justintulk/react-anti-patterns-props-in-initial-state-28687846cc2e).
69701
69702  var _useState21 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(numberOfUnlockers),
69703      _useState22 = slicedToArraybabel_target_legacy_default()(_useState21, 2),
69704      unlockCounter = _useState22[0],
69705      setUnlockCounter = _useState22[1];
69706
69707  var onCompanionAds = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function (id, ads) {
69708    if (ads && ads.length) {
69709      setCompanionAd(ads[0].content);
69710    } else {
69711      setCompanionAd(undefined);
69712    }
69713  }, []);
69714  var divRef = Object(useElementHeightCSSVariablebabel_target_legacy["a" /* default */])("--dynamic-window-height", false);
69715  var toggleMenu = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69716    sendEvent("Navigation", "Main menu", showMenu ? "Close Menu Button" : "Menu button");
69717    setShowMenu(function (show) {
69718      return !show;
69719    });
69720    setShowSearch(false);
69721  }, [sendEvent, showMenu]);
69722  var hideMenu = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69723    sendEvent("Navigation", "Main menu", "Close Menu Button");
69724    setShowMenu(false);
69725  }, [sendEvent]);
69726  var toggleSearch = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69727    setShowSearch(function (show) {
69728      return !show;
69729    });
69730    setShowMenu(false);
69731  }, []);
69732  var closeSearch = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69733    setShowSearch(false);
69734  }, []);
69735  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69736    if (i18nInitialized && !appInitialized && onDemandItem !== "awaiting") {
69737      var processAPIResponse = /*#__PURE__*/function () {
69738        var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
69739          var response, newStreams, responseStreams, fallbackStream
69739s, adProviders, gpt, currentPath, isDebug, playbackConfiguration;
69740          return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
69741            while (1) {
69742              switch (_context.prev = _context.next) {
69743                case 0:
69744                  _context.next = 2;
69745                  return Object(initbabel_target_legacy["a" /* init */])(id === "340" ? "1411" : id, fallback, mapi);
69746
69747                case 2:
69748                  response = _context.sent;
69749
69750                  if (!onDemandItem || onDemandItem === "failed") {
69751                    responseStreams = response.streams ? response.streams : [];
69752                    fallbackStreams = fallback || [];
69753                    newStreams = [].concat(toConsumableArraybabel_target_legacy_default()(responseStreams), toConsumableArraybabel_target_legacy_default()(fallbackStreams));
69754                  } else {
69755                    newStreams = onDemandItem.streams;
69756                  }
69757
69758                  setStreams(newStreams);
69759                  adProviders = adProvidersFromConfig || response.adProviders || [];
69760
69761                  if (adProviders) {
69762                    gpt = adProviders.find(function (ad) {
69763                      return ad.type === "google";
69764                    });
69765
69766                    if (gpt) {
69767                      setGptTag(gpt);
69768                    }
69769                  }
69770
69771                  if (!lang && response.language) {
69772                    currentPath = new URL(window.location.href);
69773                    isDebug = currentPath.searchParams.has("debug");
69774                    Object(i18nbabel_target_legacy["a" /* changeLanguage */])(response.language, isDebug);
69775                  }
69776
69777                  setAdProviders(adProviders);
69778                  playbackConfiguration = createPlaybackConfiguration(onDemandItem !== "failed" ? onDemandItem : undefined, newStreams, adProviders);
69779                  playbackConfigUtilsbabel_target_legacy_writePlaybackConfigurationFromConsole(playbackConfiguration);
69780                  setOriginalPlaybackConfiguration(playbackConfiguration);
69781                  setAppInitialized(true);
69782
69783                case 13:
69784                case "end":
69785                  return _context.stop();
69786              }
69787            }
69788          }, _callee);
69789        }));
69790
69791        return function processAPIResponse() {
69792          return _ref2.apply(this, arguments);
69793        };
69794      }();
69795
69796      processAPIResponse();
69797    }
69798  }, [adProvidersFromConfig, id, fallback, mapi, lang, onDemandItem, appInitialized, i18nInitialized]);
69799  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69800    var currentPath = new URL(window.location.href);
69801    var isDebug = currentPath.searchParams.has("debug");
69802    if (i18nbabel_target_legacy["b" /* default */].isInitialized) return;
69803    Object(i18nbabel_target_legacy["d" /* initI18n */])(localeRootUrl, lang, isDebug).then(function () {
69804      setI18nInitialized(i18nbabel_target_legacy["b" /* default */].isInitialized);
69805    });
69806  }, [lang, localeRootUrl]);
69807  var nowPlaying = Object(useNowPlayingbabel_target_legacy["a" /* useNowPlaying */])(id, np, onDemandItem !== "awaiting" && onDemandItem !== "failed" ? onDemandItem : undefined);
69808  var stationName;
69809
69810  if (nowPlaying === null || nowPlaying === void 0 ? void 0 : nowPlaying.seriesName) {
69811    stationName = nowPlaying.seriesName;
69812  } // sometimes the seriesName is not so easily available, so we use the
69813  // serviceName of the current item playing instead
69814
69815
69816  if (!(nowPlaying === null || nowPlaying === void 0 ? void 0 : nowPlaying.seriesName) && (nowPlaying === null || nowPlaying === void 0 ? void 0 : nowPlaying.now)) {
69817    stationName = nowPlaying.now.serviceName;
69818  }
69819
69820  var onStreamError = function onStreamError(errorStatus) {
69821    setStreamError(errorStatus);
69822  };
69823
69824  var getHighLightColour = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69825    return tinycolorbabel_target_legacy_default()(widgetColour).darken(7).toString();
69826  }, [widgetColour]);
69827  var getWidgetHeaderTextColour = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69828    return tinycolorbabel_target_legacy_default()(widgetHeaderColour).isLight() && "#000000";
69829  }, [widgetHeaderColour]);
69830  /**
69831   *
69832   * Preconditon: Playback was not unlocked (must be ensured by caller).
69833   *
69834   * Updating playback configuration works like this for external <scripts>. (for IFrames the workflow uses IFrame messaging and is therefore different):
69835   * 1. External <script> adds event listener for EventNames.ReadyToReceiveEvents
69836   * 2. Console loads playback configuration (from 2 sources: 1. MAPI and 2. passed by preact-habitat)
69837   * 3. Console writes playback configuration to global variable
69838   * 4. Console dispatches event EventNames.ReadyToReceiveEvents
69839   * 5. External <script> receives the event
69840   * 6. External <script> updates the configuration (e.g. adds query parameters to stream urls)
69841   * 7. External <script> writes its updated configuration to global variable
69842   * 8. External <script> unlocks playback
69843   * 9. Console reads updated configuration from the global variable and applies it
69844   *
69845   * The order of steps is important!
69846   *
69847   */
69848
69849  var applyPlaybackConfigurationFromScriptOrIframe = Object(hooks_modulebabel_target_legacy["a" /* useCallback */])(function () {
69850    var parsedPlaybackConfiguration = playbackConfigUtilsbabel_target_legacy_parseRawPlaybackConfiguration(window.radioplayer_playbackConfigurationFromExternalScript);
69851
69852    if (parsedPlaybackConfiguration === undefined) {
69853      Object(loggerbabel_target_legacy["c" /* log */])("Playback configuration from external source was not set or invalid");
69854      return;
69855    }
69856
69857    if ((parsedPlaybackConfiguration === null || parsedPlaybackConfiguration === void 0 ? void 0 : parsedPlaybackConfiguration.streams) != null) {
69858      setStreams(parsedPlaybackConfiguration.streams);
69859      Object(loggerbabel_target_legacy["c" /* log */])("Received valid playback configuration from external source, streams were updated");
69860    }
69861
69862    if ((parsedPlaybackConfiguration === null || parsedPlaybackConfiguration === void 0 ? void 0 : parsedPlaybackConfiguration.adProviders) != null) {
69863      /**
69864       * TS Feb 24th 2021: Officially, only modifications to the VAST provider's "tag" property are supported. This is also stated explicitly in the docs.
69865       * However, the implemented code should also support modifications to AdsWizz and Triton (not for GPT), but this has not been integration tested!
69866       * If modifying the other adProviders is required at a later point in t
69866ime, the first step should be integration testing the already available code with AdsWizz and Triton.
69867       */
69868      setAdProviders(parsedPlaybackConfiguration.adProviders);
69869      Object(loggerbabel_target_legacy["c" /* log */])("Received valid playback configuration from external source, adProviders were updated");
69870    }
69871  }, []); // Enable support to lock playback on page load and later unlock it from other <script>s.
69872  // Can be used e.g. to alter stream/adProvider URLs before playback starts.
69873  // Uses event handlers and global variables. Therefore, unlocking always applies to all loaded Radioplayer players per browser tab.
69874  // Initially implemented in ODWrapper.tsx. Had to be moved down the component tree to App.tsx.
69875  // Reason: Changing state in ODWrapper lead to re-rendering of child components and repeated initialization of VAST support in Player.tsx ("initVast()").
69876  // Each initialization created a VastEngine.
69877  // Two ore more Ads were then played with a short delay between each other.
69878  // Copy prop value to initial state value. Ignore any updates to prop.
69879  // This is not an anti-pattern, because any updates are only allowed from external <script>s or from App.tsx itself. (c.f. https://medium.com/@justintulk/react-anti-patterns-props-in-initial-state-28687846cc2e).
69880
69881  /**
69882   * Watch out: Once playLocked was set to false, it must never be set to true again! Otherwise unexpected behavior might occur.
69883   */
69884
69885  var _useState23 = Object(hooks_modulebabel_target_legacy["j" /* useState */])(playLockedFromConfig === true),
69886      _useState24 = slicedToArraybabel_target_legacy_default()(_useState23, 2),
69887      playLocked = _useState24[0],
69888      setPlayLocked = _useState24[1];
69889  /**
69890   * Applies playback configuration and unlocks playback
69891   */
69892
69893
69894  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69895    Object(loggerbabel_target_legacy["c" /* log */])("unlockCounter is now ".concat(unlockCounter));
69896
69897    if (playLocked && unlockCounter === 0) {
69898      /**
69899       * External script may write to window.radioplayer_playbackConfigurationFromExternalScript multiple times.
69900       * The value that will be applied to the console in the end, is the one which is present when the last unlocker dispatches the radioplayer_unlockPlay event.
69901       * The console does not offer any Tag manager functionality: If several external <script>s are used, their execution order must be managed by console implementors.
69902       */
69903      applyPlaybackConfigurationFromScriptOrIframe();
69904      setPlayLocked(false);
69905    }
69906  }, [applyPlaybackConfigurationFromScriptOrIframe, playLocked, unlockCounter]);
69907  var autoUnlockPlayTimer = Object(hooks_modulebabel_target_legacy["i" /* useRef */])(undefined);
69908  /**
69909   * Handle messages from IFrame that update playback configuration and unlock playback.
69910   *
69911   * Updating playback configuration works like this for IFrames (for external <scripts> the workflow is different).
69912   * 1. IFrame adds event listener for event type 'message'.
69913   * 2. Console loads playback configuration (from 2 sources: 1. MAPI and 2. passed by preact-habitat)
69914   * 3. Console sends ReadyForUnlockPlayMessage to IFrame
69915   * 5. IFrame receives the event
69916   * 6. IFrame updates the configuration (e.g. adds query parameters to stream urls)
69917   * 7. IFrame sends its updated configuration to console as RequestPlaybackConfigurationUpdateMessage
69918   * 8. IFrame requests playback unlock by sending a RequestUnlockPlayMessage
69919   * 9. Console reads updated configuration from the global variable and applies it
69920   *
69921   * The order of steps is important!
69922   *
69923   */
69924
69925  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69926    if (playLocked === false || emitter === undefined || originalPlaybackConfiguration === undefined) {
69927      return;
69928    }
69929
69930    var unlockEventHandler = function unlockEventHandler() {
69931      Object(loggerbabel_target_legacy["c" /* log */])("Received unlockPlay request from Iframe.");
69932      setUnlockCounter(function (prevState) {
69933        return prevState === 0 ? 0 : prevState - 1;
69934      });
69935    };
69936
69937    var playbackConfigurationUpdateHandler = function playbackConfigurationUpdateHandler(playbackConfig) {
69938      Object(loggerbabel_target_legacy["c" /* log */])("Received playbackConfigurationUpdate request from Iframe.");
69939      playbackConfigUtilsbabel_target_legacy_writePlaybackConfigurationFromExternalScript(playbackConfig);
69940    };
69941
69942    emitter.on("requestplaybackconfigurationupdate", playbackConfigurationUpdateHandler);
69943    emitter.on("requestunlockplay", unlockEventHandler); // It is not trivial to set up communication between web player and IFrame without
69944    // one of them missing the "I am ready for communication" message from the other.
69945    // This pragmatic approach solves the problem by sending the message repeatedly.
69946    // Performance is not an issue, because a. timeout is high and b. payload is small (c.f. e.g. https://surma.dev/things/is-postmessage-slow/)
69947
69948    var timeout = 500;
69949    playbackConfigurationEmitter.current = window.setInterval(function () {
69950      emit("readyforunlockplay", originalPlaybackConfiguration);
69951    }, timeout);
69952    return function () {
69953      window.clearInterval(playbackConfigurationEmitter.current);
69954      playbackConfigurationEmitter.current = undefined;
69955      emitter.off("requestplaybackconfigurationupdate", playbackConfigurationUpdateHandler);
69956      emitter.off("requestunlockplay", unlockEventHandler);
69957    };
69958  }, [emit, emitter, originalPlaybackConfiguration, playLocked]);
69959  /**
69960   * Stop playbackConfigurationEmitter once playLocked = false
69961   */
69962
69963  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69964    if (playbackConfigurationEmitter === undefined || emitter === undefined || originalPlaybackConfiguration === undefined) {
69965      return;
69966    }
69967
69968    if (playLocked === false) {
69969      window.clearInterval(playbackConfigurationEmitter.current);
69970      playbackConfigurationEmitter.current = undefined;
69971    }
69972  }, [emitter, originalPlaybackConfiguration, playLocked]);
69973  /**
69974   * Initialize event listeners and inform external <script>s.
69975   * Watch out: If App.tsx is ever unmounted and remounted, events from external <script>s might be missed.
69976   */
69977
69978  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
69979    if (appInitialized) {
69980      /**
69981       * Note: If no external script ever unlocks playback (e.g. because they encounter a runtime error), users could never start playback.
69982       */
69983      autoUnlockPlayTimer.current = window.setTimeout(function () {
69984        /**
69985         * Updates to playback configuration from external <script> are applied, even if timeout occurs (decided in conference call with J. Chard, G. Perry, R.Smeikal and T. Schubert on Jan 27th )
69986         */
69987        setUnlockCounter(0);
69988      }, 7000);
69989      /** Decreasing timeout to lower than tcWaitTimeout (see APIProvider.tsx) might create problems.**/
69990
69991      var unlockEventHandler = function unlockEventHandler() {
69992        /**
69993         * Note: Playback configuration updated by external <script> is not passed via event argument of event EventNames.UnlockPlay, but passed via a global variable.
69994         * Reason: The console might miss an unlockPlay event and the updated playback configuration would be lost.
69995         */
69996        Object(loggerbabel_target_legacy["c" /* log */])("Event listener received unlockPlay event.");
69997        setUnlockCounter(function (prevState) {
69998          return prevState === 0 ? 0 : prevState - 1;
69999        });
70000      };
70001
70002      Object(loggerbabel_target_legacy["c" /* log */])("Adding unlockPlay event listener");
70003      window.addEventListener(EventNames.UnlockPlay, unlockEventHandler);
70004      /**
70005       * Inform external <script>s that web player is ready to receive events.
70006       * That means:
70007       * 1. All event listeners are ready
70008       * 2. Make the stream modifier utils available to external scripts
70009       * 3. Playback configuration was written to global variable
70010       */
70011
70012      window.streamModifierUtils = streamModifierUtils;
70013      window.dispatchEvent(new CustomEvent(EventNames.ReadyToReceiveEvents));
70014      Object(loggerbabel_target_legacy["c" /* log */])("Radioplayer web player is ready to receive events");
70015      return function () {
70016        window.removeEventListener(EventNames.UnlockPlay, unlockEventHandler);
70017        window.clearTimeout(autoUnlockPlayTimer.current);
70018      };
70019    }
70020  }, [appInitialized]);
70021  /**
70022   */
70023
70024  var _useState25 = Object(hooks_modulebabel_target_legacy["j" /* useState */])({}),
70025      _useState26 = slicedToArraybabel_target_legacy_default()(_useState25, 2),
70026      streamParams = _useState26[0],
70027      setStreamParams = _useState26[1];
70028  /**
70029   * This useEffect emulates componentDidUnmount() + componentWillUnmount(). It needs to have an empty dependency array:
70030   * The body and its cleanup function should only be called once!
70031   */
70032
70033
70034  Object(hooks_modulebabel_target_legacy["d" /* useEffect */])(function () {
70035    var queryParamHandler = function queryParamHandler(_ref3) {
70036      var detail = _ref3.detail;
70037      setStreamParams(function (prevStreamParams) {
70038        return Appbabel_target_legacy_objectSpread(Appbabel_target_legacy_objectSpread({}, prevStreamParams), detail);
70039      });
70040    };
70041
70042    window.addEventListener(EventNames.SyncQueryParams, queryParamHandler);
70043    return function () {
70044      window.removeEventListener(EventNames.SyncQueryParams, queryParamHandler);
70045    };
70046  }, []); // Do not add dependencies to the array (see above).
70047
70048  var extraStyle = {
70049    "--radioplayer-theme-colour": themeColour || "",
70050    "--radioplayer-now-playing-highlight": widgetTheme === "DARK" ? getHighLightColour() : "",
70051    "--radioplayer-widget-custom-colour": widgetColour || "",
70052    "--radioplayer-widget-custom-transparent": widgetColour ? "".concat(widgetColour, "00") : "",
70053    "--radioplayer-widget-customTheme": widgetTheme === "DARK" ? "white" : "",
70054    "--radioplayer-secondary-colour-customTheme": widgetTheme === "DARK" ? "white" : "",
70055    "--radioplayer-contrast-colour": widgetTheme === "DARK" ? "#000000" : "",
70056    "--radioplayer-widget-header-colour": widgetHeaderColour || "",
70057    "--radioplayer-widget-header-text-colour": getWidgetHeaderTextColour() || ""
70058  };
70059
70060  var _useAdswizzVastDecora = useAdswizzVastbabel_target_legacy_useAdswizzVastDecorators({
70061    adProviders: adProviders,
70062    tcString: tcString
70063  }),
70064      decoratedAdProviders = _useAdswizzVastDecora.decoratedAdProviders;
70065
70066  Object(css_vars_ponyfill_esmbabel_target_legacy["a" /* default */])({
70067    silent: true,
70068    variables: extraStyle
70069  });
70070  var providers = decoratedAdProviders ? decoratedAdProviders.map(function (p) {
70071    return p.type;
70072  }).join() : "";
70073  if (i18nInitialized && streams && !!streams.length) return Object(preact_modulebabel_target_legacy["h"])("div", {
70074    className: App_module_default.a.wrap,
70075    style: extraStyle,
70076    ref: divRef
70077  }, Object(preact_modulebabel_target_legacy["h"])(IconSheetbabel_target_legacy["a" /* IconSheet */], null), Object(preact_modulebabel_target_legacy["h"])(AnnouncementBannerbabel_target_legacy["a" /* AnnouncementBanner */], null), Object(preact_modulebabel_target_legacy["h"])(CookieBannerbabel_target_legacy["a" /* CookieBanner */], {
70078    adProviders: providers
70079  }), Object(preact_modulebabel_target_legacy["h"])(NavBarbabel_target_legacy["a" /* NavBar */], {
70080    onClickMenu: toggleMenu,
70081    onClickSearch: toggleSearch,
70082    logo: rpLogo,
70083    stationName: stationName
70084  }), showMenu && Object(preact_modulebabel_target_legacy["h"])(MenuPanelbabel_target_legacy["a" /* MenuPanel */], {
70085    onHide: hideMenu,
70086    adProviders: providers,
70087    cmp: cmp
70088  }), showSearch && Object(preact_modulebabel_target_legacy["h"])(SearchPanelbabel_target_legacy["a" /* SearchPanel */], {
70089    id: id,
70090    toggleSearch: toggleSearch,
70091    closeSearch: closeSearch
70092  }), streamError ? Object(preact_modulebabel_target_legacy["h"])(SoundOfSilencebabel_target_legacy_SoundOfSilence, null) : Object(preact_modulebabel_target_legacy["h"])(WidgetSpacebabel_target_legacy_WidgetSpace, {
70093    companionAd: companionAd,
70094    nowPlaying: nowPlaying,
70095    widgets: widgets,
70096    iframeSrc: iframeSrc,
70097    gptTag: gptTag,
70098    enableIframeMessaging: enableIframeMessaging,
70099    fullHeight: disablePlaybackButtons && disableScrubber,
70100    backgroundColour: widgetBackground,
70101    widgetOverrides: widgetOverrides,
70102    stationName: stationName
70103  }), Object(preact_modulebabel_target_legacy["h"])(Playerbabel_target_legacy_Player, {
70104    streams: streams,
70105    isOnDemand: !!onDemandItem,
70106    adProviders: decoratedAdProviders,
70107    rpId: id,
70108    onCompanionAds: onCompanionAds,
70109    theme: theme,
70110    stationLogo: stationLogo,
70111    stationUrl: stationUrl,
70112    stationName: stationName,
70113    onStreamError: onStreamError,
70114    disableLiveSeek: disableLiveSeek,
70115    disablePlaybackButtons: disablePlaybackButtons,
70116    disableScrubber: disableScrubber,
70117    playLocked: playLocked,
70118    streamParams: streamParams
70119  }));
70120  if (appInitialized && streams && streams.length === 0 || onDemandItem === "failed") return Object(preact_modulebabel_target_legacy["h"])(StationErrorbabel_target_legacy["a" /* StationError */], null);
70121  return Object(preact_modulebabel_target_legacy["h"])("div", null);
70122};
70123// CONCATENATED MODULE: ./src/components/App/index.ts?babel-target=legacy
70124
70125// EXTERNAL MODULE: ./src/lib/queryString.ts?babel-target=legacy
70126var queryStringbabel_target_legacy = __webpack_require__(959);
70127
70128// EXTERNAL MODULE: ./src/lib/CustomTracking/setupCustomTracking.ts?babel-target=legacy + 5 modules
70129var setupCustomTrackingbabel_target_legacy = __webpack_require__(759);
70130
70131// EXTERNAL MODULE: ./src/lib/useMappedEndpoints.ts?babel-target=legacy
70132var useMappedEndpointsbabel_target_legacy = __webpack_require__(756);
70133
70134// EXTERNAL MODULE: ./src/lib/APIManager/index.ts?babel-target=legacy
70135var lib_APIManagerbabel_target_legacy = __webpack_require__(757);
70136
70137// CONCATENATED MODULE: ./src/components/ODWrapper/ODWrapper.tsx?babel-target=legacy
70138
70139
70140
70141
70142
70143
70144
70145
70146
70147
70148
70149
70150
70151
70152
70153
70154
70155
70156
70157
70158var ODWrapperbabel_target_legacy_ODWrapper = function ODWrapper(_ref) {
70159  var onDemandItem = _ref.onDemandItem,
70160      id = _ref.id,
70161      $qp = _ref.qp,
70162      $cm = _ref.cm,
70163      $np = _ref.np,
70164      cmp = _ref.cmp,
70165      tracking = _ref.tracking,
70166      playLocked = _ref.playLocked,
70167      numberOfUnlockers = _ref.numberOfUnlockers,
70168      mapi = _ref.mapi,
70169      disableCookieBanner = _ref.disableCookieBanner,
70170      _ref$bbcCookies = _ref.bbcCookies,
70171      bbcCookies = _ref$bbcCookies === void 0 ? false : _ref$bbcCookies,
70172      props = objectWithoutPropertiesbabel_target_legacy_default()(_ref, ["onDemandItem", "id", "qp", "cm", "np", "cmp", "tracking", "playLocked", "numberOfUnlockers", "mapi", "disableCookieBanner", "bbcCookies"]);
70173
70174  var _useMappedEndpoints = Object(useMappedEndpointsbabel_target_legacy["a" /* default */])({
70175    $qp: $qp,
70176    $cm: $cm,
70177    $np: $np
70178  }),
70179      qp = _useMappedEndpoints.qp,
70180      cm = _useMappedEndpoints.cm,
70181      np = _useMappedEndpoints.np;
70182
70183  var _useMemo = Object(hooks_modulebabel_target_legacy["g" /* useMemo */])(function () {
70184    return Object(setupCustomTrackingbabel_target_legacy["a" /* setupCustomTracking */])(cmp, tracking);
70185  }, [cmp, tracking]),
70186      notifyTrackingObservers = _useMemo.notifyTrackingObservers,
70187      trackingProviders = _useMemo.trackingProviders;
70188
70189  var _useState = Object(hooks_modulebabel_target_legacy["j" /* useState */])(onDemandItem),
70190      _useState2 = slicedToArraybabel_target_legacy_default()(_useState, 2),
70191      odItem = _useState2[0],
70192      setOdItem = _useState2[1];
70193
70194  var params = Object(queryStringbabel_target_legacy["a" /* parseQueryString */])(window.location.search);
70195  var rpAodUrl = window.location.search.split("rpAodUrl=")[1];
70196  var isOD = !!odItem || "rpOdId" in params || rpAodUrl;
70197
70198  var lookupOD = /*#__PURE__*/function () {
70199    var _ref2 = asyncToGeneratorbabel_target_legacy_default()( /*#__PURE__*/regenerator_babel_target_legacy_default.a.mark(function _callee() {
70200      var od;
70201      return regenerator_babel_target_legacy_default.a.wrap(function _callee$(_context) {
70202        while (1) {
70203          switch (_context.prev = _context.next) {
70204            case 0:
70205              if (!(qp && isOD)) {
70206                _context.next = 19;
70207                break;
70208              }
70209
70210              if (!rpAodUrl) {
70211                _context.next = 11;
70212                break;
70213              }
70214
70215              _context.next = 4;
70216              return Object(APIManagerbabel_target_legacy["g" /* getODInfo */])(qp, Object(APIManagerbabel_target_legacy["f" /* getHashFromString */])(rpAodUrl), undefined);
70217
70218            case 4:
70219              _context.t0 = _context.sent;
70220
70221              if (_context.t0) {
70222                _context.next = 7;
70223                break;
70224              }
70225
70226              _context.t0 = "failed";
70227
70228            case 7:
70229              od = _context.t0;
70230              Object(loggerbabel_target_legacy["c" /* log */])("Got On Demand from rpAodUrl: ".concat(rpAodUrl), od);
70231              _context.next = 18;
70232              break;
70233
70234            case 11:
70235              _context.next = 13;
70236              return Object(APIManagerbabel_target_legacy["g" /* getODInfo */])(qp, params.rpOdId, "rpOdUrl" in params ? window.location.href : undefined);
70237
70238            case 13:
70239              _context.t1 = _context.sent;
70240
70241              if (_context.t1) {
70242                _context.next = 16;
70243                break;
70244              }
70245
70246              _context.t1 = "failed";
70247
70248            case 16:
70249              od = _context.t1;
70250              Object(loggerbabel_target_legacy["c" /* log */])("Got On Demand info from rpOdId", od);
70251
70252            case 18:
70253              if (od) {
70254                setOdItem(od);
70255              }
70256
70257            case 19:
70258            case "end":
70259              return _context.stop();
70260          }
70261        }
70262      }, _callee);
70263    }));
70264
70265    return function lookupOD() {
70266      return _ref2.apply(this, arguments);
70267    };
70268  }();
70269
70270  if (!!onDemandItem && onDemandItem !== "awaiting") {
70271    setOdItem(onDemandItem);
70272  } else {
70273    if (!odItem) {
70274      lookupOD();
70275    }
70276  }
70277
70278  return Object(preact_modulebabel_target_legacy["h"])(EventBusbabel_target_legacy["a" /* EventBusProvider */], null, Object(preact_modulebabel_target_legacy["h"])(lib_APIManagerbabel_target_legacy["a" /* APIProvider */], {
70279    rpId: id,
70280    mapiUrl: mapi,
70281    nowPlayingUrl: np,
70282    cookieManagerUrl: cm,
70283    queryProxyUrl: qp,
70284    bbcCookies: bbcCookies,
70285    disableCookieBanner: disableCookieBanner,
70286    tracking: trackingProviders,
70287    cmp: cmp
70288  }, Object(preact_modulebabel_target_legacy["h"])(Analyticsbabel_target_legacy["a" /* AnalyticsProvider */], extendsbabel_target_legacy_default()({}, props, {
70289    mapi: mapi,
70290    cm: cm,
70291    rpId: id,
70292    odItem: odItem !== "failed" ? odItem : undefined,
70293    odId: params.rpOdId || (rpAodUrl ? Object(APIManagerbabel_target_legacy["f" /* getHashFromString */])(rpAodUrl) : undefined),
70294    notifyTrackingObservers: notifyTrackingObservers
70295  }), Object(preact_modulebabel_target_legacy["h"])(Appbabel_target_legacy_App, extendsbabel_target_legacy_default()({}, props, {
70296    mapi: mapi,
70297    id: id,
70298    np: np,
70299    cmp: cmp,
70300    onDemandItem: isOD ? odItem || "awaiting" : undefined,
70301    playLocked: playLocked,
70302    numberOfUnlockers: numberOfUnlockers
70303  })))));
70304};
70305/* harmony default export */ var ODWrapperbabel_target_legacy = (ODWrapperbabel_target_legacy_ODWrapper);
70306// CONCATENATED MODULE: ./src/components/ODWrapper/index.ts?babel-target=legacy
70307
70308// CONCATENATED MODULE: ./src/index.ts?babel-target=legacy
70309
70310
70311
70312
70313var _habitat = Object(preact_habitat_esbabel_target_legacy["a" /* default */])(ODWrapperbabel_target_legacy_ODWrapper),
70314    renderApp = _habitat.render;
70315
70316if (true) {
70317  Object(loggerbabel_target_legacy["c" /* log */])("Version", "4.1.20");
70318} // eslint-disable-next-line @typescript-eslint/no-explicit-any
70319
70320
70321if (window.__HAS_RUN) {
70322  Object(loggerbabel_target_legacy["e" /* warn */])("Safari 10 has a bug but we caught it");
70323} else {
70324  renderApp({
70325    selector: "[data-widget-radioplayer]",
70326    clean: true
70327  });
70328} // eslint-disable-next-line @typescript-eslint/no-explicit-any
70329// if ((module as any).hot) {
70330//     require("preact/debug");
70331// }
70332
70333
70334if ("serviceWorker" in navigator && (window.location.protocol === "https:" || window.location.hostname === "localhost")) {
70335  var script = document.createElement("script");
70336  if ("noModule" in script) window.addEventListener("load", function () {
70337    navigator.serviceWorker.register("".concat("https://assets.player.radio/latest/", "sw.js")).then(function (registration) {
70338      Object(loggerbabel_target_legacy["c" /* log */])("SW registered: ", registration);
70339    })["catch"](function (registrationError) {
70340      Object(loggerbabel_target_legacy["c" /* log */])("SW registration failed: ", registrationError);
70341    });
70342  });
70343} // eslint-disable-next-line @typescript-eslint/no-explicit-any
70344
70345
70346window.__HAS_RUN = true;
70347
70348/***/ })
70349/******/ ]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.