PageSourceSearch

https://www.yorn.net/etc.clientlibs/digital-commons/clientlibs/clientlib-site.min.js

js yorn.net collected 2026-10-02 12:43:15 UTC 596,877 bytes, 17,523 lines download raw bytes

1/*******************************************************************************
2 * Copyright 2017 Adobe Systems Incorporated
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16if (window.Element && !Element.prototype.closest) {
17    // eslint valid-jsdoc: "off"
18    Element.prototype.closest =
19        function(s) {
20            "use strict";
21            var matches = (this.document || this.ownerDocument).querySelectorAll(s);
22            var el      = this;
23            var i;
24            do {
25                i = matches.length;
26                while (--i >= 0 && matches.item(i) !== el) {
27                    // continue
28                }
29            } while ((i < 0) && (el = el.parentElement));
30            return el;
31        };
32}
33
34if (window.Element && !Element.prototype.matches) {
35    Element.prototype.matches =
36        Element.prototype.matchesSelector ||
37        Element.prototype.mozMatchesSelector ||
38        Element.prototype.msMatchesSelector ||
39        Element.prototype.oMatchesSelector ||
40        Element.prototype.webkitMatchesSelector ||
41        function(s) {
42            "use strict";
43            var matches = (this.document || this.ownerDocument).querySelectorAll(s);
44            var i       = matches.length;
45            while (--i >= 0 && matches.item(i) !== this) {
46                // continue
47            }
48            return i > -1;
49        };
50}
51
52if (!Object.assign) {
53    Object.assign = function(target, varArgs) { // .length of function is 2
54        "use strict";
55        if (target === null) {
56            throw new TypeError("Cannot convert undefined or null to object");
57        }
58
59        var to = Object(target);
60
61        for (var index = 1; index < arguments.length; index++) {
62            var nextSource = arguments[index];
63
64            if (nextSource !== null) {
65                for (var nextKey in nextSource) {
66                    if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
67                        to[nextKey] = nextSource[nextKey];
68                    }
69                }
70            }
71        }
72        return to;
73    };
74}
75
76(function(arr) {
77    "use strict";
78    arr.forEach(function(item) {
79        if (item.hasOwnProperty("remove")) {
80            return;
81        }
82        Object.defineProperty(item, "remove", {
83            configurable: true,
84            enumerable: true,
85            writable: true,
86            value: function remove() {
87                this.parentNode.removeChild(this);
88            }
89        });
90    });
91})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
92
93/*******************************************************************************
94 * Copyright 2016 Adobe Systems Incorporated
95 *
96 * Licensed under the Apache License, Version 2.0 (the "License");
97 * you may not use this file except in compliance with the License.
98 * You may obtain a copy of the License at
99 *
100 *     http://www.apache.org/licenses/LICENSE-2.0
101 *
102 * Unless required by applicable law or agreed to in writing, software
103 * distributed under the License is distributed on an "AS IS" BASIS,
104 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
105 * See the License for the specific language governing permissions and
106 * limitations under the License.
107 ******************************************************************************/
108(function() {
109    "use strict";
110
111    var devicePixelRatio = window.devicePixelRatio || 1;
112
113    function SmartImage(noScriptElement, options) {
114        var that = this;
115        var showsLazyLoader = false;
116        var image;
117        var container;
118        var anchor;
119        var dropContainer;
120        var initDone = false;
121
122        that.defaults = {
123            loadHidden: false,
124            imageSelector: "img",
125            containerSelector: ".cmp-image",
126            sourceAttribute: "src",
127            lazyEnabled: true,
128            lazyThreshold: 0,
129            lazyEmptyPixel: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
130            lazyLoaderClass: "loading",
131            lazyLoaderStyle: {
132                "height": 0,
133                "padding-bottom": "" // will get replaced with ratio in %
134            }
135        };
136
137        function init() {
138            var tmp = document.createElement("div");
139            tmp.innerHTML = decodeNoScript(noScriptElement.textContent.trim());
140            var imageElement = tmp.firstElementChild;
141            var source = imageElement.getAttribute(options.sourceAttribute);
142            imageElement.removeAttribute(options.sourceAttribute);
143            imageElement.setAttribute("data-src-disabled", source);
144            container.insertBefore(imageElement, noScriptElement);
145            noScriptElement.remove();
146
147            if (container.matches(options.imageSelector)) {
148                image = container;
149            } else {
150                image = imageElement;
151            }
152
153            that.container = container;
154            that.options = options;
155            that.image = image;
156            if (options.lazyEnabled) {
157                addLazyLoader();
158            }
159            window.addEventListener("scroll", that.update);
160            window.addEventListener("resize", that.update);
161            window.addEventListener("update", that.update);
162            image.addEventListener("cmp-image-redraw", that.update);
163            that.update();
164        }
165
166        function loadImage() {
167            if (options.smartSizes && options.smartImages && options.smartSizes.length > 0) {
168                if (options.smartSizes.length === options.smartImages.length) {
169                    var containerWidth = 0;
170
171                    if (container.tagName.toLowerCase() === "a") {
172                        containerWidth = container.parentElement.clientWidth;
173                    } else {
174                        containerWidth = container.clientWidth;
175                    }
176                    var optimalSize = containerWidth * devicePixelRatio;
177                    var len = options.smartSizes.length;
178                    var key = 0;
179
180                    while ((key < len - 1) && (options.smartSizes[key] < optimalSize)) {
181                        key++;
182                    }
183
184                    if (image.getAttribute(options.sourceAttribute) !== options.smartImages[key]) {
185                        image.setAttribute(options.sourceAttribute, options.smartImages[key]);
186                        image.removeAttribute("data-src-disabled");
187                        window.removeEventListener("scroll", that.update);
188                    }
189                }
190            } else {
191                if (!initDone) {
192                    image.setAttribute(options.sourceAttribute, image.getAttribute("data-src-disabled"));
193                    image.removeAttribute("data-src-disabled");
194                    window.removeEventListener("scroll", that.update);
195                    initDone = true;
196                }
197            }
198
199            if (showsLazyLoader) {
200                image.addEventListener("load", removeLazyLoader);
201            }
202        }
203
204        function addLazyLoader() {
205            var width = image.getAttribute("width");
206            var height = image.getAttribute("height");
207            if (width && height) {
208                var ratio = (height / width) * 100;
209                var styles = options.lazyLoaderStyle;
210                styles["padding-bottom"] = ratio + "%";
211                for (var s in styles) {
212                    if (styles.hasOwnProperty(s)) {
213                        image.style[s] = styles[s];
214                    }
215                }
216            }
217            image.setAttribute(options.sourceAttribute, options.lazyEmptyPixel);
218            image.classList.add(options.lazyLoaderClass);
219            showsLazyLoader = true;
220        }
221
222        function removeLazyLoader() {
223            image.classList.remove(options.lazyLoaderClass);
224            for (var property in options.lazyLoaderStyle) {
225                if (options.lazyLoaderStyle.hasOwnProperty(property)) {
226                    image.style[property] = "";
227                }
228            }
229            image.removeEventListener("load", removeLazyLoader);
230            showsLazyLoader = false;
231        }
232
233        function isLazyVisible() {
234
235            if (container.offsetParent === null) {
236                return false;
237            }
238
239            var wt = window.pageYOffset;
240            var wb = wt + document.documentElement.clientHeight;
241            var et = container.getBoundingClientRect().top + wt;
242            var eb = et + container.clientHeight;
243
244            return eb >= wt - options.lazyThreshold && et <= wb + options.lazyThreshold;
245        }
246
247        that.update = function() {
248            if (options.lazyEnabled) {
249                if (isLazyVisible() || options.loadHidden) {
250                    loadImage();
251                }
252            } else {
253                loadImage();
254            }
255        };
256
257        options = Object.assign(that.defaults, options);
258
259        container = noScriptElement.closest(options.containerSelector);
260        if (container) {
261            dropContainer = noScriptElement.closest(".cq-dd-image");
262            if (dropContainer) {
263                container = dropContainer;
264            }
265            anchor = container.querySelector(".cmp-image--link");
266            if (anchor !== null) {
267                container = anchor;
268            }
269            init();
270        }
271    }
272
273    document.addEventListener("DOMContentLoaded", function() {
274
275        var imageElements = document.querySelectorAll("noscript[data-cmp-image]");
276        var images        = [];
277        for (var index = 0; index < imageElements.length; index++) {
278            var noScriptElement = imageElements[index];
279            var imageOptions    = noScriptElement.dataset.cmpImage;
280            noScriptElement.removeAttribute("data-cmp-image");
281            images.push(new SmartImage(noScriptElement, JSON.parse(imageOptions)));
282        }
283        var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
284        var body             = document.querySelector("body");
285        var observer         = new MutationObserver(function(mutations) {
286            mutations.forEach(function(mutation) {
287                // needed for IE
288                var nodesArray = [].slice.call(mutation.addedNodes);
289                if (nodesArray.length > 0) {
290                    nodesArray.forEach(function(addedNode) {
291                        if (addedNode.querySelectorAll) {
292                            var noScriptArray = [].slice.call(addedNode.querySelectorAll("noscript[data-cmp-image]"));
293                            noScriptArray.forEach(function(noScriptElement) {
294                                var imageOptions = JSON.parse(noScriptElement.dataset.cmpImage);
295                                noScriptElement.removeAttribute("data-cmp-image");
296                                images.push(new SmartImage(noScriptElement, imageOptions));
297                            });
298                        }
299                    });
300                }
301            });
302        });
303
304        observer.observe(body, {
305            subtree: true,
306            childList: true,
307            characterData: true
308        });
309    });
310
311    /*
312         on drag & drop of the component into a parsys, noscript's content will be escaped multiple times by the editor which creates
313         the DOM for editing; the HTML parser cannot be used here due to the multiple escaping
314     */
315    function decodeNoScript(text) {
316        text = text.replace(/&(amp;)*lt;/g, "<");
317        text = text.replace(/&(amp;)*gt;/g, ">");
318        return text;
319    }
320})();
321
322/*******************************************************************************
323 * Copyright 2016 Adobe Systems Incorporated
324 *
325 * Licensed under the Apache License, Version 2.0 (the "License");
326 * you may not use this file except in compliance with the License.
327 * You may obtain a copy of the License at
328 *
329 *     http://www.apache.org/licenses/LICENSE-2.0
330 *
331 * Unless required by applicable law or agreed to in writing, software
332 * distributed under the License is distributed on an "AS IS" BASIS,
333 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
334 * See the License for the specific language governing permissions and
335 * limitations under the License.
336 ******************************************************************************/
337(function() {
338    "use strict";
339
340    function documentReady(fn) {
341        if (document.readyState !== "loading") {
342            fn();
343        } else {
344            document.addEventListener("DOMContentLoaded", fn);
345        }
346    }
347
348    var INPUT_FIELD = ".cmp-form-field input";
349    var REQUIRED_MSG_ATTRIBUTE = "data-cmp-required";
350    var CONSTRAINT_MSG_ATTRIBUTE = "data-cmp-constraint";
351
352    documentReady(function() {
353        var inputFields = document.querySelectorAll(INPUT_FIELD);
354        var inputField;
355        var index;
356
357        for (index = 0; index < inputFields.length; index++) {
358            inputField = inputFields[index];
359            inputField.addEventListener("invalid", function(e) {
360                e.target.setCustomValidity("");
361                if (e.target.validity.typeMismatch) {
362                    if (inputField.hasAttribute(CONSTRAINT_MSG_ATTRIBUTE)) {
363                        e.target.setCustomValidity(inputField.getAttribute(CONSTRAINT_MSG_ATTRIBUTE));
364                    }
365                } else if (e.target.validity.valueMissing) {
366                    if (inputField.hasAttribute(REQUIRED_MSG_ATTRIBUTE)) {
367                        e.target.setCustomValidity(inputField.getAttribute(REQUIRED_MSG_ATTRIBUTE));
368                    }
369                }
370            });
371            inputField.addEventListener("input", function(e) {
372                e.target.setCustomValidity("");
373            });
374        }
375    });
376
377})();
378
379/*
380 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
381 *
382 * Uses the built in easing capabilities added In jQuery 1.1
383 * to offer multiple easing options
384 *
385 * TERMS OF USE - jQuery Easing
386 * 
387 * Open source under the BSD License. 
388 * 
389 * Copyright © 2008 George McGinley Smith
390 * All rights reserved.
391 * 
392 * Redistribution and use in source and binary forms, with or without modification, 
393 * are permitted provided that the following conditions are met:
394 * 
395 * Redistributions of source code must retain the above copyright notice, this list of 
396 * conditions and the following disclaimer.
397 * Redistributions in binary form must reproduce the above copyright notice, this list 
398 * of conditions and the following disclaimer in the documentation and/or other materials 
399 * provided with the distribution.
400 * 
401 * Neither the name of the author nor the names of contributors may be used to endorse 
402 * or promote products derived from this software without specific prior written permission.
403 * 
404 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
405 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
406 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
407 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
vendor: 5,091 bytes, lines 408-553
408 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
409 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
410 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
411 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
412 * OF THE POSSIBILITY OF SUCH DAMAGE. 
413 *
414*/
415
416// t: current time, b: begInnIng value, c: change In value, d: duration
417jQuery.easing['jswing'] = jQuery.easing['swing'];
418
419jQuery.extend( jQuery.easing,
420{
421	def: 'easeOutQuad',
422	swing: function (x, t, b, c, d) {
423		//alert(jQuery.easing.default);
424		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
425	},
426	easeInQuad: function (x, t, b, c, d) {
427		return c*(t/=d)*t + b;
428	},
429	easeOutQuad: function (x, t, b, c, d) {
430		return -c *(t/=d)*(t-2) + b;
431	},
432	easeInOutQuad: function (x, t, b, c, d) {
433		if ((t/=d/2) < 1) return c/2*t*t + b;
434		return -c/2 * ((--t)*(t-2) - 1) + b;
435	},
436	easeInCubic: function (x, t, b, c, d) {
437		return c*(t/=d)*t*t + b;
438	},
439	easeOutCubic: function (x, t, b, c, d) {
440		return c*((t=t/d-1)*t*t + 1) + b;
441	},
442	easeInOutCubic: function (x, t, b, c, d) {
443		if ((t/=d/2) < 1) return c/2*t*t*t + b;
444		return c/2*((t-=2)*t*t + 2) + b;
445	},
446	easeInQuart: function (x, t, b, c, d) {
447		return c*(t/=d)*t*t*t + b;
448	},
449	easeOutQuart: function (x, t, b, c, d) {
450		return -c * ((t=t/d-1)*t*t*t - 1) + b;
451	},
452	easeInOutQuart: function (x, t, b, c, d) {
453		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
454		return -c/2 * ((t-=2)*t*t*t - 2) + b;
455	},
456	easeInQuint: function (x, t, b, c, d) {
457		return c*(t/=d)*t*t*t*t + b;
458	},
459	easeOutQuint: function (x, t, b, c, d) {
460		return c*((t=t/d-1)*t*t*t*t + 1) + b;
461	},
462	easeInOutQuint: function (x, t, b, c, d) {
463		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
464		return c/2*((t-=2)*t*t*t*t + 2) + b;
465	},
466	easeInSine: function (x, t, b, c, d) {
467		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
468	},
469	easeOutSine: function (x, t, b, c, d) {
470		return c * Math.sin(t/d * (Math.PI/2)) + b;
471	},
472	easeInOutSine: function (x, t, b, c, d) {
473		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
474	},
475	easeInExpo: function (x, t, b, c, d) {
476		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
477	},
478	easeOutExpo: function (x, t, b, c, d) {
479		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
480	},
481	easeInOutExpo: function (x, t, b, c, d) {
482		if (t==0) return b;
483		if (t==d) return b+c;
484		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
485		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
486	},
487	easeInCirc: function (x, t, b, c, d) {
488		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
489	},
490	easeOutCirc: function (x, t, b, c, d) {
491		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
492	},
493	easeInOutCirc: function (x, t, b, c, d) {
494		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
495		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
496	},
497	easeInElastic: function (x, t, b, c, d) {
498		var s=1.70158;var p=0;var a=c;
499		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
500		if (a < Math.abs(c)) { a=c; var s=p/4; }
501		else var s = p/(2*Math.PI) * Math.asin (c/a);
502		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
503	},
504	easeOutElastic: function (x, t, b, c, d) {
505		var s=1.70158;var p=0;var a=c;
506		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
507		if (a < Math.abs(c)) { a=c; var s=p/4; }
508		else var s = p/(2*Math.PI) * Math.asin (c/a);
509		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
510	},
511	easeInOutElastic: function (x, t, b, c, d) {
512		var s=1.70158;var p=0;var a=c;
513		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
514		if (a < Math.abs(c)) { a=c; var s=p/4; }
515		else var s = p/(2*Math.PI) * Math.asin (c/a);
516		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
517		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
518	},
519	easeInBack: function (x, t, b, c, d, s) {
520		if (s == undefined) s = 1.70158;
521		return c*(t/=d)*t*((s+1)*t - s) + b;
522	},
523	easeOutBack: function (x, t, b, c, d, s) {
524		if (s == undefined) s = 1.70158;
525		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
526	},
527	easeInOutBack: function (x, t, b, c, d, s) {
528		if (s == undefined) s = 1.70158; 
529		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
530		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
531	},
532	easeInBounce: function (x, t, b, c, d) {
533		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
534	},
535	easeOutBounce: function (x, t, b, c, d) {
536		if ((t/=d) < (1/2.75)) {
537			return c*(7.5625*t*t) + b;
538		} else if (t < (2/2.75)) {
539			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
540		} else if (t < (2.5/2.75)) {
541			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
542		} else {
543			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
544		}
545	},
546	easeInOutBounce: function (x, t, b, c, d) {
547		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
548		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
549	}
550});
551
552/*
553 *
554 * TERMS OF USE - EASING EQUATIONS
555 * 
556 * Open source under the BSD License. 
557 * 
558 * Copyright © 2001 Robert Penner
559 * All rights reserved.
560 * 
561 * Redistribution and use in source and binary forms, with or without modification, 
562 * are permitted provided that the following conditions are met:
563 * 
564 * Redistributions of source code must retain the above copyright notice, this list of 
565 * conditions and the following disclaimer.
566 * Redistributions in binary form must reproduce the above copyright notice, this list 
567 * of conditions and the following disclaimer in the documentation and/or other materials 
568 * provided with the distribution.
569 * 
570 * Neither the name of the author nor the names of contributors may be used to endorse 
571 * or promote products derived from this software without specific prior written permission.
572 * 
573 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
574 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
575 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
576 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
577 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
578 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
579 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
580 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
581 * OF THE POSSIBILITY OF SUCH DAMAGE. 
582 *
583 */
584(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
585(function (global){
586"use strict";
587
588require("core-js/shim");
589
590require("regenerator-runtime/runtime");
591
592require("core-js/fn/regexp/escape");
593
594if (global._babelPolyfill) {
595  throw new Error("only one instance of babel-polyfill is allowed");
596}
597global._babelPolyfill = true;
598
599var DEFINE_PROPERTY = "defineProperty";
600function define(O, key, value) {
601  O[key] || Object[DEFINE_PROPERTY](O, key, {
602    writable: true,
603    configurable: true,
604    value: value
605  });
606}
607
608define(String.prototype, "padLeft", "".padStart);
609define(String.prototype, "padRight", "".padEnd);
610
611"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) {
612  [][key] && define(Array, key, Function.call.bind([][key]));
613});
614}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
615},{"core-js/fn/regexp/escape":7,"core-js/shim":335,"regenerator-runtime/runtime":2}],2:[function(require
vendor: 13,670 bytes, lines 615-968
615,module,exports){
616(function (global){
617/**
618 * Copyright (c) 2014, Facebook, Inc.
619 * All rights reserved.
620 *
621 * This source code is licensed under the BSD-style license found in the
622 * https://raw.github.com/facebook/regenerator/master/LICENSE file. An
623 * additional grant of patent rights can be found in the PATENTS file in
624 * the same directory.
625 */
626
627!(function(global) {
628  "use strict";
629
630  var Op = Object.prototype;
631  var hasOwn = Op.hasOwnProperty;
632  var undefined; // More compressible than void 0.
633  var $Symbol = typeof Symbol === "function" ? Symbol : {};
634  var iteratorSymbol = $Symbol.iterator || "@@iterator";
635  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
636  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
637
638  var inModule = typeof module === "object";
639  var runtime = global.regeneratorRuntime;
640  if (runtime) {
641    if (inModule) {
642      // If regeneratorRuntime is defined globally and we're in a module,
643      // make the exports object identical to regeneratorRuntime.
644      module.exports = runtime;
645    }
646    // Don't bother evaluating the rest of this file if the runtime was
647    // already defined globally.
648    return;
649  }
650
651  // Define the runtime globally (as expected by generated code) as either
652  // module.exports (if we're in a module) or a new, empty object.
653  runtime = global.regeneratorRuntime = inModule ? module.exports : {};
654
655  function wrap(innerFn, outerFn, self, tryLocsList) {
656    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
657    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
658    var generator = Object.create(protoGenerator.prototype);
659    var context = new Context(tryLocsList || []);
660
661    // The ._invoke method unifies the implementations of the .next,
662    // .throw, and .return methods.
663    generator._invoke = makeInvokeMethod(innerFn, self, context);
664
665    return generator;
666  }
667  runtime.wrap = wrap;
668
669  // Try/catch helper to minimize deoptimizations. Returns a completion
670  // record like context.tryEntries[i].completion. This interface could
671  // have been (and was previously) designed to take a closure to be
672  // invoked without arguments, but in all the cases we care about we
673  // already have an existing method we want to call, so there's no need
674  // to create a new function object. We can even get away with assuming
675  // the method takes exactly one argument, since that happens to be true
676  // in every case, so we don't have to touch the arguments object. The
677  // only additional allocation required is the completion record, which
678  // has a stable shape and so hopefully should be cheap to allocate.
679  function tryCatch(fn, obj, arg) {
680    try {
681      return { type: "normal", arg: fn.call(obj, arg) };
682    } catch (err) {
683      return { type: "throw", arg: err };
684    }
685  }
686
687  var GenStateSuspendedStart = "suspendedStart";
688  var GenStateSuspendedYield = "suspendedYield";
689  var GenStateExecuting = "executing";
690  var GenStateCompleted = "completed";
691
692  // Returning this object from the innerFn has the same effect as
693  // breaking out of the dispatch switch statement.
694  var ContinueSentinel = {};
695
696  // Dummy constructor functions that we use as the .constructor and
697  // .constructor.prototype properties for functions that return Generator
698  // objects. For full spec compliance, you may wish to configure your
699  // minifier not to mangle the names of these two functions.
700  function Generator() {}
701  function GeneratorFunction() {}
702  function GeneratorFunctionPrototype() {}
703
704  // This is a polyfill for %IteratorPrototype% for environments that
705  // don't natively support it.
706  var IteratorPrototype = {};
707  IteratorPrototype[iteratorSymbol] = function () {
708    return this;
709  };
710
711  var getProto = Object.getPrototypeOf;
712  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
713  if (NativeIteratorPrototype &&
714      NativeIteratorPrototype !== Op &&
715      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
716    // This environment has a native %IteratorPrototype%; use it instead
717    // of the polyfill.
718    IteratorPrototype = NativeIteratorPrototype;
719  }
720
721  var Gp = GeneratorFunctionPrototype.prototype =
722    Generator.prototype = Object.create(IteratorPrototype);
723  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
724  GeneratorFunctionPrototype.constructor = GeneratorFunction;
725  GeneratorFunctionPrototype[toStringTagSymbol] =
726    GeneratorFunction.displayName = "GeneratorFunction";
727
728  // Helper for defining the .next, .throw, and .return methods of the
729  // Iterator interface in terms of a single ._invoke method.
730  function defineIteratorMethods(prototype) {
731    ["next", "throw", "return"].forEach(function(method) {
732      prototype[method] = function(arg) {
733        return this._invoke(method, arg);
734      };
735    });
736  }
737
738  runtime.isGeneratorFunction = function(genFun) {
739    var ctor = typeof genFun === "function" && genFun.constructor;
740    return ctor
741      ? ctor === GeneratorFunction ||
742        // For the native GeneratorFunction constructor, the best we can
743        // do is to check its .name property.
744        (ctor.displayName || ctor.name) === "GeneratorFunction"
745      : false;
746  };
747
748  runtime.mark = function(genFun) {
749    if (Object.setPrototypeOf) {
750      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
751    } else {
752      genFun.__proto__ = GeneratorFunctionPrototype;
753      if (!(toStringTagSymbol in genFun)) {
754        genFun[toStringTagSymbol] = "GeneratorFunction";
755      }
756    }
757    genFun.prototype = Object.create(Gp);
758    return genFun;
759  };
760
761  // Within the body of any async function, `await x` is transformed to
762  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
763  // `hasOwn.call(value, "__await")` to determine if the yielded value is
764  // meant to be awaited.
765  runtime.awrap = function(arg) {
766    return { __await: arg };
767  };
768
769  function AsyncIterator(generator) {
770    function invoke(method, arg, resolve, reject) {
771      var record = tryCatch(generator[method], generator, arg);
772      if (record.type === "throw") {
773        reject(record.arg);
774      } else {
775        var result = record.arg;
776        var value = result.value;
777        if (value &&
778            typeof value === "object" &&
779            hasOwn.call(value, "__await")) {
780          return Promise.resolve(value.__await).then(function(value) {
781            invoke("next", value, resolve, reject);
782          }, function(err) {
783            invoke("throw", err, resolve, reject);
784          });
785        }
786
787        return Promise.resolve(value).then(function(unwrapped) {
788          // When a yielded Promise is resolved, its final value becomes
789          // the .value of the Promise<{value,done}> result for the
790          // current iteration. If the Promise is rejected, however, the
791          // result for this iteration will be rejected with the same
792          // reason. Note that rejections of yielded Promises are not
793          // thrown back into the generator function, as is the case
794          // when an awaited Promise is rejected. This difference in
795          // behavior between yield and await is important, because it
796          // allows the consumer to decide what to do with the yielded
797          // rejection (swallow it and continue, manually .throw it back
798          // into the generator, abandon iteration, whatever). With
799          // await, by contrast, there is no opportunity to examine the
800          // rejection reason outside the generator function, so the
801          // only option is to throw it from the await expression, and
802          // let the generator function handle the exception.
803          result.value = unwrapped;
804          resolve(result);
805        }, reject);
806      }
807    }
808
809    if (typeof global.process === "object" && global.process.domain) {
810      invoke = global.process.domain.bind(invoke);
811    }
812
813    var previousPromise;
814
815    function enqueue(method, arg) {
816      function callInvokeWithMethodAndArg() {
817        return new Promise(function(resolve, reject) {
818          invoke(method, arg, resolve, reject);
819        });
820      }
821
822      return previousPromise =
823        // If enqueue has been called before, then we want to wait until
824        // all previous Promises have been resolved before calling invoke,
825        // so that results are always delivered in the correct order. If
826        // enqueue has not been called before, then it is important to
827        // call invoke immediately, without waiting on a callback to fire,
828        // so that the async generator function has the opportunity to do
829        // any necessary setup in a predictable way. This predictability
830        // is why the Promise constructor synchronously invokes its
831        // executor callback, and why async functions synchronously
832        // execute code before the first await. Since we implement simple
833        // async functions in terms of async generators, it is especially
834        // important to get this right, even though it requires care.
835        previousPromise ? previousPromise.then(
836          callInvokeWithMethodAndArg,
837          // Avoid propagating failures to Promises returned by later
838          // invocations of the iterator.
839          callInvokeWithMethodAndArg
840        ) : callInvokeWithMethodAndArg();
841    }
842
843    // Define the unified helper method that is used to implement .next,
844    // .throw, and .return (see defineIteratorMethods).
845    this._invoke = enqueue;
846  }
847
848  defineIteratorMethods(AsyncIterator.prototype);
849  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
850    return this;
851  };
852  runtime.AsyncIterator = AsyncIterator;
853
854  // Note that simple async functions are implemented on top of
855  // AsyncIterator objects; they just return a Promise for the value of
856  // the final result produced by the iterator.
857  runtime.async = function(innerFn, outerFn, self, tryLocsList) {
858    var iter = new AsyncIterator(
859      wrap(innerFn, outerFn, self, tryLocsList)
860    );
861
862    return runtime.isGeneratorFunction(outerFn)
863      ? iter // If outerFn is a generator, return the full iterator.
864      : iter.next().then(function(result) {
865          return result.done ? result.value : iter.next();
866        });
867  };
868
869  function makeInvokeMethod(innerFn, self, context) {
870    var state = GenStateSuspendedStart;
871
872    return function invoke(method, arg) {
873      if (state === GenStateExecuting) {
874        throw new Error("Generator is already running");
875      }
876
877      if (state === GenStateCompleted) {
878        if (method === "throw") {
879          throw arg;
880        }
881
882        // Be forgiving, per 25.3.3.3.3 of the spec:
883        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
884        return doneResult();
885      }
886
887      context.method = method;
888      context.arg = arg;
889
890      while (true) {
891        var delegate = context.delegate;
892        if (delegate) {
893          var delegateResult = maybeInvokeDelegate(delegate, context);
894          if (delegateResult) {
895            if (delegateResult === ContinueSentinel) continue;
896            return delegateResult;
897          }
898        }
899
900        if (context.method === "next") {
901          // Setting context._sent for legacy support of Babel's
902          // function.sent implementation.
903          context.sent = context._sent = context.arg;
904
905        } else if (context.method === "throw") {
906          if (state === GenStateSuspendedStart) {
907            state = GenStateCompleted;
908            throw context.arg;
909          }
910
911          context.dispatchException(context.arg);
912
913        } else if (context.method === "return") {
914          context.abrupt("return", context.arg);
915        }
916
917        state = GenStateExecuting;
918
919        var record = tryCatch(innerFn, self, context);
920        if (record.type === "normal") {
921          // If an exception is thrown from innerFn, we leave state ===
922          // GenStateExecuting and loop back for another invocation.
923          state = context.done
924            ? GenStateCompleted
925            : GenStateSuspendedYield;
926
927          if (record.arg === ContinueSentinel) {
928            continue;
929          }
930
931          return {
932            value: record.arg,
933            done: context.done
934          };
935
936        } else if (record.type === "throw") {
937          state = GenStateCompleted;
938          // Dispatch the exception by looping back around to the
939          // context.dispatchException(context.arg) call above.
940          context.method = "throw";
941          context.arg = record.arg;
942        }
943      }
944    };
945  }
946
947  // Call delegate.iterator[context.method](context.arg) and handle the
948  // result, either by returning a { value, done } result from the
949  // delegate iterator, or by modifying context.method and context.arg,
950  // setting context.delegate to null, and returning the ContinueSentinel.
951  function maybeInvokeDelegate(delegate, context) {
952    var method = delegate.iterator[context.method];
953    if (method === undefined) {
954      // A .throw or .return when the delegate iterator has no .throw
955      // method always terminates the yield* loop.
956      context.delegate = null;
957
958      if (context.method === "throw") {
959        if (delegate.iterator.return) {
960          // If the delegate iterator has a return method, give it a
961          // chance to clean up.
962          context.method = "return";
963          context.arg = undefined;
964          maybeInvokeDelegate(delegate, context);
965
966          if (context.method === "throw") {
967            // If maybeInvokeDelegate(context) changed context.method from
968            // "return" to "throw", let that override the TypeError below.
vendor: 10,473 bytes, lines 969-1346
969            return ContinueSentinel;
970          }
971        }
972
973        context.method = "throw";
974        context.arg = new TypeError(
975          "The iterator does not provide a 'throw' method");
976      }
977
978      return ContinueSentinel;
979    }
980
981    var record = tryCatch(method, delegate.iterator, context.arg);
982
983    if (record.type === "throw") {
984      context.method = "throw";
985      context.arg = record.arg;
986      context.delegate = null;
987      return ContinueSentinel;
988    }
989
990    var info = record.arg;
991
992    if (! info) {
993      context.method = "throw";
994      context.arg = new TypeError("iterator result is not an object");
995      context.delegate = null;
996      return ContinueSentinel;
997    }
998
999    if (info.done) {
1000      // Assign the result of the finished delegate to the temporary
1001      // variable specified by delegate.resultName (see delegateYield).
1002      context[delegate.resultName] = info.value;
1003
1004      // Resume execution at the desired location (see delegateYield).
1005      context.next = delegate.nextLoc;
1006
1007      // If context.method was "throw" but the delegate handled the
1008      // exception, let the outer generator proceed normally. If
1009      // context.method was "next", forget context.arg since it has been
1010      // "consumed" by the delegate iterator. If context.method was
1011      // "return", allow the original .return call to continue in the
1012      // outer generator.
1013      if (context.method !== "return") {
1014        context.method = "next";
1015        context.arg = undefined;
1016      }
1017
1018    } else {
1019      // Re-yield the result returned by the delegate method.
1020      return info;
1021    }
1022
1023    // The delegate iterator is finished, so forget it and continue with
1024    // the outer generator.
1025    context.delegate = null;
1026    return ContinueSentinel;
1027  }
1028
1029  // Define Generator.prototype.{next,throw,return} in terms of the
1030  // unified ._invoke helper method.
1031  defineIteratorMethods(Gp);
1032
1033  Gp[toStringTagSymbol] = "Generator";
1034
1035  // A Generator should always return itself as the iterator object when the
1036  // @@iterator function is called on it. Some browsers' implementations of the
1037  // iterator prototype chain incorrectly implement this, causing the Generator
1038  // object to not be returned from this call. This ensures that doesn't happen.
1039  // See https://github.com/facebook/regenerator/issues/274 for more details.
1040  Gp[iteratorSymbol] = function() {
1041    return this;
1042  };
1043
1044  Gp.toString = function() {
1045    return "[object Generator]";
1046  };
1047
1048  function pushTryEntry(locs) {
1049    var entry = { tryLoc: locs[0] };
1050
1051    if (1 in locs) {
1052      entry.catchLoc = locs[1];
1053    }
1054
1055    if (2 in locs) {
1056      entry.finallyLoc = locs[2];
1057      entry.afterLoc = locs[3];
1058    }
1059
1060    this.tryEntries.push(entry);
1061  }
1062
1063  function resetTryEntry(entry) {
1064    var record = entry.completion || {};
1065    record.type = "normal";
1066    delete record.arg;
1067    entry.completion = record;
1068  }
1069
1070  function Context(tryLocsList) {
1071    // The root entry object (effectively a try statement without a catch
1072    // or a finally block) gives us a place to store values thrown from
1073    // locations where there is no enclosing try statement.
1074    this.tryEntries = [{ tryLoc: "root" }];
1075    tryLocsList.forEach(pushTryEntry, this);
1076    this.reset(true);
1077  }
1078
1079  runtime.keys = function(object) {
1080    var keys = [];
1081    for (var key in object) {
1082      keys.push(key);
1083    }
1084    keys.reverse();
1085
1086    // Rather than returning an object with a next method, we keep
1087    // things simple and return the next function itself.
1088    return function next() {
1089      while (keys.length) {
1090        var key = keys.pop();
1091        if (key in object) {
1092          next.value = key;
1093          next.done = false;
1094          return next;
1095        }
1096      }
1097
1098      // To avoid creating an additional object, we just hang the .value
1099      // and .done properties off the next function object itself. This
1100      // also ensures that the minifier will not anonymize the function.
1101      next.done = true;
1102      return next;
1103    };
1104  };
1105
1106  function values(iterable) {
1107    if (iterable) {
1108      var iteratorMethod = iterable[iteratorSymbol];
1109      if (iteratorMethod) {
1110        return iteratorMethod.call(iterable);
1111      }
1112
1113      if (typeof iterable.next === "function") {
1114        return iterable;
1115      }
1116
1117      if (!isNaN(iterable.length)) {
1118        var i = -1, next = function next() {
1119          while (++i < iterable.length) {
1120            if (hasOwn.call(iterable, i)) {
1121              next.value = iterable[i];
1122              next.done = false;
1123              return next;
1124            }
1125          }
1126
1127          next.value = undefined;
1128          next.done = true;
1129
1130          return next;
1131        };
1132
1133        return next.next = next;
1134      }
1135    }
1136
1137    // Return an iterator with no values.
1138    return { next: doneResult };
1139  }
1140  runtime.values = values;
1141
1142  function doneResult() {
1143    return { value: undefined, done: true };
1144  }
1145
1146  Context.prototype = {
1147    constructor: Context,
1148
1149    reset: function(skipTempReset) {
1150      this.prev = 0;
1151      this.next = 0;
1152      // Resetting context._sent for legacy support of Babel's
1153      // function.sent implementation.
1154      this.sent = this._sent = undefined;
1155      this.done = false;
1156      this.delegate = null;
1157
1158      this.method = "next";
1159      this.arg = undefined;
1160
1161      this.tryEntries.forEach(resetTryEntry);
1162
1163      if (!skipTempReset) {
1164        for (var name in this) {
1165          // Not sure about the optimal order of these conditions:
1166          if (name.charAt(0) === "t" &&
1167              hasOwn.call(this, name) &&
1168              !isNaN(+name.slice(1))) {
1169            this[name] = undefined;
1170          }
1171        }
1172      }
1173    },
1174
1175    stop: function() {
1176      this.done = true;
1177
1178      var rootEntry = this.tryEntries[0];
1179      var rootRecord = rootEntry.completion;
1180      if (rootRecord.type === "throw") {
1181        throw rootRecord.arg;
1182      }
1183
1184      return this.rval;
1185    },
1186
1187    dispatchException: function(exception) {
1188      if (this.done) {
1189        throw exception;
1190      }
1191
1192      var context = this;
1193      function handle(loc, caught) {
1194        record.type = "throw";
1195        record.arg = exception;
1196        context.next = loc;
1197
1198        if (caught) {
1199          // If the dispatched exception was caught by a catch block,
1200          // then let that catch block handle the exception normally.
1201          context.method = "next";
1202          context.arg = undefined;
1203        }
1204
1205        return !! caught;
1206      }
1207
1208      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
1209        var entry = this.tryEntries[i];
1210        var record = entry.completion;
1211
1212        if (entry.tryLoc === "root") {
1213          // Exception thrown outside of any try block that could handle
1214          // it, so set the completion value of the entire function to
1215          // throw the exception.
1216          return handle("end");
1217        }
1218
1219        if (entry.tryLoc <= this.prev) {
1220          var hasCatch = hasOwn.call(entry, "catchLoc");
1221          var hasFinally = hasOwn.call(entry, "finallyLoc");
1222
1223          if (hasCatch && hasFinally) {
1224            if (this.prev < entry.catchLoc) {
1225              return handle(entry.catchLoc, true);
1226            } else if (this.prev < entry.finallyLoc) {
1227              return handle(entry.finallyLoc);
1228            }
1229
1230          } else if (hasCatch) {
1231            if (this.prev < entry.catchLoc) {
1232              return handle(entry.catchLoc, true);
1233            }
1234
1235          } else if (hasFinally) {
1236            if (this.prev < entry.finallyLoc) {
1237              return handle(entry.finallyLoc);
1238            }
1239
1240          } else {
1241            throw new Error("try statement without catch or finally");
1242          }
1243        }
1244      }
1245    },
1246
1247    abrupt: function(type, arg) {
1248      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
1249        var entry = this.tryEntries[i];
1250        if (entry.tryLoc <= this.prev &&
1251            hasOwn.call(entry, "finallyLoc") &&
1252            this.prev < entry.finallyLoc) {
1253          var finallyEntry = entry;
1254          break;
1255        }
1256      }
1257
1258      if (finallyEntry &&
1259          (type === "break" ||
1260           type === "continue") &&
1261          finallyEntry.tryLoc <= arg &&
1262          arg <= finallyEntry.finallyLoc) {
1263        // Ignore the finally entry if control is not jumping to a
1264        // location outside the try/catch block.
1265        finallyEntry = null;
1266      }
1267
1268      var record = finallyEntry ? finallyEntry.completion : {};
1269      record.type = type;
1270      record.arg = arg;
1271
1272      if (finallyEntry) {
1273        this.method = "next";
1274        this.next = finallyEntry.finallyLoc;
1275        return ContinueSentinel;
1276      }
1277
1278      return this.complete(record);
1279    },
1280
1281    complete: function(record, afterLoc) {
1282      if (record.type === "throw") {
1283        throw record.arg;
1284      }
1285
1286      if (record.type === "break" ||
1287          record.type === "continue") {
1288        this.next = record.arg;
1289      } else if (record.type === "return") {
1290        this.rval = this.arg = record.arg;
1291        this.method = "return";
1292        this.next = "end";
1293      } else if (record.type === "normal" && afterLoc) {
1294        this.next = afterLoc;
1295      }
1296
1297      return ContinueSentinel;
1298    },
1299
1300    finish: function(finallyLoc) {
1301      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
1302        var entry = this.tryEntries[i];
1303        if (entry.finallyLoc === finallyLoc) {
1304          this.complete(entry.completion, entry.afterLoc);
1305          resetTryEntry(entry);
1306          return ContinueSentinel;
1307        }
1308      }
1309    },
1310
1311    "catch": function(tryLoc) {
1312      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
1313        var entry = this.tryEntries[i];
1314        if (entry.tryLoc === tryLoc) {
1315          var record = entry.completion;
1316          if (record.type === "throw") {
1317            var thrown = record.arg;
1318            resetTryEntry(entry);
1319          }
1320          return thrown;
1321        }
1322      }
1323
1324      // The context.catch method must only be called with a location
1325      // argument that corresponds to a known catch block.
1326      throw new Error("illegal catch attempt");
1327    },
1328
1329    delegateYield: function(iterable, resultName, nextLoc) {
1330      this.delegate = {
1331        iterator: values(iterable),
1332        resultName: resultName,
1333        nextLoc: nextLoc
1334      };
1335
1336      if (this.method === "next") {
1337        // Deliberately forget the last sent value so that we don't
1338        // accidentally pass it on to the delegate.
1339        this.arg = undefined;
1340      }
1341
1342      return ContinueSentinel;
1343    }
1344  };
1345})(
1346  // 
1346Among the various tricks for obtaining a reference to the global
1347  // object, this seems to be the most reliable technique that does not
1348  // use indirect eval (which violates Content Security Policy).
1349  typeof global === "object" ? global :
1350  typeof window === "object" ? window :
1351  typeof self === "object" ? self : this
1352);
1353
1354}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
1355},{}],3:[function(require,module,exports){
1356
1357},{}],4:[function(require,module,exports){
1358'use strict';
1359
1360var GetIntrinsic = require('get-intrinsic');
1361
1362var callBind = require('./');
1363
1364var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
1365
1366module.exports = function callBoundIntrinsic(name, allowMissing) {
1367	var intrinsic = GetIntrinsic(name, !!allowMissing);
1368	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
1369		return callBind(intrinsic);
1370	}
1371	return intrinsic;
1372};
1373
1374},{"./":5,"get-intrinsic":338}],5:[function(require,module,exports){
1375'use strict';
1376
1377var bind = require('function-bind');
1378var GetIntrinsic = require('get-intrinsic');
1379
1380var $apply = GetIntrinsic('%Function.prototype.apply%');
1381var $call = GetIntrinsic('%Function.prototype.call%');
1382var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
1383
1384var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
1385var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
1386var $max = GetIntrinsic('%Math.max%');
1387
1388if ($defineProperty) {
1389	try {
1390		$defineProperty({}, 'a', { value: 1 });
1391	} catch (e) {
1392		// IE 8 has a broken defineProperty
1393		$defineProperty = null;
1394	}
1395}
1396
1397module.exports = function callBind(originalFunction) {
1398	var func = $reflectApply(bind, $call, arguments);
1399	if ($gOPD && $defineProperty) {
1400		var desc = $gOPD(func, 'length');
1401		if (desc.configurable) {
1402			// original length, plus the receiver, minus any additional arguments (after the receiver)
1403			$defineProperty(
1404				func,
1405				'length',
1406				{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
1407			);
1408		}
1409	}
1410	return func;
1411};
1412
1413var applyBind = function applyBind() {
1414	return $reflectApply(bind, $apply, arguments);
1415};
1416
1417if ($defineProperty) {
1418	$defineProperty(module.exports, 'apply', { value: applyBind });
1419} else {
1420	module.exports.apply = applyBind;
1421}
1422
1423},{"function-bind":337,"get-intrinsic":338}],6:[function(require,module,exports){
1424// Console-polyfill. MIT license.
1425// https://github.com/paulmillr/console-polyfill
1426// Make it safe to do console.log() always.
1427(function(global) {
1428  'use strict';
1429  if (!global.console) {
1430    global.console = {};
1431  }
1432  var con = global.console;
1433  var prop, method;
1434  var dummy = function() {};
1435  var properties = ['memory'];
1436  var methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' +
1437     'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' +
1438     'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(',');
1439  while (prop = properties.pop()) if (!con[prop]) con[prop] = {};
1440  while (method = methods.pop()) if (!con[method]) con[method] = dummy;
1441  // Using `this` for web workers & supports Browserify / Webpack.
1442})(typeof window === 'undefined' ? this : window);
1443
1444},{}],7:[function(require,module,exports){
1445require('../../modules/core.regexp.escape');
1446module.exports = require('../../modules/_core').RegExp.escape;
1447
1448},{"../../modules/_core":29,"../../modules/core.regexp.escape":137}],8:[function(require,module,exports){
1449module.exports = function (it) {
1450  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
1451  return it;
1452};
1453
1454},{}],9:[function(require,module,exports){
1455var cof = require('./_cof');
1456module.exports = function (it, msg) {
1457  if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);
1458  return +it;
1459};
1460
1461},{"./_cof":24}],10:[function(require,module,exports){
1462// 22.1.3.31 Array.prototype[@@unscopables]
1463var UNSCOPABLES = require('./_wks')('unscopables');
1464var ArrayProto = Array.prototype;
1465if (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});
1466module.exports = function (key) {
1467  ArrayProto[UNSCOPABLES][key] = true;
1468};
1469
1470},{"./_hide":49,"./_wks":135}],11:[function(require,module,exports){
1471'use strict';
1472var at = require('./_string-at')(true);
1473
1474 // `AdvanceStringIndex` abstract operation
1475// https://tc39.github.io/ecma262/#sec-advancestringindex
1476module.exports = function (S, index, unicode) {
1477  return index + (unicode ? at(S, index).length : 1);
1478};
1479
1480},{"./_string-at":112}],12:[function(require,module,exports){
1481module.exports = function (it, Constructor, name, forbiddenField) {
1482  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
1483    throw TypeError(name + ': incorrect invocation!');
1484  } return it;
1485};
1486
1487},{}],13:[function(require,module,exports){
1488var isObject = require('./_is-object');
1489module.exports = function (it) {
1490  if (!isObject(it)) throw TypeError(it + ' is not an object!');
1491  return it;
1492};
1493
1494},{"./_is-object":58}],14:[function(require,module,exports){
1495// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
1496'use strict';
1497var toObject = require('./_to-object');
1498var toAbsoluteIndex = require('./_to-absolute-index');
1499var toLength = require('./_to-length');
1500
1501module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
1502  var O = toObject(this);
1503  var len = toLength(O.length);
1504  var to = toAbsoluteIndex(target, len);
1505  var from = toAbsoluteIndex(start, len);
1506  var end = arguments.length > 2 ? arguments[2] : undefined;
1507  var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
1508  var inc = 1;
1509  if (from < to && to < from + count) {
1510    inc = -1;
1511    from += count - 1;
1512    to += count - 1;
1513  }
1514  while (count-- > 0) {
1515    if (from in O) O[to] = O[from];
1516    else delete O[to];
1517    to += inc;
1518    from += inc;
1519  } return O;
1520};
1521
1522},{"./_to-absolute-index":120,"./_to-length":124,"./_to-object":125}],15:[function(require,module,exports){
1523// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
1524'use strict';
1525var toObject = require('./_to-object');
1526var toAbsoluteIndex = require('./_to-absolute-index');
1527var toLength = require('./_to-length');
1528module.exports = function fill(value /* , start = 0, end = @length */) {
1529  var O = toObject(this);
1530  var length = toLength(O.length);
1531  var aLen = arguments.length;
1532  var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
1533  var end = aLen > 2 ? arguments[2] : undefined;
1534  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
1535  while (endPos > index) O[index++] = value;
1536  return O;
1537};
1538
1539},{"./_to-absolute-index":120,"./_to-length":124,"./_to-object":125}],16:[function(require,module,exports){
1540var forOf = require('./_for-of');
1541
1542module.exports = function (iter, ITERATOR) {
1543  var result = [];
1544  forOf(iter, false, result.push, result, ITERATOR);
1545  return result;
1546};
1547
1548},{"./_for-of":45}],17:[function(require,module,exports){
1549// false -> Array#indexOf
1550// true  -> Array#includes
1551var toIObject = require('./_to-iobject');
vendor: 8,747 bytes, lines 1552-1802
1552var toLength = require('./_to-length');
1553var toAbsoluteIndex = require('./_to-absolute-index');
1554module.exports = function (IS_INCLUDES) {
1555  return function ($this, el, fromIndex) {
1556    var O = toIObject($this);
1557    var length = toLength(O.length);
1558    var index = toAbsoluteIndex(fromIndex, length);
1559    var value;
1560    // Array#includes uses SameValueZero equality algorithm
1561    // eslint-disable-next-line no-self-compare
1562    if (IS_INCLUDES && el != el) while (length > index) {
1563      value = O[index++];
1564      // eslint-disable-next-line no-self-compare
1565      if (value != value) return true;
1566    // Array#indexOf ignores holes, Array#includes - not
1567    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
1568      if (O[index] === el) return IS_INCLUDES || index || 0;
1569    } return !IS_INCLUDES && -1;
1570  };
1571};
1572
1573},{"./_to-absolute-index":120,"./_to-iobject":123,"./_to-length":124}],18:[function(require,module,exports){
1574// 0 -> Array#forEach
1575// 1 -> Array#map
1576// 2 -> Array#filter
1577// 3 -> Array#some
1578// 4 -> Array#every
1579// 5 -> Array#find
1580// 6 -> Array#findIndex
1581var ctx = require('./_ctx');
1582var IObject = require('./_iobject');
1583var toObject = require('./_to-object');
1584var toLength = require('./_to-length');
1585var asc = require('./_array-species-create');
1586module.exports = function (TYPE, $create) {
1587  var IS_MAP = TYPE == 1;
1588  var IS_FILTER = TYPE == 2;
1589  var IS_SOME = TYPE == 3;
1590  var IS_EVERY = TYPE == 4;
1591  var IS_FIND_INDEX = TYPE == 6;
1592  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
1593  var create = $create || asc;
1594  return function ($this, callbackfn, that) {
1595    var O = toObject($this);
1596    var self = IObject(O);
1597    var f = ctx(callbackfn, that, 3);
1598    var length = toLength(self.length);
1599    var index = 0;
1600    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
1601    var val, res;
1602    for (;length > index; index++) if (NO_HOLES || index in self) {
1603      val = self[index];
1604      res = f(val, index, O);
1605      if (TYPE) {
1606        if (IS_MAP) result[index] = res;   // map
1607        else if (res) switch (TYPE) {
1608          case 3: return true;             // some
1609          case 5: return val;              // find
1610          case 6: return index;            // findIndex
1611          case 2: result.push(val);        // filter
1612        } else if (IS_EVERY) return false; // every
1613      }
1614    }
1615    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
1616  };
1617};
1618
1619},{"./_array-species-create":21,"./_ctx":31,"./_iobject":54,"./_to-length":124,"./_to-object":125}],19:[function(require,module,exports){
1620var aFunction = require('./_a-function');
1621var toObject = require('./_to-object');
1622var IObject = require('./_iobject');
1623var toLength = require('./_to-length');
1624
1625module.exports = function (that, callbackfn, aLen, memo, isRight) {
1626  aFunction(callbackfn);
1627  var O = toObject(that);
1628  var self = IObject(O);
1629  var length = toLength(O.length);
1630  var index = isRight ? length - 1 : 0;
1631  var i = isRight ? -1 : 1;
1632  if (aLen < 2) for (;;) {
1633    if (index in self) {
1634      memo = self[index];
1635      index += i;
1636      break;
1637    }
1638    index += i;
1639    if (isRight ? index < 0 : length <= index) {
1640      throw TypeError('Reduce of empty array with no initial value');
1641    }
1642  }
1643  for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
1644    memo = callbackfn(memo, self[index], index, O);
1645  }
1646  return memo;
1647};
1648
1649},{"./_a-function":8,"./_iobject":54,"./_to-length":124,"./_to-object":125}],20:[function(require,module,exports){
1650var isObject = require('./_is-object');
1651var isArray = require('./_is-array');
1652var SPECIES = require('./_wks')('species');
1653
1654module.exports = function (original) {
1655  var C;
1656  if (isArray(original)) {
1657    C = original.constructor;
1658    // cross-realm fallback
1659    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
1660    if (isObject(C)) {
1661      C = C[SPECIES];
1662      if (C === null) C = undefined;
1663    }
1664  } return C === undefined ? Array : C;
1665};
1666
1667},{"./_is-array":56,"./_is-object":58,"./_wks":135}],21:[function(require,module,exports){
1668// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
1669var speciesConstructor = require('./_array-species-constructor');
1670
1671module.exports = function (original, length) {
1672  return new (speciesConstructor(original))(length);
1673};
1674
1675},{"./_array-species-constructor":20}],22:[function(require,module,exports){
1676'use strict';
1677var aFunction = require('./_a-function');
1678var isObject = require('./_is-object');
1679var invoke = require('./_invoke');
1680var arraySlice = [].slice;
1681var factories = {};
1682
1683var construct = function (F, len, args) {
1684  if (!(len in factories)) {
1685    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
1686    // eslint-disable-next-line no-new-func
1687    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
1688  } return factories[len](F, args);
1689};
1690
1691module.exports = Function.bind || function bind(that /* , ...args */) {
1692  var fn = aFunction(this);
1693  var partArgs = arraySlice.call(arguments, 1);
1694  var bound = function (/* args... */) {
1695    var args = partArgs.concat(arraySlice.call(arguments));
1696    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
1697  };
1698  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
1699  return bound;
1700};
1701
1702},{"./_a-function":8,"./_invoke":53,"./_is-object":58}],23:[function(require,module,exports){
1703// getting tag from 19.1.3.6 Object.prototype.toString()
1704var cof = require('./_cof');
1705var TAG = require('./_wks')('toStringTag');
1706// ES3 wrong here
1707var ARG = cof(function () { return arguments; }()) == 'Arguments';
1708
1709// fallback for IE11 Script Access Denied error
1710var tryGet = function (it, key) {
1711  try {
1712    return it[key];
1713  } catch (e) { /* empty */ }
1714};
1715
1716module.exports = function (it) {
1717  var O, T, B;
1718  return it === undefined ? 'Undefined' : it === null ? 'Null'
1719    // @@toStringTag case
1720    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
1721    // builtinTag case
1722    : ARG ? cof(O)
1723    // ES3 arguments fallback
1724    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
1725};
1726
1727},{"./_cof":24,"./_wks":135}],24:[function(require,module,exports){
1728var toString = {}.toString;
1729
1730module.exports = function (it) {
1731  return toString.call(it).slice(8, -1);
1732};
1733
1734},{}],25:[function(require,module,exports){
1735'use strict';
1736var dP = require('./_object-dp').f;
1737var create = require('./_object-create');
1738var redefineAll = require('./_redefine-all');
1739var ctx = require('./_ctx');
1740var anInstance = require('./_an-instance');
1741var forOf = require('./_for-of');
1742var $iterDefine = require('./_iter-define');
1743var step = require('./_iter-step');
1744var setSpecies = require('./_set-species');
1745var DESCRIPTORS = require('./_descriptors');
1746var fastKey = require('./_meta').fastKey;
1747var validate = require('./_validate-collection');
1748var SIZE = DESCRIPTORS ? '_s' : 'size';
1749
1750var getEntry = function (that, key) {
1751  // fast case
1752  var index = fastKey(key);
1753  var entry;
1754  if (index !== 'F') return that._i[index];
1755  // frozen object case
1756  for (entry = that._f; entry; entry = entry.n) {
1757    if (entry.k == key) return entry;
1758  }
1759};
1760
1761module.exports = {
1762  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
1763    var C = wrapper(function (that, iterable) {
1764      anInstance(that, C, NAME, '_i');
1765      that._t = NAME;         // collection type
1766      that._i = create(null); // index
1767      that._f = undefined;    // first entry
1768      that._l = undefined;    // last entry
1769      that[SIZE] = 0;         // size
1770      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
1771    });
1772    redefineAll(C.prototype, {
1773      // 23.1.3.1 Map.prototype.clear()
1774      // 23.2.3.2 Set.prototype.clear()
1775      clear: function clear() {
1776        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
1777          entry.r = true;
1778          if (entry.p) entry.p = entry.p.n = undefined;
1779          delete data[entry.i];
1780        }
1781        that._f = that._l = undefined;
1782        that[SIZE] = 0;
1783      },
1784      // 23.1.3.3 Map.prototype.delete(key)
1785      // 23.2.3.4 Set.prototype.delete(value)
1786      'delete': function (key) {
1787        var that = validate(this, NAME);
1788        var entry = getEntry(that, key);
1789        if (entry) {
1790          var next = entry.n;
1791          var prev = entry.p;
1792          delete that._i[entry.i];
1793          entry.r = true;
1794          if (prev) prev.n = next;
1795          if (next) next.p = prev;
1796          if (that._f == entry) that._f = next;
1797          if (that._l == entry) that._l = prev;
1798          that[SIZE]--;
1799        } return !!entry;
1800      },
1801      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
1802      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
vendor: 5,250 bytes, lines 1803-1953
1803      forEach: function forEach(callbackfn /* , that = undefined */) {
1804        validate(this, NAME);
1805        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
1806        var entry;
1807        while (entry = entry ? entry.n : this._f) {
1808          f(entry.v, entry.k, this);
1809          // revert to the last existing entry
1810          while (entry && entry.r) entry = entry.p;
1811        }
1812      },
1813      // 23.1.3.7 Map.prototype.has(key)
1814      // 23.2.3.7 Set.prototype.has(value)
1815      has: function has(key) {
1816        return !!getEntry(validate(this, NAME), key);
1817      }
1818    });
1819    if (DESCRIPTORS) dP(C.prototype, 'size', {
1820      get: function () {
1821        return validate(this, NAME)[SIZE];
1822      }
1823    });
1824    return C;
1825  },
1826  def: function (that, key, value) {
1827    var entry = getEntry(that, key);
1828    var prev, index;
1829    // change existing entry
1830    if (entry) {
1831      entry.v = value;
1832    // create new entry
1833    } else {
1834      that._l = entry = {
1835        i: index = fastKey(key, true), // <- index
1836        k: key,                        // <- key
1837        v: value,                      // <- value
1838        p: prev = that._l,             // <- previous entry
1839        n: undefined,                  // <- next entry
1840        r: false                       // <- removed
1841      };
1842      if (!that._f) that._f = entry;
1843      if (prev) prev.n = entry;
1844      that[SIZE]++;
1845      // add to index
1846      if (index !== 'F') that._i[index] = entry;
1847    } return that;
1848  },
1849  getEntry: getEntry,
1850  setStrong: function (C, NAME, IS_MAP) {
1851    // add .keys, .values, .entries, [@@iterator]
1852    // 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
1853    $iterDefine(C, NAME, function (iterated, kind) {
1854      this._t = validate(iterated, NAME); // target
1855      this._k = kind;                     // kind
1856      this._l = undefined;                // previous
1857    }, function () {
1858      var that = this;
1859      var kind = that._k;
1860      var entry = that._l;
1861      // revert to the last existing entry
1862      while (entry && entry.r) entry = entry.p;
1863      // get next entry
1864      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
1865        // or finish the iteration
1866        that._t = undefined;
1867        return step(1);
1868      }
1869      // return step by kind
1870      if (kind == 'keys') return step(0, entry.k);
1871      if (kind == 'values') return step(0, entry.v);
1872      return step(0, [entry.k, entry.v]);
1873    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
1874
1875    // add [@@species], 23.1.2.2, 23.2.2.2
1876    setSpecies(NAME);
1877  }
1878};
1879
1880},{"./_an-instance":12,"./_ctx":31,"./_descriptors":35,"./_for-of":45,"./_iter-define":62,"./_iter-step":64,"./_meta":72,"./_object-create":77,"./_object-dp":78,"./_redefine-all":97,"./_set-species":106,"./_validate-collection":132}],26:[function(require,module,exports){
1881// https://github.com/DavidBruant/Map-Set.prototype.toJSON
1882var classof = require('./_classof');
1883var from = require('./_array-from-iterable');
1884module.exports = function (NAME) {
1885  return function toJSON() {
1886    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
1887    return from(this);
1888  };
1889};
1890
1891},{"./_array-from-iterable":16,"./_classof":23}],27:[function(require,module,exports){
1892'use strict';
1893var redefineAll = require('./_redefine-all');
1894var getWeak = require('./_meta').getWeak;
1895var anObject = require('./_an-object');
1896var isObject = require('./_is-object');
1897var anInstance = require('./_an-instance');
1898var forOf = require('./_for-of');
1899var createArrayMethod = require('./_array-methods');
1900var $has = require('./_has');
1901var validate = require('./_validate-collection');
1902var arrayFind = createArrayMethod(5);
1903var arrayFindIndex = createArrayMethod(6);
1904var id = 0;
1905
1906// fallback for uncaught frozen keys
1907var uncaughtFrozenStore = function (that) {
1908  return that._l || (that._l = new UncaughtFrozenStore());
1909};
1910var UncaughtFrozenStore = function () {
1911  this.a = [];
1912};
1913var findUncaughtFrozen = function (store, key) {
1914  return arrayFind(store.a, function (it) {
1915    return it[0] === key;
1916  });
1917};
1918UncaughtFrozenStore.prototype = {
1919  get: function (key) {
1920    var entry = findUncaughtFrozen(this, key);
1921    if (entry) return entry[1];
1922  },
1923  has: function (key) {
1924    return !!findUncaughtFrozen(this, key);
1925  },
1926  set: function (key, value) {
1927    var entry = findUncaughtFrozen(this, key);
1928    if (entry) entry[1] = value;
1929    else this.a.push([key, value]);
1930  },
1931  'delete': function (key) {
1932    var index = arrayFindIndex(this.a, function (it) {
1933      return it[0] === key;
1934    });
1935    if (~index) this.a.splice(index, 1);
1936    return !!~index;
1937  }
1938};
1939
1940module.exports = {
1941  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
1942    var C = wrapper(function (that, iterable) {
1943      anInstance(that, C, NAME, '_i');
1944      that._t = NAME;      // collection type
1945      that._i = id++;      // collection id
1946      that._l = undefined; // leak store for uncaught frozen objects
1947      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
1948    });
1949    redefineAll(C.prototype, {
1950      // 23.3.3.2 WeakMap.prototype.delete(key)
1951      // 23.4.3.3 WeakSet.prototype.delete(value)
1952      'delete': function (key) {
1953        if (!isObject(key)) return false;
vendor: 18,603 bytes, lines 1954-2461
1954        var data = getWeak(key);
1955        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
1956        return data && $has(data, this._i) && delete data[this._i];
1957      },
1958      // 23.3.3.4 WeakMap.prototype.has(key)
1959      // 23.4.3.4 WeakSet.prototype.has(value)
1960      has: function has(key) {
1961        if (!isObject(key)) return false;
1962        var data = getWeak(key);
1963        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
1964        return data && $has(data, this._i);
1965      }
1966    });
1967    return C;
1968  },
1969  def: function (that, key, value) {
1970    var data = getWeak(anObject(key), true);
1971    if (data === true) uncaughtFrozenStore(that).set(key, value);
1972    else data[that._i] = value;
1973    return that;
1974  },
1975  ufstore: uncaughtFrozenStore
1976};
1977
1978},{"./_an-instance":12,"./_an-object":13,"./_array-methods":18,"./_for-of":45,"./_has":48,"./_is-object":58,"./_meta":72,"./_redefine-all":97,"./_validate-collection":132}],28:[function(require,module,exports){
1979'use strict';
1980var global = require('./_global');
1981var $export = require('./_export');
1982var redefine = require('./_redefine');
1983var redefineAll = require('./_redefine-all');
1984var meta = require('./_meta');
1985var forOf = require('./_for-of');
1986var anInstance = require('./_an-instance');
1987var isObject = require('./_is-object');
1988var fails = require('./_fails');
1989var $iterDetect = require('./_iter-detect');
1990var setToStringTag = require('./_set-to-string-tag');
1991var inheritIfRequired = require('./_inherit-if-required');
1992
1993module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
1994  var Base = global[NAME];
1995  var C = Base;
1996  var ADDER = IS_MAP ? 'set' : 'add';
1997  var proto = C && C.prototype;
1998  var O = {};
1999  var fixMethod = function (KEY) {
2000    var fn = proto[KEY];
2001    redefine(proto, KEY,
2002      KEY == 'delete' ? function (a) {
2003        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
2004      } : KEY == 'has' ? function has(a) {
2005        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
2006      } : KEY == 'get' ? function get(a) {
2007        return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
2008      } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
2009        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
2010    );
2011  };
2012  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
2013    new C().entries().next();
2014  }))) {
2015    // create collection constructor
2016    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
2017    redefineAll(C.prototype, methods);
2018    meta.NEED = true;
2019  } else {
2020    var instance = new C();
2021    // early implementations not supports chaining
2022    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
2023    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false
2024    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
2025    // most early implementations doesn't supports iterables, most modern - not close it correctly
2026    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
2027    // for early implementations -0 and +0 not the same
2028    var BUGGY_ZERO = !IS_WEAK && fails(function () {
2029      // V8 ~ Chromium 42- fails only with 5+ elements
2030      var $instance = new C();
2031      var index = 5;
2032      while (index--) $instance[ADDER](index, index);
2033      return !$instance.has(-0);
2034    });
2035    if (!ACCEPT_ITERABLES) {
2036      C = wrapper(function (target, iterable) {
2037        anInstance(target, C, NAME);
2038        var that = inheritIfRequired(new Base(), target, C);
2039        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
2040        return that;
2041      });
2042      C.prototype = proto;
2043      proto.constructor = C;
2044    }
2045    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
2046      fixMethod('delete');
2047      fixMethod('has');
2048      IS_MAP && fixMethod('get');
2049    }
2050    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
2051    // weak collections should not contains .clear method
2052    if (IS_WEAK && proto.clear) delete proto.clear;
2053  }
2054
2055  setToStringTag(C, NAME);
2056
2057  O[NAME] = C;
2058  $export($export.G + $export.W + $export.F * (C != Base), O);
2059
2060  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
2061
2062  return C;
2063};
2064
2065},{"./_an-instance":12,"./_export":39,"./_fails":41,"./_for-of":45,"./_global":47,"./_inherit-if-required":52,"./_is-object":58,"./_iter-detect":63,"./_meta":72,"./_redefine":98,"./_redefine-all":97,"./_set-to-string-tag":107}],29:[function(require,module,exports){
2066var core = module.exports = { version: '2.6.12' };
2067if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
2068
2069},{}],30:[function(require,module,exports){
2070'use strict';
2071var $defineProperty = require('./_object-dp');
2072var createDesc = require('./_property-desc');
2073
2074module.exports = function (object, index, value) {
2075  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
2076  else object[index] = value;
2077};
2078
2079},{"./_object-dp":78,"./_property-desc":96}],31:[function(require,module,exports){
2080// optional / simple context binding
2081var aFunction = require('./_a-function');
2082module.exports = function (fn, that, length) {
2083  aFunction(fn);
2084  if (that === undefined) return fn;
2085  switch (length) {
2086    case 1: return function (a) {
2087      return fn.call(that, a);
2088    };
2089    case 2: return function (a, b) {
2090      return fn.call(that, a, b);
2091    };
2092    case 3: return function (a, b, c) {
2093      return fn.call(that, a, b, c);
2094    };
2095  }
2096  return function (/* ...args */) {
2097    return fn.apply(that, arguments);
2098  };
2099};
2100
2101},{"./_a-function":8}],32:[function(require,module,exports){
2102'use strict';
2103// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
2104var fails = require('./_fails');
2105var getTime = Date.prototype.getTime;
2106var $toISOString = Date.prototype.toISOString;
2107
2108var lz = function (num) {
2109  return num > 9 ? num : '0' + num;
2110};
2111
2112// PhantomJS / old WebKit has a broken implementations
2113module.exports = (fails(function () {
2114  return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
2115}) || !fails(function () {
2116  $toISOString.call(new Date(NaN));
2117})) ? function toISOString() {
2118  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
2119  var d = this;
2120  var y = d.getUTCFullYear();
2121  var m = d.getUTCMilliseconds();
2122  var s = y < 0 ? '-' : y > 9999 ? '+' : '';
2123  return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
2124    '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
2125    'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
2126    ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
2127} : $toISOString;
2128
2129},{"./_fails":41}],33:[function(require,module,exports){
2130'use strict';
2131var anObject = require('./_an-object');
2132var toPrimitive = require('./_to-primitive');
2133var NUMBER = 'number';
2134
2135module.exports = function (hint) {
2136  if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
2137  return toPrimitive(anObject(this), hint != NUMBER);
2138};
2139
2140},{"./_an-object":13,"./_to-primitive":126}],34:[function(require,module,exports){
2141// 7.2.1 RequireObjectCoercible(argument)
2142module.exports = function (it) {
2143  if (it == undefined) throw TypeError("Can't call method on  " + it);
2144  return it;
2145};
2146
2147},{}],35:[function(require,module,exports){
2148// Thank's IE8 for his funny defineProperty
2149module.exports = !require('./_fails')(function () {
2150  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
2151});
2152
2153},{"./_fails":41}],36:[function(require,module,exports){
2154var isObject = require('./_is-object');
2155var document = require('./_global').document;
2156// typeof document.createElement is 'object' in old IE
2157var is = isObject(document) && isObject(document.createElement);
2158module.exports = function (it) {
2159  return is ? document.createElement(it) : {};
2160};
2161
2162},{"./_global":47,"./_is-object":58}],37:[function(require,module,exports){
2163// IE 8- don't enum bug keys
2164module.exports = (
2165  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
2166).split(',');
2167
2168},{}],38:[function(require,module,exports){
2169// all enumerable object keys, includes symbols
2170var getKeys = require('./_object-keys');
2171var gOPS = require('./_object-gops');
2172var pIE = require('./_object-pie');
2173module.exports = function (it) {
2174  var result = getKeys(it);
2175  var getSymbols = gOPS.f;
2176  if (getSymbols) {
2177    var symbols = getSymbols(it);
2178    var isEnum = pIE.f;
2179    var i = 0;
2180    var key;
2181    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
2182  } return result;
2183};
2184
2185},{"./_object-gops":84,"./_object-keys":87,"./_object-pie":88}],39:[function(require,module,exports){
2186var global = require('./_global');
2187var core = require('./_core');
2188var hide = require('./_hide');
2189var redefine = require('./_redefine');
2190var ctx = require('./_ctx');
2191var PROTOTYPE = 'prototype';
2192
2193var $export = function (type, name, source) {
2194  var IS_FORCED = type & $export.F;
2195  var IS_GLOBAL = type & $export.G;
2196  var IS_STATIC = type & $export.S;
2197  var IS_PROTO = type & $export.P;
2198  var IS_BIND = type & $export.B;
2199  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
2200  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
2201  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
2202  var key, own, out, exp;
2203  if (IS_GLOBAL) source = name;
2204  for (key in source) {
2205    // contains in native
2206    own = !IS_FORCED && target && target[key] !== undefined;
2207    // export native or passed
2208    out = (own ? target : source)[key];
2209    // bind timers to global for call from export context
2210    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
2211    // extend global
2212    if (target) redefine(target, key, out, type & $export.U);
2213    // export
2214    if (exports[key] != out) hide(exports, key, exp);
2215    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
2216  }
2217};
2218global.core = core;
2219// type bitmap
2220$export.F = 1;   // forced
2221$export.G = 2;   // global
2222$export.S = 4;   // static
2223$export.P = 8;   // proto
2224$export.B = 16;  // bind
2225$export.W = 32;  // wrap
2226$export.U = 64;  // safe
2227$export.R = 128; // real proto method for `library`
2228module.exports = $export;
2229
2230},{"./_core":29,"./_ctx":31,"./_global":47,"./_hide":49,"./_redefine":98}],40:[function(require,module,exports){
2231var MATCH = require('./_wks')('match');
2232module.exports = function (KEY) {
2233  var re = /./;
2234  try {
2235    '/./'[KEY](re);
2236  } catch (e) {
2237    try {
2238      re[MATCH] = false;
2239      return !'/./'[KEY](re);
2240    } catch (f) { /* empty */ }
2241  } return true;
2242};
2243
2244},{"./_wks":135}],41:[function(require,module,exports){
2245module.exports = function (exec) {
2246  try {
2247    return !!exec();
2248  } catch (e) {
2249    return true;
2250  }
2251};
2252
2253},{}],42:[function(require,module,exports){
2254'use strict';
2255require('./es6.regexp.exec');
2256var redefine = require('./_redefine');
2257var hide = require('./_hide');
2258var fails = require('./_fails');
2259var defined = require('./_defined');
2260var wks = require('./_wks');
2261var regexpExec = require('./_regexp-exec');
2262
2263var SPECIES = wks('species');
2264
2265var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
2266  // #replace needs built-in support for named groups.
2267  // #match works fine because it just return the exec results, even if it has
2268  // a "grops" property.
2269  var re = /./;
2270  re.exec = function () {
2271    var result = [];
2272    result.groups = { a: '7' };
2273    return result;
2274  };
2275  return ''.replace(re, '$<a>') !== '7';
2276});
2277
2278var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
2279  // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
2280  var re = /(?:)/;
2281  var originalExec = re.exec;
2282  re.exec = function () { return originalExec.apply(this, arguments); };
2283  var result = 'ab'.split(re);
2284  return result.length === 2 && result[0] === 'a' && result[1] === 'b';
2285})();
2286
2287module.exports = function (KEY, length, exec) {
2288  var SYMBOL = wks(KEY);
2289
2290  var DELEGATES_TO_SYMBOL = !fails(function () {
2291    // String methods call symbol-named RegEp methods
2292    var O = {};
2293    O[SYMBOL] = function () { return 7; };
2294    return ''[KEY](O) != 7;
2295  });
2296
2297  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {
2298    // Symbol-named RegExp methods call .exec
2299    var execCalled = false;
2300    var re = /a/;
2301    re.exec = function () { execCalled = true; return null; };
2302    if (KEY === 'split') {
2303      // RegExp[@@split] doesn't call the regex's exec method, but first creates
2304      // a new one. We need to return the patched regex when creating the new one.
2305      re.constructor = {};
2306      re.constructor[SPECIES] = function () { return re; };
2307    }
2308    re[SYMBOL]('');
2309    return !execCalled;
2310  }) : undefined;
2311
2312  if (
2313    !DELEGATES_TO_SYMBOL ||
2314    !DELEGATES_TO_EXEC ||
2315    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
2316    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
2317  ) {
2318    var nativeRegExpMethod = /./[SYMBOL];
2319    var fns = exec(
2320      defined,
2321      SYMBOL,
2322      ''[KEY],
2323      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
2324        if (regexp.exec === regexpExec) {
2325          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
2326            // The native String method already delegates to @@method (this
2327            // polyfilled function), leasing to infinite recursion.
2328            // We avoid it by directly calling the native @@method method.
2329            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
2330          }
2331          return { done: true, value: nativeMethod.call(str, regexp, arg2) };
2332        }
2333        return { done: false };
2334      }
2335    );
2336    var strfn = fns[0];
2337    var rxfn = fns[1];
2338
2339    redefine(String.prototype, KEY, strfn);
2340    hide(RegExp.prototype, SYMBOL, length == 2
2341      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
2342      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
2343      ? function (string, arg) { return rxfn.call(string, this, arg); }
2344      // 21.2.5.6 RegExp.prototype[@@match](string)
2345      // 21.2.5.9 RegExp.prototype[@@search](string)
2346      : function (string) { return rxfn.call(string, this); }
2347    );
2348  }
2349};
2350
2351},{"./_defined":34,"./_fails":41,"./_hide":49,"./_redefine":98,"./_regexp-exec":100,"./_wks":135,"./es6.regexp.exec":232}],43:[function(require,module,exports){
2352'use strict';
2353// 21.2.5.3 get RegExp.prototype.flags
2354var anObject = require('./_an-object');
2355module.exports = function () {
2356  var that = anObject(this);
2357  var result = '';
2358  if (that.global) result += 'g';
2359  if (that.ignoreCase) result += 'i';
2360  if (that.multiline) result += 'm';
2361  if (that.unicode) result += 'u';
2362  if (that.sticky) result += 'y';
2363  return result;
2364};
2365
2366},{"./_an-object":13}],44:[function(require,module,exports){
2367'use strict';
2368// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
2369var isArray = require('./_is-array');
2370var isObject = require('./_is-object');
2371var toLength = require('./_to-length');
2372var ctx = require('./_ctx');
2373var IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');
2374
2375function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
2376  var targetIndex = start;
2377  var sourceIndex = 0;
2378  var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;
2379  var element, spreadable;
2380
2381  while (sourceIndex < sourceLen) {
2382    if (sourceIndex in source) {
2383      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
2384
2385      spreadable = false;
2386      if (isObject(element)) {
2387        spreadable = element[IS_CONCAT_SPREADABLE];
2388        spreadable = spreadable !== undefined ? !!spreadable : isArray(element);
2389      }
2390
2391      if (spreadable && depth > 0) {
2392        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
2393      } else {
2394        if (targetIndex >= 0x1fffffffffffff) throw TypeError();
2395        target[targetIndex] = element;
2396      }
2397
2398      targetIndex++;
2399    }
2400    sourceIndex++;
2401  }
2402  return targetIndex;
2403}
2404
2405module.exports = flattenIntoArray;
2406
2407},{"./_ctx":31,"./_is-array":56,"./_is-object":58,"./_to-length":124,"./_wks":135}],45:[function(require,module,exports){
2408var ctx = require('./_ctx');
2409var call = require('./_iter-call');
2410var isArrayIter = require('./_is-array-iter');
2411var anObject = require('./_an-object');
2412var toLength = require('./_to-length');
2413var getIterFn = require('./core.get-iterator-method');
2414var BREAK = {};
2415var RETURN = {};
2416var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
2417  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
2418  var f = ctx(fn, that, entries ? 2 : 1);
2419  var index = 0;
2420  var length, step, iterator, result;
2421  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
2422  // fast case for arrays with default iterator
2423  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
2424    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
2425    if (result === BREAK || result === RETURN) return result;
2426  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
2427    result = call(iterator, f, step.value, entries);
2428    if (result === BREAK || result === RETURN) return result;
2429  }
2430};
2431exports.BREAK = BREAK;
2432exports.RETURN = RETURN;
2433
2434},{"./_an-object":13,"./_ctx":31,"./_is-array-iter":55,"./_iter-call":60,"./_to-length":124,"./core.get-iterator-method":136}],46:[function(require,module,exports){
2435module.exports = require('./_shared')('native-function-to-string', Function.toString);
2436
2437},{"./_shared":109}],47:[function(require,module,exports){
2438// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2439var global = module.exports = typeof window != 'undefined' && window.Math == Math
2440  ? window : typeof self != 'undefined' && self.Math == Math ? self
2441  // eslint-disable-next-line no-new-func
2442  : Function('return this')();
2443if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2444
2445},{}],48:[function(require,module,exports){
2446var hasOwnProperty = {}.hasOwnProperty;
2447module.exports = function (it, key) {
2448  return hasOwnProperty.call(it, key);
2449};
2450
2451},{}],49:[function(require,module,exports){
2452var dP = require('./_object-dp');
2453var createDesc = require('./_property-desc');
2454module.exports = require('./_descriptors') ? function (object, key, value) {
2455  return dP.f(object, key, createDesc(1, value));
2456} : function (object, key, value) {
2457  object[key] = value;
2458  return object;
2459};
2460
2461}
2461,{"./_descriptors":35,"./_object-dp":78,"./_property-desc":96}],50:[function(require,module,exports){
2462var document = require('./_global').document;
2463module.exports = document && document.documentElement;
2464
2465},{"./_global":47}],51:[function(require,module,exports){
2466module.exports = !require('./_descriptors') && !require('./_fails')(function () {
2467  return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;
2468});
2469
2470},{"./_descriptors":35,"./_dom-create":36,"./_fails":41}],52:[function(require,module,exports){
2471var isObject = require('./_is-object');
2472var setPrototypeOf = require('./_set-proto').set;
2473module.exports = function (that, target, C) {
2474  var S = target.constructor;
2475  var P;
2476  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
2477    setPrototypeOf(that, P);
2478  } return that;
2479};
2480
2481},{"./_is-object":58,"./_set-proto":105}],53:[function(require,module,exports){
2482// fast apply, http://jsperf.lnkit.com/fast-apply/5
2483module.exports = function (fn, args, that) {
2484  var un = that === undefined;
2485  switch (args.length) {
2486    case 0: return un ? fn()
2487                      : fn.call(that);
2488    case 1: return un ? fn(args[0])
2489                      : fn.call(that, args[0]);
2490    case 2: return un ? fn(args[0], args[1])
2491                      : fn.call(that, args[0], args[1]);
2492    case 3: return un ? fn(args[0], args[1], args[2])
2493                      : fn.call(that, args[0], args[1], args[2]);
2494    case 4: return un ? fn(args[0], args[1], args[2], args[3])
2495                      : fn.call(that, args[0], args[1], args[2], args[3]);
2496  } return fn.apply(that, args);
2497};
2498
2499},{}],54:[function(require,module,exports){
2500// fallback for non-array-like ES3 and non-enumerable old V8 strings
2501var cof = require('./_cof');
2502// eslint-disable-next-line no-prototype-builtins
2503module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
2504  return cof(it) == 'String' ? it.split('') : Object(it);
2505};
2506
2507},{"./_cof":24}],55:[function(require,module,exports){
2508// check on default Array iterator
2509var Iterators = require('./_iterators');
2510var ITERATOR = require('./_wks')('iterator');
2511var ArrayProto = Array.prototype;
2512
2513module.exports = function (it) {
2514  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
2515};
2516
2517},{"./_iterators":65,"./_wks":135}],56:[function(require,module,exports){
2518// 7.2.2 IsArray(argument)
2519var cof = require('./_cof');
2520module.exports = Array.isArray || function isArray(arg) {
2521  return cof(arg) == 'Array';
2522};
2523
2524},{"./_cof":24}],57:[function(require,module,exports){
2525// 20.1.2.3 Number.isInteger(number)
2526var isObject = require('./_is-object');
2527var floor = Math.floor;
2528module.exports = function isInteger(it) {
2529  return !isObject(it) && isFinite(it) && floor(it) === it;
2530};
2531
2532},{"./_is-object":58}],58:[function(require,module,exports){
2533module.exports = function (it) {
2534  return typeof it === 'object' ? it !== null : typeof it === 'function';
2535};
2536
2537},{}],59:[function(require,module,exports){
2538// 7.2.8 IsRegExp(argument)
2539var isObject = require('./_is-object');
2540var cof = require('./_cof');
2541var MATCH = require('./_wks')('match');
2542module.exports = function (it) {
2543  var isRegExp;
2544  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
2545};
2546
2547},{"./_cof":24,"./_is-object":58,"./_wks":135}],60:[function(require,module,exports){
2548// call something on iterator step with safe closing on error
2549var anObject = require('./_an-object');
2550module.exports = function (iterator, fn, value, entries) {
2551  try {
2552    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
2553  // 7.4.6 IteratorClose(iterator, completion)
2554  } catch (e) {
2555    var ret = iterator['return'];
2556    if (ret !== undefined) anObject(ret.call(iterator));
2557    throw e;
2558  }
2559};
2560
2561},{"./_an-object":13}],61:[function(require,module,exports){
2562'use strict';
2563var create = require('./_object-create');
2564var descriptor = require('./_property-desc');
2565var setToStringTag = require('./_set-to-string-tag');
2566var IteratorPrototype = {};
2567
2568// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
2569require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });
2570
2571module.exports = function (Constructor, NAME, next) {
2572  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
2573  setToStringTag(Constructor, NAME + ' Iterator');
2574};
2575
2576},{"./_hide":49,"./_object-create":77,"./_property-desc":96,"./_set-to-string-tag":107,"./_wks":135}],62:[function(require,module,exports){
2577'use strict';
2578var LIBRARY = require('./_library');
vendor: 4,496 bytes, lines 2579-2702
2579var $export = require('./_export');
2580var redefine = require('./_redefine');
2581var hide = require('./_hide');
2582var Iterators = require('./_iterators');
2583var $iterCreate = require('./_iter-create');
2584var setToStringTag = require('./_set-to-string-tag');
2585var getPrototypeOf = require('./_object-gpo');
2586var ITERATOR = require('./_wks')('iterator');
2587var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
2588var FF_ITERATOR = '@@iterator';
2589var KEYS = 'keys';
2590var VALUES = 'values';
2591
2592var returnThis = function () { return this; };
2593
2594module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
2595  $iterCreate(Constructor, NAME, next);
2596  var getMethod = function (kind) {
2597    if (!BUGGY && kind in proto) return proto[kind];
2598    switch (kind) {
2599      case KEYS: return function keys() { return new Constructor(this, kind); };
2600      case VALUES: return function values() { return new Constructor(this, kind); };
2601    } return function entries() { return new Constructor(this, kind); };
2602  };
2603  var TAG = NAME + ' Iterator';
2604  var DEF_VALUES = DEFAULT == VALUES;
2605  var VALUES_BUG = false;
2606  var proto = Base.prototype;
2607  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
2608  var $default = $native || getMethod(DEFAULT);
2609  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
2610  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
2611  var methods, key, IteratorPrototype;
2612  // Fix native
2613  if ($anyNative) {
2614    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
2615    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
2616      // Set @@toStringTag to native iterators
2617      setToStringTag(IteratorPrototype, TAG, true);
2618      // fix for some old engines
2619      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
2620    }
2621  }
2622  // fix Array#{values, @@iterator}.name in V8 / FF
2623  if (DEF_VALUES && $native && $native.name !== VALUES) {
2624    VALUES_BUG = true;
2625    $default = function values() { return $native.call(this); };
2626  }
2627  // Define iterator
2628  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
2629    hide(proto, ITERATOR, $default);
2630  }
2631  // Plug for library
2632  Iterators[NAME] = $default;
2633  Iterators[TAG] = returnThis;
2634  if (DEFAULT) {
2635    methods = {
2636      values: DEF_VALUES ? $default : getMethod(VALUES),
2637      keys: IS_SET ? $default : getMethod(KEYS),
2638      entries: $entries
2639    };
2640    if (FORCED) for (key in methods) {
2641      if (!(key in proto)) redefine(proto, key, methods[key]);
2642    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
2643  }
2644  return methods;
2645};
2646
2647},{"./_export":39,"./_hide":49,"./_iter-create":61,"./_iterators":65,"./_library":66,"./_object-gpo":85,"./_redefine":98,"./_set-to-string-tag":107,"./_wks":135}],63:[function(require,module,exports){
2648var ITERATOR = require('./_wks')('iterator');
2649var SAFE_CLOSING = false;
2650
2651try {
2652  var riter = [7][ITERATOR]();
2653  riter['return'] = function () { SAFE_CLOSING = true; };
2654  // eslint-disable-next-line no-throw-literal
2655  Array.from(riter, function () { throw 2; });
2656} catch (e) { /* empty */ }
2657
2658module.exports = function (exec, skipClosing) {
2659  if (!skipClosing && !SAFE_CLOSING) return false;
2660  var safe = false;
2661  try {
2662    var arr = [7];
2663    var iter = arr[ITERATOR]();
2664    iter.next = function () { return { done: safe = true }; };
2665    arr[ITERATOR] = function () { return iter; };
2666    exec(arr);
2667  } catch (e) { /* empty */ }
2668  return safe;
2669};
2670
2671},{"./_wks":135}],64:[function(require,module,exports){
2672module.exports = function (done, value) {
2673  return { value: value, done: !!done };
2674};
2675
2676},{}],65:[function(require,module,exports){
2677module.exports = {};
2678
2679},{}],66:[function(require,module,exports){
2680module.exports = false;
2681
2682},{}],67:[function(require,module,exports){
2683// 20.2.2.14 Math.expm1(x)
2684var $expm1 = Math.expm1;
2685module.exports = (!$expm1
2686  // Old FF bug
2687  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
2688  // Tor Browser bug
2689  || $expm1(-2e-17) != -2e-17
2690) ? function expm1(x) {
2691  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
2692} : $expm1;
2693
2694},{}],68:[function(require,module,exports){
2695// 20.2.2.16 Math.fround(x)
2696var sign = require('./_math-sign');
2697var pow = Math.pow;
2698var EPSILON = pow(2, -52);
2699var EPSILON32 = pow(2, -23);
2700var MAX32 = pow(2, 127) * (2 - EPSILON32);
2701var MIN32 = pow(2, -126);
2702
vendor: 4,706 bytes, lines 2703-2838
2703var roundTiesToEven = function (n) {
2704  return n + 1 / EPSILON - 1 / EPSILON;
2705};
2706
2707module.exports = Math.fround || function fround(x) {
2708  var $abs = Math.abs(x);
2709  var $sign = sign(x);
2710  var a, result;
2711  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
2712  a = (1 + EPSILON32 / EPSILON) * $abs;
2713  result = a - (a - $abs);
2714  // eslint-disable-next-line no-self-compare
2715  if (result > MAX32 || result != result) return $sign * Infinity;
2716  return $sign * result;
2717};
2718
2719},{"./_math-sign":71}],69:[function(require,module,exports){
2720// 20.2.2.20 Math.log1p(x)
2721module.exports = Math.log1p || function log1p(x) {
2722  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
2723};
2724
2725},{}],70:[function(require,module,exports){
2726// https://rwaldron.github.io/proposal-math-extensions/
2727module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
2728  if (
2729    arguments.length === 0
2730      // eslint-disable-next-line no-self-compare
2731      || x != x
2732      // eslint-disable-next-line no-self-compare
2733      || inLow != inLow
2734      // eslint-disable-next-line no-self-compare
2735      || inHigh != inHigh
2736      // eslint-disable-next-line no-self-compare
2737      || outLow != outLow
2738      // eslint-disable-next-line no-self-compare
2739      || outHigh != outHigh
2740  ) return NaN;
2741  if (x === Infinity || x === -Infinity) return x;
2742  return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
2743};
2744
2745},{}],71:[function(require,module,exports){
2746// 20.2.2.28 Math.sign(x)
2747module.exports = Math.sign || function sign(x) {
2748  // eslint-disable-next-line no-self-compare
2749  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
2750};
2751
2752},{}],72:[function(require,module,exports){
2753var META = require('./_uid')('meta');
2754var isObject = require('./_is-object');
2755var has = require('./_has');
2756var setDesc = require('./_object-dp').f;
2757var id = 0;
2758var isExtensible = Object.isExtensible || function () {
2759  return true;
2760};
2761var FREEZE = !require('./_fails')(function () {
2762  return isExtensible(Object.preventExtensions({}));
2763});
2764var setMeta = function (it) {
2765  setDesc(it, META, { value: {
2766    i: 'O' + ++id, // object ID
2767    w: {}          // weak collections IDs
2768  } });
2769};
2770var fastKey = function (it, create) {
2771  // return primitive with prefix
2772  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
2773  if (!has(it, META)) {
2774    // can't set metadata to uncaught frozen object
2775    if (!isExtensible(it)) return 'F';
2776    // not necessary to add metadata
2777    if (!create) return 'E';
2778    // add missing metadata
2779    setMeta(it);
2780  // return object ID
2781  } return it[META].i;
2782};
2783var getWeak = function (it, create) {
2784  if (!has(it, META)) {
2785    // can't set metadata to uncaught frozen object
2786    if (!isExtensible(it)) return true;
2787    // not necessary to add metadata
2788    if (!create) return false;
2789    // add missing metadata
2790    setMeta(it);
2791  // return hash weak collections IDs
2792  } return it[META].w;
2793};
2794// add metadata on freeze-family methods calling
2795var onFreeze = function (it) {
2796  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
2797  return it;
2798};
2799var meta = module.exports = {
2800  KEY: META,
2801  NEED: false,
2802  fastKey: fastKey,
2803  getWeak: getWeak,
2804  onFreeze: onFreeze
2805};
2806
2807},{"./_fails":41,"./_has":48,"./_is-object":58,"./_object-dp":78,"./_uid":130}],73:[function(require,module,exports){
2808var Map = require('./es6.map');
2809var $export = require('./_export');
2810var shared = require('./_shared')('metadata');
2811var store = shared.store || (shared.store = new (require('./es6.weak-map'))());
2812
2813var getOrCreateMetadataMap = function (target, targetKey, create) {
2814  var targetMetadata = store.get(target);
2815  if (!targetMetadata) {
2816    if (!create) return undefined;
2817    store.set(target, targetMetadata = new Map());
2818  }
2819  var keyMetadata = targetMetadata.get(targetKey);
2820  if (!keyMetadata) {
2821    if (!create) return undefined;
2822    targetMetadata.set(targetKey, keyMetadata = new Map());
2823  } return keyMetadata;
2824};
2825var ordinaryHasOwnMetadata = function (MetadataKey, O, P) {
2826  var metadataMap = getOrCreateMetadataMap(O, P, false);
2827  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
2828};
2829var ordinaryGetOwnMetadata = function (MetadataKey, O, P) {
2830  var metadataMap = getOrCreateMetadataMap(O, P, false);
2831  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
2832};
2833var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
2834  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
2835};
2836var ordinaryOwnMetadataKeys = function (target, targetKey) {
2837  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
2838  var keys = [];
vendor: 8,632 bytes, lines 2839-3096
2839  if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
2840  return keys;
2841};
2842var toMetaKey = function (it) {
2843  return it === undefined || typeof it == 'symbol' ? it : String(it);
2844};
2845var exp = function (O) {
2846  $export($export.S, 'Reflect', O);
2847};
2848
2849module.exports = {
2850  store: store,
2851  map: getOrCreateMetadataMap,
2852  has: ordinaryHasOwnMetadata,
2853  get: ordinaryGetOwnMetadata,
2854  set: ordinaryDefineOwnMetadata,
2855  keys: ordinaryOwnMetadataKeys,
2856  key: toMetaKey,
2857  exp: exp
2858};
2859
2860},{"./_export":39,"./_shared":109,"./es6.map":167,"./es6.weak-map":274}],74:[function(require,module,exports){
2861var global = require('./_global');
2862var macrotask = require('./_task').set;
2863var Observer = global.MutationObserver || global.WebKitMutationObserver;
2864var process = global.process;
2865var Promise = global.Promise;
2866var isNode = require('./_cof')(process) == 'process';
2867
2868module.exports = function () {
2869  var head, last, notify;
2870
2871  var flush = function () {
2872    var parent, fn;
2873    if (isNode && (parent = process.domain)) parent.exit();
2874    while (head) {
2875      fn = head.fn;
2876      head = head.next;
2877      try {
2878        fn();
2879      } catch (e) {
2880        if (head) notify();
2881        else last = undefined;
2882        throw e;
2883      }
2884    } last = undefined;
2885    if (parent) parent.enter();
2886  };
2887
2888  // Node.js
2889  if (isNode) {
2890    notify = function () {
2891      process.nextTick(flush);
2892    };
2893  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
2894  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
2895    var toggle = true;
2896    var node = document.createTextNode('');
2897    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
2898    notify = function () {
2899      node.data = toggle = !toggle;
2900    };
2901  // environments with maybe non-completely correct, but existent Promise
2902  } else if (Promise && Promise.resolve) {
2903    // Promise.resolve without an argument throws an error in LG WebOS 2
2904    var promise = Promise.resolve(undefined);
2905    notify = function () {
2906      promise.then(flush);
2907    };
2908  // for other environments - macrotask based on:
2909  // - setImmediate
2910  // - MessageChannel
2911  // - window.postMessag
2912  // - onreadystatechange
2913  // - setTimeout
2914  } else {
2915    notify = function () {
2916      // strange IE + webpack dev server bug - use .call(global)
2917      macrotask.call(global, flush);
2918    };
2919  }
2920
2921  return function (fn) {
2922    var task = { fn: fn, next: undefined };
2923    if (last) last.next = task;
2924    if (!head) {
2925      head = task;
2926      notify();
2927    } last = task;
2928  };
2929};
2930
2931},{"./_cof":24,"./_global":47,"./_task":119}],75:[function(require,module,exports){
2932'use strict';
2933// 25.4.1.5 NewPromiseCapability(C)
2934var aFunction = require('./_a-function');
2935
2936function PromiseCapability(C) {
2937  var resolve, reject;
2938  this.promise = new C(function ($$resolve, $$reject) {
2939    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
2940    resolve = $$resolve;
2941    reject = $$reject;
2942  });
2943  this.resolve = aFunction(resolve);
2944  this.reject = aFunction(reject);
2945}
2946
2947module.exports.f = function (C) {
2948  return new PromiseCapability(C);
2949};
2950
2951},{"./_a-function":8}],76:[function(require,module,exports){
2952'use strict';
2953// 19.1.2.1 Object.assign(target, source, ...)
2954var DESCRIPTORS = require('./_descriptors');
2955var getKeys = require('./_object-keys');
2956var gOPS = require('./_object-gops');
2957var pIE = require('./_object-pie');
2958var toObject = require('./_to-object');
2959var IObject = require('./_iobject');
2960var $assign = Object.assign;
2961
2962// should work with symbols and should have deterministic property order (V8 bug)
2963module.exports = !$assign || require('./_fails')(function () {
2964  var A = {};
2965  var B = {};
2966  // eslint-disable-next-line no-undef
2967  var S = Symbol();
2968  var K = 'abcdefghijklmnopqrst';
2969  A[S] = 7;
2970  K.split('').forEach(function (k) { B[k] = k; });
2971  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
2972}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
2973  var T = toObject(target);
2974  var aLen = arguments.length;
2975  var index = 1;
2976  var getSymbols = gOPS.f;
2977  var isEnum = pIE.f;
2978  while (aLen > index) {
2979    var S = IObject(arguments[index++]);
2980    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
2981    var length = keys.length;
2982    var j = 0;
2983    var key;
2984    while (length > j) {
2985      key = keys[j++];
2986      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
2987    }
2988  } return T;
2989} : $assign;
2990
2991},{"./_descriptors":35,"./_fails":41,"./_iobject":54,"./_object-gops":84,"./_object-keys":87,"./_object-pie":88,"./_to-object":125}],77:[function(require,module,exports){
2992// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
2993var anObject = require('./_an-object');
2994var dPs = require('./_object-dps');
2995var enumBugKeys = require('./_enum-bug-keys');
2996var IE_PROTO = require('./_shared-key')('IE_PROTO');
2997var Empty = function () { /* empty */ };
2998var PROTOTYPE = 'prototype';
2999
3000// Create object with fake `null` prototype: use iframe Object with cleared prototype
3001var createDict = function () {
3002  // Thrash, waste and sodomy: IE GC bug
3003  var iframe = require('./_dom-create')('iframe');
3004  var i = enumBugKeys.length;
3005  var lt = '<';
3006  var gt = '>';
3007  var iframeDocument;
3008  iframe.style.display = 'none';
3009  require('./_html').appendChild(iframe);
3010  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
3011  // createDict = iframe.contentWindow.Object;
3012  // html.removeChild(iframe);
3013  iframeDocument = iframe.contentWindow.document;
3014  iframeDocument.open();
3015  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
3016  iframeDocument.close();
3017  createDict = iframeDocument.F;
3018  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
3019  return createDict();
3020};
3021
3022module.exports = Object.create || function create(O, Properties) {
3023  var result;
3024  if (O !== null) {
3025    Empty[PROTOTYPE] = anObject(O);
3026    result = new Empty();
3027    Empty[PROTOTYPE] = null;
3028    // add "__proto__" for Object.getPrototypeOf polyfill
3029    result[IE_PROTO] = O;
3030  } else result = createDict();
3031  return Properties === undefined ? result : dPs(result, Properties);
3032};
3033
3034},{"./_an-object":13,"./_dom-create":36,"./_enum-bug-keys":37,"./_html":50,"./_object-dps":79,"./_shared-key":108}],78:[function(require,module,exports){
3035var anObject = require('./_an-object');
3036var IE8_DOM_DEFINE = require('./_ie8-dom-define');
3037var toPrimitive = require('./_to-primitive');
3038var dP = Object.defineProperty;
3039
3040exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {
3041  anObject(O);
3042  P = toPrimitive(P, true);
3043  anObject(Attributes);
3044  if (IE8_DOM_DEFINE) try {
3045    return dP(O, P, Attributes);
3046  } catch (e) { /* empty */ }
3047  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
3048  if ('value' in Attributes) O[P] = Attributes.value;
3049  return O;
3050};
3051
3052},{"./_an-object":13,"./_descriptors":35,"./_ie8-dom-define":51,"./_to-primitive":126}],79:[function(require,module,exports){
3053var dP = require('./_object-dp');
3054var anObject = require('./_an-object');
3055var getKeys = require('./_object-keys');
3056
3057module.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {
3058  anObject(O);
3059  var keys = getKeys(Properties);
3060  var length = keys.length;
3061  var i = 0;
3062  var P;
3063  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
3064  return O;
3065};
3066
3067},{"./_an-object":13,"./_descriptors":35,"./_object-dp":78,"./_object-keys":87}],80:[function(require,module,exports){
3068'use strict';
3069// Forced replacement prototype accessors methods
3070module.exports = require('./_library') || !require('./_fails')(function () {
3071  var K = Math.random();
3072  // In FF throws only define methods
3073  // eslint-disable-next-line no-undef, no-useless-call
3074  __defineSetter__.call(null, K, function () { /* empty */ });
3075  delete require('./_global')[K];
3076});
3077
3078},{"./_fails":41,"./_global":47,"./_library":66}],81:[function(require,module,exports){
3079var pIE = require('./_object-pie');
3080var createDesc = require('./_property-desc');
3081var toIObject = require('./_to-iobject');
3082var toPrimitive = require('./_to-primitive');
3083var has = require('./_has');
3084var IE8_DOM_DEFINE = require('./_ie8-dom-define');
3085var gOPD = Object.getOwnPropertyDescriptor;
3086
3087exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {
3088  O = toIObject(O);
3089  P = toPrimitive(P, true);
3090  if (IE8_DOM_DEFINE) try {
3091    return gOPD(O, P);
3092  } catch (e) { /* empty */ }
3093  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
3094};
3095
3096}
vendor: 10,970 bytes, lines 3096-3418
3096,{"./_descriptors":35,"./_has":48,"./_ie8-dom-define":51,"./_object-pie":88,"./_property-desc":96,"./_to-iobject":123,"./_to-primitive":126}],82:[function(require,module,exports){
3097// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
3098var toIObject = require('./_to-iobject');
3099var gOPN = require('./_object-gopn').f;
3100var toString = {}.toString;
3101
3102var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
3103  ? Object.getOwnPropertyNames(window) : [];
3104
3105var getWindowNames = function (it) {
3106  try {
3107    return gOPN(it);
3108  } catch (e) {
3109    return windowNames.slice();
3110  }
3111};
3112
3113module.exports.f = function getOwnPropertyNames(it) {
3114  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
3115};
3116
3117},{"./_object-gopn":83,"./_to-iobject":123}],83:[function(require,module,exports){
3118// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
3119var $keys = require('./_object-keys-internal');
3120var hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');
3121
3122exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
3123  return $keys(O, hiddenKeys);
3124};
3125
3126},{"./_enum-bug-keys":37,"./_object-keys-internal":86}],84:[function(require,module,exports){
3127exports.f = Object.getOwnPropertySymbols;
3128
3129},{}],85:[function(require,module,exports){
3130// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
3131var has = require('./_has');
3132var toObject = require('./_to-object');
3133var IE_PROTO = require('./_shared-key')('IE_PROTO');
3134var ObjectProto = Object.prototype;
3135
3136module.exports = Object.getPrototypeOf || function (O) {
3137  O = toObject(O);
3138  if (has(O, IE_PROTO)) return O[IE_PROTO];
3139  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
3140    return O.constructor.prototype;
3141  } return O instanceof Object ? ObjectProto : null;
3142};
3143
3144},{"./_has":48,"./_shared-key":108,"./_to-object":125}],86:[function(require,module,exports){
3145var has = require('./_has');
3146var toIObject = require('./_to-iobject');
3147var arrayIndexOf = require('./_array-includes')(false);
3148var IE_PROTO = require('./_shared-key')('IE_PROTO');
3149
3150module.exports = function (object, names) {
3151  var O = toIObject(object);
3152  var i = 0;
3153  var result = [];
3154  var key;
3155  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
3156  // Don't enum bug & hidden keys
3157  while (names.length > i) if (has(O, key = names[i++])) {
3158    ~arrayIndexOf(result, key) || result.push(key);
3159  }
3160  return result;
3161};
3162
3163},{"./_array-includes":17,"./_has":48,"./_shared-key":108,"./_to-iobject":123}],87:[function(require,module,exports){
3164// 19.1.2.14 / 15.2.3.14 Object.keys(O)
3165var $keys = require('./_object-keys-internal');
3166var enumBugKeys = require('./_enum-bug-keys');
3167
3168module.exports = Object.keys || function keys(O) {
3169  return $keys(O, enumBugKeys);
3170};
3171
3172},{"./_enum-bug-keys":37,"./_object-keys-internal":86}],88:[function(require,module,exports){
3173exports.f = {}.propertyIsEnumerable;
3174
3175},{}],89:[function(require,module,exports){
3176// most Object methods by ES6 should accept primitives
3177var $export = require('./_export');
3178var core = require('./_core');
3179var fails = require('./_fails');
3180module.exports = function (KEY, exec) {
3181  var fn = (core.Object || {})[KEY] || Object[KEY];
3182  var exp = {};
3183  exp[KEY] = exec(fn);
3184  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
3185};
3186
3187},{"./_core":29,"./_export":39,"./_fails":41}],90:[function(require,module,exports){
3188var DESCRIPTORS = require('./_descriptors');
3189var getKeys = require('./_object-keys');
3190var toIObject = require('./_to-iobject');
3191var isEnum = require('./_object-pie').f;
3192module.exports = function (isEntries) {
3193  return function (it) {
3194    var O = toIObject(it);
3195    var keys = getKeys(O);
3196    var length = keys.length;
3197    var i = 0;
3198    var result = [];
3199    var key;
3200    while (length > i) {
3201      key = keys[i++];
3202      if (!DESCRIPTORS || isEnum.call(O, key)) {
3203        result.push(isEntries ? [key, O[key]] : O[key]);
3204      }
3205    }
3206    return result;
3207  };
3208};
3209
3210},{"./_descriptors":35,"./_object-keys":87,"./_object-pie":88,"./_to-iobject":123}],91:[function(require,module,exports){
3211// all object keys, includes non-enumerable and symbols
3212var gOPN = require('./_object-gopn');
3213var gOPS = require('./_object-gops');
3214var anObject = require('./_an-object');
3215var Reflect = require('./_global').Reflect;
3216module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
3217  var keys = gOPN.f(anObject(it));
3218  var getSymbols = gOPS.f;
3219  return getSymbols ? keys.concat(getSymbols(it)) : keys;
3220};
3221
3222},{"./_an-object":13,"./_global":47,"./_object-gopn":83,"./_object-gops":84}],92:[function(require,module,exports){
3223var $parseFloat = require('./_global').parseFloat;
3224var $trim = require('./_string-trim').trim;
3225
3226module.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {
3227  var string = $trim(String(str), 3);
3228  var result = $parseFloat(string);
3229  return result === 0 && string.charAt(0) == '-' ? -0 : result;
3230} : $parseFloat;
3231
3232},{"./_global":47,"./_string-trim":117,"./_string-ws":118}],93:[function(require,module,exports){
3233var $parseInt = require('./_global').parseInt;
3234var $trim = require('./_string-trim').trim;
3235var ws = require('./_string-ws');
3236var hex = /^[-+]?0[xX]/;
3237
3238module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
3239  var string = $trim(String(str), 3);
3240  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
3241} : $parseInt;
3242
3243},{"./_global":47,"./_string-trim":117,"./_string-ws":118}],94:[function(require,module,exports){
3244module.exports = function (exec) {
3245  try {
3246    return { e: false, v: exec() };
3247  } catch (e) {
3248    return { e: true, v: e };
3249  }
3250};
3251
3252},{}],95:[function(require,module,exports){
3253var anObject = require('./_an-object');
3254var isObject = require('./_is-object');
3255var newPromiseCapability = require('./_new-promise-capability');
3256
3257module.exports = function (C, x) {
3258  anObject(C);
3259  if (isObject(x) && x.constructor === C) return x;
3260  var promiseCapability = newPromiseCapability.f(C);
3261  var resolve = promiseCapability.resolve;
3262  resolve(x);
3263  return promiseCapability.promise;
3264};
3265
3266},{"./_an-object":13,"./_is-object":58,"./_new-promise-capability":75}],96:[function(require,module,exports){
3267module.exports = function (bitmap, value) {
3268  return {
3269    enumerable: !(bitmap & 1),
3270    configurable: !(bitmap & 2),
3271    writable: !(bitmap & 4),
3272    value: value
3273  };
3274};
3275
3276},{}],97:[function(require,module,exports){
3277var redefine = require('./_redefine');
3278module.exports = function (target, src, safe) {
3279  for (var key in src) redefine(target, key, src[key], safe);
3280  return target;
3281};
3282
3283},{"./_redefine":98}],98:[function(require,module,exports){
3284var global = require('./_global');
3285var hide = require('./_hide');
3286var has = require('./_has');
3287var SRC = require('./_uid')('src');
3288var $toString = require('./_function-to-string');
3289var TO_STRING = 'toString';
3290var TPL = ('' + $toString).split(TO_STRING);
3291
3292require('./_core').inspectSource = function (it) {
3293  return $toString.call(it);
3294};
3295
3296(module.exports = function (O, key, val, safe) {
3297  var isFunction = typeof val == 'function';
3298  if (isFunction) has(val, 'name') || hide(val, 'name', key);
3299  if (O[key] === val) return;
3300  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
3301  if (O === global) {
3302    O[key] = val;
3303  } else if (!safe) {
3304    delete O[key];
3305    hide(O, key, val);
3306  } else if (O[key]) {
3307    O[key] = val;
3308  } else {
3309    hide(O, key, val);
3310  }
3311// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
3312})(Function.prototype, TO_STRING, function toString() {
3313  return typeof this == 'function' && this[SRC] || $toString.call(this);
3314});
3315
3316},{"./_core":29,"./_function-to-string":46,"./_global":47,"./_has":48,"./_hide":49,"./_uid":130}],99:[function(require,module,exports){
3317'use strict';
3318
3319var classof = require('./_classof');
3320var builtinExec = RegExp.prototype.exec;
3321
3322 // `RegExpExec` abstract operation
3323// https://tc39.github.io/ecma262/#sec-regexpexec
3324module.exports = function (R, S) {
3325  var exec = R.exec;
3326  if (typeof exec === 'function') {
3327    var result = exec.call(R, S);
3328    if (typeof result !== 'object') {
3329      throw new TypeError('RegExp exec method returned something other than an Object or null');
3330    }
3331    return result;
3332  }
3333  if (classof(R) !== 'RegExp') {
3334    throw new TypeError('RegExp#exec called on incompatible receiver');
3335  }
3336  return builtinExec.call(R, S);
3337};
3338
3339},{"./_classof":23}],100:[function(require,module,exports){
3340'use strict';
3341
3342var regexpFlags = require('./_flags');
3343
3344var nativeExec = RegExp.prototype.exec;
3345// This always refers to the native implementation, because the
3346// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
3347// which loads this file before patching the method.
3348var nativeReplace = String.prototype.replace;
3349
3350var patchedExec = nativeExec;
3351
3352var LAST_INDEX = 'lastIndex';
3353
3354var UPDATES_LAST_INDEX_WRONG = (function () {
3355  var re1 = /a/,
3356      re2 = /b*/g;
3357  nativeExec.call(re1, 'a');
3358  nativeExec.call(re2, 'a');
3359  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
3360})();
3361
3362// nonparticipating capturing group, copied from es5-shim's String#split patch.
3363var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
3364
3365var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
3366
3367if (PATCH) {
3368  patchedExec = function exec(str) {
3369    var re = this;
3370    var lastIndex, reCopy, match, i;
3371
3372    if (NPCG_INCLUDED) {
3373      reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
3374    }
3375    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
3376
3377    match = nativeExec.call(re, str);
3378
3379    if (UPDATES_LAST_INDEX_WRONG && match) {
3380      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
3381    }
3382    if (NPCG_INCLUDED && match && match.length > 1) {
3383      // Fix browsers whose `exec` methods don't consistently return `undefined`
3384      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
3385      // eslint-disable-next-line no-loop-func
3386      nativeReplace.call(match[0], reCopy, function () {
3387        for (i = 1; i < arguments.length - 2; i++) {
3388          if (arguments[i] === undefined) match[i] = undefined;
3389        }
3390      });
3391    }
3392
3393    return match;
3394  };
3395}
3396
3397module.exports = patchedExec;
3398
3399},{"./_flags":43}],101:[function(require,module,exports){
3400module.exports = function (regExp, replace) {
3401  var replacer = replace === Object(replace) ? function (part) {
3402    return replace[part];
3403  } : replace;
3404  return function (it) {
3405    return String(it).replace(regExp, replacer);
3406  };
3407};
3408
3409},{}],102:[function(require,module,exports){
3410// 7.2.9 SameValue(x, y)
3411module.exports = Object.is || function is(x, y) {
3412  // eslint-disable-next-line no-self-compare
3413  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
3414};
3415
3416},{}],103:[function(require,module,exports){
3417'use strict';
3418// https://tc39.github.io/proposal-setmap-offrom/
3419var $export = require('./_export');
3420var aFunction = require('./_a-function');
3421var ctx = require('./_ctx');
3422var forOf = require('./_for-of');
3423
3424module.exports = function (COLLECTION) {
3425  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
3426    var mapFn = arguments[1];
3427    var mapping, A, n, cb;
3428    aFunction(this);
3429    mapping = mapFn !== undefined;
3430    if (mapping) aFunction(mapFn);
3431    if (source == undefined) return new this();
3432    A = [];
3433    if (mapping) {
3434      n = 0;
3435      cb = ctx(mapFn, arguments[2], 2);
3436      forOf(source, false, function (nextItem) {
3437        A.push(cb(nextItem, n++));
3438      });
3439    } else {
3440      forOf(source, false, A.push, A);
3441    }
3442    return new this(A);
3443  } });
3444};
3445
3446},{"./_a-function":8,"./_ctx":31,"./_export":39,"./_for-of":45}],104:[function(require,module,exports){
3447'use strict';
3448// https://tc39.github.io/proposal-setmap-offrom/
3449var $export = require('./_export');
3450
3451module.exports = function (COLLECTION) {
3452  $export($export.S, COLLECTION, { of: function of() {
3453    var length = arguments.length;
3454    var A = new Array(length);
3455    while (length--) A[length] = arguments[length];
3456    return new this(A);
3457  } });
3458};
3459
3460},{"./_export":39}],105:[function(require,module,exports){
3461// Works with __proto__ only. Old v8 can't work with null proto objects.
3462/* eslint-disable no-proto */
3463var isObject = require('./_is-object');
3464var anObject = require('./_an-object');
3465var check = function (O, proto) {
3466  anObject(O);
3467  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
3468};
3469module.exports = {
3470  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
3471    function (test, buggy, set) {
3472      try {
3473        set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);
3474        set(test, []);
3475        buggy = !(test instanceof Array);
3476      } catch (e) { buggy = true; }
3477      return function setPrototypeOf(O, proto) {
3478        check(O, proto);
3479        if (buggy) O.__proto__ = proto;
3480        else set(O, proto);
3481        return O;
3482      };
3483    }({}, false) : undefined),
3484  check: check
3485};
3486
3487},{"./_an-object":13,"./_ctx":31,"./_is-object":58,"./_object-gopd":81}],106:[function(require,module,exports){
3488'use strict';
3489var global = require('./_global');
3490var dP = require('./_object-dp');
3491var DESCRIPTORS = require('./_descriptors');
3492var SPECIES = require('./_wks')('species');
3493
3494module.exports = function (KEY) {
3495  var C = global[KEY];
3496  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
3497    configurable: true,
3498    get: function () { return this; }
3499  });
3500};
3501
3502},{"./_descriptors":35,"./_global":47,"./_object-dp":78,"./_wks":135}],107:[function(require,module,exports){
3503var def = require('./_object-dp').f;
3504var has = require('./_has');
3505var TAG = require('./_wks')('toStringTag');
3506
3507module.exports = function (it, tag, stat) {
3508  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
3509};
3510
3511},{"./_has":48,"./_object-dp":78,"./_wks":135}],108:[function(require,module,exports){
3512var shared = require('./_shared')('keys');
3513var uid = require('./_uid');
3514module.exports = function (key) {
vendor: 8,817 bytes, lines 3515-3769
3515  return shared[key] || (shared[key] = uid(key));
3516};
3517
3518},{"./_shared":109,"./_uid":130}],109:[function(require,module,exports){
3519var core = require('./_core');
3520var global = require('./_global');
3521var SHARED = '__core-js_shared__';
3522var store = global[SHARED] || (global[SHARED] = {});
3523
3524(module.exports = function (key, value) {
3525  return store[key] || (store[key] = value !== undefined ? value : {});
3526})('versions', []).push({
3527  version: core.version,
3528  mode: require('./_library') ? 'pure' : 'global',
3529  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
3530});
3531
3532},{"./_core":29,"./_global":47,"./_library":66}],110:[function(require,module,exports){
3533// 7.3.20 SpeciesConstructor(O, defaultConstructor)
3534var anObject = require('./_an-object');
3535var aFunction = require('./_a-function');
3536var SPECIES = require('./_wks')('species');
3537module.exports = function (O, D) {
3538  var C = anObject(O).constructor;
3539  var S;
3540  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
3541};
3542
3543},{"./_a-function":8,"./_an-object":13,"./_wks":135}],111:[function(require,module,exports){
3544'use strict';
3545var fails = require('./_fails');
3546
3547module.exports = function (method, arg) {
3548  return !!method && fails(function () {
3549    // eslint-disable-next-line no-useless-call
3550    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
3551  });
3552};
3553
3554},{"./_fails":41}],112:[function(require,module,exports){
3555var toInteger = require('./_to-integer');
3556var defined = require('./_defined');
3557// true  -> String#at
3558// false -> String#codePointAt
3559module.exports = function (TO_STRING) {
3560  return function (that, pos) {
3561    var s = String(defined(that));
3562    var i = toInteger(pos);
3563    var l = s.length;
3564    var a, b;
3565    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
3566    a = s.charCodeAt(i);
3567    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
3568      ? TO_STRING ? s.charAt(i) : a
3569      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
3570  };
3571};
3572
3573},{"./_defined":34,"./_to-integer":122}],113:[function(require,module,exports){
3574// helper for String#{startsWith, endsWith, includes}
3575var isRegExp = require('./_is-regexp');
3576var defined = require('./_defined');
3577
3578module.exports = function (that, searchString, NAME) {
3579  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
3580  return String(defined(that));
3581};
3582
3583},{"./_defined":34,"./_is-regexp":59}],114:[function(require,module,exports){
3584var $export = require('./_export');
3585var fails = require('./_fails');
3586var defined = require('./_defined');
3587var quot = /"/g;
3588// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
3589var createHTML = function (string, tag, attribute, value) {
3590  var S = String(defined(string));
3591  var p1 = '<' + tag;
3592  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
3593  return p1 + '>' + S + '</' + tag + '>';
3594};
3595module.exports = function (NAME, exec) {
3596  var O = {};
3597  O[NAME] = exec(createHTML);
3598  $export($export.P + $export.F * fails(function () {
3599    var test = ''[NAME]('"');
3600    return test !== test.toLowerCase() || test.split('"').length > 3;
3601  }), 'String', O);
3602};
3603
3604},{"./_defined":34,"./_export":39,"./_fails":41}],115:[function(require,module,exports){
3605// https://github.com/tc39/proposal-string-pad-start-end
3606var toLength = require('./_to-length');
3607var repeat = require('./_string-repeat');
3608var defined = require('./_defined');
3609
3610module.exports = function (that, maxLength, fillString, left) {
3611  var S = String(defined(that));
3612  var stringLength = S.length;
3613  var fillStr = fillString === undefined ? ' ' : String(fillString);
3614  var intMaxLength = toLength(maxLength);
3615  if (intMaxLength <= stringLength || fillStr == '') return S;
3616  var fillLen = intMaxLength - stringLength;
3617  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
3618  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
3619  return left ? stringFiller + S : S + stringFiller;
3620};
3621
3622},{"./_defined":34,"./_string-repeat":116,"./_to-length":124}],116:[function(require,module,exports){
3623'use strict';
3624var toInteger = require('./_to-integer');
3625var defined = require('./_defined');
3626
3627module.exports = function repeat(count) {
3628  var str = String(defined(this));
3629  var res = '';
3630  var n = toInteger(count);
3631  if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
3632  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
3633  return res;
3634};
3635
3636},{"./_defined":34,"./_to-integer":122}],117:[function(require,module,exports){
3637var $export = require('./_export');
3638var defined = require('./_defined');
3639var fails = require('./_fails');
3640var spaces = require('./_string-ws');
3641var space = '[' + spaces + ']';
3642var non = '\u200b\u0085';
3643var ltrim = RegExp('^' + space + space + '*');
3644var rtrim = RegExp(space + space + '*$');
3645
3646var exporter = function (KEY, exec, ALIAS) {
3647  var exp = {};
3648  var FORCE = fails(function () {
3649    return !!spaces[KEY]() || non[KEY]() != non;
3650  });
3651  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
3652  if (ALIAS) exp[ALIAS] = fn;
3653  $export($export.P + $export.F * FORCE, 'String', exp);
3654};
3655
3656// 1 -> String#trimLeft
3657// 2 -> String#trimRight
3658// 3 -> String#trim
3659var trim = exporter.trim = function (string, TYPE) {
3660  string = String(defined(string));
3661  if (TYPE & 1) string = string.replace(ltrim, '');
3662  if (TYPE & 2) string = string.replace(rtrim, '');
3663  return string;
3664};
3665
3666module.exports = exporter;
3667
3668},{"./_defined":34,"./_export":39,"./_fails":41,"./_string-ws":118}],118:[function(require,module,exports){
3669module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
3670  '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
3671
3672},{}],119:[function(require,module,exports){
3673var ctx = require('./_ctx');
3674var invoke = require('./_invoke');
3675var html = require('./_html');
3676var cel = require('./_dom-create');
3677var global = require('./_global');
3678var process = global.process;
3679var setTask = global.setImmediate;
3680var clearTask = global.clearImmediate;
3681var MessageChannel = global.MessageChannel;
3682var Dispatch = global.Dispatch;
3683var counter = 0;
3684var queue = {};
3685var ONREADYSTATECHANGE = 'onreadystatechange';
3686var defer, channel, port;
3687var run = function () {
3688  var id = +this;
3689  // eslint-disable-next-line no-prototype-builtins
3690  if (queue.hasOwnProperty(id)) {
3691    var fn = queue[id];
3692    delete queue[id];
3693    fn();
3694  }
3695};
3696var listener = function (event) {
3697  run.call(event.data);
3698};
3699// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
3700if (!setTask || !clearTask) {
3701  setTask = function setImmediate(fn) {
3702    var args = [];
3703    var i = 1;
3704    while (arguments.length > i) args.push(arguments[i++]);
3705    queue[++counter] = function () {
3706      // eslint-disable-next-line no-new-func
3707      invoke(typeof fn == 'function' ? fn : Function(fn), args);
3708    };
3709    defer(counter);
3710    return counter;
3711  };
3712  clearTask = function clearImmediate(id) {
3713    delete queue[id];
3714  };
3715  // Node.js 0.8-
3716  if (require('./_cof')(process) == 'process') {
3717    defer = function (id) {
3718      process.nextTick(ctx(run, id, 1));
3719    };
3720  // Sphere (JS game engine) Dispatch API
3721  } else if (Dispatch && Dispatch.now) {
3722    defer = function (id) {
3723      Dispatch.now(ctx(run, id, 1));
3724    };
3725  // Browsers with MessageChannel, includes WebWorkers
3726  } else if (MessageChannel) {
3727    channel = new MessageChannel();
3728    port = channel.port2;
3729    channel.port1.onmessage = listener;
3730    defer = ctx(port.postMessage, port, 1);
3731  // Browsers with postMessage, skip WebWorkers
3732  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
3733  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
3734    defer = function (id) {
3735      global.postMessage(id + '', '*');
3736    };
3737    global.addEventListener('message', listener, false);
3738  // IE8-
3739  } else if (ONREADYSTATECHANGE in cel('script')) {
3740    defer = function (id) {
3741      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
3742        html.removeChild(this);
3743        run.call(id);
3744      };
3745    };
3746  // Rest old browsers
3747  } else {
3748    defer = function (id) {
3749      setTimeout(ctx(run, id, 1), 0);
3750    };
3751  }
3752}
3753module.exports = {
3754  set: setTask,
3755  clear: clearTask
3756};
3757
3758},{"./_cof":24,"./_ctx":31,"./_dom-create":36,"./_global":47,"./_html":50,"./_invoke":53}],120:[function(require,module,exports){
3759var toInteger = require('./_to-integer');
3760var max = Math.max;
3761var min = Math.min;
3762module.exports = function (index, length) {
3763  index = toInteger(index);
3764  return index < 0 ? max(index + length, 0) : min(index, length);
3765};
3766
3767},{"./_to-integer":122}],121:[function(require,module,exports){
3768// https://tc39.github.io/ecma262/#sec-toindex
3769var toInteger = require('./_to-integer');
3770var toLength = require('./_to-length');
3771module.exports = function (it) {
3772  if (it === undefined) return 0;
3773  var number = toInteger(it);
3774  var length = toLength(number);
3775  if (number !== length) throw RangeError('Wrong length!');
3776  return length;
3777};
3778
3779},{"./_to-integer":122,"./_to-length":124}],122:[function(require,module,exports){
3780// 7.1.4 ToInteger
3781var ceil = Math.ceil;
3782var floor = Math.floor;
3783module.exports = function (it) {
3784  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
3785};
3786
3787},{}],123:[function(require,module,exports){
3788// to indexed object, toObject with fallback for non-array-like ES3 strings
3789var IObject = require('./_iobject');
3790var defined = require('./_defined');
3791module.exports = function (it) {
3792  return IObject(defined(it));
3793};
3794
3795},{"./_defined":34,"./_iobject":54}],124:[function(require,module,exports){
3796// 7.1.15 ToLength
3797var toInteger = require('./_to-integer');
3798var min = Math.min;
3799module.exports = function (it) {
3800  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
3801};
3802
3803},{"./_to-integer":122}],125:[function(require,module,exports){
3804// 7.1.13 ToObject(argument)
3805var defined = require('./_defined');
3806module.exports = function (it) {
3807  return Object(defined(it));
3808};
3809
3810},{"./_defined":34}],126:[function(require,module,exports){
3811// 7.1.1 ToPrimitive(input [, PreferredType])
3812var isObject = require('./_is-object');
3813// instead of the ES6 spec version, we didn't implement @@toPrimitive case
3814// and the second argument - flag - preferred type is a string
3815module.exports = function (it, S) {
3816  if (!isObject(it)) return it;
3817  var fn, val;
3818  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
3819  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
3820  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
3821  throw TypeError("Can't convert object to primitive value");
3822};
3823
3824},{"./_is-object":58}],127:[function(require,module,exports){
3825'use strict';
3826if (require('./_descriptors')) {
3827  var LIBRARY = require('./_library');
3828  var global = require('./_global');
3829  var fails = require('./_fails');
3830  var $export = require('./_export');
3831  var $typed = require('./_typed');
3832  var $buffer = require('./_typed-buffer');
3833  var ctx = require('./_ctx');
3834  var anInstance = require('./_an-instance');
3835  var propertyDesc = require('./_property-desc');
3836  var hide = require('./_hide');
3837  var redefineAll = require('./_redefine-all');
3838  var toInteger = require('./_to-integer');
3839  var toLength = require('./_to-length');
3840  var toIndex = require('./_to-index');
3841  var toAbsoluteIndex = require('./_to-absolute-index');
3842  var toPrimitive = require('./_to-primitive');
3843  var has = require('./_has');
3844  var classof = require('./_classof');
3845  var isObject = require('./_is-object');
3846  var toObject = require('./_to-object');
3847  var isArrayIter = require('./_is-array-iter');
3848  var create = require('./_object-create');
3849  var getPrototypeOf = require('./_object-gpo');
3850  var gOPN = require('./_object-gopn').f;
3851  var getIterFn = require('./core.get-iterator-method');
3852  var uid = require('./_uid');
3853  var wks = require('./_wks');
3854  var createArrayMethod = require('./_array-methods');
3855  var createArrayIncludes = require('./_array-includes');
3856  var speciesConstructor = require('./_species-constructor');
3857  var ArrayIterators = require('./es6.array.iterator');
3858  var Iterators = require('./_iterators');
3859  var $iterDetect = require('./_iter-detect');
3860  var setSpecies = require('./_set-species');
3861  var arrayFill = require('./_array-fill');
3862  var arrayCopyWithin = require('./_array-copy-within');
3863  var $DP = require('./_object-dp');
3864  var $GOPD = require('./_object-gopd'
vendor: 8,586 bytes, lines 3864-4092
3864);
3865  var dP = $DP.f;
3866  var gOPD = $GOPD.f;
3867  var RangeError = global.RangeError;
3868  var TypeError = global.TypeError;
3869  var Uint8Array = global.Uint8Array;
3870  var ARRAY_BUFFER = 'ArrayBuffer';
3871  var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
3872  var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
3873  var PROTOTYPE = 'prototype';
3874  var ArrayProto = Array[PROTOTYPE];
3875  var $ArrayBuffer = $buffer.ArrayBuffer;
3876  var $DataView = $buffer.DataView;
3877  var arrayForEach = createArrayMethod(0);
3878  var arrayFilter = createArrayMethod(2);
3879  var arraySome = createArrayMethod(3);
3880  var arrayEvery = createArrayMethod(4);
3881  var arrayFind = createArrayMethod(5);
3882  var arrayFindIndex = createArrayMethod(6);
3883  var arrayIncludes = createArrayIncludes(true);
3884  var arrayIndexOf = createArrayIncludes(false);
3885  var arrayValues = ArrayIterators.values;
3886  var arrayKeys = ArrayIterators.keys;
3887  var arrayEntries = ArrayIterators.entries;
3888  var arrayLastIndexOf = ArrayProto.lastIndexOf;
3889  var arrayReduce = ArrayProto.reduce;
3890  var arrayReduceRight = ArrayProto.reduceRight;
3891  var arrayJoin = ArrayProto.join;
3892  var arraySort = ArrayProto.sort;
3893  var arraySlice = ArrayProto.slice;
3894  var arrayToString = ArrayProto.toString;
3895  var arrayToLocaleString = ArrayProto.toLocaleString;
3896  var ITERATOR = wks('iterator');
3897  var TAG = wks('toStringTag');
3898  var TYPED_CONSTRUCTOR = uid('typed_constructor');
3899  var DEF_CONSTRUCTOR = uid('def_constructor');
3900  var ALL_CONSTRUCTORS = $typed.CONSTR;
3901  var TYPED_ARRAY = $typed.TYPED;
3902  var VIEW = $typed.VIEW;
3903  var WRONG_LENGTH = 'Wrong length!';
3904
3905  var $map = createArrayMethod(1, function (O, length) {
3906    return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
3907  });
3908
3909  var LITTLE_ENDIAN = fails(function () {
3910    // eslint-disable-next-line no-undef
3911    return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
3912  });
3913
3914  var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {
3915    new Uint8Array(1).set({});
3916  });
3917
3918  var toOffset = function (it, BYTES) {
3919    var offset = toInteger(it);
3920    if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
3921    return offset;
3922  };
3923
3924  var validate = function (it) {
3925    if (isObject(it) && TYPED_ARRAY in it) return it;
3926    throw TypeError(it + ' is not a typed array!');
3927  };
3928
3929  var allocate = function (C, length) {
3930    if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
3931      throw TypeError('It is not a typed array constructor!');
3932    } return new C(length);
3933  };
3934
3935  var speciesFromList = function (O, list) {
3936    return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
3937  };
3938
3939  var fromList = function (C, list) {
3940    var index = 0;
3941    var length = list.length;
3942    var result = allocate(C, length);
3943    while (length > index) result[index] = list[index++];
3944    return result;
3945  };
3946
3947  var addGetter = function (it, key, internal) {
3948    dP(it, key, { get: function () { return this._d[internal]; } });
3949  };
3950
3951  var $from = function from(source /* , mapfn, thisArg */) {
3952    var O = toObject(source);
3953    var aLen = arguments.length;
3954    var mapfn = aLen > 1 ? arguments[1] : undefined;
3955    var mapping = mapfn !== undefined;
3956    var iterFn = getIterFn(O);
3957    var i, length, values, result, step, iterator;
3958    if (iterFn != undefined && !isArrayIter(iterFn)) {
3959      for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
3960        values.push(step.value);
3961      } O = values;
3962    }
3963    if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
3964    for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
3965      result[i] = mapping ? mapfn(O[i], i) : O[i];
3966    }
3967    return result;
3968  };
3969
3970  var $of = function of(/* ...items */) {
3971    var index = 0;
3972    var length = arguments.length;
3973    var result = allocate(this, length);
3974    while (length > index) result[index] = arguments[index++];
3975    return result;
3976  };
3977
3978  // iOS Safari 6.x fails here
3979  var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });
3980
3981  var $toLocaleString = function toLocaleString() {
3982    return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
3983  };
3984
3985  var proto = {
3986    copyWithin: function copyWithin(target, start /* , end */) {
3987      return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
3988    },
3989    every: function every(callbackfn /* , thisArg */) {
3990      return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
3991    },
3992    fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars
3993      return arrayFill.apply(validate(this), arguments);
3994    },
3995    filter: function filter(callbackfn /* , thisArg */) {
3996      return speciesFromList(this, arrayFilter(validate(this), callbackfn,
3997        arguments.length > 1 ? arguments[1] : undefined));
3998    },
3999    find: function find(predicate /* , thisArg */) {
4000      return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4001    },
4002    findIndex: function findIndex(predicate /* , thisArg */) {
4003      return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
4004    },
4005    forEach: function forEach(callbackfn /* , thisArg */) {
4006      arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4007    },
4008    indexOf: function indexOf(searchElement /* , fromIndex */) {
4009      return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4010    },
4011    includes: function includes(searchElement /* , fromIndex */) {
4012      return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
4013    },
4014    join: function join(separator) { // eslint-disable-line no-unused-vars
4015      return arrayJoin.apply(validate(this), arguments);
4016    },
4017    lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars
4018      return arrayLastIndexOf.apply(validate(this), arguments);
4019    },
4020    map: function map(mapfn /* , thisArg */) {
4021      return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
4022    },
4023    reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4024      return arrayReduce.apply(validate(this), arguments);
4025    },
4026    reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
4027      return arrayReduceRight.apply(validate(this), arguments);
4028    },
4029    reverse: function reverse() {
4030      var that = this;
4031      var length = validate(that).length;
4032      var middle = Math.floor(length / 2);
4033      var index = 0;
4034      var value;
4035      while (index < middle) {
4036        value = that[index];
4037        that[index++] = that[--length];
4038        that[length] = value;
4039      } return that;
4040    },
4041    some: function some(callbackfn /* , thisArg */) {
4042      return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4043    },
4044    sort: function sort(comparefn) {
4045      return arraySort.call(validate(this), comparefn);
4046    },
4047    subarray: function subarray(begin, end) {
4048      var O = validate(this);
4049      var length = O.length;
4050      var $begin = toAbsoluteIndex(begin, length);
4051      return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
4052        O.buffer,
4053        O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
4054        toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
4055      );
4056    }
4057  };
4058
4059  var $slice = function slice(start, end) {
4060    return speciesFromList(this, arraySlice.call(validate(this), start, end));
4061  };
4062
4063  var $set = function set(arrayLike /* , offset */) {
4064    validate(this);
4065    var offset = toOffset(arguments[1], 1);
4066    var length = this.length;
4067    var src = toObject(arrayLike);
4068    var len = toLength(src.length);
4069    var index = 0;
4070    if (len + offset > length) throw RangeError(WRONG_LENGTH);
4071    while (index < len) this[offset + index] = src[index++];
4072  };
4073
4074  var $iterators = {
4075    entries: function entries() {
4076      return arrayEntries.call(validate(this));
4077    },
4078    keys: function keys() {
4079      return arrayKeys.call(validate(this));
4080    },
4081    values: function values() {
4082      return arrayValues.call(validate(this));
4083    }
4084  };
4085
4086  var isTAIndex = function (target, key) {
4087    return isObject(target)
4088      && target[TYPED_ARRAY]
4089      && typeof key != 'symbol'
4090      && key in target
4091      && String(+key) == String(key);
4092  };
vendor: 7,985 bytes, lines 4093-4304
4093  var $getDesc = function getOwnPropertyDescriptor(target, key) {
4094    return isTAIndex(target, key = toPrimitive(key, true))
4095      ? propertyDesc(2, target[key])
4096      : gOPD(target, key);
4097  };
4098  var $setDesc = function defineProperty(target, key, desc) {
4099    if (isTAIndex(target, key = toPrimitive(key, true))
4100      && isObject(desc)
4101      && has(desc, 'value')
4102      && !has(desc, 'get')
4103      && !has(desc, 'set')
4104      // TODO: add validation descriptor w/o calling accessors
4105      && !desc.configurable
4106      && (!has(desc, 'writable') || desc.writable)
4107      && (!has(desc, 'enumerable') || desc.enumerable)
4108    ) {
4109      target[key] = desc.value;
4110      return target;
4111    } return dP(target, key, desc);
4112  };
4113
4114  if (!ALL_CONSTRUCTORS) {
4115    $GOPD.f = $getDesc;
4116    $DP.f = $setDesc;
4117  }
4118
4119  $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
4120    getOwnPropertyDescriptor: $getDesc,
4121    defineProperty: $setDesc
4122  });
4123
4124  if (fails(function () { arrayToString.call({}); })) {
4125    arrayToString = arrayToLocaleString = function toString() {
4126      return arrayJoin.call(this);
4127    };
4128  }
4129
4130  var $TypedArrayPrototype$ = redefineAll({}, proto);
4131  redefineAll($TypedArrayPrototype$, $iterators);
4132  hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
4133  redefineAll($TypedArrayPrototype$, {
4134    slice: $slice,
4135    set: $set,
4136    constructor: function () { /* noop */ },
4137    toString: arrayToString,
4138    toLocaleString: $toLocaleString
4139  });
4140  addGetter($TypedArrayPrototype$, 'buffer', 'b');
4141  addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
4142  addGetter($TypedArrayPrototype$, 'byteLength', 'l');
4143  addGetter($TypedArrayPrototype$, 'length', 'e');
4144  dP($TypedArrayPrototype$, TAG, {
4145    get: function () { return this[TYPED_ARRAY]; }
4146  });
4147
4148  // eslint-disable-next-line max-statements
4149  module.exports = function (KEY, BYTES, wrapper, CLAMPED) {
4150    CLAMPED = !!CLAMPED;
4151    var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
4152    var GETTER = 'get' + KEY;
4153    var SETTER = 'set' + KEY;
4154    var TypedArray = global[NAME];
4155    var Base = TypedArray || {};
4156    var TAC = TypedArray && getPrototypeOf(TypedArray);
4157    var FORCED = !TypedArray || !$typed.ABV;
4158    var O = {};
4159    var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
4160    var getter = function (that, index) {
4161      var data = that._d;
4162      return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
4163    };
4164    var setter = function (that, index, value) {
4165      var data = that._d;
4166      if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
4167      data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
4168    };
4169    var addElement = function (that, index) {
4170      dP(that, index, {
4171        get: function () {
4172          return getter(this, index);
4173        },
4174        set: function (value) {
4175          return setter(this, index, value);
4176        },
4177        enumerable: true
4178      });
4179    };
4180    if (FORCED) {
4181      TypedArray = wrapper(function (that, data, $offset, $length) {
4182        anInstance(that, TypedArray, NAME, '_d');
4183        var index = 0;
4184        var offset = 0;
4185        var buffer, byteLength, length, klass;
4186        if (!isObject(data)) {
4187          length = toIndex(data);
4188          byteLength = length * BYTES;
4189          buffer = new $ArrayBuffer(byteLength);
4190        } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4191          buffer = data;
4192          offset = toOffset($offset, BYTES);
4193          var $len = data.byteLength;
4194          if ($length === undefined) {
4195            if ($len % BYTES) throw RangeError(WRONG_LENGTH);
4196            byteLength = $len - offset;
4197            if (byteLength < 0) throw RangeError(WRONG_LENGTH);
4198          } else {
4199            byteLength = toLength($length) * BYTES;
4200            if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
4201          }
4202          length = byteLength / BYTES;
4203        } else if (TYPED_ARRAY in data) {
4204          return fromList(TypedArray, data);
4205        } else {
4206          return $from.call(TypedArray, data);
4207        }
4208        hide(that, '_d', {
4209          b: buffer,
4210          o: offset,
4211          l: byteLength,
4212          e: length,
4213          v: new $DataView(buffer)
4214        });
4215        while (index < length) addElement(that, index++);
4216      });
4217      TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
4218      hide(TypedArrayPrototype, 'constructor', TypedArray);
4219    } else if (!fails(function () {
4220      TypedArray(1);
4221    }) || !fails(function () {
4222      new TypedArray(-1); // eslint-disable-line no-new
4223    }) || !$iterDetect(function (iter) {
4224      new TypedArray(); // eslint-disable-line no-new
4225      new TypedArray(null); // eslint-disable-line no-new
4226      new TypedArray(1.5); // eslint-disable-line no-new
4227      new TypedArray(iter); // eslint-disable-line no-new
4228    }, true)) {
4229      TypedArray = wrapper(function (that, data, $offset, $length) {
4230        anInstance(that, TypedArray, NAME);
4231        var klass;
4232        // `ws` module bug, temporarily remove validation length for Uint8Array
4233        // https://github.com/websockets/ws/pull/645
4234        if (!isObject(data)) return new Base(toIndex(data));
4235        if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
4236          return $length !== undefined
4237            ? new Base(data, toOffset($offset, BYTES), $length)
4238            : $offset !== undefined
4239              ? new Base(data, toOffset($offset, BYTES))
4240              : new Base(data);
4241        }
4242        if (TYPED_ARRAY in data) return fromList(TypedArray, data);
4243        return $from.call(TypedArray, data);
4244      });
4245      arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
4246        if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
4247      });
4248      TypedArray[PROTOTYPE] = TypedArrayPrototype;
4249      if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
4250    }
4251    var $nativeIterator = TypedArrayPrototype[ITERATOR];
4252    var CORRECT_ITER_NAME = !!$nativeIterator
4253      && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
4254    var $iterator = $iterators.values;
4255    hide(TypedArray, TYPED_CONSTRUCTOR, true);
4256    hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
4257    hide(TypedArrayPrototype, VIEW, true);
4258    hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
4259
4260    if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
4261      dP(TypedArrayPrototype, TAG, {
4262        get: function () { return NAME; }
4263      });
4264    }
4265
4266    O[NAME] = TypedArray;
4267
4268    $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
4269
4270    $export($export.S, NAME, {
4271      BYTES_PER_ELEMENT: BYTES
4272    });
4273
4274    $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {
4275      from: $from,
4276      of: $of
4277    });
4278
4279    if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
4280
4281    $export($export.P, NAME, proto);
4282
4283    setSpecies(NAME);
4284
4285    $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
4286
4287    $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
4288
4289    if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
4290
4291    $export($export.P + $export.F * fails(function () {
4292      new TypedArray(1).slice();
4293    }), NAME, { slice: $slice });
4294
4295    $export($export.P + $export.F * (fails(function () {
4296      return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();
4297    }) || !fails(function () {
4298      TypedArrayPrototype.toLocaleString.call([1, 2]);
4299    })), NAME, { toLocaleString: $toLocaleString });
4300
4301    Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
4302    if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
4303  };
4304} else module.exports = function () { /* empty */ };
vendor: 3,392 bytes, lines 4305-4392
4305
4306},{"./_an-instance":12,"./_array-copy-within":14,"./_array-fill":15,"./_array-includes":17,"./_array-methods":18,"./_classof":23,"./_ctx":31,"./_descriptors":35,"./_export":39,"./_fails":41,"./_global":47,"./_has":48,"./_hide":49,"./_is-array-iter":55,"./_is-object":58,"./_iter-detect":63,"./_iterators":65,"./_library":66,"./_object-create":77,"./_object-dp":78,"./_object-gopd":81,"./_object-gopn":83,"./_object-gpo":85,"./_property-desc":96,"./_redefine-all":97,"./_set-species":106,"./_species-constructor":110,"./_to-absolute-index":120,"./_to-index":121,"./_to-integer":122,"./_to-length":124,"./_to-object":125,"./_to-primitive":126,"./_typed":129,"./_typed-buffer":128,"./_uid":130,"./_wks":135,"./core.get-iterator-method":136,"./es6.array.iterator":148}],128:[function(require,module,exports){
4307'use strict';
4308var global = require('./_global');
4309var DESCRIPTORS = require('./_descriptors');
4310var LIBRARY = require('./_library');
4311var $typed = require('./_typed');
4312var hide = require('./_hide');
4313var redefineAll = require('./_redefine-all');
4314var fails = require('./_fails');
4315var anInstance = require('./_an-instance');
4316var toInteger = require('./_to-integer');
4317var toLength = require('./_to-length');
4318var toIndex = require('./_to-index');
4319var gOPN = require('./_object-gopn').f;
4320var dP = require('./_object-dp').f;
4321var arrayFill = require('./_array-fill');
4322var setToStringTag = require('./_set-to-string-tag');
4323var ARRAY_BUFFER = 'ArrayBuffer';
4324var DATA_VIEW = 'DataView';
4325var PROTOTYPE = 'prototype';
4326var WRONG_LENGTH = 'Wrong length!';
4327var WRONG_INDEX = 'Wrong index!';
4328var $ArrayBuffer = global[ARRAY_BUFFER];
4329var $DataView = global[DATA_VIEW];
4330var Math = global.Math;
4331var RangeError = global.RangeError;
4332// eslint-disable-next-line no-shadow-restricted-names
4333var Infinity = global.Infinity;
4334var BaseBuffer = $ArrayBuffer;
4335var abs = Math.abs;
4336var pow = Math.pow;
4337var floor = Math.floor;
4338var log = Math.log;
4339var LN2 = Math.LN2;
4340var BUFFER = 'buffer';
4341var BYTE_LENGTH = 'byteLength';
4342var BYTE_OFFSET = 'byteOffset';
4343var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
4344var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
4345var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
4346
4347// IEEE754 conversions based on https://github.com/feross/ieee754
4348function packIEEE754(value, mLen, nBytes) {
4349  var buffer = new Array(nBytes);
4350  var eLen = nBytes * 8 - mLen - 1;
4351  var eMax = (1 << eLen) - 1;
4352  var eBias = eMax >> 1;
4353  var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
4354  var i = 0;
4355  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
4356  var e, m, c;
4357  value = abs(value);
4358  // eslint-disable-next-line no-self-compare
4359  if (value != value || value === Infinity) {
4360    // eslint-disable-next-line no-self-compare
4361    m = value != value ? 1 : 0;
4362    e = eMax;
4363  } else {
4364    e = floor(log(value) / LN2);
4365    if (value * (c = pow(2, -e)) < 1) {
4366      e--;
4367      c *= 2;
4368    }
4369    if (e + eBias >= 1) {
4370      value += rt / c;
4371    } else {
4372      value += rt * pow(2, 1 - eBias);
4373    }
4374    if (value * c >= 2) {
4375      e++;
4376      c /= 2;
4377    }
4378    if (e + eBias >= eMax) {
4379      m = 0;
4380      e = eMax;
4381    } else if (e + eBias >= 1) {
4382      m = (value * c - 1) * pow(2, mLen);
4383      e = e + eBias;
4384    } else {
4385      m = value * pow(2, eBias - 1) * pow(2, mLen);
4386      e = 0;
4387    }
4388  }
4389  for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
4390  e = e << mLen | m;
4391  eLen += mLen;
4392  for (; eLen > 0;
vendor: 6,964 bytes, lines 4392-4584
4392 buffer[i++] = e & 255, e /= 256, eLen -= 8);
4393  buffer[--i] |= s * 128;
4394  return buffer;
4395}
4396function unpackIEEE754(buffer, mLen, nBytes) {
4397  var eLen = nBytes * 8 - mLen - 1;
4398  var eMax = (1 << eLen) - 1;
4399  var eBias = eMax >> 1;
4400  var nBits = eLen - 7;
4401  var i = nBytes - 1;
4402  var s = buffer[i--];
4403  var e = s & 127;
4404  var m;
4405  s >>= 7;
4406  for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
4407  m = e & (1 << -nBits) - 1;
4408  e >>= -nBits;
4409  nBits += mLen;
4410  for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
4411  if (e === 0) {
4412    e = 1 - eBias;
4413  } else if (e === eMax) {
4414    return m ? NaN : s ? -Infinity : Infinity;
4415  } else {
4416    m = m + pow(2, mLen);
4417    e = e - eBias;
4418  } return (s ? -1 : 1) * m * pow(2, e - mLen);
4419}
4420
4421function unpackI32(bytes) {
4422  return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
4423}
4424function packI8(it) {
4425  return [it & 0xff];
4426}
4427function packI16(it) {
4428  return [it & 0xff, it >> 8 & 0xff];
4429}
4430function packI32(it) {
4431  return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
4432}
4433function packF64(it) {
4434  return packIEEE754(it, 52, 8);
4435}
4436function packF32(it) {
4437  return packIEEE754(it, 23, 4);
4438}
4439
4440function addGetter(C, key, internal) {
4441  dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });
4442}
4443
4444function get(view, bytes, index, isLittleEndian) {
4445  var numIndex = +index;
4446  var intIndex = toIndex(numIndex);
4447  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
4448  var store = view[$BUFFER]._b;
4449  var start = intIndex + view[$OFFSET];
4450  var pack = store.slice(start, start + bytes);
4451  return isLittleEndian ? pack : pack.reverse();
4452}
4453function set(view, bytes, index, conversion, value, isLittleEndian) {
4454  var numIndex = +index;
4455  var intIndex = toIndex(numIndex);
4456  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
4457  var store = view[$BUFFER]._b;
4458  var start = intIndex + view[$OFFSET];
4459  var pack = conversion(+value);
4460  for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
4461}
4462
4463if (!$typed.ABV) {
4464  $ArrayBuffer = function ArrayBuffer(length) {
4465    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
4466    var byteLength = toIndex(length);
4467    this._b = arrayFill.call(new Array(byteLength), 0);
4468    this[$LENGTH] = byteLength;
4469  };
4470
4471  $DataView = function DataView(buffer, byteOffset, byteLength) {
4472    anInstance(this, $DataView, DATA_VIEW);
4473    anInstance(buffer, $ArrayBuffer, DATA_VIEW);
4474    var bufferLength = buffer[$LENGTH];
4475    var offset = toInteger(byteOffset);
4476    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
4477    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
4478    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
4479    this[$BUFFER] = buffer;
4480    this[$OFFSET] = offset;
4481    this[$LENGTH] = byteLength;
4482  };
4483
4484  if (DESCRIPTORS) {
4485    addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
4486    addGetter($DataView, BUFFER, '_b');
4487    addGetter($DataView, BYTE_LENGTH, '_l');
4488    addGetter($DataView, BYTE_OFFSET, '_o');
4489  }
4490
4491  redefineAll($DataView[PROTOTYPE], {
4492    getInt8: function getInt8(byteOffset) {
4493      return get(this, 1, byteOffset)[0] << 24 >> 24;
4494    },
4495    getUint8: function getUint8(byteOffset) {
4496      return get(this, 1, byteOffset)[0];
4497    },
4498    getInt16: function getInt16(byteOffset /* , littleEndian */) {
4499      var bytes = get(this, 2, byteOffset, arguments[1]);
4500      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
4501    },
4502    getUint16: function getUint16(byteOffset /* , littleEndian */) {
4503      var bytes = get(this, 2, byteOffset, arguments[1]);
4504      return bytes[1] << 8 | bytes[0];
4505    },
4506    getInt32: function getInt32(byteOffset /* , littleEndian */) {
4507      return unpackI32(get(this, 4, byteOffset, arguments[1]));
4508    },
4509    getUint32: function getUint32(byteOffset /* , littleEndian */) {
4510      return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
4511    },
4512    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
4513      return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
4514    },
4515    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
4516      return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
4517    },
4518    setInt8: function setInt8(byteOffset, value) {
4519      set(this, 1, byteOffset, packI8, value);
4520    },
4521    setUint8: function setUint8(byteOffset, value) {
4522      set(this, 1, byteOffset, packI8, value);
4523    },
4524    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
4525      set(this, 2, byteOffset, packI16, value, arguments[2]);
4526    },
4527    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
4528      set(this, 2, byteOffset, packI16, value, arguments[2]);
4529    },
4530    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
4531      set(this, 4, byteOffset, packI32, value, arguments[2]);
4532    },
4533    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
4534      set(this, 4, byteOffset, packI32, value, arguments[2]);
4535    },
4536    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
4537      set(this, 4, byteOffset, packF32, value, arguments[2]);
4538    },
4539    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
4540      set(this, 8, byteOffset, packF64, value, arguments[2]);
4541    }
4542  });
4543} else {
4544  if (!fails(function () {
4545    $ArrayBuffer(1);
4546  }) || !fails(function () {
4547    new $ArrayBuffer(-1); // eslint-disable-line no-new
4548  }) || fails(function () {
4549    new $ArrayBuffer(); // eslint-disable-line no-new
4550    new $ArrayBuffer(1.5); // eslint-disable-line no-new
4551    new $ArrayBuffer(NaN); // eslint-disable-line no-new
4552    return $ArrayBuffer.name != ARRAY_BUFFER;
4553  })) {
4554    $ArrayBuffer = function ArrayBuffer(length) {
4555      anInstance(this, $ArrayBuffer);
4556      return new BaseBuffer(toIndex(length));
4557    };
4558    var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
4559    for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
4560      if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
4561    }
4562    if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
4563  }
4564  // iOS Safari 7.x bug
4565  var view = new $DataView(new $ArrayBuffer(2));
4566  var $setInt8 = $DataView[PROTOTYPE].setInt8;
4567  view.setInt8(0, 2147483648);
4568  view.setInt8(1, 2147483649);
4569  if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
4570    setInt8: function setInt8(byteOffset, value) {
4571      $setInt8.call(this, byteOffset, value << 24 >> 24);
4572    },
4573    setUint8: function setUint8(byteOffset, value) {
4574      $setInt8.call(this, byteOffset, value << 24 >> 24);
4575    }
4576  }, true);
4577}
4578setToStringTag($ArrayBuffer, ARRAY_BUFFER);
4579setToStringTag($DataView, DATA_VIEW);
4580hide($DataView[PROTOTYPE], $typed.VIEW, true);
4581exports[ARRAY_BUFFER] = $ArrayBuffer;
4582exports[DATA_VIEW] = $DataView;
4583
4584},{"./_an-instance":12,"./_array-fill":15,"./_descriptors":35,"./_fail
4584s":41,"./_global":47,"./_hide":49,"./_library":66,"./_object-dp":78,"./_object-gopn":83,"./_redefine-all":97,"./_set-to-string-tag":107,"./_to-index":121,"./_to-integer":122,"./_to-length":124,"./_typed":129}],129:[function(require,module,exports){
4585var global = require('./_global');
4586var hide = require('./_hide');
4587var uid = require('./_uid');
4588var TYPED = uid('typed_array');
4589var VIEW = uid('view');
4590var ABV = !!(global.ArrayBuffer && global.DataView);
4591var CONSTR = ABV;
4592var i = 0;
4593var l = 9;
4594var Typed;
4595
4596var TypedArrayConstructors = (
4597  'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
4598).split(',');
4599
4600while (i < l) {
4601  if (Typed = global[TypedArrayConstructors[i++]]) {
4602    hide(Typed.prototype, TYPED, true);
4603    hide(Typed.prototype, VIEW, true);
4604  } else CONSTR = false;
4605}
4606
4607module.exports = {
4608  ABV: ABV,
4609  CONSTR: CONSTR,
4610  TYPED: TYPED,
4611  VIEW: VIEW
4612};
4613
4614},{"./_global":47,"./_hide":49,"./_uid":130}],130:[function(require,module,exports){
4615var id = 0;
4616var px = Math.random();
4617module.exports = function (key) {
4618  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4619};
4620
4621},{}],131:[function(require,module,exports){
4622var global = require('./_global');
4623var navigator = global.navigator;
4624
4625module.exports = navigator && navigator.userAgent || '';
4626
4627},{"./_global":47}],132:[function(require,module,exports){
4628var isObject = require('./_is-object');
4629module.exports = function (it, TYPE) {
4630  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
4631  return it;
4632};
4633
4634},{"./_is-object":58}],133:[function(require,module,exports){
4635var global = require('./_global');
4636var core = require('./_core');
4637var LIBRARY = require('./_library');
4638var wksExt = require('./_wks-ext');
4639var defineProperty = require('./_object-dp').f;
4640module.exports = function (name) {
4641  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
4642  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
4643};
4644
4645},{"./_core":29,"./_global":47,"./_library":66,"./_object-dp":78,"./_wks-ext":134}],134:[function(require,module,exports){
4646exports.f = require('./_wks');
4647
4648},{"./_wks":135}],135:[function(require,module,exports){
4649var store = require('./_shared')('wks');
4650var uid = require('./_uid');
4651var Symbol = require('./_global').Symbol;
4652var USE_SYMBOL = typeof Symbol == 'function';
4653
4654var $exports = module.exports = function (name) {
4655  return store[name] || (store[name] =
4656    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
4657};
4658
4659$exports.store = store;
4660
4661},{"./_global":47,"./_shared":109,"./_uid":130}],136:[function(require,module,exports){
4662var classof = require('./_classof');
4663var ITERATOR = require('./_wks')('iterator');
4664var Iterators = require('./_iterators');
4665module.exports = require('./_core').getIteratorMethod = function (it) {
4666  if (it != undefined) return it[ITERATOR]
4667    || it['@@iterator']
4668    || Iterators[classof(it)];
4669};
4670
4671},{"./_classof":23,"./_core":29,"./_iterators":65,"./_wks":135}],137:[function(require,module,exports){
4672// https://github.com/benjamingr/RexExp.escape
4673var $export = require('./_export');
4674var $re = require('./_replacer')(/[\\^$*+?.()|[\]{}]/g, '\\$&');
4675
4676$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });
4677
4678},{"./_export":39,"./_replacer":101}],138:[function(require,module,exports){
4679// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
4680var $export = require('./_export');
4681
4682$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });
4683
4684require('./_add-to-unscopables')('copyWithin');
4685
4686},{"./_add-to-unscopables":10,"./_array-copy-within":14,"./_export":39}],139:[function(require,module,exports){
4687'use strict';
4688var $export = require('./_export');
4689var $every = require('./_array-methods')(4);
4690
4691$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {
4692  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
4693  every: function every(callbackfn /* , thisArg */) {
4694    return $every(this, callbackfn, arguments[1]);
4695  }
4696});
4697
4698},{"./_array-methods":18,"./_export":39,"./_strict-method":111}],140:[function(require,module,exports){
4699// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
4700var $export = require('./_export');
4701
4702$export($export.P, 'Array', { fill: require('./_array-fill') });
4703
4704require('./_add-to-unscopables')('fill');
4705
4706},{"./_add-to-unscopables":10,"./_array-fill":15,"./_export":39}],141:[function(require,module,exports){
4707'use strict';
4708var $export = require('./_export');
4709var $filter = require('./_array-methods')(2);
4710
4711$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {
4712  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
4713  filter: function filter(callbackfn /* , thisArg */) {
4714    return $filter(this, callbackfn, arguments[1]);
4715  }
4716});
4717
4718},{"./_array-methods":18,"./_export":39,"./_strict-method":111}],142:[function(require,module,exports){
4719'use strict';
4720// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
4721var $export = require('./_export');
4722var $find = require('./_array-methods')(6);
4723var KEY = 'findIndex';
4724var forced = true;
4725// Shouldn't skip holes
4726if (KEY in []) Array(1)[KEY](function () { forced = false; });
4727$export($export.P + $export.F * forced, 'Array', {
4728  findIndex: function findIndex(callbackfn /* , that = undefined */) {
4729    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4730  }
4731});
4732require('./_add-to-unscopables')(KEY);
4733
4734},{"./_add-to-unscopables":10,"./_array-methods":18,"./_export":39}],143:[function(require,module,exports){
4735'use strict';
4736// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
vendor: 5,173 bytes, lines 4737-4863
4737var $export = require('./_export');
4738var $find = require('./_array-methods')(5);
4739var KEY = 'find';
4740var forced = true;
4741// Shouldn't skip holes
4742if (KEY in []) Array(1)[KEY](function () { forced = false; });
4743$export($export.P + $export.F * forced, 'Array', {
4744  find: function find(callbackfn /* , that = undefined */) {
4745    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
4746  }
4747});
4748require('./_add-to-unscopables')(KEY);
4749
4750},{"./_add-to-unscopables":10,"./_array-methods":18,"./_export":39}],144:[function(require,module,exports){
4751'use strict';
4752var $export = require('./_export');
4753var $forEach = require('./_array-methods')(0);
4754var STRICT = require('./_strict-method')([].forEach, true);
4755
4756$export($export.P + $export.F * !STRICT, 'Array', {
4757  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
4758  forEach: function forEach(callbackfn /* , thisArg */) {
4759    return $forEach(this, callbackfn, arguments[1]);
4760  }
4761});
4762
4763},{"./_array-methods":18,"./_export":39,"./_strict-method":111}],145:[function(require,module,exports){
4764'use strict';
4765var ctx = require('./_ctx');
4766var $export = require('./_export');
4767var toObject = require('./_to-object');
4768var call = require('./_iter-call');
4769var isArrayIter = require('./_is-array-iter');
4770var toLength = require('./_to-length');
4771var createProperty = require('./_create-property');
4772var getIterFn = require('./core.get-iterator-method');
4773
4774$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {
4775  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
4776  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
4777    var O = toObject(arrayLike);
4778    var C = typeof this == 'function' ? this : Array;
4779    var aLen = arguments.length;
4780    var mapfn = aLen > 1 ? arguments[1] : undefined;
4781    var mapping = mapfn !== undefined;
4782    var index = 0;
4783    var iterFn = getIterFn(O);
4784    var length, result, step, iterator;
4785    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
4786    // if object isn't iterable or it's array with default iterator - use simple case
4787    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
4788      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
4789        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
4790      }
4791    } else {
4792      length = toLength(O.length);
4793      for (result = new C(length); length > index; index++) {
4794        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
4795      }
4796    }
4797    result.length = index;
4798    return result;
4799  }
4800});
4801
4802},{"./_create-property":30,"./_ctx":31,"./_export":39,"./_is-array-iter":55,"./_iter-call":60,"./_iter-detect":63,"./_to-length":124,"./_to-object":125,"./core.get-iterator-method":136}],146:[function(require,module,exports){
4803'use strict';
4804var $export = require('./_export');
4805var $indexOf = require('./_array-includes')(false);
4806var $native = [].indexOf;
4807var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
4808
4809$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
4810  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
4811  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
4812    return NEGATIVE_ZERO
4813      // convert -0 to +0
4814      ? $native.apply(this, arguments) || 0
4815      : $indexOf(this, searchElement, arguments[1]);
4816  }
4817});
4818
4819},{"./_array-includes":17,"./_export":39,"./_strict-method":111}],147:[function(require,module,exports){
4820// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
4821var $export = require('./_export');
4822
4823$export($export.S, 'Array', { isArray: require('./_is-array') });
4824
4825},{"./_export":39,"./_is-array":56}],148:[function(require,module,exports){
4826'use strict';
4827var addToUnscopables = require('./_add-to-unscopables');
4828var step = require('./_iter-step');
4829var Iterators = require('./_iterators');
4830var toIObject = require('./_to-iobject');
4831
4832// 22.1.3.4 Array.prototype.entries()
4833// 22.1.3.13 Array.prototype.keys()
4834// 22.1.3.29 Array.prototype.values()
4835// 22.1.3.30 Array.prototype[@@iterator]()
4836module.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {
4837  this._t = toIObject(iterated); // target
4838  this._i = 0;                   // next index
4839  this._k = kind;                // kind
4840// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
4841}, function () {
4842  var O = this._t;
4843  var kind = this._k;
4844  var index = this._i++;
4845  if (!O || index >= O.length) {
4846    this._t = undefined;
4847    return step(1);
4848  }
4849  if (kind == 'keys') return step(0, index);
4850  if (kind == 'values') return step(0, O[index]);
4851  return step(0, [index, O[index]]);
4852}, 'values');
4853
4854// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
4855Iterators.Arguments = Iterators.Array;
4856
4857addToUnscopables('keys');
4858addToUnscopables('values');
4859addToUnscopables('entries');
4860
4861},{"./_add-to-unscopables":10,"./_iter-define":62,"./_iter-step":64,"./_iterators":65,"./_to-iobject":123}],149:[function(require,module,exports){
4862'use strict';
4863// 22.1.3.13 Array.prototype.join(separator)
4864var $export = require('./_export');
4865var toIObject = require('./_to-iobject');
4866var arrayJoin = [].join;
4867
4868// fallback for not array-like strings
4869$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {
4870  join: function join(separator) {
4871    return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
4872  }
4873});
4874
4875},{"./_export":39,"./_iobject":54,"./_strict-method":111,"./_to-iobject":123}],150:[function(require,module,exports){
4876'use strict';
4877var $export = require('./_export');
4878var toIObject = require('./_to-iobject');
4879var toInteger = require('./_to-integer');
4880var toLength = require('./_to-length');
4881var $native = [].lastIndexOf;
4882var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
4883
4884$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {
4885  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
4886  lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
4887    // convert -0 to +0
4888    if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
4889    var O = toIObject(this);
4890    var length = toLength(O.length);
4891    var index = length - 1;
4892    if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
4893    if (index < 0) index = length + index;
4894    for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
4895    return -1;
4896  }
4897});
4898
4899},{"./_export":39,"./_strict-method":111,"./_to-integer":122,"./_to-iobject":123,"./_to-length":124}],151:[function(require,module,exports){
4900'use strict';
4901var $export = require('./_export');
4902var $map = require('./_array-methods')(1);
4903
4904$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {
4905  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
4906  map: function map(callbackfn /* , thisArg */) {
4907    return $map(this, callbackfn, arguments[1]);
4908  }
4909});
4910
4911},{"./_array-methods":18,"./_export":39,"./_strict-method":111}],152:[function(require,module,exports){
4912'use strict';
4913var $export = require('./_export');
4914var createProperty = require('./_create-property');
4915
4916// WebKit Array.of isn't generic
4917$export($export.S + $export.F * require('./_fails')(function () {
4918  function F() { /* empty */ }
4919  return !(Array.of.call(F) instanceof F);
4920}), 'Array', {
4921  // 22.1.2.3 Array.of( ...items)
4922  of: function of(/* ...args */) {
4923    var index = 0;
4924    var aLen = arguments.length;
4925    var result = new (typeof this == 'function' ? this : Array)(aLen);
4926    while (aLen > index) createProperty(result, index, arguments[index++]);
4927    result.length = aLen;
4928    return result;
4929  }
4930});
4931
4932},{"./_create-property":30,"./_export":39,"./_fails":41}],153:[function(require,module,exports){
4933'use strict';
4934var $export = require('./_export');
4935var $reduce = require('./_array-reduce');
4936
4937$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {
4938  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
4939  reduceRight: function reduceRight(callbackfn /* , initialValue */) {
4940    return $reduce(this, callbackfn, arguments.length, arguments[1], true);
4941  }
4942});
4943
4944},{"./_array-reduce":19,"./_export":39,"./_strict-method":111}],154:[function(require,module,exports){
4945'use strict';
4946var $export = require('./_export');
4947var $reduce = require('./_array-reduce');
4948
4949$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {
4950  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
4951  reduce: function reduce(callbackfn /* , initialValue */) {
4952    return $reduce(this, callbackfn, arguments.length, arguments[1], false);
4953  }
4954});
4955
4956},{"./_array-reduce":19,"./_export":39,"./_strict-method":111}],155:[function(require,module,exports){
4957'use strict';
4958var $export = require('./_export');
4959var html = require('./_html');
4960var cof = require('./_cof');
4961var toAbsoluteIndex = require('./_to-absolute-index');
4962var toLength = require('./_to-length');
4963var arraySlice = [].slice;
4964
4965// fallback for not array-like ES3 strings and DOM objects
4966$export($export.P + $export.F * require('./_fails')(function () {
4967  if (html) arraySlice.call(html);
4968}), 'Array', {
4969  slice: function slice(begin, end) {
4970    var len = toLength(this.length);
4971    var klass = cof(this);
4972    end = end === undefined ? len : end;
4973    if (klass == 'Array') return arraySlice.call(this, begin, end);
4974    var start = toAbsoluteIndex(begin, len);
4975    var upTo = toAbsoluteIndex(end, len);
4976    var size = toLength(upTo - start);
4977    var cloned = new Array(size);
4978    var i = 0;
4979    for (; i < size; i++) cloned[i] = klass == 'String'
4980      ? this.charAt(start + i)
4981      : this[start + i];
4982    return cloned;
4983  }
4984});
4985
4986}
4986,{"./_cof":24,"./_export":39,"./_fails":41,"./_html":50,"./_to-absolute-index":120,"./_to-length":124}],156:[function(require,module,exports){
4987'use strict';
4988var $export = require('./_export');
4989var $some = require('./_array-methods')(3);
4990
4991$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {
4992  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
4993  some: function some(callbackfn /* , thisArg */) {
4994    return $some(this, callbackfn, arguments[1]);
4995  }
4996});
4997
4998},{"./_array-methods":18,"./_export":39,"./_strict-method":111}],157:[function(require,module,exports){
4999'use strict';
5000var $export = require('./_export');
5001var aFunction = require('./_a-function');
5002var toObject = require('./_to-object');
5003var fails = require('./_fails');
5004var $sort = [].sort;
5005var test = [1, 2, 3];
5006
5007$export($export.P + $export.F * (fails(function () {
5008  // IE8-
5009  test.sort(undefined);
5010}) || !fails(function () {
5011  // V8 bug
5012  test.sort(null);
5013  // Old WebKit
5014}) || !require('./_strict-method')($sort)), 'Array', {
5015  // 22.1.3.25 Array.prototype.sort(comparefn)
5016  sort: function sort(comparefn) {
5017    return comparefn === undefined
5018      ? $sort.call(toObject(this))
5019      : $sort.call(toObject(this), aFunction(comparefn));
5020  }
5021});
5022
5023},{"./_a-function":8,"./_export":39,"./_fails":41,"./_strict-method":111,"./_to-object":125}],158:[function(require,module,exports){
5024require('./_set-species')('Array');
5025
5026},{"./_set-species":106}],159:[function(require,module,exports){
5027// 20.3.3.1 / 15.9.4.4 Date.now()
5028var $export = require('./_export');
5029
5030$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
5031
5032},{"./_export":39}],160:[function(require,module,exports){
5033// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
5034var $export = require('./_export');
5035var toISOString = require('./_date-to-iso-string');
5036
5037// PhantomJS / old WebKit has a broken implementations
5038$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
5039  toISOString: toISOString
5040});
5041
5042},{"./_date-to-iso-string":32,"./_export":39}],161:[function(require,module,exports){
5043'use strict';
5044var $export = require('./_export');
5045var toObject = require('./_to-object');
5046var toPrimitive = require('./_to-primitive');
5047
5048$export($export.P + $export.F * require('./_fails')(function () {
5049  return new Date(NaN).toJSON() !== null
5050    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
5051}), 'Date', {
5052  // eslint-disable-next-line no-unused-vars
5053  toJSON: function toJSON(key) {
5054    var O = toObject(this);
5055    var pv = toPrimitive(O);
5056    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
5057  }
5058});
5059
5060},{"./_export":39,"./_fails":41,"./_to-object":125,"./_to-primitive":126}],162:[function(require,module,exports){
5061var TO_PRIMITIVE = require('./_wks')('toPrimitive');
5062var proto = Date.prototype;
5063
5064if (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));
5065
5066},{"./_date-to-primitive":33,"./_hide":49,"./_wks":135}],163:[function(require,module,exports){
5067var DateProto = Date.prototype;
5068var INVALID_DATE = 'Invalid Date';
5069var TO_STRING = 'toString';
5070var $toString = DateProto[TO_STRING];
5071var getTime = DateProto.getTime;
5072if (new Date(NaN) + '' != INVALID_DATE) {
5073  require('./_redefine')(DateProto, TO_STRING, function toString() {
5074    var value = getTime.call(this);
5075    // eslint-disable-next-line no-self-compare
5076    return value === value ? $toString.call(this) : INVALID_DATE;
5077  });
5078}
5079
5080},{"./_redefine":98}],164:[function(require,module,exports){
5081// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
5082var $export = require('./_export');
5083
5084$export($export.P, 'Function', { bind: require('./_bind') });
5085
5086},{"./_bind":22,"./_export":39}],165:[function(require,module,exports){
5087'use strict';
5088var isObject = require('./_is-object');
5089var getPrototypeOf = require('./_object-gpo');
5090var HAS_INSTANCE = require('./_wks')('hasInstance');
5091var FunctionProto = Function.prototype;
5092// 19.2.3.6 Function.prototype[@@hasInstance](V)
5093if (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {
5094  if (typeof this != 'function' || !isObject(O)) return false;
5095  if (!isObject(this.prototype)) return O instanceof this;
5096  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
5097  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
5098  return false;
5099} });
5100
5101},{"./_is-object":58,"./_object-dp":78,"./_object-gpo":85,"./_wks":135}],166:[function(require,module,exports){
5102var dP = require('./_object-dp').f;
5103var FProto = Function.prototype;
5104var nameRE = /^\s*function ([^ (]*)/;
5105var NAME = 'name';
5106
5107// 19.2.4.2 name
5108NAME in FProto || require('./_descriptors') && dP(FProto, NAME, {
5109  configurable: true,
5110  get: function () {
5111    try {
5112      return ('' + this).match(nameRE)[1];
5113    } catch (e) {
5114      return '';
5115    }
5116  }
5117});
5118
5119},{"./_descriptors":35,"./_object-dp":78}],167:[function(require,module,exports){
5120'use strict';
5121var strong = require('./_collection-strong');
5122var validate = require('./_validate-collection');
5123var MAP = 'Map';
5124
5125// 23.1 Map Objects
5126module.exports = require('./_collection')(MAP, function (get) {
5127  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
5128}, {
5129  // 23.1.3.6 Map.prototype.get(key)
5130  get: function get(key) {
5131    var entry = strong.getEntry(validate(this, MAP), key);
5132    return entry && entry.v;
5133  },
5134  // 23.1.3.9 Map.prototype.set(key, value)
5135  set: function set(key, value) {
5136    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
5137  }
5138}, strong, true);
5139
5140},{"./_collection":28,"./_collection-strong":25,"./_validate-collection":132}],168:[function(require,module,exports){
5141// 20.2.2.3 Math.acosh(x)
5142var $export = require('./_export');
5143var log1p = require('./_math-log1p');
5144var sqrt = Math.sqrt;
5145var $acosh = Math.acosh;
5146
5147$export($export.S + $export.F * !($acosh
5148  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
5149  && Math.floor($acosh(Number.MAX_VALUE)) == 710
5150  // Tor Browser bug: Math.acosh(Infinity) -> NaN
5151  && $acosh(Infinity) == Infinity
5152), 'Math', {
5153  acosh: function acosh(x) {
5154    return (x = +x) < 1 ? NaN : x > 94906265.62425156
5155      ? Math.log(x) + Math.LN2
5156      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
5157  }
5158});
5159
5160},{"./_export":39,"./_math-log1p":69}],169:[function(require,module,exports){
5161// 20.2.2.5 Math.asinh(x)
5162var $export = require('./_export');
5163var $asinh = Math.asinh;
5164
5165function asinh(x) {
5166  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
5167}
5168
5169// Tor Browser bug: Math.asinh(0) -> -0
5170$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
5171
5172},{"./_export":39}],170:[function(require,module,exports){
5173// 20.2.2.7 Math.atanh(x)
5174var $export = require('./_export');
5175var $atanh = Math.atanh;
5176
5177// Tor Browser bug: Math.atanh(-0) -> 0
5178$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
5179  atanh: function atanh(x) {
5180    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
5181  }
5182});
5183
5184},{"./_export":39}],171:[function(require,module,exports){
5185// 20.2.2.9 Math.cbrt(x)
5186var $export = require('./_export');
5187var sign = require('./_math-sign');
5188
5189$export($export.S, 'Math', {
5190  cbrt: function cbrt(x) {
5191    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
5192  }
5193});
5194
5195},{"./_export":39,"./_math-sign":71}],172:[function(require,module,exports){
5196// 20.2.2.11 Math.clz32(x)
5197var $export = require('./_export');
5198
5199$export($export.S, 'Math', {
5200  clz32: function clz32(x) {
5201    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
5202  }
5203});
5204
5205},{"./_export":39}],173:[function(require,module,exports){
5206// 20.2.2.12 Math.cosh(x)
5207var $export = require('./_export');
5208var exp = Math.exp;
5209
5210$export($export.S, 'Math', {
5211  cosh: function cosh(x) {
5212    return (exp(x = +x) + exp(-x)) / 2;
5213  }
5214});
5215
5216},{"./_export":39}],174:[function(require,module,exports){
5217// 20.2.2.14 Math.expm1(x)
5218var $export = require('./_export');
5219var $expm1 = require('./_math-expm1');
5220
5221$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });
5222
5223},{"./_export":39,"./_math-expm1":67}],175:[function(require,module,exports){
5224// 20.2.2.16 Math.fround(x)
5225var $export = require('./_export');
5226
5227$export($export.S, 'Math', { fround: require('./_math-fround') });
5228
5229},{"./_export":39,"./_math-fround":68}],176:[function(require,module,exports){
5230// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
vendor: 4,775 bytes, lines 5231-5384
5231var $export = require('./_export');
5232var abs = Math.abs;
5233
5234$export($export.S, 'Math', {
5235  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
5236    var sum = 0;
5237    var i = 0;
5238    var aLen = arguments.length;
5239    var larg = 0;
5240    var arg, div;
5241    while (i < aLen) {
5242      arg = abs(arguments[i++]);
5243      if (larg < arg) {
5244        div = larg / arg;
5245        sum = sum * div * div + 1;
5246        larg = arg;
5247      } else if (arg > 0) {
5248        div = arg / larg;
5249        sum += div * div;
5250      } else sum += arg;
5251    }
5252    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
5253  }
5254});
5255
5256},{"./_export":39}],177:[function(require,module,exports){
5257// 20.2.2.18 Math.imul(x, y)
5258var $export = require('./_export');
5259var $imul = Math.imul;
5260
5261// some WebKit versions fails with big numbers, some has wrong arity
5262$export($export.S + $export.F * require('./_fails')(function () {
5263  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
5264}), 'Math', {
5265  imul: function imul(x, y) {
5266    var UINT16 = 0xffff;
5267    var xn = +x;
5268    var yn = +y;
5269    var xl = UINT16 & xn;
5270    var yl = UINT16 & yn;
5271    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
5272  }
5273});
5274
5275},{"./_export":39,"./_fails":41}],178:[function(require,module,exports){
5276// 20.2.2.21 Math.log10(x)
5277var $export = require('./_export');
5278
5279$export($export.S, 'Math', {
5280  log10: function log10(x) {
5281    return Math.log(x) * Math.LOG10E;
5282  }
5283});
5284
5285},{"./_export":39}],179:[function(require,module,exports){
5286// 20.2.2.20 Math.log1p(x)
5287var $export = require('./_export');
5288
5289$export($export.S, 'Math', { log1p: require('./_math-log1p') });
5290
5291},{"./_export":39,"./_math-log1p":69}],180:[function(require,module,exports){
5292// 20.2.2.22 Math.log2(x)
5293var $export = require('./_export');
5294
5295$export($export.S, 'Math', {
5296  log2: function log2(x) {
5297    return Math.log(x) / Math.LN2;
5298  }
5299});
5300
5301},{"./_export":39}],181:[function(require,module,exports){
5302// 20.2.2.28 Math.sign(x)
5303var $export = require('./_export');
5304
5305$export($export.S, 'Math', { sign: require('./_math-sign') });
5306
5307},{"./_export":39,"./_math-sign":71}],182:[function(require,module,exports){
5308// 20.2.2.30 Math.sinh(x)
5309var $export = require('./_export');
5310var expm1 = require('./_math-expm1');
5311var exp = Math.exp;
5312
5313// V8 near Chromium 38 has a problem with very small numbers
5314$export($export.S + $export.F * require('./_fails')(function () {
5315  return !Math.sinh(-2e-17) != -2e-17;
5316}), 'Math', {
5317  sinh: function sinh(x) {
5318    return Math.abs(x = +x) < 1
5319      ? (expm1(x) - expm1(-x)) / 2
5320      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
5321  }
5322});
5323
5324},{"./_export":39,"./_fails":41,"./_math-expm1":67}],183:[function(require,module,exports){
5325// 20.2.2.33 Math.tanh(x)
5326var $export = require('./_export');
5327var expm1 = require('./_math-expm1');
5328var exp = Math.exp;
5329
5330$export($export.S, 'Math', {
5331  tanh: function tanh(x) {
5332    var a = expm1(x = +x);
5333    var b = expm1(-x);
5334    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
5335  }
5336});
5337
5338},{"./_export":39,"./_math-expm1":67}],184:[function(require,module,exports){
5339// 20.2.2.34 Math.trunc(x)
5340var $export = require('./_export');
5341
5342$export($export.S, 'Math', {
5343  trunc: function trunc(it) {
5344    return (it > 0 ? Math.floor : Math.ceil)(it);
5345  }
5346});
5347
5348},{"./_export":39}],185:[function(require,module,exports){
5349'use strict';
5350var global = require('./_global');
5351var has = require('./_has');
5352var cof = require('./_cof');
5353var inheritIfRequired = require('./_inherit-if-required');
5354var toPrimitive = require('./_to-primitive');
5355var fails = require('./_fails');
5356var gOPN = require('./_object-gopn').f;
5357var gOPD = require('./_object-gopd').f;
5358var dP = require('./_object-dp').f;
5359var $trim = require('./_string-trim').trim;
5360var NUMBER = 'Number';
5361var $Number = global[NUMBER];
5362var Base = $Number;
5363var proto = $Number.prototype;
5364// Opera ~12 has broken Object#toString
5365var BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;
5366var TRIM = 'trim' in String.prototype;
5367
5368// 7.1.3 ToNumber(argument)
5369var toNumber = function (argument) {
5370  var it = toPrimitive(argument, false);
5371  if (typeof it == 'string' && it.length > 2) {
5372    it = TRIM ? it.trim() : $trim(it, 3);
5373    var first = it.charCodeAt(0);
5374    var third, radix, maxCode;
5375    if (first === 43 || first === 45) {
5376      third = it.charCodeAt(2);
5377      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
5378    } else if (first === 48) {
5379      switch (it.charCodeAt(1)) {
5380        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
5381        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
5382        default: return +it;
5383      }
5384      for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {
vendor: 1,662 bytes, lines 5385-5420
5385        code = digits.charCodeAt(i);
5386        // parseInt parses a string to a first unavailable symbol
5387        // but ToNumber should return NaN if a string contains unavailable symbols
5388        if (code < 48 || code > maxCode) return NaN;
5389      } return parseInt(digits, radix);
5390    }
5391  } return +it;
5392};
5393
5394if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
5395  $Number = function Number(value) {
5396    var it = arguments.length < 1 ? 0 : value;
5397    var that = this;
5398    return that instanceof $Number
5399      // check on 1..constructor(foo) case
5400      && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)
5401        ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
5402  };
5403  for (var keys = require('./_descriptors') ? gOPN(Base) : (
5404    // ES3:
5405    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
5406    // ES6 (in case, if modules with ES6 Number statics required before):
5407    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
5408    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
5409  ).split(','), j = 0, key; keys.length > j; j++) {
5410    if (has(Base, key = keys[j]) && !has($Number, key)) {
5411      dP($Number, key, gOPD(Base, key));
5412    }
5413  }
5414  $Number.prototype = proto;
5415  proto.constructor = $Number;
5416  require('./_redefine')(global, NUMBER, $Number);
5417}
5418
5419},{"./_cof":24,"./_descriptors":35,"./_fails":41,"./_global":47,"./_has":48,"./_inherit-if-required":52,"./_object-create":77,"./_object-dp":78,"./_object-gopd":81,"./_object-gopn":83,"./_redefine":98,"./_string-trim":117,"./_to-primitive":126}],186:[function(require,module,exports){
5420// 20.1.2.1 Number.EPSILON
vendor: 4,581 bytes, lines 5421-5579
5421var $export = require('./_export');
5422
5423$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });
5424
5425},{"./_export":39}],187:[function(require,module,exports){
5426// 20.1.2.2 Number.isFinite(number)
5427var $export = require('./_export');
5428var _isFinite = require('./_global').isFinite;
5429
5430$export($export.S, 'Number', {
5431  isFinite: function isFinite(it) {
5432    return typeof it == 'number' && _isFinite(it);
5433  }
5434});
5435
5436},{"./_export":39,"./_global":47}],188:[function(require,module,exports){
5437// 20.1.2.3 Number.isInteger(number)
5438var $export = require('./_export');
5439
5440$export($export.S, 'Number', { isInteger: require('./_is-integer') });
5441
5442},{"./_export":39,"./_is-integer":57}],189:[function(require,module,exports){
5443// 20.1.2.4 Number.isNaN(number)
5444var $export = require('./_export');
5445
5446$export($export.S, 'Number', {
5447  isNaN: function isNaN(number) {
5448    // eslint-disable-next-line no-self-compare
5449    return number != number;
5450  }
5451});
5452
5453},{"./_export":39}],190:[function(require,module,exports){
5454// 20.1.2.5 Number.isSafeInteger(number)
5455var $export = require('./_export');
5456var isInteger = require('./_is-integer');
5457var abs = Math.abs;
5458
5459$export($export.S, 'Number', {
5460  isSafeInteger: function isSafeInteger(number) {
5461    return isInteger(number) && abs(number) <= 0x1fffffffffffff;
5462  }
5463});
5464
5465},{"./_export":39,"./_is-integer":57}],191:[function(require,module,exports){
5466// 20.1.2.6 Number.MAX_SAFE_INTEGER
5467var $export = require('./_export');
5468
5469$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
5470
5471},{"./_export":39}],192:[function(require,module,exports){
5472// 20.1.2.10 Number.MIN_SAFE_INTEGER
5473var $export = require('./_export');
5474
5475$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
5476
5477},{"./_export":39}],193:[function(require,module,exports){
5478var $export = require('./_export');
5479var $parseFloat = require('./_parse-float');
5480// 20.1.2.12 Number.parseFloat(string)
5481$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });
5482
5483},{"./_export":39,"./_parse-float":92}],194:[function(require,module,exports){
5484var $export = require('./_export');
5485var $parseInt = require('./_parse-int');
5486// 20.1.2.13 Number.parseInt(string, radix)
5487$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });
5488
5489},{"./_export":39,"./_parse-int":93}],195:[function(require,module,exports){
5490'use strict';
5491var $export = require('./_export');
5492var toInteger = require('./_to-integer');
5493var aNumberValue = require('./_a-number-value');
5494var repeat = require('./_string-repeat');
5495var $toFixed = 1.0.toFixed;
5496var floor = Math.floor;
5497var data = [0, 0, 0, 0, 0, 0];
5498var ERROR = 'Number.toFixed: incorrect invocation!';
5499var ZERO = '0';
5500
5501var multiply = function (n, c) {
5502  var i = -1;
5503  var c2 = c;
5504  while (++i < 6) {
5505    c2 += n * data[i];
5506    data[i] = c2 % 1e7;
5507    c2 = floor(c2 / 1e7);
5508  }
5509};
5510var divide = function (n) {
5511  var i = 6;
5512  var c = 0;
5513  while (--i >= 0) {
5514    c += data[i];
5515    data[i] = floor(c / n);
5516    c = (c % n) * 1e7;
5517  }
5518};
5519var numToString = function () {
5520  var i = 6;
5521  var s = '';
5522  while (--i >= 0) {
5523    if (s !== '' || i === 0 || data[i] !== 0) {
5524      var t = String(data[i]);
5525      s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
5526    }
5527  } return s;
5528};
5529var pow = function (x, n, acc) {
5530  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
5531};
5532var log = function (x) {
5533  var n = 0;
5534  var x2 = x;
5535  while (x2 >= 4096) {
5536    n += 12;
5537    x2 /= 4096;
5538  }
5539  while (x2 >= 2) {
5540    n += 1;
5541    x2 /= 2;
5542  } return n;
5543};
5544
5545$export($export.P + $export.F * (!!$toFixed && (
5546  0.00008.toFixed(3) !== '0.000' ||
5547  0.9.toFixed(0) !== '1' ||
5548  1.255.toFixed(2) !== '1.25' ||
5549  1000000000000000128.0.toFixed(0) !== '1000000000000000128'
5550) || !require('./_fails')(function () {
5551  // V8 ~ Android 4.3-
5552  $toFixed.call({});
5553})), 'Number', {
5554  toFixed: function toFixed(fractionDigits) {
5555    var x = aNumberValue(this, ERROR);
5556    var f = toInteger(fractionDigits);
5557    var s = '';
5558    var m = ZERO;
5559    var e, z, j, k;
5560    if (f < 0 || f > 20) throw RangeError(ERROR);
5561    // eslint-disable-next-line no-self-compare
5562    if (x != x) return 'NaN';
5563    if (x <= -1e21 || x >= 1e21) return String(x);
5564    if (x < 0) {
5565      s = '-';
5566      x = -x;
5567    }
5568    if (x > 1e-21) {
5569      e = log(x * pow(2, 69, 1)) - 69;
5570      z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
5571      z *= 0x10000000000000;
5572      e = 52 - e;
5573      if (e > 0) {
5574        multiply(0, z);
5575        j = f;
5576        while (j >= 7) {
5577          multiply(1e7, 0);
5578          j -= 7;
5579        }
5580        multiply(pow(10, j, 1), 0);
5581        j = e - 1;
5582        while (j >= 23) {
5583          divide(1 << 23);
5584          j -= 23;
5585        }
5586        divide(1 << j);
5587        multiply(1, 1);
5588        divide(2);
5589        m = numToString();
5590      } else {
5591        multiply(0, z);
5592        multiply(1 << -e, 0);
5593        m = numToString() + repeat.call(ZERO, f);
5594      }
5595    }
5596    if (f > 0) {
5597      k = m.length;
5598      m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
5599    } else {
5600      m = s + m;
5601    } return m;
5602  }
5603});
5604
5605},{"./_a-number-value":9,"./_export":39,"./_fails":41,"./_string-repeat":116,"./_to-integer":122}],196:[function(require,module,exports){
5606'use strict';
5607var $export = require('./_export');
5608var $fails = require('./_fails');
5609var aNumberValue = require('./_a-number-value');
5610var $toPrecision = 1.0.toPrecision;
5611
5612$export($export.P + $export.F * ($fails(function () {
5613  // IE7-
5614  return $toPrecision.call(1, undefined) !== '1';
5615}) || !$fails(function () {
5616  // V8 ~ Android 4.3-
5617  $toPrecision.call({});
5618})), 'Number', {
5619  toPrecision: function toPrecision(precision) {
5620    var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
5621    return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
5622  }
5623});
5624
5625},{"./_a-number-value":9,"./_export":39,"./_fails":41}],197:[function(require,module,exports){
5626// 19.1.3.1 Object.assign(target, source)
5627var $export = require('./_export');
5628
5629$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });
5630
5631},{"./_export":39,"./_object-assign":76}],198:[function(require,module,exports){
5632var $export = require('./_export');
5633// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
5634$export($export.S, 'Object', { create: require('./_object-create') });
5635
5636},{"./_export":39,"./_object-create":77}],199:[function(require,module,exports){
5637var $export = require('./_export');
5638// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
5639$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });
5640
5641},{"./_descriptors":35,"./_export":39,"./_object-dps":79}],200:[function(require,module,exports){
5642var $export = require('./_export');
5643// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
5644$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });
5645
5646},{"./_descriptors":35,"./_export":39,"./_object-dp":78}],201:[function(require,module,exports){
5647// 19.1.2.5 Object.freeze(O)
5648var isObject = require('./_is-object');
5649var meta = require('./_meta').onFreeze;
5650
5651require('./_object-sap')('freeze', function ($freeze) {
5652  return function freeze(it) {
5653    return $freeze && isObject(it) ? $freeze(meta(it)) : it;
5654  };
5655});
5656
5657},{"./_is-object":58,"./_meta":72,"./_object-sap":89}],202:[function(require,module,exports){
5658// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
5659var toIObject = require('./_to-iobject');
5660var $getOwnPropertyDescriptor = require('./_object-gopd').f;
5661
5662require('./_object-sap')('getOwnPropertyDescriptor', function () {
5663  return function getOwnPropertyDescriptor(it, key) {
5664    return $getOwnPropertyDescriptor(toIObject(it), key);
5665  };
5666});
5667
5668},{"./_object-gopd":81,"./_object-sap":89,"./_to-iobject":123}],203:[function(require,module,exports){
5669// 19.1.2.7 Object.getOwnPropertyNames(O)
5670require('./_object-sap')('getOwnPropertyNames', function () {
5671  return require('./_object-gopn-ext').f;
5672});
5673
5674},{"./_object-gopn-ext":82,"./_object-sap":89}],204:[function(require,module,exports){
5675// 19.1.2.9 Object.getPrototypeOf(O)
5676var toObject = require('./_to-object');
5677var $getPrototypeOf = require('./_object-gpo');
5678
5679require('./_object-sap')('getPrototypeOf', function () {
5680  return function getPrototypeOf(it) {
5681    return $getPrototypeOf(toObject(it));
5682  };
5683});
5684
5685},{"./_object-gpo":85,"./_object-sap":89,"./_to-object":125}],205:[function(require,module,exports){
5686// 19.1.2.11 Object.isExtensible(O)
5687var isObject = require('./_is-object');
5688
5689require('./_object-sap')('isExtensible', function ($isExtensible) {
5690  return function isExtensible(it) {
5691    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
5692  };
5693});
5694
5695},{"./_is-object":58,"./_object-sap":89}],206:[function(require,module,exports){
5696// 19.1.2.12 Object.isFrozen(O)
5697var isObject = require('./_is-object');
5698
5699require('./_object-sap')('isFrozen', function ($isFrozen) {
5700  return function isFrozen(it) {
5701    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
5702  };
5703});
5704
5705},{"./_is-object":58,"./_object-sap":89}],207:[function(require,module,exports){
5706// 19.1.2.13 Object.isSealed(O)
5707var isObject = require('./_is-object');
5708
5709require('./_object-sap')('isSealed', function ($isSealed) {
5710  return function isSealed(it) {
5711    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
5712  };
5713});
5714
5715},{"./_is-object":58,"./_object-sap":89}],208:[function(require,module,exports){
5716// 19.1.3.10 Object.is(value1, value2)
5717var $export = require('./_export');
5718$export($export.S, 'Object', { is: require('./_same-value') });
5719
5720},{"./_export":39,"./_same-value":102}],209:[function(require,module,exports){
5721// 19.1.2.14 Object.keys(O)
5722var toObject = require('./_to-object');
5723var $keys = require('./_object-keys');
5724
5725require('./_object-sap')('keys', function () {
5726  return function keys(it) {
5727    return $keys(toObject(it));
5728  };
5729});
5730
5731},{"./_object-keys":87,"./_object-sap":89,"./_to-object":125}],210:[function(require,module,exports){
5732// 19.1.2.15 Object.preventExtensions(O)
5733var isObject = require('./_is-object');
5734var meta = require('./_meta').onFreeze;
5735
5736require('./_object-sap')('preventExtensions', function ($preventExtensions) {
5737  return function preventExtensions(it) {
5738    return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
5739  };
5740});
5741
5742},{"./_is-object":58,"./_meta":72,"./_object-sap":89}],211:[function(require,module,exports){
5743// 19.1.2.17 Object.seal(O)
5744var isObject = require('./_is-object');
5745var meta = require('./_meta').onFreeze;
5746
5747require('./_object-sap')('seal', function ($seal) {
5748  return function seal(it) {
5749    return $seal && isObject(it) ? $seal(meta(it)) : it;
5750  };
5751});
5752
5753},{"./_is-object":58,"./_meta":72,"./_object-sap":89}],212:[function(require,module,exports){
5754// 19.1.3.19 Object.setPrototypeOf(O, proto)
5755var $export = require('./_export');
5756$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });
5757
5758},{"./_export":39,"./_set-proto":105}],213:[function(require,module,exports){
5759'use strict';
5760// 19.1.3.6 Object.prototype.toString()
5761var classof = require('./_classof');
5762var test = {};
5763test[require('./_wks')('toStringTag')] = 'z';
5764if (test + '' != '[object z]') {
5765  require('./_redefine')(Object.prototype, 'toString', function toString() {
5766    return '[object ' + classof(this) + ']';
5767  }, true);
5768}
5769
5770},{"./_classof":23,"./_redefine":98,"./_wks":135}],214:[function(require,module,exports){
5771var $export = require('./_export');
5772var $parseFloat = require('./_parse-float');
5773// 18.2.4 parseFloat(string)
5774$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });
5775
5776},{"./_export":39,"./_parse-float":92}],215:[function(require,module,exports){
5777var $export = require('./_export');
5778var $parseInt = require('./_parse-int');
5779// 18.2.5 parseInt(string, radix)
5780$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });
5781
5782},{"./_export":39,"./_parse-int":93}],216:[function(require,module,exports){
5783'use strict';
5784var LIBRARY = require('./_library');
5785var global = require('./_global');
5786var ctx = require('./_ctx');
5787var classof = require('./_classof');
5788var $export = require('./_export');
5789var isObject = require('./_is-object');
5790var aFunction = require('./_a-function');
5791var anInstance = require('./_an-instance');
5792var forOf = require('./_for-of');
5793var speciesConstructor = require('./_species-constructor');
5794var task = require('./_task').set;
5795var microtask = require('./_microtask')();
5796var newPromiseCapabilityModule = require('./_new-promise-capability');
5797var perform = require('./_perform');
5798var userAgent = require('./_user-agent');
5799var promiseResolve = require('./_promise-resolve');
5800var PROMISE = 'Promise';
5801var TypeError = global.TypeError;
5802var process = global.process;
5803var versions = process && process.versions;
5804var v8 = versions && versions.v8 || '';
5805var $Promise = global[PROMISE];
5806var isNode = classof(process) == 'process';
5807var empty = function () { /* empty */ };
5808var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
5809var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
5810
5811var USE_NATIVE = !!function () {
5812  try {
5813    // correct subclassing with @@species support
5814    var promise = $Promise.resolve(1);
5815    var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {
5816      exec(empty, empty);
5817    };
5818    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
5819    return (isNode || typeof PromiseRejectionEvent == 'function')
5820      && promise.then(empty) instanceof FakePromise
5821      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
5822      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
5823      // we can't detect it synchronously, so just check versions
5824      && v8.indexOf('6.6') !== 0
5825      && userAgent.indexOf('Chrome/66') === -1;
5826  } catch (e) { /* empty */ }
5827}();
5828
5829// helpers
5830var isThenable = function (it) {
5831  var then;
5832  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
vendor: 11,034 bytes, lines 5833-6137
5833};
5834var notify = function (promise, isReject) {
5835  if (promise._n) return;
5836  promise._n = true;
5837  var chain = promise._c;
5838  microtask(function () {
5839    var value = promise._v;
5840    var ok = promise._s == 1;
5841    var i = 0;
5842    var run = function (reaction) {
5843      var handler = ok ? reaction.ok : reaction.fail;
5844      var resolve = reaction.resolve;
5845      var reject = reaction.reject;
5846      var domain = reaction.domain;
5847      var result, then, exited;
5848      try {
5849        if (handler) {
5850          if (!ok) {
5851            if (promise._h == 2) onHandleUnhandled(promise);
5852            promise._h = 1;
5853          }
5854          if (handler === true) result = value;
5855          else {
5856            if (domain) domain.enter();
5857            result = handler(value); // may throw
5858            if (domain) {
5859              domain.exit();
5860              exited = true;
5861            }
5862          }
5863          if (result === reaction.promise) {
5864            reject(TypeError('Promise-chain cycle'));
5865          } else if (then = isThenable(result)) {
5866            then.call(result, resolve, reject);
5867          } else resolve(result);
5868        } else reject(value);
5869      } catch (e) {
5870        if (domain && !exited) domain.exit();
5871        reject(e);
5872      }
5873    };
5874    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
5875    promise._c = [];
5876    promise._n = false;
5877    if (isReject && !promise._h) onUnhandled(promise);
5878  });
5879};
5880var onUnhandled = function (promise) {
5881  task.call(global, function () {
5882    var value = promise._v;
5883    var unhandled = isUnhandled(promise);
5884    var result, handler, console;
5885    if (unhandled) {
5886      result = perform(function () {
5887        if (isNode) {
5888          process.emit('unhandledRejection', value, promise);
5889        } else if (handler = global.onunhandledrejection) {
5890          handler({ promise: promise, reason: value });
5891        } else if ((console = global.console) && console.error) {
5892          console.error('Unhandled promise rejection', value);
5893        }
5894      });
5895      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
5896      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
5897    } promise._a = undefined;
5898    if (unhandled && result.e) throw result.v;
5899  });
5900};
5901var isUnhandled = function (promise) {
5902  return promise._h !== 1 && (promise._a || promise._c).length === 0;
5903};
5904var onHandleUnhandled = function (promise) {
5905  task.call(global, function () {
5906    var handler;
5907    if (isNode) {
5908      process.emit('rejectionHandled', promise);
5909    } else if (handler = global.onrejectionhandled) {
5910      handler({ promise: promise, reason: promise._v });
5911    }
5912  });
5913};
5914var $reject = function (value) {
5915  var promise = this;
5916  if (promise._d) return;
5917  promise._d = true;
5918  promise = promise._w || promise; // unwrap
5919  promise._v = value;
5920  promise._s = 2;
5921  if (!promise._a) promise._a = promise._c.slice();
5922  notify(promise, true);
5923};
5924var $resolve = function (value) {
5925  var promise = this;
5926  var then;
5927  if (promise._d) return;
5928  promise._d = true;
5929  promise = promise._w || promise; // unwrap
5930  try {
5931    if (promise === value) throw TypeError("Promise can't be resolved itself");
5932    if (then = isThenable(value)) {
5933      microtask(function () {
5934        var wrapper = { _w: promise, _d: false }; // wrap
5935        try {
5936          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
5937        } catch (e) {
5938          $reject.call(wrapper, e);
5939        }
5940      });
5941    } else {
5942      promise._v = value;
5943      promise._s = 1;
5944      notify(promise, false);
5945    }
5946  } catch (e) {
5947    $reject.call({ _w: promise, _d: false }, e); // wrap
5948  }
5949};
5950
5951// constructor polyfill
5952if (!USE_NATIVE) {
5953  // 25.4.3.1 Promise(executor)
5954  $Promise = function Promise(executor) {
5955    anInstance(this, $Promise, PROMISE, '_h');
5956    aFunction(executor);
5957    Internal.call(this);
5958    try {
5959      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
5960    } catch (err) {
5961      $reject.call(this, err);
5962    }
5963  };
5964  // eslint-disable-next-line no-unused-vars
5965  Internal = function Promise(executor) {
5966    this._c = [];             // <- awaiting reactions
5967    this._a = undefined;      // <- checked in isUnhandled reactions
5968    this._s = 0;              // <- state
5969    this._d = false;          // <- done
5970    this._v = undefined;      // <- value
5971    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
5972    this._n = false;          // <- notify
5973  };
5974  Internal.prototype = require('./_redefine-all')($Promise.prototype, {
5975    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
5976    then: function then(onFulfilled, onRejected) {
5977      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
5978      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
5979      reaction.fail = typeof onRejected == 'function' && onRejected;
5980      reaction.domain = isNode ? process.domain : undefined;
5981      this._c.push(reaction);
5982      if (this._a) this._a.push(reaction);
5983      if (this._s) notify(this, false);
5984      return reaction.promise;
5985    },
5986    // 25.4.5.1 Promise.prototype.catch(onRejected)
5987    'catch': function (onRejected) {
5988      return this.then(undefined, onRejected);
5989    }
5990  });
5991  OwnPromiseCapability = function () {
5992    var promise = new Internal();
5993    this.promise = promise;
5994    this.resolve = ctx($resolve, promise, 1);
5995    this.reject = ctx($reject, promise, 1);
5996  };
5997  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
5998    return C === $Promise || C === Wrapper
5999      ? new OwnPromiseCapability(C)
6000      : newGenericPromiseCapability(C);
6001  };
6002}
6003
6004$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
6005require('./_set-to-string-tag')($Promise, PROMISE);
6006require('./_set-species')(PROMISE);
6007Wrapper = require('./_core')[PROMISE];
6008
6009// statics
6010$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
6011  // 25.4.4.5 Promise.reject(r)
6012  reject: function reject(r) {
6013    var capability = newPromiseCapability(this);
6014    var $$reject = capability.reject;
6015    $$reject(r);
6016    return capability.promise;
6017  }
6018});
6019$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
6020  // 25.4.4.6 Promise.resolve(x)
6021  resolve: function resolve(x) {
6022    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
6023  }
6024});
6025$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {
6026  $Promise.all(iter)['catch'](empty);
6027})), PROMISE, {
6028  // 25.4.4.1 Promise.all(iterable)
6029  all: function all(iterable) {
6030    var C = this;
6031    var capability = newPromiseCapability(C);
6032    var resolve = capability.resolve;
6033    var reject = capability.reject;
6034    var result = perform(function () {
6035      var values = [];
6036      var index = 0;
6037      var remaining = 1;
6038      forOf(iterable, false, function (promise) {
6039        var $index = index++;
6040        var alreadyCalled = false;
6041        values.push(undefined);
6042        remaining++;
6043        C.resolve(promise).then(function (value) {
6044          if (alreadyCalled) return;
6045          alreadyCalled = true;
6046          values[$index] = value;
6047          --remaining || resolve(values);
6048        }, reject);
6049      });
6050      --remaining || resolve(values);
6051    });
6052    if (result.e) reject(result.v);
6053    return capability.promise;
6054  },
6055  // 25.4.4.4 Promise.race(iterable)
6056  race: function race(iterable) {
6057    var C = this;
6058    var capability = newPromiseCapability(C);
6059    var reject = capability.reject;
6060    var result = perform(function () {
6061      forOf(iterable, false, function (promise) {
6062        C.resolve(promise).then(capability.resolve, reject);
6063      });
6064    });
6065    if (result.e) reject(result.v);
6066    return capability.promise;
6067  }
6068});
6069
6070},{"./_a-function":8,"./_an-instance":12,"./_classof":23,"./_core":29,"./_ctx":31,"./_export":39,"./_for-of":45,"./_global":47,"./_is-object":58,"./_iter-detect":63,"./_library":66,"./_microtask":74,"./_new-promise-capability":75,"./_perform":94,"./_promise-resolve":95,"./_redefine-all":97,"./_set-species":106,"./_set-to-string-tag":107,"./_species-constructor":110,"./_task":119,"./_user-agent":131,"./_wks":135}],217:[function(require,module,exports){
6071// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
6072var $export = require('./_export');
6073var aFunction = require('./_a-function');
6074var anObject = require('./_an-object');
6075var rApply = (require('./_global').Reflect || {}).apply;
6076var fApply = Function.apply;
6077// MS Edge argumentsList argument is optional
6078$export($export.S + $export.F * !require('./_fails')(function () {
6079  rApply(function () { /* empty */ });
6080}), 'Reflect', {
6081  apply: function apply(target, thisArgument, argumentsList) {
6082    var T = aFunction(target);
6083    var L = anObject(argumentsList);
6084    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
6085  }
6086});
6087
6088},{"./_a-function":8,"./_an-object":13,"./_export":39,"./_fails":41,"./_global":47}],218:[function(require,module,exports){
6089// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
6090var $export = require('./_export');
6091var create = require('./_object-create');
6092var aFunction = require('./_a-function');
6093var anObject = require('./_an-object');
6094var isObject = require('./_is-object');
6095var fails = require('./_fails');
6096var bind = require('./_bind');
6097var rConstruct = (require('./_global').Reflect || {}).construct;
6098
6099// MS Edge supports only 2 arguments and argumentsList argument is optional
6100// FF Nightly sets third argument as `new.target`, but does not create `this` from it
6101var NEW_TARGET_BUG = fails(function () {
6102  function F() { /* empty */ }
6103  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
6104});
6105var ARGS_BUG = !fails(function () {
6106  rConstruct(function () { /* empty */ });
6107});
6108
6109$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
6110  construct: function construct(Target, args /* , newTarget */) {
6111    aFunction(Target);
6112    anObject(args);
6113    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
6114    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
6115    if (Target == newTarget) {
6116      // w/o altered newTarget, optimization for 0-4 arguments
6117      switch (args.length) {
6118        case 0: return new Target();
6119        case 1: return new Target(args[0]);
6120        case 2: return new Target(args[0], args[1]);
6121        case 3: return new Target(args[0], args[1], args[2]);
6122        case 4: return new Target(args[0], args[1], args[2], args[3]);
6123      }
6124      // w/o altered newTarget, lot of arguments case
6125      var $args = [null];
6126      $args.push.apply($args, args);
6127      return new (bind.apply(Target, $args))();
6128    }
6129    // with altered newTarget, not support built-in constructors
6130    var proto = newTarget.prototype;
6131    var instance = create(isObject(proto) ? proto : Object.prototype);
6132    var result = Function.apply.call(Target, instance, args);
6133    return isObject(result) ? result : instance;
6134  }
6135});
6136
6137},{"./_a-function":8,"./_an-object":13,"./_bind":22,"./_export":39,"./_fail
6137s":41,"./_global":47,"./_is-object":58,"./_object-create":77}],219:[function(require,module,exports){
6138// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
6139var dP = require('./_object-dp');
6140var $export = require('./_export');
6141var anObject = require('./_an-object');
6142var toPrimitive = require('./_to-primitive');
6143
6144// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
6145$export($export.S + $export.F * require('./_fails')(function () {
6146  // eslint-disable-next-line no-undef
6147  Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
6148}), 'Reflect', {
6149  defineProperty: function defineProperty(target, propertyKey, attributes) {
6150    anObject(target);
6151    propertyKey = toPrimitive(propertyKey, true);
6152    anObject(attributes);
6153    try {
6154      dP.f(target, propertyKey, attributes);
6155      return true;
6156    } catch (e) {
6157      return false;
6158    }
6159  }
6160});
6161
6162},{"./_an-object":13,"./_export":39,"./_fails":41,"./_object-dp":78,"./_to-primitive":126}],220:[function(require,module,exports){
6163// 26.1.4 Reflect.deleteProperty(target, propertyKey)
6164var $export = require('./_export');
6165var gOPD = require('./_object-gopd').f;
6166var anObject = require('./_an-object');
6167
6168$export($export.S, 'Reflect', {
6169  deleteProperty: function deleteProperty(target, propertyKey) {
6170    var desc = gOPD(anObject(target), propertyKey);
6171    return desc && !desc.configurable ? false : delete target[propertyKey];
6172  }
6173});
6174
6175},{"./_an-object":13,"./_export":39,"./_object-gopd":81}],221:[function(require,module,exports){
6176'use strict';
6177// 26.1.5 Reflect.enumerate(target)
6178var $export = require('./_export');
6179var anObject = require('./_an-object');
6180var Enumerate = function (iterated) {
6181  this._t = anObject(iterated); // target
6182  this._i = 0;                  // next index
6183  var keys = this._k = [];      // keys
6184  var key;
6185  for (key in iterated) keys.push(key);
6186};
6187require('./_iter-create')(Enumerate, 'Object', function () {
6188  var that = this;
6189  var keys = that._k;
6190  var key;
6191  do {
6192    if (that._i >= keys.length) return { value: undefined, done: true };
6193  } while (!((key = keys[that._i++]) in that._t));
6194  return { value: key, done: false };
6195});
6196
6197$export($export.S, 'Reflect', {
6198  enumerate: function enumerate(target) {
6199    return new Enumerate(target);
6200  }
6201});
6202
6203},{"./_an-object":13,"./_export":39,"./_iter-create":61}],222:[function(require,module,exports){
6204// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
6205var gOPD = require('./_object-gopd');
6206var $export = require('./_export');
6207var anObject = require('./_an-object');
6208
6209$export($export.S, 'Reflect', {
6210  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
6211    return gOPD.f(anObject(target), propertyKey);
6212  }
6213});
6214
6215},{"./_an-object":13,"./_export":39,"./_object-gopd":81}],223:[function(require,module,exports){
6216// 26.1.8 Reflect.getPrototypeOf(target)
6217var $export = require('./_export');
6218var getProto = require('./_object-gpo');
6219var anObject = require('./_an-object');
6220
6221$export($export.S, 'Reflect', {
6222  getPrototypeOf: function getPrototypeOf(target) {
6223    return getProto(anObject(target));
6224  }
6225});
6226
6227},{"./_an-object":13,"./_export":39,"./_object-gpo":85}],224:[function(require,module,exports){
6228// 26.1.6 Reflect.get(target, propertyKey [, receiver])
6229var gOPD = require('./_object-gopd');
6230var getPrototypeOf = require('./_object-gpo');
6231var has = require('./_has');
6232var $export = require('./_export');
6233var isObject = require('./_is-object');
6234var anObject = require('./_an-object');
6235
6236function get(target, propertyKey /* , receiver */) {
6237  var receiver = arguments.length < 3 ? target : arguments[2];
6238  var desc, proto;
6239  if (anObject(target) === receiver) return target[propertyKey];
6240  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
6241    ? desc.value
6242    : desc.get !== undefined
6243      ? desc.get.call(receiver)
6244      : undefined;
6245  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
6246}
6247
6248$export($export.S, 'Reflect', { get: get });
6249
6250},{"./_an-object":13,"./_export":39,"./_has":48,"./_is-object":58,"./_object-gopd":81,"./_object-gpo":85}],225:[function(require,module,exports){
6251// 26.1.9 Reflect.has(target, propertyKey)
vendor: 2,912 bytes, lines 6252-6341
6252var $export = require('./_export');
6253
6254$export($export.S, 'Reflect', {
6255  has: function has(target, propertyKey) {
6256    return propertyKey in target;
6257  }
6258});
6259
6260},{"./_export":39}],226:[function(require,module,exports){
6261// 26.1.10 Reflect.isExtensible(target)
6262var $export = require('./_export');
6263var anObject = require('./_an-object');
6264var $isExtensible = Object.isExtensible;
6265
6266$export($export.S, 'Reflect', {
6267  isExtensible: function isExtensible(target) {
6268    anObject(target);
6269    return $isExtensible ? $isExtensible(target) : true;
6270  }
6271});
6272
6273},{"./_an-object":13,"./_export":39}],227:[function(require,module,exports){
6274// 26.1.11 Reflect.ownKeys(target)
6275var $export = require('./_export');
6276
6277$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });
6278
6279},{"./_export":39,"./_own-keys":91}],228:[function(require,module,exports){
6280// 26.1.12 Reflect.preventExtensions(target)
6281var $export = require('./_export');
6282var anObject = require('./_an-object');
6283var $preventExtensions = Object.preventExtensions;
6284
6285$export($export.S, 'Reflect', {
6286  preventExtensions: function preventExtensions(target) {
6287    anObject(target);
6288    try {
6289      if ($preventExtensions) $preventExtensions(target);
6290      return true;
6291    } catch (e) {
6292      return false;
6293    }
6294  }
6295});
6296
6297},{"./_an-object":13,"./_export":39}],229:[function(require,module,exports){
6298// 26.1.14 Reflect.setPrototypeOf(target, proto)
6299var $export = require('./_export');
6300var setProto = require('./_set-proto');
6301
6302if (setProto) $export($export.S, 'Reflect', {
6303  setPrototypeOf: function setPrototypeOf(target, proto) {
6304    setProto.check(target, proto);
6305    try {
6306      setProto.set(target, proto);
6307      return true;
6308    } catch (e) {
6309      return false;
6310    }
6311  }
6312});
6313
6314},{"./_export":39,"./_set-proto":105}],230:[function(require,module,exports){
6315// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
6316var dP = require('./_object-dp');
6317var gOPD = require('./_object-gopd');
6318var getPrototypeOf = require('./_object-gpo');
6319var has = require('./_has');
6320var $export = require('./_export');
6321var createDesc = require('./_property-desc');
6322var anObject = require('./_an-object');
6323var isObject = require('./_is-object');
6324
6325function set(target, propertyKey, V /* , receiver */) {
6326  var receiver = arguments.length < 4 ? target : arguments[3];
6327  var ownDesc = gOPD.f(anObject(target), propertyKey);
6328  var existingDescriptor, proto;
6329  if (!ownDesc) {
6330    if (isObject(proto = getPrototypeOf(target))) {
6331      return set(proto, propertyKey, V, receiver);
6332    }
6333    ownDesc = createDesc(0);
6334  }
6335  if (has(ownDesc, 'value')) {
6336    if (ownDesc.writable === false || !isObject(receiver)) return false;
6337    if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
6338      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
6339      existingDescriptor.value = V;
6340      dP.f(receiver, propertyKey, existingDescriptor);
6341    }
vendor: 13,955 bytes, lines 6341-6689
6341 else dP.f(receiver, propertyKey, createDesc(0, V));
6342    return true;
6343  }
6344  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
6345}
6346
6347$export($export.S, 'Reflect', { set: set });
6348
6349},{"./_an-object":13,"./_export":39,"./_has":48,"./_is-object":58,"./_object-dp":78,"./_object-gopd":81,"./_object-gpo":85,"./_property-desc":96}],231:[function(require,module,exports){
6350var global = require('./_global');
6351var inheritIfRequired = require('./_inherit-if-required');
6352var dP = require('./_object-dp').f;
6353var gOPN = require('./_object-gopn').f;
6354var isRegExp = require('./_is-regexp');
6355var $flags = require('./_flags');
6356var $RegExp = global.RegExp;
6357var Base = $RegExp;
6358var proto = $RegExp.prototype;
6359var re1 = /a/g;
6360var re2 = /a/g;
6361// "new" creates a new object, old webkit buggy here
6362var CORRECT_NEW = new $RegExp(re1) !== re1;
6363
6364if (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {
6365  re2[require('./_wks')('match')] = false;
6366  // RegExp constructor can alter flags and IsRegExp works correct with @@match
6367  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
6368}))) {
6369  $RegExp = function RegExp(p, f) {
6370    var tiRE = this instanceof $RegExp;
6371    var piRE = isRegExp(p);
6372    var fiU = f === undefined;
6373    return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
6374      : inheritIfRequired(CORRECT_NEW
6375        ? new Base(piRE && !fiU ? p.source : p, f)
6376        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
6377      , tiRE ? this : proto, $RegExp);
6378  };
6379  var proxy = function (key) {
6380    key in $RegExp || dP($RegExp, key, {
6381      configurable: true,
6382      get: function () { return Base[key]; },
6383      set: function (it) { Base[key] = it; }
6384    });
6385  };
6386  for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
6387  proto.constructor = $RegExp;
6388  $RegExp.prototype = proto;
6389  require('./_redefine')(global, 'RegExp', $RegExp);
6390}
6391
6392require('./_set-species')('RegExp');
6393
6394},{"./_descriptors":35,"./_fails":41,"./_flags":43,"./_global":47,"./_inherit-if-required":52,"./_is-regexp":59,"./_object-dp":78,"./_object-gopn":83,"./_redefine":98,"./_set-species":106,"./_wks":135}],232:[function(require,module,exports){
6395'use strict';
6396var regexpExec = require('./_regexp-exec');
6397require('./_export')({
6398  target: 'RegExp',
6399  proto: true,
6400  forced: regexpExec !== /./.exec
6401}, {
6402  exec: regexpExec
6403});
6404
6405},{"./_export":39,"./_regexp-exec":100}],233:[function(require,module,exports){
6406// 21.2.5.3 get RegExp.prototype.flags()
6407if (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {
6408  configurable: true,
6409  get: require('./_flags')
6410});
6411
6412},{"./_descriptors":35,"./_flags":43,"./_object-dp":78}],234:[function(require,module,exports){
6413'use strict';
6414
6415var anObject = require('./_an-object');
6416var toLength = require('./_to-length');
6417var advanceStringIndex = require('./_advance-string-index');
6418var regExpExec = require('./_regexp-exec-abstract');
6419
6420// @@match logic
6421require('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {
6422  return [
6423    // `String.prototype.match` method
6424    // https://tc39.github.io/ecma262/#sec-string.prototype.match
6425    function match(regexp) {
6426      var O = defined(this);
6427      var fn = regexp == undefined ? undefined : regexp[MATCH];
6428      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
6429    },
6430    // `RegExp.prototype[@@match]` method
6431    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
6432    function (regexp) {
6433      var res = maybeCallNative($match, regexp, this);
6434      if (res.done) return res.value;
6435      var rx = anObject(regexp);
6436      var S = String(this);
6437      if (!rx.global) return regExpExec(rx, S);
6438      var fullUnicode = rx.unicode;
6439      rx.lastIndex = 0;
6440      var A = [];
6441      var n = 0;
6442      var result;
6443      while ((result = regExpExec(rx, S)) !== null) {
6444        var matchStr = String(result[0]);
6445        A[n] = matchStr;
6446        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
6447        n++;
6448      }
6449      return n === 0 ? null : A;
6450    }
6451  ];
6452});
6453
6454},{"./_advance-string-index":11,"./_an-object":13,"./_fix-re-wks":42,"./_regexp-exec-abstract":99,"./_to-length":124}],235:[function(require,module,exports){
6455'use strict';
6456
6457var anObject = require('./_an-object');
6458var toObject = require('./_to-object');
6459var toLength = require('./_to-length');
6460var toInteger = require('./_to-integer');
6461var advanceStringIndex = require('./_advance-string-index');
6462var regExpExec = require('./_regexp-exec-abstract');
6463var max = Math.max;
6464var min = Math.min;
6465var floor = Math.floor;
6466var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
6467var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
6468
6469var maybeToString = function (it) {
6470  return it === undefined ? it : String(it);
6471};
6472
6473// @@replace logic
6474require('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
6475  return [
6476    // `String.prototype.replace` method
6477    // https://tc39.github.io/ecma262/#sec-string.prototype.replace
6478    function replace(searchValue, replaceValue) {
6479      var O = defined(this);
6480      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
6481      return fn !== undefined
6482        ? fn.call(searchValue, O, replaceValue)
6483        : $replace.call(String(O), searchValue, replaceValue);
6484    },
6485    // `RegExp.prototype[@@replace]` method
6486    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
6487    function (regexp, replaceValue) {
6488      var res = maybeCallNative($replace, regexp, this, replaceValue);
6489      if (res.done) return res.value;
6490
6491      var rx = anObject(regexp);
6492      var S = String(this);
6493      var functionalReplace = typeof replaceValue === 'function';
6494      if (!functionalReplace) replaceValue = String(replaceValue);
6495      var global = rx.global;
6496      if (global) {
6497        var fullUnicode = rx.unicode;
6498        rx.lastIndex = 0;
6499      }
6500      var results = [];
6501      while (true) {
6502        var result = regExpExec(rx, S);
6503        if (result === null) break;
6504        results.push(result);
6505        if (!global) break;
6506        var matchStr = String(result[0]);
6507        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
6508      }
6509      var accumulatedResult = '';
6510      var nextSourcePosition = 0;
6511      for (var i = 0; i < results.length; i++) {
6512        result = results[i];
6513        var matched = String(result[0]);
6514        var position = max(min(toInteger(result.index), S.length), 0);
6515        var captures = [];
6516        // NOTE: This is equivalent to
6517        //   captures = result.slice(1).map(maybeToString)
6518        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
6519        // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
6520        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
6521        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
6522        var namedCaptures = result.groups;
6523        if (functionalReplace) {
6524          var replacerArgs = [matched].concat(captures, position, S);
6525          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
6526          var replacement = String(replaceValue.apply(undefined, replacerArgs));
6527        } else {
6528          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
6529        }
6530        if (position >= nextSourcePosition) {
6531          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
6532          nextSourcePosition = position + matched.length;
6533        }
6534      }
6535      return accumulatedResult + S.slice(nextSourcePosition);
6536    }
6537  ];
6538
6539    // https://tc39.github.io/ecma262/#sec-getsubstitution
6540  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
6541    var tailPos = position + matched.length;
6542    var m = captures.length;
6543    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
6544    if (namedCaptures !== undefined) {
6545      namedCaptures = toObject(namedCaptures);
6546      symbols = SUBSTITUTION_SYMBOLS;
6547    }
6548    return $replace.call(replacement, symbols, function (match, ch) {
6549      var capture;
6550      switch (ch.charAt(0)) {
6551        case '$': return '$';
6552        case '&': return matched;
6553        case '`': return str.slice(0, position);
6554        case "'": return str.slice(tailPos);
6555        case '<':
6556          capture = namedCaptures[ch.slice(1, -1)];
6557          break;
6558        default: // \d\d?
6559          var n = +ch;
6560          if (n === 0) return match;
6561          if (n > m) {
6562            var f = floor(n / 10);
6563            if (f === 0) return match;
6564            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
6565            return match;
6566          }
6567          capture = captures[n - 1];
6568      }
6569      return capture === undefined ? '' : capture;
6570    });
6571  }
6572});
6573
6574},{"./_advance-string-index":11,"./_an-object":13,"./_fix-re-wks":42,"./_regexp-exec-abstract":99,"./_to-integer":122,"./_to-length":124,"./_to-object":125}],236:[function(require,module,exports){
6575'use strict';
6576
6577var anObject = require('./_an-object');
6578var sameValue = require('./_same-value');
6579var regExpExec = require('./_regexp-exec-abstract');
6580
6581// @@search logic
6582require('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {
6583  return [
6584    // `String.prototype.search` method
6585    // https://tc39.github.io/ecma262/#sec-string.prototype.search
6586    function search(regexp) {
6587      var O = defined(this);
6588      var fn = regexp == undefined ? undefined : regexp[SEARCH];
6589      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
6590    },
6591    // `RegExp.prototype[@@search]` method
6592    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
6593    function (regexp) {
6594      var res = maybeCallNative($search, regexp, this);
6595      if (res.done) return res.value;
6596      var rx = anObject(regexp);
6597      var S = String(this);
6598      var previousLastIndex = rx.lastIndex;
6599      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
6600      var result = regExpExec(rx, S);
6601      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
6602      return result === null ? -1 : result.index;
6603    }
6604  ];
6605});
6606
6607},{"./_an-object":13,"./_fix-re-wks":42,"./_regexp-exec-abstract":99,"./_same-value":102}],237:[function(require,module,exports){
6608'use strict';
6609
6610var isRegExp = require('./_is-regexp');
6611var anObject = require('./_an-object');
6612var speciesConstructor = require('./_species-constructor');
6613var advanceStringIndex = require('./_advance-string-index');
6614var toLength = require('./_to-length');
6615var callRegExpExec = require('./_regexp-exec-abstract');
6616var regexpExec = require('./_regexp-exec');
6617var fails = require('./_fails');
6618var $min = Math.min;
6619var $push = [].push;
6620var $SPLIT = 'split';
6621var LENGTH = 'length';
6622var LAST_INDEX = 'lastIndex';
6623var MAX_UINT32 = 0xffffffff;
6624
6625// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
6626var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });
6627
6628// @@split logic
6629require('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
6630  var internalSplit;
6631  if (
6632    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
6633    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
6634    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
6635    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
6636    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
6637    ''[$SPLIT](/.?/)[LENGTH]
6638  ) {
6639    // based on es5-shim implementation, need to rework it
6640    internalSplit = function (separator, limit) {
6641      var string = String(this);
6642      if (separator === undefined && limit === 0) return [];
6643      // If `separator` is not a regex, use native split
6644      if (!isRegExp(separator)) return $split.call(string, separator, limit);
6645      var output = [];
6646      var flags = (separator.ignoreCase ? 'i' : '') +
6647                  (separator.multiline ? 'm' : '') +
6648                  (separator.unicode ? 'u' : '') +
6649                  (separator.sticky ? 'y' : '');
6650      var lastLastIndex = 0;
6651      var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
6652      // Make `global` and avoid `lastIndex` issues by working with a copy
6653      var separatorCopy = new RegExp(separator.source, flags + 'g');
6654      var match, lastIndex, lastLength;
6655      while (match = regexpExec.call(separatorCopy, string)) {
6656        lastIndex = separatorCopy[LAST_INDEX];
6657        if (lastIndex > lastLastIndex) {
6658          output.push(string.slice(lastLastIndex, match.index));
6659          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
6660          lastLength = match[0][LENGTH];
6661          lastLastIndex = lastIndex;
6662          if (output[LENGTH] >= splitLimit) break;
6663        }
6664        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
6665      }
6666      if (lastLastIndex === string[LENGTH]) {
6667        if (lastLength || !separatorCopy.test('')) output.push('');
6668      } else output.push(string.slice(lastLastIndex));
6669      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
6670    };
6671  // Chakra, V8
6672  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
6673    internalSplit = function (separator, limit) {
6674      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
6675    };
6676  } else {
6677    internalSplit = $split;
6678  }
6679
6680  return [
6681    // `String.prototype.split` method
6682    // https://tc39.github.io/ecma262/#sec-string.prototype.split
6683    function split(separator, limit) {
6684      var O = defined(this);
6685      var splitter = separator == undefined ? undefined : separator[SPLIT];
6686      return splitter !== undefined
6687        ? splitter.call(separator, O, limit)
6688        : internalSplit.call(String(O), separator, limit);
6689    },
vendor: 4,106 bytes, lines 6690-6804
6690    // `RegExp.prototype[@@split]` method
6691    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
6692    //
6693    // NOTE: This cannot be properly polyfilled in engines that don't support
6694    // the 'y' flag.
6695    function (regexp, limit) {
6696      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
6697      if (res.done) return res.value;
6698
6699      var rx = anObject(regexp);
6700      var S = String(this);
6701      var C = speciesConstructor(rx, RegExp);
6702
6703      var unicodeMatching = rx.unicode;
6704      var flags = (rx.ignoreCase ? 'i' : '') +
6705                  (rx.multiline ? 'm' : '') +
6706                  (rx.unicode ? 'u' : '') +
6707                  (SUPPORTS_Y ? 'y' : 'g');
6708
6709      // ^(? + rx + ) is needed, in combination with some S slicing, to
6710      // simulate the 'y' flag.
6711      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
6712      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
6713      if (lim === 0) return [];
6714      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];
6715      var p = 0;
6716      var q = 0;
6717      var A = [];
6718      while (q < S.length) {
6719        splitter.lastIndex = SUPPORTS_Y ? q : 0;
6720        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
6721        var e;
6722        if (
6723          z === null ||
6724          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
6725        ) {
6726          q = advanceStringIndex(S, q, unicodeMatching);
6727        } else {
6728          A.push(S.slice(p, q));
6729          if (A.length === lim) return A;
6730          for (var i = 1; i <= z.length - 1; i++) {
6731            A.push(z[i]);
6732            if (A.length === lim) return A;
6733          }
6734          q = p = e;
6735        }
6736      }
6737      A.push(S.slice(p));
6738      return A;
6739    }
6740  ];
6741});
6742
6743},{"./_advance-string-index":11,"./_an-object":13,"./_fails":41,"./_fix-re-wks":42,"./_is-regexp":59,"./_regexp-exec":100,"./_regexp-exec-abstract":99,"./_species-constructor":110,"./_to-length":124}],238:[function(require,module,exports){
6744'use strict';
6745require('./es6.regexp.flags');
6746var anObject = require('./_an-object');
6747var $flags = require('./_flags');
6748var DESCRIPTORS = require('./_descriptors');
6749var TO_STRING = 'toString';
6750var $toString = /./[TO_STRING];
6751
6752var define = function (fn) {
6753  require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);
6754};
6755
6756// 21.2.5.14 RegExp.prototype.toString()
6757if (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
6758  define(function toString() {
6759    var R = anObject(this);
6760    return '/'.concat(R.source, '/',
6761      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
6762  });
6763// FF44- RegExp#toString has a wrong name
6764} else if ($toString.name != TO_STRING) {
6765  define(function toString() {
6766    return $toString.call(this);
6767  });
6768}
6769
6770},{"./_an-object":13,"./_descriptors":35,"./_fails":41,"./_flags":43,"./_redefine":98,"./es6.regexp.flags":233}],239:[function(require,module,exports){
6771'use strict';
6772var strong = require('./_collection-strong');
6773var validate = require('./_validate-collection');
6774var SET = 'Set';
6775
6776// 23.2 Set Objects
6777module.exports = require('./_collection')(SET, function (get) {
6778  return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
6779}, {
6780  // 23.2.3.1 Set.prototype.add(value)
6781  add: function add(value) {
6782    return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
6783  }
6784}, strong);
6785
6786},{"./_collection":28,"./_collection-strong":25,"./_validate-collection":132}],240:[function(require,module,exports){
6787'use strict';
6788// B.2.3.2 String.prototype.anchor(name)
6789require('./_string-html')('anchor', function (createHTML) {
6790  return function anchor(name) {
6791    return createHTML(this, 'a', 'name', name);
6792  };
6793});
6794
6795},{"./_string-html":114}],241:[function(require,module,exports){
6796'use strict';
6797// B.2.3.3 String.prototype.big()
6798require('./_string-html')('big', function (createHTML) {
6799  return function big() {
6800    return createHTML(this, 'big', '', '');
6801  };
6802});
6803
6804},{"./_string-html":114}
vendor: 8,499 bytes, lines 6804-7056
6804],242:[function(require,module,exports){
6805'use strict';
6806// B.2.3.4 String.prototype.blink()
6807require('./_string-html')('blink', function (createHTML) {
6808  return function blink() {
6809    return createHTML(this, 'blink', '', '');
6810  };
6811});
6812
6813},{"./_string-html":114}],243:[function(require,module,exports){
6814'use strict';
6815// B.2.3.5 String.prototype.bold()
6816require('./_string-html')('bold', function (createHTML) {
6817  return function bold() {
6818    return createHTML(this, 'b', '', '');
6819  };
6820});
6821
6822},{"./_string-html":114}],244:[function(require,module,exports){
6823'use strict';
6824var $export = require('./_export');
6825var $at = require('./_string-at')(false);
6826$export($export.P, 'String', {
6827  // 21.1.3.3 String.prototype.codePointAt(pos)
6828  codePointAt: function codePointAt(pos) {
6829    return $at(this, pos);
6830  }
6831});
6832
6833},{"./_export":39,"./_string-at":112}],245:[function(require,module,exports){
6834// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
6835'use strict';
6836var $export = require('./_export');
6837var toLength = require('./_to-length');
6838var context = require('./_string-context');
6839var ENDS_WITH = 'endsWith';
6840var $endsWith = ''[ENDS_WITH];
6841
6842$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {
6843  endsWith: function endsWith(searchString /* , endPosition = @length */) {
6844    var that = context(this, searchString, ENDS_WITH);
6845    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
6846    var len = toLength(that.length);
6847    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
6848    var search = String(searchString);
6849    return $endsWith
6850      ? $endsWith.call(that, search, end)
6851      : that.slice(end - search.length, end) === search;
6852  }
6853});
6854
6855},{"./_export":39,"./_fails-is-regexp":40,"./_string-context":113,"./_to-length":124}],246:[function(require,module,exports){
6856'use strict';
6857// B.2.3.6 String.prototype.fixed()
6858require('./_string-html')('fixed', function (createHTML) {
6859  return function fixed() {
6860    return createHTML(this, 'tt', '', '');
6861  };
6862});
6863
6864},{"./_string-html":114}],247:[function(require,module,exports){
6865'use strict';
6866// B.2.3.7 String.prototype.fontcolor(color)
6867require('./_string-html')('fontcolor', function (createHTML) {
6868  return function fontcolor(color) {
6869    return createHTML(this, 'font', 'color', color);
6870  };
6871});
6872
6873},{"./_string-html":114}],248:[function(require,module,exports){
6874'use strict';
6875// B.2.3.8 String.prototype.fontsize(size)
6876require('./_string-html')('fontsize', function (createHTML) {
6877  return function fontsize(size) {
6878    return createHTML(this, 'font', 'size', size);
6879  };
6880});
6881
6882},{"./_string-html":114}],249:[function(require,module,exports){
6883var $export = require('./_export');
6884var toAbsoluteIndex = require('./_to-absolute-index');
6885var fromCharCode = String.fromCharCode;
6886var $fromCodePoint = String.fromCodePoint;
6887
6888// length should be 1, old FF problem
6889$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
6890  // 21.1.2.2 String.fromCodePoint(...codePoints)
6891  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
6892    var res = [];
6893    var aLen = arguments.length;
6894    var i = 0;
6895    var code;
6896    while (aLen > i) {
6897      code = +arguments[i++];
6898      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
6899      res.push(code < 0x10000
6900        ? fromCharCode(code)
6901        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
6902      );
6903    } return res.join('');
6904  }
6905});
6906
6907},{"./_export":39,"./_to-absolute-index":120}],250:[function(require,module,exports){
6908// 21.1.3.7 String.prototype.includes(searchString, position = 0)
6909'use strict';
6910var $export = require('./_export');
6911var context = require('./_string-context');
6912var INCLUDES = 'includes';
6913
6914$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {
6915  includes: function includes(searchString /* , position = 0 */) {
6916    return !!~context(this, searchString, INCLUDES)
6917      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
6918  }
6919});
6920
6921},{"./_export":39,"./_fails-is-regexp":40,"./_string-context":113}],251:[function(require,module,exports){
6922'use strict';
6923// B.2.3.9 String.prototype.italics()
6924require('./_string-html')('italics', function (createHTML) {
6925  return function italics() {
6926    return createHTML(this, 'i', '', '');
6927  };
6928});
6929
6930},{"./_string-html":114}],252:[function(require,module,exports){
6931'use strict';
6932var $at = require('./_string-at')(true);
6933
6934// 21.1.3.27 String.prototype[@@iterator]()
6935require('./_iter-define')(String, 'String', function (iterated) {
6936  this._t = String(iterated); // target
6937  this._i = 0;                // next index
6938// 21.1.5.2.1 %StringIteratorPrototype%.next()
6939}, function () {
6940  var O = this._t;
6941  var index = this._i;
6942  var point;
6943  if (index >= O.length) return { value: undefined, done: true };
6944  point = $at(O, index);
6945  this._i += point.length;
6946  return { value: point, done: false };
6947});
6948
6949},{"./_iter-define":62,"./_string-at":112}],253:[function(require,module,exports){
6950'use strict';
6951// B.2.3.10 String.prototype.link(url)
6952require('./_string-html')('link', function (createHTML) {
6953  return function link(url) {
6954    return createHTML(this, 'a', 'href', url);
6955  };
6956});
6957
6958},{"./_string-html":114}],254:[function(require,module,exports){
6959var $export = require('./_export');
6960var toIObject = require('./_to-iobject');
6961var toLength = require('./_to-length');
6962
6963$export($export.S, 'String', {
6964  // 21.1.2.4 String.raw(callSite, ...substitutions)
6965  raw: function raw(callSite) {
6966    var tpl = toIObject(callSite.raw);
6967    var len = toLength(tpl.length);
6968    var aLen = arguments.length;
6969    var res = [];
6970    var i = 0;
6971    while (len > i) {
6972      res.push(String(tpl[i++]));
6973      if (i < aLen) res.push(String(arguments[i]));
6974    } return res.join('');
6975  }
6976});
6977
6978},{"./_export":39,"./_to-iobject":123,"./_to-length":124}],255:[function(require,module,exports){
6979var $export = require('./_export');
6980
6981$export($export.P, 'String', {
6982  // 21.1.3.13 String.prototype.repeat(count)
6983  repeat: require('./_string-repeat')
6984});
6985
6986},{"./_export":39,"./_string-repeat":116}],256:[function(require,module,exports){
6987'use strict';
6988// B.2.3.11 String.prototype.small()
6989require('./_string-html')('small', function (createHTML) {
6990  return function small() {
6991    return createHTML(this, 'small', '', '');
6992  };
6993});
6994
6995},{"./_string-html":114}],257:[function(require,module,exports){
6996// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
6997'use strict';
6998var $export = require('./_export');
6999var toLength = require('./_to-length');
7000var context = require('./_string-context');
7001var STARTS_WITH = 'startsWith';
7002var $startsWith = ''[STARTS_WITH];
7003
7004$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {
7005  startsWith: function startsWith(searchString /* , position = 0 */) {
7006    var that = context(this, searchString, STARTS_WITH);
7007    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
7008    var search = String(searchString);
7009    return $startsWith
7010      ? $startsWith.call(that, search, index)
7011      : that.slice(index, index + search.length) === search;
7012  }
7013});
7014
7015},{"./_export":39,"./_fails-is-regexp":40,"./_string-context":113,"./_to-length":124}],258:[function(require,module,exports){
7016'use strict';
7017// B.2.3.12 String.prototype.strike()
7018require('./_string-html')('strike', function (createHTML) {
7019  return function strike() {
7020    return createHTML(this, 'strike', '', '');
7021  };
7022});
7023
7024},{"./_string-html":114}],259:[function(require,module,exports){
7025'use strict';
7026// B.2.3.13 String.prototype.sub()
7027require('./_string-html')('sub', function (createHTML) {
7028  return function sub() {
7029    return createHTML(this, 'sub', '', '');
7030  };
7031});
7032
7033},{"./_string-html":114}],260:[function(require,module,exports){
7034'use strict';
7035// B.2.3.14 String.prototype.sup()
7036require('./_string-html')('sup', function (createHTML) {
7037  return function sup() {
7038    return createHTML(this, 'sup', '', '');
7039  };
7040});
7041
7042},{"./_string-html":114}],261:[function(require,module,exports){
7043'use strict';
7044// 21.1.3.25 String.prototype.trim()
7045require('./_string-trim')('trim', function ($trim) {
7046  return function trim() {
7047    return $trim(this, 3);
7048  };
7049});
7050
7051},{"./_string-trim":117}],262:[function(require,module,exports){
7052'use strict';
7053// ECMAScript 6 symbols shim
7054var global = require('./_global');
7055var has = require('./_has');
7056var DESCRIPTORS = require('./_descriptors');
vendor: 11,787 bytes, lines 7057-7347
7057var $export = require('./_export');
7058var redefine = require('./_redefine');
7059var META = require('./_meta').KEY;
7060var $fails = require('./_fails');
7061var shared = require('./_shared');
7062var setToStringTag = require('./_set-to-string-tag');
7063var uid = require('./_uid');
7064var wks = require('./_wks');
7065var wksExt = require('./_wks-ext');
7066var wksDefine = require('./_wks-define');
7067var enumKeys = require('./_enum-keys');
7068var isArray = require('./_is-array');
7069var anObject = require('./_an-object');
7070var isObject = require('./_is-object');
7071var toObject = require('./_to-object');
7072var toIObject = require('./_to-iobject');
7073var toPrimitive = require('./_to-primitive');
7074var createDesc = require('./_property-desc');
7075var _create = require('./_object-create');
7076var gOPNExt = require('./_object-gopn-ext');
7077var $GOPD = require('./_object-gopd');
7078var $GOPS = require('./_object-gops');
7079var $DP = require('./_object-dp');
7080var $keys = require('./_object-keys');
7081var gOPD = $GOPD.f;
7082var dP = $DP.f;
7083var gOPN = gOPNExt.f;
7084var $Symbol = global.Symbol;
7085var $JSON = global.JSON;
7086var _stringify = $JSON && $JSON.stringify;
7087var PROTOTYPE = 'prototype';
7088var HIDDEN = wks('_hidden');
7089var TO_PRIMITIVE = wks('toPrimitive');
7090var isEnum = {}.propertyIsEnumerable;
7091var SymbolRegistry = shared('symbol-registry');
7092var AllSymbols = shared('symbols');
7093var OPSymbols = shared('op-symbols');
7094var ObjectProto = Object[PROTOTYPE];
7095var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
7096var QObject = global.QObject;
7097// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
7098var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
7099
7100// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
7101var setSymbolDesc = DESCRIPTORS && $fails(function () {
7102  return _create(dP({}, 'a', {
7103    get: function () { return dP(this, 'a', { value: 7 }).a; }
7104  })).a != 7;
7105}) ? function (it, key, D) {
7106  var protoDesc = gOPD(ObjectProto, key);
7107  if (protoDesc) delete ObjectProto[key];
7108  dP(it, key, D);
7109  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
7110} : dP;
7111
7112var wrap = function (tag) {
7113  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
7114  sym._k = tag;
7115  return sym;
7116};
7117
7118var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
7119  return typeof it == 'symbol';
7120} : function (it) {
7121  return it instanceof $Symbol;
7122};
7123
7124var $defineProperty = function defineProperty(it, key, D) {
7125  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
7126  anObject(it);
7127  key = toPrimitive(key, true);
7128  anObject(D);
7129  if (has(AllSymbols, key)) {
7130    if (!D.enumerable) {
7131      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
7132      it[HIDDEN][key] = true;
7133    } else {
7134      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
7135      D = _create(D, { enumerable: createDesc(0, false) });
7136    } return setSymbolDesc(it, key, D);
7137  } return dP(it, key, D);
7138};
7139var $defineProperties = function defineProperties(it, P) {
7140  anObject(it);
7141  var keys = enumKeys(P = toIObject(P));
7142  var i = 0;
7143  var l = keys.length;
7144  var key;
7145  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
7146  return it;
7147};
7148var $create = function create(it, P) {
7149  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
7150};
7151var $propertyIsEnumerable = function propertyIsEnumerable(key) {
7152  var E = isEnum.call(this, key = toPrimitive(key, true));
7153  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
7154  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
7155};
7156var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
7157  it = toIObject(it);
7158  key = toPrimitive(key, true);
7159  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
7160  var D = gOPD(it, key);
7161  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
7162  return D;
7163};
7164var $getOwnPropertyNames = function getOwnPropertyNames(it) {
7165  var names = gOPN(toIObject(it));
7166  var result = [];
7167  var i = 0;
7168  var key;
7169  while (names.length > i) {
7170    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
7171  } return result;
7172};
7173var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
7174  var IS_OP = it === ObjectProto;
7175  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
7176  var result = [];
7177  var i = 0;
7178  var key;
7179  while (names.length > i) {
7180    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
7181  } return result;
7182};
7183
7184// 19.4.1.1 Symbol([description])
7185if (!USE_NATIVE) {
7186  $Symbol = function Symbol() {
7187    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
7188    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
7189    var $set = function (value) {
7190      if (this === ObjectProto) $set.call(OPSymbols, value);
7191      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
7192      setSymbolDesc(this, tag, createDesc(1, value));
7193    };
7194    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
7195    return wrap(tag);
7196  };
7197  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
7198    return this._k;
7199  });
7200
7201  $GOPD.f = $getOwnPropertyDescriptor;
7202  $DP.f = $defineProperty;
7203  require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
7204  require('./_object-pie').f = $propertyIsEnumerable;
7205  $GOPS.f = $getOwnPropertySymbols;
7206
7207  if (DESCRIPTORS && !require('./_library')) {
7208    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
7209  }
7210
7211  wksExt.f = function (name) {
7212    return wrap(wks(name));
7213  };
7214}
7215
7216$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
7217
7218for (var es6Symbols = (
7219  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
7220  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
7221).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
7222
7223for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
7224
7225$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
7226  // 19.4.2.1 Symbol.for(key)
7227  'for': function (key) {
7228    return has(SymbolRegistry, key += '')
7229      ? SymbolRegistry[key]
7230      : SymbolRegistry[key] = $Symbol(key);
7231  },
7232  // 19.4.2.5 Symbol.keyFor(sym)
7233  keyFor: function keyFor(sym) {
7234    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
7235    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
7236  },
7237  useSetter: function () { setter = true; },
7238  useSimple: function () { setter = false; }
7239});
7240
7241$export($export.S + $export.F * !USE_NATIVE, 'Object', {
7242  // 19.1.2.2 Object.create(O [, Properties])
7243  create: $create,
7244  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
7245  defineProperty: $defineProperty,
7246  // 19.1.2.3 Object.defineProperties(O, Properties)
7247  defineProperties: $defineProperties,
7248  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
7249  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
7250  // 19.1.2.7 Object.getOwnPropertyNames(O)
7251  getOwnPropertyNames: $getOwnPropertyNames,
7252  // 19.1.2.8 Object.getOwnPropertySymbols(O)
7253  getOwnPropertySymbols: $getOwnPropertySymbols
7254});
7255
7256// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
7257// https://bugs.chromium.org/p/v8/issues/detail?id=3443
7258var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
7259
7260$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
7261  getOwnPropertySymbols: function getOwnPropertySymbols(it) {
7262    return $GOPS.f(toObject(it));
7263  }
7264});
7265
7266// 24.3.2 JSON.stringify(value [, replacer [, space]])
7267$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
7268  var S = $Symbol();
7269  // MS Edge converts symbol values to JSON as {}
7270  // WebKit converts symbol values to JSON as null
7271  // V8 throws on boxed symbols
7272  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
7273})), 'JSON', {
7274  stringify: function stringify(it) {
7275    var args = [it];
7276    var i = 1;
7277    var replacer, $replacer;
7278    while (arguments.length > i) args.push(arguments[i++]);
7279    $replacer = replacer = args[1];
7280    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
7281    if (!isArray(replacer)) replacer = function (key, value) {
7282      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
7283      if (!isSymbol(value)) return value;
7284    };
7285    args[1] = replacer;
7286    return _stringify.apply($JSON, args);
7287  }
7288});
7289
7290// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
7291$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
7292// 19.4.3.5 Symbol.prototype[@@toStringTag]
7293setToStringTag($Symbol, 'Symbol');
7294// 20.2.1.9 Math[@@toStringTag]
7295setToStringTag(Math, 'Math', true);
7296// 24.3.3 JSON[@@toStringTag]
7297setToStringTag(global.JSON, 'JSON', true);
7298
7299},{"./_an-object":13,"./_descriptors":35,"./_enum-keys":38,"./_export":39,"./_fails":41,"./_global":47,"./_has":48,"./_hide":49,"./_is-array":56,"./_is-object":58,"./_library":66,"./_meta":72,"./_object-create":77,"./_object-dp":78,"./_object-gopd":81,"./_object-gopn":83,"./_object-gopn-ext":82,"./_object-gops":84,"./_object-keys":87,"./_object-pie":88,"./_property-desc":96,"./_redefine":98,"./_set-to-string-tag":107,"./_shared":109,"./_to-iobject":123,"./_to-object":125,"./_to-primitive":126,"./_uid":130,"./_wks":135,"./_wks-define":133,"./_wks-ext":134}],263:[function(require,module,exports){
7300'use strict';
7301var $export = require('./_export');
7302var $typed = require('./_typed');
7303var buffer = require('./_typed-buffer');
7304var anObject = require('./_an-object');
7305var toAbsoluteIndex = require('./_to-absolute-index');
7306var toLength = require('./_to-length');
7307var isObject = require('./_is-object');
7308var ArrayBuffer = require('./_global').ArrayBuffer;
7309var speciesConstructor = require('./_species-constructor');
7310var $ArrayBuffer = buffer.ArrayBuffer;
7311var $DataView = buffer.DataView;
7312var $isView = $typed.ABV && ArrayBuffer.isView;
7313var $slice = $ArrayBuffer.prototype.slice;
7314var VIEW = $typed.VIEW;
7315var ARRAY_BUFFER = 'ArrayBuffer';
7316
7317$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
7318
7319$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
7320  // 24.1.3.1 ArrayBuffer.isView(arg)
7321  isView: function isView(it) {
7322    return $isView && $isView(it) || isObject(it) && VIEW in it;
7323  }
7324});
7325
7326$export($export.P + $export.U + $export.F * require('./_fails')(function () {
7327  return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
7328}), ARRAY_BUFFER, {
7329  // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
7330  slice: function slice(start, end) {
7331    if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
7332    var len = anObject(this).byteLength;
7333    var first = toAbsoluteIndex(start, len);
7334    var fin = toAbsoluteIndex(end === undefined ? len : end, len);
7335    var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
7336    var viewS = new $DataView(this);
7337    var viewT = new $DataView(result);
7338    var index = 0;
7339    while (first < fin) {
7340      viewT.setUint8(index++, viewS.getUint8(first++));
7341    } return result;
7342  }
7343});
7344
7345require('./_set-species')(ARRAY_BUFFER);
7346
7347},{"./_an-object":13,"./_export":39,"./_fails":41,"./_global":47,"./_is-object":58,"./_set-species":106,"./_species-constructor":110,"./_to-absolute-index":120,"./_to-length":124,"./_typed":129,"./_typed-buffer":128}],264:[function(require,module,exports){
7348var $export = require('./_export');
7349$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {
7350  DataView: require('./_typed-buffer').DataView
7351});
7352
7353},{"./_export":39,"./_typed":129,"./_typed-buffer":128}],265:[function(require,module,exports){
7354require('./_typed-array')('Float32', 4, function (init) {
7355  return function Float32Array(data, byteOffset, length) {
7356    return init(this, data, byteOffset, length);
7357  };
7358});
7359
7360},{"./_typed-array":127}],266:[function(require,module,exports){
7361require('./_typed-array')('Float64', 8, function (init) {
7362  return function Float64Array(data, byteOffset, length) {
7363    return init(this, data, byteOffset, length);
7364  };
7365});
7366
7367},{"./_typed-array":127}],267:[function(require,module,exports){
7368require('./_typed-array')('Int16', 2, function (init) {
7369  return function Int16Array(data, byteOffset, length) {
7370    return init(this, data, byteOffset, length);
7371  };
7372});
7373
7374},{"./_typed-array":127}],268:[function(require,module,exports){
7375require('./_typed-array')('Int32', 4, function (init) {
7376  return function Int32Array(data, byteOffset, length) {
7377    return init(this, data, byteOffset, length);
7378  };
7379});
7380
7381},{"./_typed-array":127}],269:[function(require,module,exports){
7382require('./_typed-array')('Int8', 1, function (init) {
7383  return function Int8Array(data, byteOffset, length) {
7384    return init(this, data, byteOffset, length);
7385  };
7386});
7387
7388},{"./_typed-array":127}],270:[function(require,module,exports){
7389require('./_typed-array')('Uint16', 2, function (init) {
7390  return function Uint16Array(data, byteOffset, length) {
7391    return init(this, data, byteOffset, length);
7392  };
7393});
7394
7395},{"./_typed-array":127}],271:[function(require,module,exports){
7396require('./_typed-array')('Uint32', 4, function (init) {
7397  return function Uint32Array(data, byteOffset, length) {
7398    return init(this, data, byteOffset, length);
7399  };
7400});
7401
7402},{"./_typed-array":127}],272:[function(require,module,exports){
7403require('./_typed-array')('Uint8', 1, function (init) {
7404  return function Uint8Array(data, byteOffset, length) {
7405    return init(this, data, byteOffset, length);
7406  };
7407});
7408
7409},{"./_typed-array":127}],273:[function(require,module,exports){
7410require('./_typed-array')('Uint8', 1, function (init) {
7411  return function Uint8ClampedArray(data, byteOffset, length) {
7412    return init(this, data, byteOffset, length);
7413  };
7414}, true);
7415
7416},{"./_typed-array":127}],274:[function(require,module,exports){
7417'use strict';
7418var global = require('./_global');
7419var each = require('./_array-methods')(0);
7420var redefine = require('./_redefine');
7421var meta = require('./_meta');
7422var assign = require('./_object-assign');
7423var weak = require('./_collection-weak');
7424var isObject = require('./_is-object');
7425var validate = require('./_validate-collection');
7426var NATIVE_WEAK_MAP = require('./_validate-collection');
7427var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
7428var WEAK_MAP = 'WeakMap';
7429var getWeak = meta.getWeak;
7430var isExtensible = Object.isExtensible;
7431var uncaughtFrozenStore = weak.ufstore;
7432var InternalMap;
7433
7434var wrapper = function (get) {
7435  return function WeakMap() {
7436    return get(this, arguments.length > 0 ? arguments[0] : undefined);
7437  };
7438};
7439
7440var methods = {
7441  // 23.3.3.3 WeakMap.prototype.get(key)
7442  get: function get(key) {
7443    if (isObject(key)) {
7444      var data = getWeak(key);
7445      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
7446      return data ? data[this._i] : undefined;
7447    }
7448  },
7449  // 23.3.3.5 WeakMap.prototype.set(key, value)
7450  set: function set(key, value) {
7451    return weak.def(validate(this, WEAK_MAP), key, value);
7452  }
7453};
7454
7455// 23.3 WeakMap Objects
7456var $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);
7457
7458// IE11 WeakMap frozen keys fix
7459if (NATIVE_WEAK_MAP && IS_IE11) {
7460  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
7461  assign(InternalMap.prototype, methods);
7462  meta.NEED = true;
7463  each(['delete', 'has', 'get', 'set'], function (key) {
7464    var proto = $WeakMap.prototype;
7465    var method = proto[key];
7466    redefine(proto, key, function (a, b) {
7467      // store frozen objects on internal weakmap shim
7468      if (isObject(a) && !isExtensible(a)) {
7469        if (!this._f) this._f = new InternalMap();
7470        var result = this._f[key](a, b);
7471        return key == 'set' ? this : result;
7472      // store all the rest on native weakmap
7473      } return method.call(this, a, b);
7474    });
7475  });
7476}
7477
7478},{"./_array-methods":18,"./_collection":28,"./_collection-weak":27,"./_global":47,"./_is-object":58,"./_meta":72,"./_object-assign":76,"./_redefine":98,"./_validate-collection":132}],275:[function(require,module,exports){
7479'use strict';
7480var weak = require('./_collection-weak');
7481var validate = require('./_validate-collection');
7482var WEAK_SET = 'WeakSet';
7483
7484// 23.4 WeakSet Objects
7485require('./_collection')(WEAK_SET, function (get) {
7486  return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
7487}, {
7488  // 23.4.3.1 WeakSet.prototype.add(value)
7489  add: function add(value) {
7490    return weak.def(validate(this, WEAK_SET), value, true);
7491  }
7492}, weak, false, true);
7493
7494},{"./_collection":28,"./_collection-weak":27,"./_validate-collection":132}],276:[function(require,module,exports){
7495'use strict';
7496// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
7497var $export = require('./_export');
7498var flattenIntoArray = require('./_flatten-into-array');
7499var toObject = require('./_to-object');
7500var toLength = require('./_to-length');
7501var aFunction = require('./_a-function');
7502var arraySpeciesCreate = require('./_array-species-create');
7503
7504$export($export.P, 'Array', {
7505  flatMap: function flatMap(callbackfn /* , thisArg */) {
7506    var O = toObject(this);
7507    var sourceLen, A;
7508    aFunction(callbackfn);
7509    sourceLen = toLength(O.length);
7510    A = arraySpeciesCreate(O, 0);
7511    flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
7512    return A;
7513  }
7514});
7515
7516require('./_add-to-unscopables')('flatMap');
7517
7518},{"./_a-function":8,"./_add-to-unscopables":10,"./_array-species-create":21,"./_export":39,"./_flatten-into-array":44,"./_to-length":124,"./_to-object":125}],277:[function(require,module,exports){
7519'use strict';
7520// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
7521var $export = require('./_export');
7522var flattenIntoArray = require('./_flatten-into-array');
7523var toObject = require('./_to-object');
7524var toLength = require('./_to-length');
7525var toInteger = require('./_to-integer');
7526var arraySpeciesCreate = require('./_array-species-create');
7527
7528$export($export.P, 'Array', {
7529  flatten: function flatten(/* depthArg = 1 */) {
7530    var depthArg = arguments[0];
7531    var O = toObject(this);
7532    var sourceLen = toLength(O.length);
7533    var A = arraySpeciesCreate(O, 0);
7534    flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
7535    return A;
7536  }
7537});
7538
7539require('./_add-to-unscopables')('flatten');
7540
7541},{"./_add-to-unscopables":10,"./_array-species-create":21,"./_export":39,"./_flatten-into-array":44,"./_to-integer":122,"./_to-length":124,"./_to-object":125}],278:[function(require,module,exports){
7542'use strict';
7543// https://github.com/tc39/Array.prototype.includes
7544var $export = require('./_export');
7545var $includes = require('./_array-includes')(true);
7546
7547$export($export.P, 'Array', {
7548  includes: function includes(el /* , fromIndex = 0 */) {
7549    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
7550  }
7551});
7552
7553require('./_add-to-unscopables')('includes');
7554
7555},{"./_add-to-unscopables":10,"./_array-includes":17,"./_export":39}],279:[function(require,module,exports){
7556// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
7557var $export = require('./_export');
7558var microtask = require('./_microtask')();
7559var process = require('./_global').process;
7560var isNode = require('./_cof')(process) == 'process';
7561
7562$export($export.G, {
7563  asap: function asap(fn) {
7564    var domain = isNode && process.domain;
7565    microtask(domain ? domain.bind(fn) : fn);
7566  }
7567});
7568
7569},{"./_cof":24,"./_export":39,"./_global":47,"./_microtask":74}],280:[function(require,module,exports){
7570// https://github.com/ljharb/proposal-is-error
7571var $export = require('./_export');
7572var cof = require('./_cof');
7573
7574$export($export.S, 'Error', {
7575  isError: function isError(it) {
7576    return cof(it) === 'Error';
7577  }
7578});
7579
7580},{"./_cof":24,"./_export":39}],281:[function(require,module,exports){
7581// https://github.com/tc39/proposal-global
7582var $export = require('./_export');
7583
7584$export($export.G, { global: require('./_global') });
7585
7586},{"./_export":39,"./_global":47}],282:[function(require,module,exports){
7587// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
7588require('./_set-collection-from')('Map');
7589
7590},{"./_set-collection-from":103}],283:[function(require,module,exports){
7591// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
7592require('./_set-collection-of')('Map');
7593
7594},{"./_set-collection-of":104}],284:[function(require,module,exports){
7595// https://github.com/DavidBruant/Map-Set.prototype.toJSON
7596var $export = require('./_export');
7597
7598$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });
7599
7600},{"./_collection-to-json":26,"./_export":39}],285:[function(require,module,exports){
7601// https://rwaldron.github.io/proposal-math-extensions/
7602var $export = require('./_export');
7603
7604$export($export.S, 'Math', {
7605  clamp: function clamp(x, lower, upper) {
7606    return Math.min(upper, Math.max(lower, x));
7607  }
7608});
7609
7610},{"./_export":39}],286:[function(require,module,exports){
7611// https://rwaldron.github.io/proposal-math-extensions/
7612var $export = require('./_export');
7613
7614$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });
7615
7616},{"./_export":39}],287:[function(require,module,exports){
7617// https://rwaldron.github.io/proposal-math-extensions/
7618var $export = require('./_export');
7619var RAD_PER_DEG = 180 / Math.PI;
7620
7621$export($export.S, 'Math', {
7622  degrees: function degrees(radians) {
7623    return radians * RAD_PER_DEG;
7624  }
7625});
7626
7627},{"./_export":39}],288:[function(require,module,exports){
7628// https://rwaldron.github.io/proposal-math-extensions/
7629var $export = require('./_export');
7630var scale = require('./_math-scale');
7631var fround = require('./_math-fround');
7632
7633$export($export.S, 'Math', {
7634  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
7635    return fround(scale(x, inLow, inHigh, outLow, outHigh));
7636  }
7637});
7638
7639},{"./_export":39,"./_math-fround":68,"./_math-scale":70}],289:[function(require,module,exports){
7640// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
7641var $export = require('./_export');
7642
7643$export($export.S, 'Math', {
7644  iaddh: function iaddh(x0, x1, y0, y1) {
7645    var $x0 = x0 >>> 0;
7646    var $x1 = x1 >>> 0;
vendor: 5,786 bytes, lines 7647-7816
7647    var $y0 = y0 >>> 0;
7648    return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
7649  }
7650});
7651
7652},{"./_export":39}],290:[function(require,module,exports){
7653// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
7654var $export = require('./_export');
7655
7656$export($export.S, 'Math', {
7657  imulh: function imulh(u, v) {
7658    var UINT16 = 0xffff;
7659    var $u = +u;
7660    var $v = +v;
7661    var u0 = $u & UINT16;
7662    var v0 = $v & UINT16;
7663    var u1 = $u >> 16;
7664    var v1 = $v >> 16;
7665    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
7666    return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
7667  }
7668});
7669
7670},{"./_export":39}],291:[function(require,module,exports){
7671// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
7672var $export = require('./_export');
7673
7674$export($export.S, 'Math', {
7675  isubh: function isubh(x0, x1, y0, y1) {
7676    var $x0 = x0 >>> 0;
7677    var $x1 = x1 >>> 0;
7678    var $y0 = y0 >>> 0;
7679    return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
7680  }
7681});
7682
7683},{"./_export":39}],292:[function(require,module,exports){
7684// https://rwaldron.github.io/proposal-math-extensions/
7685var $export = require('./_export');
7686
7687$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });
7688
7689},{"./_export":39}],293:[function(require,module,exports){
7690// https://rwaldron.github.io/proposal-math-extensions/
7691var $export = require('./_export');
7692var DEG_PER_RAD = Math.PI / 180;
7693
7694$export($export.S, 'Math', {
7695  radians: function radians(degrees) {
7696    return degrees * DEG_PER_RAD;
7697  }
7698});
7699
7700},{"./_export":39}],294:[function(require,module,exports){
7701// https://rwaldron.github.io/proposal-math-extensions/
7702var $export = require('./_export');
7703
7704$export($export.S, 'Math', { scale: require('./_math-scale') });
7705
7706},{"./_export":39,"./_math-scale":70}],295:[function(require,module,exports){
7707// http://jfbastien.github.io/papers/Math.signbit.html
7708var $export = require('./_export');
7709
7710$export($export.S, 'Math', { signbit: function signbit(x) {
7711  // eslint-disable-next-line no-self-compare
7712  return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;
7713} });
7714
7715},{"./_export":39}],296:[function(require,module,exports){
7716// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
7717var $export = require('./_export');
7718
7719$export($export.S, 'Math', {
7720  umulh: function umulh(u, v) {
7721    var UINT16 = 0xffff;
7722    var $u = +u;
7723    var $v = +v;
7724    var u0 = $u & UINT16;
7725    var v0 = $v & UINT16;
7726    var u1 = $u >>> 16;
7727    var v1 = $v >>> 16;
7728    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
7729    return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
7730  }
7731});
7732
7733},{"./_export":39}],297:[function(require,module,exports){
7734'use strict';
7735var $export = require('./_export');
7736var toObject = require('./_to-object');
7737var aFunction = require('./_a-function');
7738var $defineProperty = require('./_object-dp');
7739
7740// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
7741require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
7742  __defineGetter__: function __defineGetter__(P, getter) {
7743    $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
7744  }
7745});
7746
7747},{"./_a-function":8,"./_descriptors":35,"./_export":39,"./_object-dp":78,"./_object-forced-pam":80,"./_to-object":125}],298:[function(require,module,exports){
7748'use strict';
7749var $export = require('./_export');
7750var toObject = require('./_to-object');
7751var aFunction = require('./_a-function');
7752var $defineProperty = require('./_object-dp');
7753
7754// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
7755require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
7756  __defineSetter__: function __defineSetter__(P, setter) {
7757    $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
7758  }
7759});
7760
7761},{"./_a-function":8,"./_descriptors":35,"./_export":39,"./_object-dp":78,"./_object-forced-pam":80,"./_to-object":125}],299:[function(require,module,exports){
7762// https://github.com/tc39/proposal-object-values-entries
7763var $export = require('./_export');
7764var $entries = require('./_object-to-array')(true);
7765
7766$export($export.S, 'Object', {
7767  entries: function entries(it) {
7768    return $entries(it);
7769  }
7770});
7771
7772},{"./_export":39,"./_object-to-array":90}],300:[function(require,module,exports){
7773// https://github.com/tc39/proposal-object-getownpropertydescriptors
7774var $export = require('./_export');
7775var ownKeys = require('./_own-keys');
7776var toIObject = require('./_to-iobject');
7777var gOPD = require('./_object-gopd');
7778var createProperty = require('./_create-property');
7779
7780$export($export.S, 'Object', {
7781  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
7782    var O = toIObject(object);
7783    var getDesc = gOPD.f;
7784    var keys = ownKeys(O);
7785    var result = {};
7786    var i = 0;
7787    var key, desc;
7788    while (keys.length > i) {
7789      desc = getDesc(O, key = keys[i++]);
7790      if (desc !== undefined) createProperty(result, key, desc);
7791    }
7792    return result;
7793  }
7794});
7795
7796},{"./_create-property":30,"./_export":39,"./_object-gopd":81,"./_own-keys":91,"./_to-iobject":123}],301:[function(require,module,exports){
7797'use strict';
7798var $export = require('./_export');
7799var toObject = require('./_to-object');
7800var toPrimitive = require('./_to-primitive');
7801var getPrototypeOf = require('./_object-gpo');
7802var getOwnPropertyDescriptor = require('./_object-gopd').f;
7803
7804// B.2.2.4 Object.prototype.__lookupGetter__(P)
7805require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
7806  __lookupGetter__: function __lookupGetter__(P) {
7807    var O = toObject(this);
7808    var K = toPrimitive(P, true);
7809    var D;
7810    do {
7811      if (D = getOwnPropertyDescriptor(O, K)) return D.get;
7812    } while (O = getPrototypeOf(O));
7813  }
7814});
7815
7816}
vendor: 8,048 bytes, lines 7816-8072
7816,{"./_descriptors":35,"./_export":39,"./_object-forced-pam":80,"./_object-gopd":81,"./_object-gpo":85,"./_to-object":125,"./_to-primitive":126}],302:[function(require,module,exports){
7817'use strict';
7818var $export = require('./_export');
7819var toObject = require('./_to-object');
7820var toPrimitive = require('./_to-primitive');
7821var getPrototypeOf = require('./_object-gpo');
7822var getOwnPropertyDescriptor = require('./_object-gopd').f;
7823
7824// B.2.2.5 Object.prototype.__lookupSetter__(P)
7825require('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {
7826  __lookupSetter__: function __lookupSetter__(P) {
7827    var O = toObject(this);
7828    var K = toPrimitive(P, true);
7829    var D;
7830    do {
7831      if (D = getOwnPropertyDescriptor(O, K)) return D.set;
7832    } while (O = getPrototypeOf(O));
7833  }
7834});
7835
7836},{"./_descriptors":35,"./_export":39,"./_object-forced-pam":80,"./_object-gopd":81,"./_object-gpo":85,"./_to-object":125,"./_to-primitive":126}],303:[function(require,module,exports){
7837// https://github.com/tc39/proposal-object-values-entries
7838var $export = require('./_export');
7839var $values = require('./_object-to-array')(false);
7840
7841$export($export.S, 'Object', {
7842  values: function values(it) {
7843    return $values(it);
7844  }
7845});
7846
7847},{"./_export":39,"./_object-to-array":90}],304:[function(require,module,exports){
7848'use strict';
7849// https://github.com/zenparsing/es-observable
7850var $export = require('./_export');
7851var global = require('./_global');
7852var core = require('./_core');
7853var microtask = require('./_microtask')();
7854var OBSERVABLE = require('./_wks')('observable');
7855var aFunction = require('./_a-function');
7856var anObject = require('./_an-object');
7857var anInstance = require('./_an-instance');
7858var redefineAll = require('./_redefine-all');
7859var hide = require('./_hide');
7860var forOf = require('./_for-of');
7861var RETURN = forOf.RETURN;
7862
7863var getMethod = function (fn) {
7864  return fn == null ? undefined : aFunction(fn);
7865};
7866
7867var cleanupSubscription = function (subscription) {
7868  var cleanup = subscription._c;
7869  if (cleanup) {
7870    subscription._c = undefined;
7871    cleanup();
7872  }
7873};
7874
7875var subscriptionClosed = function (subscription) {
7876  return subscription._o === undefined;
7877};
7878
7879var closeSubscription = function (subscription) {
7880  if (!subscriptionClosed(subscription)) {
7881    subscription._o = undefined;
7882    cleanupSubscription(subscription);
7883  }
7884};
7885
7886var Subscription = function (observer, subscriber) {
7887  anObject(observer);
7888  this._c = undefined;
7889  this._o = observer;
7890  observer = new SubscriptionObserver(this);
7891  try {
7892    var cleanup = subscriber(observer);
7893    var subscription = cleanup;
7894    if (cleanup != null) {
7895      if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };
7896      else aFunction(cleanup);
7897      this._c = cleanup;
7898    }
7899  } catch (e) {
7900    observer.error(e);
7901    return;
7902  } if (subscriptionClosed(this)) cleanupSubscription(this);
7903};
7904
7905Subscription.prototype = redefineAll({}, {
7906  unsubscribe: function unsubscribe() { closeSubscription(this); }
7907});
7908
7909var SubscriptionObserver = function (subscription) {
7910  this._s = subscription;
7911};
7912
7913SubscriptionObserver.prototype = redefineAll({}, {
7914  next: function next(value) {
7915    var subscription = this._s;
7916    if (!subscriptionClosed(subscription)) {
7917      var observer = subscription._o;
7918      try {
7919        var m = getMethod(observer.next);
7920        if (m) return m.call(observer, value);
7921      } catch (e) {
7922        try {
7923          closeSubscription(subscription);
7924        } finally {
7925          throw e;
7926        }
7927      }
7928    }
7929  },
7930  error: function error(value) {
7931    var subscription = this._s;
7932    if (subscriptionClosed(subscription)) throw value;
7933    var observer = subscription._o;
7934    subscription._o = undefined;
7935    try {
7936      var m = getMethod(observer.error);
7937      if (!m) throw value;
7938      value = m.call(observer, value);
7939    } catch (e) {
7940      try {
7941        cleanupSubscription(subscription);
7942      } finally {
7943        throw e;
7944      }
7945    } cleanupSubscription(subscription);
7946    return value;
7947  },
7948  complete: function complete(value) {
7949    var subscription = this._s;
7950    if (!subscriptionClosed(subscription)) {
7951      var observer = subscription._o;
7952      subscription._o = undefined;
7953      try {
7954        var m = getMethod(observer.complete);
7955        value = m ? m.call(observer, value) : undefined;
7956      } catch (e) {
7957        try {
7958          cleanupSubscription(subscription);
7959        } finally {
7960          throw e;
7961        }
7962      } cleanupSubscription(subscription);
7963      return value;
7964    }
7965  }
7966});
7967
7968var $Observable = function Observable(subscriber) {
7969  anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
7970};
7971
7972redefineAll($Observable.prototype, {
7973  subscribe: function subscribe(observer) {
7974    return new Subscription(observer, this._f);
7975  },
7976  forEach: function forEach(fn) {
7977    var that = this;
7978    return new (core.Promise || global.Promise)(function (resolve, reject) {
7979      aFunction(fn);
7980      var subscription = that.subscribe({
7981        next: function (value) {
7982          try {
7983            return fn(value);
7984          } catch (e) {
7985            reject(e);
7986            subscription.unsubscribe();
7987          }
7988        },
7989        error: reject,
7990        complete: resolve
7991      });
7992    });
7993  }
7994});
7995
7996redefineAll($Observable, {
7997  from: function from(x) {
7998    var C = typeof this === 'function' ? this : $Observable;
7999    var method = getMethod(anObject(x)[OBSERVABLE]);
8000    if (method) {
8001      var observable = anObject(method.call(x));
8002      return observable.constructor === C ? observable : new C(function (observer) {
8003        return observable.subscribe(observer);
8004      });
8005    }
8006    return new C(function (observer) {
8007      var done = false;
8008      microtask(function () {
8009        if (!done) {
8010          try {
8011            if (forOf(x, false, function (it) {
8012              observer.next(it);
8013              if (done) return RETURN;
8014            }) === RETURN) return;
8015          } catch (e) {
8016            if (done) throw e;
8017            observer.error(e);
8018            return;
8019          } observer.complete();
8020        }
8021      });
8022      return function () { done = true; };
8023    });
8024  },
8025  of: function of() {
8026    for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];
8027    return new (typeof this === 'function' ? this : $Observable)(function (observer) {
8028      var done = false;
8029      microtask(function () {
8030        if (!done) {
8031          for (var j = 0; j < items.length; ++j) {
8032            observer.next(items[j]);
8033            if (done) return;
8034          } observer.complete();
8035        }
8036      });
8037      return function () { done = true; };
8038    });
8039  }
8040});
8041
8042hide($Observable.prototype, OBSERVABLE, function () { return this; });
8043
8044$export($export.G, { Observable: $Observable });
8045
8046require('./_set-species')('Observable');
8047
8048},{"./_a-function":8,"./_an-instance":12,"./_an-object":13,"./_core":29,"./_export":39,"./_for-of":45,"./_global":47,"./_hide":49,"./_microtask":74,"./_redefine-all":97,"./_set-species":106,"./_wks":135}],305:[function(require,module,exports){
8049// https://github.com/tc39/proposal-promise-finally
8050'use strict';
8051var $export = require('./_export');
8052var core = require('./_core');
8053var global = require('./_global');
8054var speciesConstructor = require('./_species-constructor');
8055var promiseResolve = require('./_promise-resolve');
8056
8057$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
8058  var C = speciesConstructor(this, core.Promise || global.Promise);
8059  var isFunction = typeof onFinally == 'function';
8060  return this.then(
8061    isFunction ? function (x) {
8062      return promiseResolve(C, onFinally()).then(function () { return x; });
8063    } : onFinally,
8064    isFunction ? function (e) {
8065      return promiseResolve(C, onFinally()).then(function () { throw e; });
8066    } : onFinally
8067  );
8068} });
8069
8070},{"./_core":29,"./_export":39,"./_global":47,"./_promise-resolve":95,"./_species-constructor":110}],306:[function(require,module,exports){
8071'use strict';
8072// https://github.com/tc39/proposal-promise-try
vendor: 4,899 bytes, lines 8073-8183
8073var $export = require('./_export');
8074var newPromiseCapability = require('./_new-promise-capability');
8075var perform = require('./_perform');
8076
8077$export($export.S, 'Promise', { 'try': function (callbackfn) {
8078  var promiseCapability = newPromiseCapability.f(this);
8079  var result = perform(callbackfn);
8080  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
8081  return promiseCapability.promise;
8082} });
8083
8084},{"./_export":39,"./_new-promise-capability":75,"./_perform":94}],307:[function(require,module,exports){
8085var metadata = require('./_metadata');
8086var anObject = require('./_an-object');
8087var toMetaKey = metadata.key;
8088var ordinaryDefineOwnMetadata = metadata.set;
8089
8090metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {
8091  ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
8092} });
8093
8094},{"./_an-object":13,"./_metadata":73}],308:[function(require,module,exports){
8095var metadata = require('./_metadata');
8096var anObject = require('./_an-object');
8097var toMetaKey = metadata.key;
8098var getOrCreateMetadataMap = metadata.map;
8099var store = metadata.store;
8100
8101metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
8102  var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);
8103  var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
8104  if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
8105  if (metadataMap.size) return true;
8106  var targetMetadata = store.get(target);
8107  targetMetadata['delete'](targetKey);
8108  return !!targetMetadata.size || store['delete'](target);
8109} });
8110
8111},{"./_an-object":13,"./_metadata":73}],309:[function(require,module,exports){
8112var Set = require('./es6.set');
8113var from = require('./_array-from-iterable');
8114var metadata = require('./_metadata');
8115var anObject = require('./_an-object');
8116var getPrototypeOf = require('./_object-gpo');
8117var ordinaryOwnMetadataKeys = metadata.keys;
8118var toMetaKey = metadata.key;
8119
8120var ordinaryMetadataKeys = function (O, P) {
8121  var oKeys = ordinaryOwnMetadataKeys(O, P);
8122  var parent = getPrototypeOf(O);
8123  if (parent === null) return oKeys;
8124  var pKeys = ordinaryMetadataKeys(parent, P);
8125  return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
8126};
8127
8128metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {
8129  return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
8130} });
8131
8132},{"./_an-object":13,"./_array-from-iterable":16,"./_metadata":73,"./_object-gpo":85,"./es6.set":239}],310:[function(require,module,exports){
8133var metadata = require('./_metadata');
8134var anObject = require('./_an-object');
8135var getPrototypeOf = require('./_object-gpo');
8136var ordinaryHasOwnMetadata = metadata.has;
8137var ordinaryGetOwnMetadata = metadata.get;
8138var toMetaKey = metadata.key;
8139
8140var ordinaryGetMetadata = function (MetadataKey, O, P) {
8141  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
8142  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);
8143  var parent = getPrototypeOf(O);
8144  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
8145};
8146
8147metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {
8148  return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
8149} });
8150
8151},{"./_an-object":13,"./_metadata":73,"./_object-gpo":85}],311:[function(require,module,exports){
8152var metadata = require('./_metadata');
8153var anObject = require('./_an-object');
8154var ordinaryOwnMetadataKeys = metadata.keys;
8155var toMetaKey = metadata.key;
8156
8157metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {
8158  return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
8159} });
8160
8161},{"./_an-object":13,"./_metadata":73}],312:[function(require,module,exports){
8162var metadata = require('./_metadata');
8163var anObject = require('./_an-object');
8164var ordinaryGetOwnMetadata = metadata.get;
8165var toMetaKey = metadata.key;
8166
8167metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {
8168  return ordinaryGetOwnMetadata(metadataKey, anObject(target)
8169    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
8170} });
8171
8172},{"./_an-object":13,"./_metadata":73}],313:[function(require,module,exports){
8173var metadata = require('./_metadata');
8174var anObject = require('./_an-object');
8175var getPrototypeOf = require('./_object-gpo');
8176var ordinaryHasOwnMetadata = metadata.has;
8177var toMetaKey = metadata.key;
8178
8179var ordinaryHasMetadata = function (MetadataKey, O, P) {
8180  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
8181  if (hasOwn) return true;
8182  var parent = getPrototypeOf(O);
8183  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
8184};
8185
8186metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {
8187  return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
8188} });
8189
8190},{"./_an-object":13,"./_metadata":73,"./_object-gpo":85}],314:[function(require,module,exports){
8191var metadata = require('./_metadata');
8192var anObject = require('./_an-object');
8193var ordinaryHasOwnMetadata = metadata.has;
8194var toMetaKey = metadata.key;
8195
8196metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {
8197  return ordinaryHasOwnMetadata(metadataKey, anObject(target)
8198    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
8199} });
8200
8201},{"./_an-object":13,"./_metadata":73}],315:[function(require,module,exports){
8202var $metadata = require('./_metadata');
8203var anObject = require('./_an-object');
8204var aFunction = require('./_a-function');
8205var toMetaKey = $metadata.key;
8206var ordinaryDefineOwnMetadata = $metadata.set;
8207
8208$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {
8209  return function decorator(target, targetKey) {
8210    ordinaryDefineOwnMetadata(
8211      metadataKey, metadataValue,
8212      (targetKey !== undefined ? anObject : aFunction)(target),
8213      toMetaKey(targetKey)
8214    );
8215  };
8216} });
8217
8218},{"./_a-function":8,"./_an-object":13,"./_metadata":73}],316:[function(require,module,exports){
8219// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
8220require('./_set-collection-from')('Set');
8221
8222},{"./_set-collection-from":103}],317:[function(require,module,exports){
8223// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
8224require('./_set-collection-of')('Set');
8225
8226},{"./_set-collection-of":104}],318:[function(require,module,exports){
8227// https://github.com/DavidBruant/Map-Set.prototype.toJSON
8228var $export = require('./_export');
8229
8230$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });
8231
8232},{"./_collection-to-json":26,"./_export":39}],319:[function(require,module,exports){
8233'use strict';
8234// https://github.com/mathiasbynens/String.prototype.at
8235var $export = require('./_export');
8236var $at = require('./_string-at')(true);
8237var $fails = require('./_fails');
8238
8239var FORCED = $fails(function () {
8240  return 'ð ®·'.at(0) !== 'ð ®·';
8241});
8242
8243$export($export.P + $export.F * FORCED, 'String', {
8244  at: function at(pos) {
8245    return $at(this, pos);
8246  }
8247});
8248
8249},{"./_export":39,"./_fails":41,"./_string-at":112}],320:[function(require,module,exports){
8250'use strict';
8251// https://tc39.github.io/String.prototype.matchAll/
8252var $export = require('./_export');
8253var defined = require('./_defined');
8254var toLength = require('./_to-length');
8255var isRegExp = require('./_is-regexp');
8256var getFlags = require('./_flags');
8257var RegExpProto = RegExp.prototype;
8258
8259var $RegExpStringIterator = function (regexp, string) {
8260  this._r = regexp;
8261  this._s = string;
8262};
8263
8264require('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {
8265  var match = this._r.exec(this._s);
8266  return { value: match, done: match === null };
8267});
8268
8269$export($export.P, 'String', {
8270  matchAll: function matchAll(regexp) {
8271    defined(this);
8272    if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');
8273    var S = String(this);
8274    var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);
8275    var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
8276    rx.lastIndex = toLength(regexp.lastIndex);
8277    return new $RegExpStringIterator(rx, S);
8278  }
8279});
8280
8281},{"./_defined":34,"./_export":39,"./_flags":43,"./_is-regexp":59,"./_iter-create":61,"./_to-length":124}],321:[function(require,module,exports){
8282'use strict';
8283// https://github.com/tc39/proposal-string-pad-start-end
8284var $export = require('./_export');
8285var $pad = require('./_string-pad');
8286var userAgent = require('./_user-agent');
8287
8288// https://github.com/zloirock/core-js/issues/280
8289var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
8290
8291$export($export.P + $export.F * WEBKIT_BUG, 'String', {
8292  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
8293    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
8294  }
8295});
8296
8297},{"./_export":39,"./_string-pad":115,"./_user-agent":131}],322:[function(require,module,exports){
8298'use strict';
8299// https://github.com/tc39/proposal-string-pad-start-end
8300var $export = require('./_export');
8301var $pad = require('./_string-pad');
8302var userAgent = require('./_user-agent');
8303
8304// https://github.com/zloirock/core-js/issues/280
8305var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
8306
8307$export($export.P + $export.F * WEBKIT_BUG, 'String', {
8308  padStart: function padStart(maxLength /* , fillString = ' ' */) {
8309    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
8310  }
8311});
8312
8313},{"./_export":39,"./_string-pad":115,"./_user-agent":131}],323:[function(require,module,exports){
8314'use strict';
8315// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
8316require('./_string-trim')('trimLeft', function ($trim) {
8317  return function trimLeft() {
8318    return $trim(this, 1);
8319  };
8320}, 'trimStart');
8321
8322},{"./_string-trim":117}],324:[function(require,module,exports){
8323'use strict';
8324// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
8325require('./_string-trim')('trimRight', function ($trim) {
8326  return function trimRight() {
8327    return $trim(this, 2);
8328  };
8329}, 'trimEnd');
8330
8331},{"./_string-trim":117}],325:[function(require,module,exports){
8332require('./_wks-define')('asyncIterator');
8333
8334},{"./_wks-define":133}],326:[function(require,module,exports){
8335require('./_wks-define')('observable');
8336
8337},{"./_wks-define":133}],327:[function(require,module,exports){
8338// https://github.com/tc39/proposal-global
8339var $export = require('./_export');
8340
8341$export($export.S, 'System', { global: require('./_global') });
8342
8343},{"./_export":39,"./_global":47}],328:[function(require,module,exports){
8344// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
8345require('./_set-collection-from')('WeakMap');
8346
8347},{"./_set-collection-from":103}],329:[function(require,module,exports){
8348// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
8349require('./_set-collection-of')('WeakMap');
8350
8351},{"./_set-collection-of":104}],330:[function(require,module,exports){
8352// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
8353require('./_set-collection-from')('WeakSet');
8354
8355},{"./_set-collection-from":103}],331:[function(require,module,exports){
8356// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
8357require('./_set-collection-of')('WeakSet');
8358
8359},{"./_set-collection-of":104}],332:[function(require,module,exports){
8360var $iterators = require('./es6.array.iterator');
8361var getKeys = require('./_object-keys');
8362var redefine = require('./_redefine');
8363var global = require('./_global');
8364var hide = require('./_hide');
8365var Iterators = require('./_iterators');
8366var wks = require('./_wks');
8367var ITERATOR = wks('iterator');
8368var TO_STRING_TAG = wks('toStringTag');
8369var ArrayValues = Iterators.Array;
8370
8371var DOMIterables = {
8372  CSSRuleList: true, // TODO: Not spec compliant, should be false.
8373  CSSStyleDeclaration: false,
8374  CSSValueList: false,
8375  ClientRectList: false,
8376  DOMRectList: false,
8377  DOMStringList: false,
8378  DOMTokenList: true,
8379  DataTransferItemList: false,
8380  FileList: false,
8381  HTMLAllCollection: false,
8382  HTMLCollection: false,
8383  HTMLFormElement: false,
8384  HTMLSelectElement: false,
8385  MediaList: true, // TODO: Not spec compliant, should be false.
8386  MimeTypeArray: false,
8387  NamedNodeMap: false,
8388  NodeList: true,
8389  PaintRequestList: false,
8390  Plugin: false,
8391  PluginArray: false,
8392  SVGLengthList: false,
8393  SVGNumberList: false,
8394  SVGPathSegList: false,
8395  SVGPointList: false,
8396  SVGStringList: false,
8397  SVGTransformList: false,
8398  SourceBufferList: false,
8399  StyleSheetList: true, // TODO: Not spec compliant, should be false.
8400  TextTrackCueList: false,
8401  TextTrackList: false,
8402  TouchList: false
8403};
8404
8405for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
8406  var NAME = collections[i];
8407  var explicit = DOMIterables[NAME];
8408  var Collection = global[NAME];
8409  var proto = Collection && Collection.prototype;
8410  var key;
8411  if (proto) {
8412    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
8413    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
8414    Iterators[NAME] = ArrayValues;
8415    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
8416  }
8417}
8418
8419},{"./_global":47,"./_hide":49,"./_iterators":65,"./_object-keys":87,"./_redefine":98,"./_wks":135,"./es6.array.iterator":148}],333:[function(require,module,exports){
vendor: 8,252 bytes, lines 8420-8622
8420var $export = require('./_export');
8421var $task = require('./_task');
8422$export($export.G + $export.B, {
8423  setImmediate: $task.set,
8424  clearImmediate: $task.clear
8425});
8426
8427},{"./_export":39,"./_task":119}],334:[function(require,module,exports){
8428// ie9- setTimeout & setInterval additional parameters fix
8429var global = require('./_global');
8430var $export = require('./_export');
8431var userAgent = require('./_user-agent');
8432var slice = [].slice;
8433var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
8434var wrap = function (set) {
8435  return function (fn, time /* , ...args */) {
8436    var boundArgs = arguments.length > 2;
8437    var args = boundArgs ? slice.call(arguments, 2) : false;
8438    return set(boundArgs ? function () {
8439      // eslint-disable-next-line no-new-func
8440      (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
8441    } : fn, time);
8442  };
8443};
8444$export($export.G + $export.B + $export.F * MSIE, {
8445  setTimeout: wrap(global.setTimeout),
8446  setInterval: wrap(global.setInterval)
8447});
8448
8449},{"./_export":39,"./_global":47,"./_user-agent":131}],335:[function(require,module,exports){
8450require('./modules/es6.symbol');
8451require('./modules/es6.object.create');
8452require('./modules/es6.object.define-property');
8453require('./modules/es6.object.define-properties');
8454require('./modules/es6.object.get-own-property-descriptor');
8455require('./modules/es6.object.get-prototype-of');
8456require('./modules/es6.object.keys');
8457require('./modules/es6.object.get-own-property-names');
8458require('./modules/es6.object.freeze');
8459require('./modules/es6.object.seal');
8460require('./modules/es6.object.prevent-extensions');
8461require('./modules/es6.object.is-frozen');
8462require('./modules/es6.object.is-sealed');
8463require('./modules/es6.object.is-extensible');
8464require('./modules/es6.object.assign');
8465require('./modules/es6.object.is');
8466require('./modules/es6.object.set-prototype-of');
8467require('./modules/es6.object.to-string');
8468require('./modules/es6.function.bind');
8469require('./modules/es6.function.name');
8470require('./modules/es6.function.has-instance');
8471require('./modules/es6.parse-int');
8472require('./modules/es6.parse-float');
8473require('./modules/es6.number.constructor');
8474require('./modules/es6.number.to-fixed');
8475require('./modules/es6.number.to-precision');
8476require('./modules/es6.number.epsilon');
8477require('./modules/es6.number.is-finite');
8478require('./modules/es6.number.is-integer');
8479require('./modules/es6.number.is-nan');
8480require('./modules/es6.number.is-safe-integer');
8481require('./modules/es6.number.max-safe-integer');
8482require('./modules/es6.number.min-safe-integer');
8483require('./modules/es6.number.parse-float');
8484require('./modules/es6.number.parse-int');
8485require('./modules/es6.math.acosh');
8486require('./modules/es6.math.asinh');
8487require('./modules/es6.math.atanh');
8488require('./modules/es6.math.cbrt');
8489require('./modules/es6.math.clz32');
8490require('./modules/es6.math.cosh');
8491require('./modules/es6.math.expm1');
8492require('./modules/es6.math.fround');
8493require('./modules/es6.math.hypot');
8494require('./modules/es6.math.imul');
8495require('./modules/es6.math.log10');
8496require('./modules/es6.math.log1p');
8497require('./modules/es6.math.log2');
8498require('./modules/es6.math.sign');
8499require('./modules/es6.math.sinh');
8500require('./modules/es6.math.tanh');
8501require('./modules/es6.math.trunc');
8502require('./modules/es6.string.from-code-point');
8503require('./modules/es6.string.raw');
8504require('./modules/es6.string.trim');
8505require('./modules/es6.string.iterator');
8506require('./modules/es6.string.code-point-at');
8507require('./modules/es6.string.ends-with');
8508require('./modules/es6.string.includes');
8509require('./modules/es6.string.repeat');
8510require('./modules/es6.string.starts-with');
8511require('./modules/es6.string.anchor');
8512require('./modules/es6.string.big');
8513require('./modules/es6.string.blink');
8514require('./modules/es6.string.bold');
8515require('./modules/es6.string.fixed');
8516require('./modules/es6.string.fontcolor');
8517require('./modules/es6.string.fontsize');
8518require('./modules/es6.string.italics');
8519require('./modules/es6.string.link');
8520require('./modules/es6.string.small');
8521require('./modules/es6.string.strike');
8522require('./modules/es6.string.sub');
8523require('./modules/es6.string.sup');
8524require('./modules/es6.date.now');
8525require('./modules/es6.date.to-json');
8526require('./modules/es6.date.to-iso-string');
8527require('./modules/es6.date.to-string');
8528require('./modules/es6.date.to-primitive');
8529require('./modules/es6.array.is-array');
8530require('./modules/es6.array.from');
8531require('./modules/es6.array.of');
8532require('./modules/es6.array.join');
8533require('./modules/es6.array.slice');
8534require('./modules/es6.array.sort');
8535require('./modules/es6.array.for-each');
8536require('./modules/es6.array.map');
8537require('./modules/es6.array.filter');
8538require('./modules/es6.array.some');
8539require('./modules/es6.array.every');
8540require('./modules/es6.array.reduce');
8541require('./modules/es6.array.reduce-right');
8542require('./modules/es6.array.index-of');
8543require('./modules/es6.array.last-index-of');
8544require('./modules/es6.array.copy-within');
8545require('./modules/es6.array.fill');
8546require('./modules/es6.array.find');
8547require('./modules/es6.array.find-index');
8548require('./modules/es6.array.species');
8549require('./modules/es6.array.iterator');
8550require('./modules/es6.regexp.constructor');
8551require('./modules/es6.regexp.exec');
8552require('./modules/es6.regexp.to-string');
8553require('./modules/es6.regexp.flags');
8554require('./modules/es6.regexp.match');
8555require('./modules/es6.regexp.replace');
8556require('./modules/es6.regexp.search');
8557require('./modules/es6.regexp.split');
8558require('./modules/es6.promise');
8559require('./modules/es6.map');
8560require('./modules/es6.set');
8561require('./modules/es6.weak-map');
8562require('./modules/es6.weak-set');
8563require('./modules/es6.typed.array-buffer');
8564require('./modules/es6.typed.data-view');
8565require('./modules/es6.typed.int8-array');
8566require('./modules/es6.typed.uint8-array');
8567require('./modules/es6.typed.uint8-clamped-array');
8568require('./modules/es6.typed.int16-array');
8569require('./modules/es6.typed.uint16-array');
8570require('./modules/es6.typed.int32-array');
8571require('./modules/es6.typed.uint32-array');
8572require('./modules/es6.typed.float32-array');
8573require('./modules/es6.typed.float64-array');
8574require('./modules/es6.reflect.apply');
8575require('./modules/es6.reflect.construct');
8576require('./modules/es6.reflect.define-property');
8577require('./modules/es6.reflect.delete-property');
8578require('./modules/es6.reflect.enumerate');
8579require('./modules/es6.reflect.get');
8580require('./modules/es6.reflect.get-own-property-descriptor');
8581require('./modules/es6.reflect.get-prototype-of');
8582require('./modules/es6.reflect.has');
8583require('./modules/es6.reflect.is-extensible');
8584require('./modules/es6.reflect.own-keys');
8585require('./modules/es6.reflect.prevent-extensions');
8586require('./modules/es6.reflect.set');
8587require('./modules/es6.reflect.set-prototype-of');
8588require('./modules/es7.array.includes');
8589require('./modules/es7.array.flat-map');
8590require('./modules/es7.array.flatten');
8591require('./modules/es7.string.at');
8592require('./modules/es7.string.pad-start');
8593require('./modules/es7.string.pad-end');
8594require('./modules/es7.string.trim-left');
8595require('./modules/es7.string.trim-right');
8596require('./modules/es7.string.match-all');
8597require('./modules/es7.symbol.async-iterator');
8598require('./modules/es7.symbol.observable');
8599require('./modules/es7.object.get-own-property-descriptors');
8600require('./modules/es7.object.values');
8601require('./modules/es7.object.entries');
8602require('./modules/es7.object.define-getter');
8603require('./modules/es7.object.define-setter');
8604require('./modules/es7.object.lookup-getter');
8605require('./modules/es7.object.lookup-setter');
8606require('./modules/es7.map.to-json');
8607require('./modules/es7.set.to-json');
8608require('./modules/es7.map.of');
8609require('./modules/es7.set.of');
8610require('./modules/es7.weak-map.of');
8611require('./modules/es7.weak-set.of');
8612require('./modules/es7.map.from');
8613require('./modules/es7.set.from');
8614require('./modules/es7.weak-map.from');
8615require('./modules/es7.weak-set.from');
8616require('./modules/es7.global');
8617require('./modules/es7.system.global');
8618require('./modules/es7.error.is-error');
8619require('./modules/es7.math.clamp');
8620require('./modules/es7.math.deg-per-rad');
8621require('./modules/es7.math.degrees');
8622require('./modules/es7.math.fscale');
8623require('./modules/es7.math.iaddh');
8624require('./modules/es7.math.isubh');
8625require('./modules/es7.math.imulh');
8626require('./modules/es7.math.rad-per-deg');
8627require('./modules/es7.math.radians');
8628require('./modules/es7.math.scale');
8629require('./modules/es7.math.umulh');
8630require('./modules/es7.math.signbit');
8631require('./modules/es7.promise.finally');
8632require('./modules/es7.promise.try');
8633require('./modules/es7.reflect.define-metadata');
8634require('./modules/es7.reflect.delete-metadata');
8635require('./modules/es7.reflect.get-metadata');
8636require('./modules/es7.reflect.get-metadata-keys');
8637require('./modules/es7.reflect.get-own-metadata');
8638require('./modules/es7.reflect.get-own-metadata-keys');
8639require('./modules/es7.reflect.has-metadata');
8640require('./modules/es7.reflect.has-own-metadata');
8641require('./modules/es7.reflect.metadata');
8642require('./modules/es7.asap');
8643require('./modules/es7.observable');
8644require('./modules/web.timers');
8645require('./modules/web.immediate');
8646require('./modules/web.dom.iterable');
8647module.exports = require('./modules/_core');
8648
8649},{"./modules/_core":29,"./modules/es6.array.copy-within":138,"./modules/es6.array.every":139,"./modules/es6.array.fill":140,"./modules/es6.array.filter":141,"./modules/es6.array.find":143,"./modules/es6.array.find-index":142,"./modules/es6.array.for-each":144,"./modules/es6.array.from":145,"./modules/es6.array.index-of":146,"./modules/es6.array.is-array":147,"./modules/es6.array.iterator":148,"./modules/es6.array.join":149,"./modules/es6.array.last-index-of":150,"./modules/es6.array.map":151,"./modules/es6.array.of":152,"./modules/es6.array.reduce":154,"./modules/es6.array.reduce-right":153,"./modules/es6.array.slice":155,"./modules/es6.array.some":156,"./modules/es6.array.sort":157,"./modules/es6.array.species":158,"./modules/es6.date.now":159,"./modules/es6.date.to-iso-string":160,"./modules/es6.date.to-json":161,"./modules/es6.date.to-primitive":162,"./modules/es6.date.to-string":163,"./modules/es6.function.bind":164,"./modules/es6.function.has-instance":165,"./modules/es6.function.name":166,"./modules/es6.map":167,"./modules/es6.math.acosh":168,"./modules/es6.math.asinh":169,"./modules/es6.math.atanh":170,"./modules/es6.math.cbrt":171,"./modules/es6.math.clz32":172,"./modules/es6.math.cosh":173,"./modules/es6.math.expm1":174,"./modules/es6.math.fround":175,"./modules/es6.math.hypot":176,"./modules/es6.math.imul":177,"./modules/es6.math.log10":178,"./modules/es6.math.log1p":179,"./modules/es6.math.log2":180,"./modules/es6.math.sign":181,"./modules/es6.math.sinh":182,"./modules/es6.math.tanh":183,"./modules/es6.math.trunc":184,"./modules/es6.number.constructor":185,"./modules/es6.number.epsilon":186,"./modules/es6.number.is-finite":187,"./modules/es6.number.is-integer":188,"./modules/es6.number.is-nan":189,"./modules/es6.number.is-safe-integer":190,"./modules/es6.number.max-safe-integer":191,"./modules/es6.number.min-safe-integer":192,"./modules/es6.number.parse-float":193,"./modules/es6.number.parse-int":194,"./modules/es6.number.to-fixed":195,"./modules/es6.number.to-precision":196,"./modules/es6.object.assign":197,"./modules/es6.object.create":198,"./modules/es6.object.define-properties":199,"./modules/es6.object.define-property":200,"./modules/es6.object.freeze":201,"./modules/es6.object.get-own-property-descriptor":202,"./modules/es6.object.get-own-property-names":203,"./modules/es6.object.get-prototype-of":204,"./modules/es6.object.is":208,"./modules/es6.object.is-extensible":205,"./modules/es6.object.is-frozen":206,"./modules/es6.object.is-sealed":207,"./modules/es6.object.keys":209,"./modules/es6.object.prevent-extensions":210,"./modules/es6.object.seal":211,"./modules/es6.object.set-prototype-of":212,"./modules/es6.object.to-string":213,"./modules/es6.parse-float":214,"./modules/es6.parse-int":215,"./modules/es6.promise":216,"./modules/es6.reflect.apply":217,"./modules/es6.reflect.construct":218,"./modules/es6.reflect.define-property":219,"./modules/es6.reflect.delete-property":220,"./modules/es6.reflect.enumerate":221,"./modules/es6.reflect.get":224,"./modules/es6.reflect.get-own-property-descriptor":222,"./modules/es6.reflect.get-prototype-of":223,"./modules/es6.reflect.has":225,"./modules/es6.reflect.is-extensible":226,"./modules/es6.reflect.own-keys":227,"./modules/es6.reflect.prevent-extensions":228,"./modules/es6.reflect.set":230,"./modules/es6.reflect.set-prototype-of":229,"./modules/es6.regexp.constructor":231,"./modules/es6.regexp.exec":232,"./modules/es6.regexp.flags":233,"./modules/es6.regexp.match":234,"./modules/es6.regexp.replace":235,"./modules/es6.regexp.search":236,"./modules/es6.regexp.split":237,"./modules/es6.regexp.to-string":238,"./modules/es6.set":239,"./modules/es6.string.anchor":240,"./modules/es6.string.big":241,"./modules/es6.string.blink":242,"./modules/es6.string.bold":243,"./modules/es6.string.code-point-at":244,"./modules/es6.string.ends-with":245,"./modules/es6.string.fixed":246,"./modules/es6.string.fontc
8649olor":247,"./modules/es6.string.fontsize":248,"./modules/es6.string.from-code-point":249,"./modules/es6.string.includes":250,"./modules/es6.string.italics":251,"./modules/es6.string.iterator":252,"./modules/es6.string.link":253,"./modules/es6.string.raw":254,"./modules/es6.string.repeat":255,"./modules/es6.string.small":256,"./modules/es6.string.starts-with":257,"./modules/es6.string.strike":258,"./modules/es6.string.sub":259,"./modules/es6.string.sup":260,"./modules/es6.string.trim":261,"./modules/es6.symbol":262,"./modules/es6.typed.array-buffer":263,"./modules/es6.typed.data-view":264,"./modules/es6.typed.float32-array":265,"./modules/es6.typed.float64-array":266,"./modules/es6.typed.int16-array":267,"./modules/es6.typed.int32-array":268,"./modules/es6.typed.int8-array":269,"./modules/es6.typed.uint16-array":270,"./modules/es6.typed.uint32-array":271,"./modules/es6.typed.uint8-array":272,"./modules/es6.typed.uint8-clamped-array":273,"./modules/es6.weak-map":274,"./modules/es6.weak-set":275,"./modules/es7.array.flat-map":276,"./modules/es7.array.flatten":277,"./modules/es7.array.includes":278,"./modules/es7.asap":279,"./modules/es7.error.is-error":280,"./modules/es7.global":281,"./modules/es7.map.from":282,"./modules/es7.map.of":283,"./modules/es7.map.to-json":284,"./modules/es7.math.clamp":285,"./modules/es7.math.deg-per-rad":286,"./modules/es7.math.degrees":287,"./modules/es7.math.fscale":288,"./modules/es7.math.iad
vendor: 19,478 bytes, lines 8649-9138
8649dh":289,"./modules/es7.math.imulh":290,"./modules/es7.math.isubh":291,"./modules/es7.math.rad-per-deg":292,"./modules/es7.math.radians":293,"./modules/es7.math.scale":294,"./modules/es7.math.signbit":295,"./modules/es7.math.umulh":296,"./modules/es7.object.define-getter":297,"./modules/es7.object.define-setter":298,"./modules/es7.object.entries":299,"./modules/es7.object.get-own-property-descriptors":300,"./modules/es7.object.lookup-getter":301,"./modules/es7.object.lookup-setter":302,"./modules/es7.object.values":303,"./modules/es7.observable":304,"./modules/es7.promise.finally":305,"./modules/es7.promise.try":306,"./modules/es7.reflect.define-metadata":307,"./modules/es7.reflect.delete-metadata":308,"./modules/es7.reflect.get-metadata":310,"./modules/es7.reflect.get-metadata-keys":309,"./modules/es7.reflect.get-own-metadata":312,"./modules/es7.reflect.get-own-metadata-keys":311,"./modules/es7.reflect.has-metadata":313,"./modules/es7.reflect.has-own-metadata":314,"./modules/es7.reflect.metadata":315,"./modules/es7.set.from":316,"./modules/es7.set.of":317,"./modules/es7.set.to-json":318,"./modules/es7.string.at":319,"./modules/es7.string.match-all":320,"./modules/es7.string.pad-end":321,"./modules/es7.string.pad-start":322,"./modules/es7.string.trim-left":323,"./modules/es7.string.trim-right":324,"./modules/es7.symbol.async-iterator":325,"./modules/es7.symbol.observable":326,"./modules/es7.system.global":327,"./modules/es7.weak-map.from":328,"./modules/es7.weak-map.of":329,"./modules/es7.weak-set.from":330,"./modules/es7.weak-set.of":331,"./modules/web.dom.iterable":332,"./modules/web.immediate":333,"./modules/web.timers":334}],336:[function(require,module,exports){
8650'use strict';
8651
8652/* eslint no-invalid-this: 1 */
8653
8654var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
8655var slice = Array.prototype.slice;
8656var toStr = Object.prototype.toString;
8657var funcType = '[object Function]';
8658
8659module.exports = function bind(that) {
8660    var target = this;
8661    if (typeof target !== 'function' || toStr.call(target) !== funcType) {
8662        throw new TypeError(ERROR_MESSAGE + target);
8663    }
8664    var args = slice.call(arguments, 1);
8665
8666    var bound;
8667    var binder = function () {
8668        if (this instanceof bound) {
8669            var result = target.apply(
8670                this,
8671                args.concat(slice.call(arguments))
8672            );
8673            if (Object(result) === result) {
8674                return result;
8675            }
8676            return this;
8677        } else {
8678            return target.apply(
8679                that,
8680                args.concat(slice.call(arguments))
8681            );
8682        }
8683    };
8684
8685    var boundLength = Math.max(0, target.length - args.length);
8686    var boundArgs = [];
8687    for (var i = 0; i < boundLength; i++) {
8688        boundArgs.push('$' + i);
8689    }
8690
8691    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);
8692
8693    if (target.prototype) {
8694        var Empty = function Empty() {};
8695        Empty.prototype = target.prototype;
8696        bound.prototype = new Empty();
8697        Empty.prototype = null;
8698    }
8699
8700    return bound;
8701};
8702
8703},{}],337:[function(require,module,exports){
8704'use strict';
8705
8706var implementation = require('./implementation');
8707
8708module.exports = Function.prototype.bind || implementation;
8709
8710},{"./implementation":336}],338:[function(require,module,exports){
8711'use strict';
8712
8713var undefined;
8714
8715var $SyntaxError = SyntaxError;
8716var $Function = Function;
8717var $TypeError = TypeError;
8718
8719// eslint-disable-next-line consistent-return
8720var getEvalledConstructor = function (expressionSyntax) {
8721	try {
8722		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
8723	} catch (e) {}
8724};
8725
8726var $gOPD = Object.getOwnPropertyDescriptor;
8727if ($gOPD) {
8728	try {
8729		$gOPD({}, '');
8730	} catch (e) {
8731		$gOPD = null; // this is IE 8, which has a broken gOPD
8732	}
8733}
8734
8735var throwTypeError = function () {
8736	throw new $TypeError();
8737};
8738var ThrowTypeError = $gOPD
8739	? (function () {
8740		try {
8741			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
8742			arguments.callee; // IE 8 does not throw here
8743			return throwTypeError;
8744		} catch (calleeThrows) {
8745			try {
8746				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
8747				return $gOPD(arguments, 'callee').get;
8748			} catch (gOPDthrows) {
8749				return throwTypeError;
8750			}
8751		}
8752	}())
8753	: throwTypeError;
8754
8755var hasSymbols = require('has-symbols')();
8756
8757var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
8758
8759var needsEval = {};
8760
8761var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
8762
8763var INTRINSICS = {
8764	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
8765	'%Array%': Array,
8766	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
8767	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
8768	'%AsyncFromSyncIteratorPrototype%': undefined,
8769	'%AsyncFunction%': needsEval,
8770	'%AsyncGenerator%': needsEval,
8771	'%AsyncGeneratorFunction%': needsEval,
8772	'%AsyncIteratorPrototype%': needsEval,
8773	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
8774	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
8775	'%Boolean%': Boolean,
8776	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
8777	'%Date%': Date,
8778	'%decodeURI%': decodeURI,
8779	'%decodeURIComponent%': decodeURIComponent,
8780	'%encodeURI%': encodeURI,
8781	'%encodeURIComponent%': encodeURIComponent,
8782	'%Error%': Error,
8783	'%eval%': eval, // eslint-disable-line no-eval
8784	'%EvalError%': EvalError,
8785	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
8786	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
8787	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
8788	'%Function%': $Function,
8789	'%GeneratorFunction%': needsEval,
8790	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
8791	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
8792	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
8793	'%isFinite%': isFinite,
8794	'%isNaN%': isNaN,
8795	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
8796	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
8797	'%Map%': typeof Map === 'undefined' ? undefined : Map,
8798	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
8799	'%Math%': Math,
8800	'%Number%': Number,
8801	'%Object%': Object,
8802	'%parseFloat%': parseFloat,
8803	'%parseInt%': parseInt,
8804	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
8805	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
8806	'%RangeError%': RangeError,
8807	'%ReferenceError%': ReferenceError,
8808	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
8809	'%RegExp%': RegExp,
8810	'%Set%': typeof Set === 'undefined' ? undefined : Set,
8811	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
8812	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
8813	'%String%': String,
8814	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
8815	'%Symbol%': hasSymbols ? Symbol : undefined,
8816	'%SyntaxError%': $SyntaxError,
8817	'%ThrowTypeError%': ThrowTypeError,
8818	'%TypedArray%': TypedArray,
8819	'%TypeError%': $TypeError,
8820	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
8821	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
8822	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
8823	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
8824	'%URIError%': URIError,
8825	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
8826	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
8827	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
8828};
8829
8830var doEval = function doEval(name) {
8831	var value;
8832	if (name === '%AsyncFunction%') {
8833		value = getEvalledConstructor('async function () {}');
8834	} else if (name === '%GeneratorFunction%') {
8835		value = getEvalledConstructor('function* () {}');
8836	} else if (name === '%AsyncGeneratorFunction%') {
8837		value = getEvalledConstructor('async function* () {}');
8838	} else if (name === '%AsyncGenerator%') {
8839		var fn = doEval('%AsyncGeneratorFunction%');
8840		if (fn) {
8841			value = fn.prototype;
8842		}
8843	} else if (name === '%AsyncIteratorPrototype%') {
8844		var gen = doEval('%AsyncGenerator%');
8845		if (gen) {
8846			value = getProto(gen.prototype);
8847		}
8848	}
8849
8850	INTRINSICS[name] = value;
8851
8852	return value;
8853};
8854
8855var LEGACY_ALIASES = {
8856	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
8857	'%ArrayPrototype%': ['Array', 'prototype'],
8858	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
8859	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
8860	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
8861	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
8862	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
8863	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
8864	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
8865	'%BooleanPrototype%': ['Boolean', 'prototype'],
8866	'%DataViewPrototype%': ['DataView', 'prototype'],
8867	'%DatePrototype%': ['Date', 'prototype'],
8868	'%ErrorPrototype%': ['Error', 'prototype'],
8869	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
8870	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
8871	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
8872	'%FunctionPrototype%': ['Function', 'prototype'],
8873	'%Generator%': ['GeneratorFunction', 'prototype'],
8874	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
8875	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
8876	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
8877	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
8878	'%JSONParse%': ['JSON', 'parse'],
8879	'%JSONStringify%': ['JSON', 'stringify'],
8880	'%MapPrototype%': ['Map', 'prototype'],
8881	'%NumberPrototype%': ['Number', 'prototype'],
8882	'%ObjectPrototype%': ['Object', 'prototype'],
8883	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
8884	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
8885	'%PromisePrototype%': ['Promise', 'prototype'],
8886	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
8887	'%Promise_all%': ['Promise', 'all'],
8888	'%Promise_reject%': ['Promise', 'reject'],
8889	'%Promise_resolve%': ['Promise', 'resolve'],
8890	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
8891	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
8892	'%RegExpPrototype%': ['RegExp', 'prototype'],
8893	'%SetPrototype%': ['Set', 'prototype'],
8894	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
8895	'%StringPrototype%': ['String', 'prototype'],
8896	'%SymbolPrototype%': ['Symbol', 'prototype'],
8897	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
8898	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
8899	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
8900	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
8901	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
8902	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
8903	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
8904	'%URIErrorPrototype%': ['URIError', 'prototype'],
8905	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
8906	'%WeakSetPrototype%': ['WeakSet', 'prototype']
8907};
8908
8909var bind = require('function-bind');
8910var hasOwn = require('has');
8911var $concat = bind.call(Function.call, Array.prototype.concat);
8912var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
8913var $replace = bind.call(Function.call, String.prototype.replace);
8914var $strSlice = bind.call(Function.call, String.prototype.slice);
8915
8916/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
8917var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
8918var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
8919var stringToPath = function stringToPath(string) {
8920	var first = $strSlice(string, 0, 1);
8921	var last = $strSlice(string, -1);
8922	if (first === '%' && last !== '%') {
8923		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
8924	} else if (last === '%' && first !== '%') {
8925		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
8926	}
8927	var result = [];
8928	$replace(string, rePropName, function (match, number, quote, subString) {
8929		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
8930	});
8931	return result;
8932};
8933/* end adaptation */
8934
8935var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
8936	var intrinsicName = name;
8937	var alias;
8938	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
8939		alias = LEGACY_ALIASES[intrinsicName];
8940		intrinsicName = '%' + alias[0] + '%';
8941	}
8942
8943	if (hasOwn(INTRINSICS, intrinsicName)) {
8944		var value = INTRINSICS[intrinsicName];
8945		if (value === needsEval) {
8946			value = doEval(intrinsicName);
8947		}
8948		if (typeof value === 'undefined' && !allowMissing) {
8949			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
8950		}
8951
8952		return {
8953			alias: alias,
8954			name: intrinsicName,
8955			value: value
8956		};
8957	}
8958
8959	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
8960};
8961
8962module.exports = function GetIntrinsic(name, allowMissing) {
8963	if (typeof name !== 'string' || name.length === 0) {
8964		throw new $TypeError('intrinsic name must be a non-empty string');
8965	}
8966	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
8967		throw new $TypeError('"allowMissing" argument must be a boolean');
8968	}
8969
8970	var parts = stringToPath(name);
8971	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
8972
8973	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
8974	var intrinsicRealName = intrinsic.name;
8975	var value = intrinsic.value;
8976	var skipFurtherCaching = false;
8977
8978	var alias = intrinsic.alias;
8979	if (alias) {
8980		intrinsicBaseName = alias[0];
8981		$spliceApply(parts, $concat([0, 1], alias));
8982	}
8983
8984	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
8985		var part = parts[i];
8986		var first = $strSlice(part, 0, 1);
8987		var last = $strSlice(part, -1);
8988		if (
8989			(
8990				(first === '"' || first === "'" || first === '`')
8991				|| (last === '"' || last === "'" || last === '`')
8992			)
8993			&& first !== last
8994		) {
8995			throw new $SyntaxError('property names with quotes must have matching quotes');
8996		}
8997		if (part === 'constructor' || !isOwn) {
8998			skipFurtherCaching = true;
8999		}
9000
9001		intrinsicBaseName += '.' + part;
9002		intrinsicRealName = '%' + intrinsicBaseName + '%';
9003
9004		if (hasOwn(INTRINSICS, intrinsicRealName)) {
9005			value = INTRINSICS[intrinsicRealName];
9006		} else if (value != null) {
9007			if (!(part in value)) {
9008				if (!allowMissing) {
9009					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
9010				}
9011				return void undefined;
9012			}
9013			if ($gOPD && (i + 1) >= parts.length) {
9014				var desc = $gOPD(value, part);
9015				isOwn = !!desc;
9016
9017				// By convention, when a data property is converted to an accessor
9018				// property to emulate a data property that does not suffer from
9019				// the override mistake, that accessor's getter is marked with
9020				// an `originalValue` property. Here, when we detect this, we
9021				// uphold the illusion by pretending to see that original data
9022				// property, i.e., returning the value rather than the getter
9023				// itself.
9024				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
9025					value = desc.get;
9026				} else {
9027					value = value[part];
9028				}
9029			} else {
9030				isOwn = hasOwn(value, part);
9031				value = value[part];
9032			}
9033
9034			if (isOwn && !skipFurtherCaching) {
9035				INTRINSICS[intrinsicRealName] = value;
9036			}
9037		}
9038	}
9039	return value;
9040};
9041
9042},{"function-bind":337,"has":341,"has-symbols":339}],339:[function(require,module,exports){
9043'use strict';
9044
9045var origSymbol = typeof Symbol !== 'undefined' && Symbol;
9046var hasSymbolSham = require('./shams');
9047
9048module.exports = function hasNativeSymbols() {
9049	if (typeof origSymbol !== 'function') { return false; }
9050	if (typeof Symbol !== 'function') { return false; }
9051	if (typeof origSymbol('foo') !== 'symbol') { return false; }
9052	if (typeof Symbol('bar') !== 'symbol') { return false; }
9053
9054	return hasSymbolSham();
9055};
9056
9057},{"./shams":340}],340:[function(require,module,exports){
9058'use strict';
9059
9060/* eslint complexity: [2, 18], max-statements: [2, 33] */
9061module.exports = function hasSymbols() {
9062	if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }
9063	if (typeof Symbol.iterator === 'symbol') { return true; }
9064
9065	var obj = {};
9066	var sym = Symbol('test');
9067	var symObj = Object(sym);
9068	if (typeof sym === 'string') { return false; }
9069
9070	if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }
9071	if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }
9072
9073	// temp disabled per https://github.com/ljharb/object.assign/issues/17
9074	// if (sym instanceof Symbol) { return false; }
9075	// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4
9076	// if (!(symObj instanceof Symbol)) { return false; }
9077
9078	// if (typeof Symbol.prototype.toString !== 'function') { return false; }
9079	// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }
9080
9081	var symVal = 42;
9082	obj[sym] = symVal;
9083	for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop
9084	if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }
9085
9086	if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }
9087
9088	var syms = Object.getOwnPropertySymbols(obj);
9089	if (syms.length !== 1 || syms[0] !== sym) { return false; }
9090
9091	if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }
9092
9093	if (typeof Object.getOwnPropertyDescriptor === 'function') {
9094		var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
9095		if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }
9096	}
9097
9098	return true;
9099};
9100
9101},{}],341:[function(require,module,exports){
9102'use strict';
9103
9104var bind = require('function-bind');
9105
9106module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);
9107
9108},{"function-bind":337}],342:[function(require,module,exports){
9109/*
9110* jQuery Mobile 1.4.0pre
9111* Git HEAD hash: 856505571fd484976814d85280f26d139b752915 <> Date: Tue Jun 4 2013 20:00:33 UTC
9112* http://jquerymobile.com
9113*
9114* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors
9115* Released under the MIT license.
9116* http://jquery.org/license
9117*
9118*/
9119
9120
9121(function ( root, doc, factory ) {
9122	if ( typeof define === "function" && define.amd ) {
9123		// AMD. Register as an anonymous module.
9124		define( [ "jquery" ], function ( $ ) {
9125			factory( $, root, doc );
9126			return $.mobile;
9127		});
9128	} else {
9129		// Browser globals
9130		factory( root.jQuery, root, doc );
9131	}
9132}( this, document, function ( jQuery, window, document, undefined ) {
9133// This plugin is an experiment for abstracting away the touch and mouse
9134// events so that developers don't have to worry about which method of input
9135// the device their document is loaded on supports.
9136//
9137// The idea here is to allow the developer to register listeners for the
9138// basic mouse events, such as mousedown, mousemove, mouseup, and click,
9139// and the plugin will take care of registering the correct listeners
9140// behind the scenes to invoke the listener at the fastest possible time
9141// for that device, while still retaining the order of event firing in
9142// the traditional mouse environment, should multiple handlers be registered
9143// on the same element for different events.
9144//
9145// The current version exposes the following virtual events to jQuery bind methods:
9146// "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel"
9147
9148(function( $, window, document, undefined ) {
9149
9150var dataPropertyName = "virtualMouseBindings",
9151	touchTargetPropertyName = "virtualTouchID",
9152	virtualEventNames = "vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split( " " ),
9153	touchEventProps = "clientX clientY pageX pageY screenX screenY".split( " " ),
9154	mouseHookProps = $.event.mouseHooks ? $.event.mouseHooks.props : [],
9155	mouseEventProps = $.event.props.concat( mouseHookProps ),
9156	activeDocHandlers = {},
9157	resetTimerID = 0,
9158	startX = 0,
9159	startY = 0,
9160	didScroll = false,
9161	clickBlockList = [],
9162	blockMouseTriggers = false,
9163	blockTouchTriggers = false,
9164	eventCaptureSupported = "addEventListener" in document,
9165	$document = $( document ),
9166	nextTouchID = 1,
9167	lastTouchID = 0, threshold,
9168	i;
9169
9170$.vmouse = {
9171	moveDistanceThreshold: 10,
9172	clickDistanceThreshold: 10,
9173	resetTimerDuration: 1500
9174};
9175
9176function getNativeEvent( event ) {
9177
9178	while ( event && typeof event.originalEvent !== "undefined" ) {
9179		event = event.originalEvent;
9180	}
9181	return event;
9182}
9183
9184function createVirtualEvent( event, eventType ) {
9185
9186	var t = event.type,
9187		oe, props, ne, prop, ct, touch, i, j, len;
9188
9189	event = $.Event( event );
9190	event.type = eventType;
9191
9192	oe = event.originalEvent;
9193	props = $.event.props;
9194
9195	// addresses separation of $.event.props in to $.event.mouseHook.props and Issue 3280
9196	// https://github.com/jquery/jquery-mobile/issues/3280
9197	if ( t.search( /^(mouse|click)/ ) > -1 ) {
9198		props = mouseEventProps;
9199	}
9200
9201	// copy original event properties over to the new event
9202	// this would happen if we could call $.event.fix instead of $.Event
9203	// but we don't have a way to force an event to be fixed multiple times
9204	if ( oe ) {
9205		for ( i = props.length, prop; i; ) {
9206			prop = props[ --i ];
9207			event[ prop ] = oe[ prop ];
9208		}
9209	}
9210
9211	// make sure that if the mouse and click virtual events are generated
9212	// without a .which one is defined
9213	if ( t.search(/mouse(down|up)|click/) > -1 && !event.which ) {
9214		event.which = 1;
9215	}
9216
9217	if ( t.search(/^touch/) !== -1 ) {
9218		ne = getNativeEvent( oe );
9219		t = ne.touches;
9220		ct = ne.changedTouches;
9221		touch = ( t && t.length ) ? t[0] : ( ( ct && ct.length ) ? ct[ 0 ] : undefined );
9222
9223		if ( touch ) {
9224			for ( j = 0, len = touchEventProps.length; j < len; j++) {
9225				prop = touchEventProps[ j ];
9226				event[ prop ] = touch[ prop ];
9227			}
9228		}
9229	}
9230
9231	return event;
9232}
9233
9234function getVirtualBindingFlags( element ) {
9235
9236	var flags = {},
9237		b, k;
9238
9239	while ( element ) {
9240
9241		b = $.data( element, dataPropertyName );
9242
9243		for (  k in b ) {
9244			if ( b[ k ] ) {
9245				flags[ k ] = flags.hasVirtualBinding = true;
9246			}
9247		}
9248		element = element.parentNode;
9249	}
9250	return flags;
9251}
9252
9253function getClosestElementWithVirtualBinding( element, eventType ) {
9254	var b;
9255	while ( element ) {
9256
9257		b = $.data( element, dataPropertyName );
9258
9259		if ( b && ( !eventType || b[ eventType ] ) ) {
9260			return element;
9261		}
9262		element = element.parentNode;
9263	}
9264	return null;
9265}
9266
9267function enableTouchBindings() {
9268	blockTouchTriggers = false;
9269}
9270
9271function disableTouchBindings() {
9272	blockTouchTriggers = true;
9273}
9274
9275function enableMouseBindings() {
9276	lastTouchID = 0;
9277	clickBlockList.length = 0;
9278	blockMouseTriggers = false;
9279
9280	// When mouse bindings are enabled, our
9281	// touch bindings are disabled.
9282	disableTouchBindings();
9283}
9284
9285function disableMouseBindings() {
9286	// When mouse bindings are disabled, our
9287	// touch bindings are enabled.
9288	enableTouchBindings();
9289}
9290
9291function startResetTimer() {
9292	clearResetTimer();
9293	resetTimerID = setTimeout( function() {
9294		resetTimerID = 0;
9295		enableMouseBindings();
9296	}, $.vmouse.resetTimerDuration );
9297}
9298
9299function clearResetTimer() {
9300	if ( resetTimerID ) {
9301		clearTimeout( resetTimerID );
9302		resetTimerID = 0;
9303	}
9304}
9305
9306function triggerVirtualEvent( eventType, event, flags ) {
9307	var ve;
9308
9309	if ( ( flags && flags[ eventType ] ) ||
9310				( !flags && getClosestElementWithVirtualBinding( event.target, eventType ) ) ) {
9311
9312		ve = createVirtualEvent( event, eventType );
9313
9314		$( event.target).trigger( ve );
9315	}
9316
9317	return ve;
9318}
9319
9320function mouseEventCallback( event ) {
9321	var touchID = $.data( event.target, touchTargetPropertyName ),
9322		ve;
9323
9324	if ( !blockMouseTriggers && ( !lastTouchID || lastTouchID !== touchID ) ) {
9325		ve = triggerVirtualEvent( "v" + event.type, event );
9326		if ( ve ) {
9327			if ( ve.isDefaultPrevented() ) {
9328				event.preventDefault();
9329			}
9330			if ( ve.isPropagationStopped() ) {
9331				event.stopPropagation();
9332			}
9333			if ( ve.isImmediatePropagationStopped() ) {
9334				event.stopImmediatePropagation();
9335			}
9336		}
9337	}
9338}
9339
9340function handleTouchStart( event ) {
9341
9342	var touches = getNativeEvent( event ).touches,
9343		target, flags, t;
9344
9345	if ( touches && touches.length === 1 ) {
9346
9347		target = event.target;
9348		flags = getVirtualBindingFlags( target );
9349
9350		if ( flags.hasVirtualBinding ) {
9351
9352			lastTouchID = nextTouchID++;
9353			$.data( target, touchTargetPropertyName, lastTouchID );
9354
9355			clearResetTimer();
9356
9357			disableMouseBindings();
9358			didScroll = false;
9359
9360			t = getNativeEvent( event ).touches[ 0 ];
9361			startX = t.pageX;
9362			startY = t.pageY;
9363
9364			triggerVirtualEvent( "vmouseover", event, flags );
9365			triggerVirtualEvent( "vmousedown", event, flags );
9366		}
9367	}
9368}
9369
9370function handleScroll( event ) {
9371	if ( blockTouchTriggers ) {
9372		return;
9373	}
9374
9375	if ( !didScroll ) {
9376		triggerVirtualEvent( "vmousecancel", event, getVirtualBindingFlags( event.target ) );
9377	}
9378
9379	didScroll = true;
9380	startResetTimer();
9381}
9382
9383function handleTouchMove( event ) {
9384	if ( blockTouchTriggers ) {
9385		return;
9386	}
9387
9388	var t = getNativeEvent( event ).touches[ 0 ],
9389		didCancel = didScroll,
9390		moveThreshold = $.vmouse.moveDistanceThreshold,
9391		flags = getVirtualBindingFlags( event.target );
9392
9393		didScroll = didScroll ||
9394			( Math.abs( t.pageX - startX ) > moveThreshold ||
9395				Math.abs( t.pageY - startY ) > moveThreshold );
9396
9397
9398	if ( didScroll && !didCancel ) {
9399		triggerVirtualEvent( "vmousecancel", event, flags );
9400	}
9401
9402	triggerVirtualEvent( "vmousemove", event, flags );
9403	startResetTimer();
9404}
9405
9406function handleTouchEnd( event ) {
9407	if ( blockTouchTriggers ) {
9408		return;
9409	}
9410
9411	disableTouchBindings();
9412
9413	var flags = getVirtualBindingFlags( event.target ),
9414		ve, t;
9415	triggerVirtualEvent( "vmouseup", event, flags );
9416
9417	if ( !didScroll ) {
9418		ve = triggerVirtualEvent( "vclick", event, flags );
9419		if ( ve && ve.isDefaultPrevented() ) {
9420			// The target of the mouse events that follow the touchend
9421			// event don't necessarily match the target used during the
9422			// touch. This means we need to rely on coordinates for blocking
9423			// any click that is generated.
9424			t = getNativeEvent( event ).changedTouches[ 0 ];
9425			clickBlockList.push({
9426				touchID: lastTouchID,
9427				x: t.clientX,
9428				y: t.clientY
9429			});
9430
9431			// Prevent any mouse events that follow from triggering
9432			// virtual event notifications.
9433			blockMouseTriggers = true;
9434		}
9435	}
9436	triggerVirtualEvent( "vmouseout", event, flags);
9437	didScroll = false;
9438
9439	startResetTimer();
9440}
9441
9442function hasVirtualBindings( ele ) {
9443	var bindings = $.data( ele, dataPropertyName ),
9444		k;
9445
9446	if ( bindings ) {
9447		for ( k in bindings ) {
9448			if ( bindings[ k ] ) {
9449				return true;
9450			}
9451		}
9452	}
9453	return false;
9454}
9455
9456function dummyMouseHandler() {}
9457
9458function getSpecialEventObject( eventType ) {
9459	var realType = eventType.substr( 1 );
9460
9461	return {
9462		setup: function(/* data, namespace */) {
9463			// If this is the first virtual mouse binding for this element,
9464			// add a bindings object to its data.
9465
9466			if ( !hasVirtualBindings( this ) ) {
9467				$.data( this, dataPropertyName, {} );
9468			}
9469
9470			// If setup is called, we know it is the first binding for this
9471			// eventType, so initialize the count for the eventType to zero.
9472			var bindings = $.data( this, dataPropertyName );
9473			bindings[ eventType ] = true;
9474
9475			// If this is the first virtual mouse event for this type,
9476			// register a global handler on the document.
9477
9478			activeDocHandlers[ eventType ] = ( activeDocHandlers[ eventType ] || 0 ) + 1;
9479
9480			if ( activeDocHandlers[ eventType ] === 1 ) {
9481				$document.bind( realType, mouseEventCallback );
9482			}
9483
9484			// Some browsers, like Opera Mini, won't dispatch mouse/click events
9485			// for elements unless they actually have handlers registered on them.
9486			// To get around this, we register dummy handlers on the elements.
9487
9488			$( this ).bind( realType, dummyMouseHandler );
9489
9490			// For now, if event capture is not supported, we rely on mouse handlers.
9491			if ( eventCaptureSupported ) {
9492				// If this is the first virtual mouse binding for the document,
9493				// register our touchstart handler on the document.
9494
9495				activeDocHandlers[ "touchstart" ] = ( activeDocHandlers[ "touchstart" ] || 0) + 1;
9496
9497				if ( activeDocHandlers[ "touchstart" ] === 1 ) {
9498					$document.bind( "touchstart", handleTouchStart )
9499						.bind( "touchend", handleTouchEnd )
9500
9501						// On touch platforms, touching the screen and then dragging your finger
9502						// causes the window content to scroll after some distance threshold is
9503						// exceeded. On these platforms, a scroll prevents a click event from being
9504						// dispatched, and on some platforms, even the touchend is suppressed. To
9505						// mimic the suppression of the click event, we need to watch for a scroll
9506						// event. Unfortunately, some platforms like iOS don't dispatch scroll
9507						// events until *AFTER* the user lifts their finger (touchend). This means
9508						// we need to watch both scroll and touchmove events to figure out whether
9509						// or not a scroll happenens before the touchend event is fired.
9510
9511						.bind( "touchmove", handleTouchMove )
9512						.bind( "scroll", handleScroll );
9513				}
9514			}
9515		},
9516
9517		teardown: function(/* data, namespace */) {
9518			// If this is the last virtual binding for this eventType,
9519			// remove its global handler from the document.
9520
9521			--activeDocHandlers[ eventType ];
9522
9523			if ( !activeDocHandlers[ eventType ] ) {
9524				$document.unbind( realType, mouseEventCallback );
9525			}
9526
9527			if ( eventCaptureSupported ) {
9528				// If this is the last virtual mouse binding in existence,
9529				// remove our document touchstart listener.
9530
9531				--activeDocHandlers[ "touchstart" ];
9532
9533				if ( !activeDocHandlers[ "touchstart" ] ) {
9534					$document.unbind( "touchstart", handleTouchStart )
9535						.unbind( "touchmove", handleTouchMove )
9536						.unbind( "touchend", handleTouchEnd )
9537						.unbind( "scroll", handleScroll );
9538				}
9539			}
9540
9541			var $this = $( this ),
9542				bindings = $.data( this, dataPropertyName );
9543
9544			// teardown may be called when an element was
9545			// removed from the DOM. If this is the case,
9546			// jQuery core may have already stripped the element
9547			// of any data bindings so we need to check it before
9548			// using it.
9549			if ( bindings ) {
9550				bindings[ eventType ] = false;
9551			}
9552
9553			// Unregister the dummy event handler.
9554
9555			$this.unbind( realType, dummyMouseHandler );
9556
9557			// If this is the last virtual mouse binding on the
9558			// element, remove the binding data from the element.
9559
9560			if ( !hasVirtualBindings( this ) ) {
9561				$this.removeData( dataPropertyName );
9562			}
9563		}
9564	};
9565}
9566
9567// Expose our custom events to the jQuery bind/unbind mechanism.
9568
9569for ( i = 0; i < virtualEventNames.length; i++ ) {
9570	$.event.special[ virtualEventNames[ i ] ] = getSpecialEventObject( virtualEventNames[ i ] );
9571}
9572
9573// Add a capture click handler to block clicks.
9574// Note that we require event capture support for this so if the device
9575// doesn't support it, we punt for now and rely solely on mouse events.
9576if ( eventCaptureSupported ) {
9577	document.addEventListener( "click", function( e ) {
9578		var cnt = clickBlockList.length,
9579			target = e.target,
9580			x, y, ele, i, o, touchID;
9581
9582		if ( cnt ) {
9583			x = e.clientX;
9584			y = e.clientY;
9585			threshold = $.vmouse.clickDistanceThreshold;
9586
9587			// The idea here is to run through the clickBlockList to see if
9588			// the current click event is in the proximity of one of our
9589			// vclick events that had preventDefault() called on it. If we find
9590			// one, then we block the click.
9591			//
9592			// Why do we have to rely on proximity?
9593			//
9594			// Because the target of the touch event that triggered the vclick
9595			// can be different from the target of the click event synthesized
9596			// by the browser. The target of a mouse/click event that is syntehsized
9597			// from a touch event seems to be implementation specific. For example,
9598			// some browsers will fire mouse/click events for a link that is near
9599			// a touch event, even though the target of the touchstart/touchend event
9600			// says the user touched outside the link. Also, it seems that with most
9601			// browsers, the target of the mouse/click event is not calculated until the
9602			// time it is dispatched, so if you replace an element that you touched
9603			// with another element, the target of the mouse/click will be the new
9604			// element underneath that point.
9605			//
9606			// Aside from proximity, we also check to see if the target and any
9607			// of its ancestors were the ones that blocked a click. This is necessary
9608			// because of the strange mouse/click target calculation done in the
9609			// Android 2.1 browser, where if you click on an element, and there is a
9610			// mouse/click handler on one of its ancestors, the target will be the
9611			// innermost child of the touched element, even if that child is no where
9612			// near the point of touch.
9613
9614			ele = target;
9615
9616			while ( ele ) {
9617				for ( i = 0; i < cnt; i++ ) {
9618					o = clickBlockList[ i ];
9619					touchID = 0;
9620
9621					if ( ( ele === target && Math.abs( o.x - x ) < threshold && Math.abs( o.y - y ) < threshold ) ||
9622								$.data( ele, touchTargetPropertyName ) === o.touchID ) {
9623						// XXX: We may want to consider removing matches from the block list
9624						//      instead of waiting for the reset timer to fire.
9625						e.preventDefault();
9626						e.stopPropagation();
9627						return;
9628					}
9629				}
9630				ele = ele.parentNode;
9631			}
9632		}
9633	}, true);
9634}
9635}
9635)( $, window, document );
9636
9637(function( $ ) {
9638	$.mobile = {};
9639}( $ ));
9640	(function( $, undefined ) {
9641		var support = {
9642			touch: "ontouchend" in document
9643		};
9644
9645		$.mobile.support = $.mobile.support || {};
9646		$.extend( $.support, support );
9647		$.extend( $.mobile.support, support );
9648	}( $ ));
9649
9650
9651(function( $, window, undefined ) {
9652	var $document = $( document ),
9653		supportTouch = $.mobile.support.touch,
9654		scrollEvent = "touchmove scroll",
9655		touchStartEvent = supportTouch ? "touchstart" : "mousedown",
9656		touchStopEvent = supportTouch ? "touchend" : "mouseup",
9657		touchMoveEvent = supportTouch ? "touchmove" : "mousemove";
9658
9659	// setup new event shortcuts
9660	$.each( ( "touchstart touchmove touchend " +
9661		"tap taphold " +
9662		"swipe swipeleft swiperight " +
9663		"scrollstart scrollstop" ).split( " " ), function( i, name ) {
9664
9665		$.fn[ name ] = function( fn ) {
9666			return fn ? this.bind( name, fn ) : this.trigger( name );
9667		};
9668
9669		// jQuery < 1.8
9670		if ( $.attrFn ) {
9671			$.attrFn[ name ] = true;
9672		}
9673	});
9674
9675	function triggerCustomEvent( obj, eventType, event ) {
9676		var originalType = event.type;
9677		event.type = eventType;
9678		$.event.dispatch.call( obj, event );
9679		event.type = originalType;
9680	}
9681
9682	// also handles scrollstop
9683	$.event.special.scrollstart = {
9684
9685		enabled: true,
9686		setup: function() {
9687
9688			var thisObject = this,
9689				$this = $( thisObject ),
9690				scrolling,
9691				timer;
9692
9693			function trigger( event, state ) {
9694				scrolling = state;
9695				triggerCustomEvent( thisObject, scrolling ? "scrollstart" : "scrollstop", event );
9696			}
9697
9698			// iPhone triggers scroll after a small delay; use touchmove instead
9699			$this.bind( scrollEvent, function( event ) {
9700
9701				if ( !$.event.special.scrollstart.enabled ) {
9702					return;
9703				}
9704
9705				if ( !scrolling ) {
9706					trigger( event, true );
9707				}
9708
9709				clearTimeout( timer );
9710				timer = setTimeout( function() {
9711					trigger( event, false );
9712				}, 50 );
9713			});
9714		},
9715		teardown: function() {
9716			$( this ).unbind( scrollEvent );
9717		}
9718	};
9719
9720	// also handles taphold
9721	$.event.special.tap = {
9722		tapholdThreshold: 750,
9723		emitTapOnTaphold: true,
9724		setup: function() {
9725			var thisObject = this,
9726				$this = $( thisObject ),
9727				isTaphold = false;
9728
9729			$this.bind( "vmousedown", function( event ) {
9730				isTaphold = false;
9731				if ( event.which && event.which !== 1 ) {
9732					return false;
9733				}
9734
9735				var origTarget = event.target,
9736					timer;
9737
9738				function clearTapTimer() {
9739					clearTimeout( timer );
9740				}
9741
9742				function clearTapHandlers() {
9743					clearTapTimer();
9744
9745					$this.unbind( "vclick", clickHandler )
9746						.unbind( "vmouseup", clearTapTimer );
9747					$document.unbind( "vmousecancel", clearTapHandlers );
9748				}
9749
9750				function clickHandler( event ) {
9751					clearTapHandlers();
9752
9753					// ONLY trigger a 'tap' event if the start target is
9754					// the same as the stop target.
9755					if ( !isTaphold && origTarget === event.target ) {
9756						triggerCustomEvent( thisObject, "tap", event );
9757					} else if ( isTaphold ) {
9758						event.stopPropagation();
9759					}
9760				}
9761
9762				$this.bind( "vmouseup", clearTapTimer )
9763					.bind( "vclick", clickHandler );
9764				$document.bind( "vmousecancel", clearTapHandlers );
9765
9766				timer = setTimeout( function() {
9767					if( $.event.special.tap.emitTapOnTaphold ) {
9768						isTaphold = true;
9769					}
9770					triggerCustomEvent( thisObject, "taphold", $.Event( "taphold", { target: origTarget } ) );
9771				}, $.event.special.tap.tapholdThreshold );
9772			});
9773		},
9774		teardown: function() {
9775			$( this ).unbind( "vmousedown" ).unbind( "vclick" ).unbind( "vmouseup" );
9776			$document.unbind( "vmousecancel" );
9777		}
9778	};
9779
9780	// also handles swipeleft, swiperight
9781	$.event.special.swipe = {
9782		scrollSupressionThreshold: 30, // More than this horizontal displacement, and we will suppress scrolling.
9783
9784		durationThreshold: 1000, // More time than this, and it isn't a swipe.
9785
9786		horizontalDistanceThreshold: 30,  // Swipe horizontal displacement must be more than this.
9787
9788		verticalDistanceThreshold: 75,  // Swipe vertical displacement must be less than this.
9789
9790		start: function( event ) {
9791			var data = event.originalEvent.touches ?
9792					event.originalEvent.touches[ 0 ] : event;
9793			return {
9794						time: ( new Date() ).getTime(),
9795						coords: [ data.pageX, data.pageY ],
9796						origin: $( event.target )
9797					};
9798		},
9799
9800		stop: function( event ) {
9801			var data = event.originalEvent.touches ?
9802					event.originalEvent.touches[ 0 ] : event;
9803			return {
9804						time: ( new Date() ).getTime(),
9805						coords: [ data.pageX, data.pageY ]
9806					};
9807		},
9808
9809		handleSwipe: function( start, stop, thisObject, origTarget ) {
9810			if ( stop.time - start.time < $.event.special.swipe.durationThreshold &&
9811				Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.horizontalDistanceThreshold &&
9812				Math.abs( start.coords[ 1 ] - stop.coords[ 1 ] ) < $.event.special.swipe.verticalDistanceThreshold ) {
9813				var direction = start.coords[0] > stop.coords[ 0 ] ? "swipeleft" : "swiperight";
9814
9815				triggerCustomEvent( thisObject, "swipe", $.Event( "swipe", { target: origTarget }) );
9816				triggerCustomEvent( thisObject, direction,$.Event( direction, { target: origTarget } ) );
9817			}
9818		},
9819
9820		setup: function() {
9821			var thisObject = this,
9822				$this = $( thisObject );
9823
9824			$this.bind( touchStartEvent, function( event ) {
9825				var stop,
9826					start = $.event.special.swipe.start( event ),
9827					origTarget = event.target;
9828
9829				function moveHandler( event ) {
9830					if ( !start ) {
9831						return;
9832					}
9833
9834					stop = $.event.special.swipe.stop( event );
9835
9836					// prevent scrolling
9837					if ( Math.abs( start.coords[ 0 ] - stop.coords[ 0 ] ) > $.event.special.swipe.scrollSupressionThreshold ) {
9838						event.preventDefault();
9839					}
9840				}
9841
9842				$this.bind( touchMoveEvent, moveHandler )
9843					.one( touchStopEvent, function() {
9844						$this.unbind( touchMoveEvent, moveHandler );
9845
9846						if ( start && stop ) {
9847							$.event.special.swipe.handleSwipe( start, stop, thisObject, origTarget );
9848						}
9849						start = stop = undefined;
9850				});
9851			});
9852		},
9853
9854		teardown: function() {
9855			$( this ).unbind( touchStartEvent ).unbind( touchMoveEvent ).unbind( touchStopEvent );
9856		}
9857	};
9858	$.each({
9859		scrollstop: "scrollstart",
9860		taphold: "tap",
9861		swipeleft: "swipe",
9862		swiperight: "swipe"
9863	}, function( event, sourceEvent ) {
9864
9865		$.event.special[ event ] = {
9866			setup: function() {
9867				$( this ).bind( sourceEvent, $.noop );
9868			},
9869			teardown: function() {
9870				$( this ).unbind( sourceEvent );
9871			}
9872		};
9873	});
9874
9875})( $, this );
9876
9877}));
9878
9879},{}],343:[function(require,module,exports){
9880(function(window, factory) {
9881	var lazySizes = factory(window, window.document);
9882	window.lazySizes = lazySizes;
9883	if(typeof module == 'object' && module.exports){
9884		module.exports = lazySizes;
9885	}
9886}(window, function l(window, document) {
9887	'use strict';
9888	/*jshint eqnull:true */
9889	if(!document.getElementsByClassName){return;}
9890
9891	var lazysizes, lazySizesConfig;
9892
9893	var docElem = document.documentElement;
9894
9895	var Date = window.Date;
9896
9897	var supportPicture = window.HTMLPictureElement;
9898
9899	var _addEventListener = 'addEventListener';
9900
9901	var _getAttribute = 'getAttribute';
9902
9903	var addEventListener = window[_addEventListener];
9904
9905	var setTimeout = window.setTimeout;
9906
9907	var requestAnimationFrame = window.requestAnimationFrame || setTimeout;
9908
9909	var requestIdleCallback = window.requestIdleCallback;
9910
9911	var regPicture = /^picture$/i;
9912
9913	var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];
9914
9915	var regClassCache = {};
9916
vendor: 11,318 bytes, lines 9917-10373
9917	var forEach = Array.prototype.forEach;
9918
9919	var hasClass = function(ele, cls) {
9920		if(!regClassCache[cls]){
9921			regClassCache[cls] = new RegExp('(\\s|^)'+cls+'(\\s|$)');
9922		}
9923		return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];
9924	};
9925
9926	var addClass = function(ele, cls) {
9927		if (!hasClass(ele, cls)){
9928			ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);
9929		}
9930	};
9931
9932	var removeClass = function(ele, cls) {
9933		var reg;
9934		if ((reg = hasClass(ele,cls))) {
9935			ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));
9936		}
9937	};
9938
9939	var addRemoveLoadEvents = function(dom, fn, add){
9940		var action = add ? _addEventListener : 'removeEventListener';
9941		if(add){
9942			addRemoveLoadEvents(dom, fn);
9943		}
9944		loadEvents.forEach(function(evt){
9945			dom[action](evt, fn);
9946		});
9947	};
9948
9949	var triggerEvent = function(elem, name, detail, noBubbles, noCancelable){
9950		var event = document.createEvent('Event');
9951
9952		if(!detail){
9953			detail = {};
9954		}
9955
9956		detail.instance = lazysizes;
9957
9958		event.initEvent(name, !noBubbles, !noCancelable);
9959
9960		event.detail = detail;
9961
9962		elem.dispatchEvent(event);
9963		return event;
9964	};
9965
9966	var updatePolyfill = function (el, full){
9967		var polyfill;
9968		if( !supportPicture && ( polyfill = (window.picturefill || lazySizesConfig.pf) ) ){
9969			if(full && full.src && !el[_getAttribute]('srcset')){
9970				el.setAttribute('srcset', full.src);
9971			}
9972			polyfill({reevaluate: true, elements: [el]});
9973		} else if(full && full.src){
9974			el.src = full.src;
9975		}
9976	};
9977
9978	var getCSS = function (elem, style){
9979		return (getComputedStyle(elem, null) || {})[style];
9980	};
9981
9982	var getWidth = function(elem, parent, width){
9983		width = width || elem.offsetWidth;
9984
9985		while(width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth){
9986			width =  parent.offsetWidth;
9987			parent = parent.parentNode;
9988		}
9989
9990		return width;
9991	};
9992
9993	var rAF = (function(){
9994		var running, waiting;
9995		var firstFns = [];
9996		var secondFns = [];
9997		var fns = firstFns;
9998
9999		var run = function(){
10000			var runFns = fns;
10001
10002			fns = firstFns.length ? secondFns : firstFns;
10003
10004			running = true;
10005			waiting = false;
10006
10007			while(runFns.length){
10008				runFns.shift()();
10009			}
10010
10011			running = false;
10012		};
10013
10014		var rafBatch = function(fn, queue){
10015			if(running && !queue){
10016				fn.apply(this, arguments);
10017			} else {
10018				fns.push(fn);
10019
10020				if(!waiting){
10021					waiting = true;
10022					(document.hidden ? setTimeout : requestAnimationFrame)(run);
10023				}
10024			}
10025		};
10026
10027		rafBatch._lsFlush = run;
10028
10029		return rafBatch;
10030	})();
10031
10032	var rAFIt = function(fn, simple){
10033		return simple ?
10034			function() {
10035				rAF(fn);
10036			} :
10037			function(){
10038				var that = this;
10039				var args = arguments;
10040				rAF(function(){
10041					fn.apply(that, args);
10042				});
10043			}
10044		;
10045	};
10046
10047	var throttle = function(fn){
10048		var running;
10049		var lastTime = 0;
10050		var gDelay = lazySizesConfig.throttleDelay;
10051		var rICTimeout = lazySizesConfig.ricTimeout;
10052		var run = function(){
10053			running = false;
10054			lastTime = Date.now();
10055			fn();
10056		};
10057		var idleCallback = requestIdleCallback && rICTimeout > 49 ?
10058			function(){
10059				requestIdleCallback(run, {timeout: rICTimeout});
10060
10061				if(rICTimeout !== lazySizesConfig.ricTimeout){
10062					rICTimeout = lazySizesConfig.ricTimeout;
10063				}
10064			} :
10065			rAFIt(function(){
10066				setTimeout(run);
10067			}, true)
10068		;
10069
10070		return function(isPriority){
10071			var delay;
10072
10073			if((isPriority = isPriority === true)){
10074				rICTimeout = 33;
10075			}
10076
10077			if(running){
10078				return;
10079			}
10080
10081			running =  true;
10082
10083			delay = gDelay - (Date.now() - lastTime);
10084
10085			if(delay < 0){
10086				delay = 0;
10087			}
10088
10089			if(isPriority || delay < 9){
10090				idleCallback();
10091			} else {
10092				setTimeout(idleCallback, delay);
10093			}
10094		};
10095	};
10096
10097	//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html
10098	var debounce = function(func) {
10099		var timeout, timestamp;
10100		var wait = 99;
10101		var run = function(){
10102			timeout = null;
10103			func();
10104		};
10105		var later = function() {
10106			var last = Date.now() - timestamp;
10107
10108			if (last < wait) {
10109				setTimeout(later, wait - last);
10110			} else {
10111				(requestIdleCallback || run)(run);
10112			}
10113		};
10114
10115		return function() {
10116			timestamp = Date.now();
10117
10118			if (!timeout) {
10119				timeout = setTimeout(later, wait);
10120			}
10121		};
10122	};
10123
10124	(function(){
10125		var prop;
10126
10127		var lazySizesDefaults = {
10128			lazyClass: 'lazyload',
10129			loadedClass: 'lazyloaded',
10130			loadingClass: 'lazyloading',
10131			preloadClass: 'lazypreload',
10132			errorClass: 'lazyerror',
10133			//strictClass: 'lazystrict',
10134			autosizesClass: 'lazyautosizes',
10135			srcAttr: 'data-src',
10136			srcsetAttr: 'data-srcset',
10137			sizesAttr: 'data-sizes',
10138			//preloadAfterLoad: false,
10139			minSize: 40,
10140			customMedia: {},
10141			init: true,
10142			expFactor: 1.5,
10143			hFac: 0.8,
10144			loadMode: 2,
10145			loadHidden: true,
10146			ricTimeout: 0,
10147			throttleDelay: 125,
10148		};
10149
10150		lazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};
10151
10152		for(prop in lazySizesDefaults){
10153			if(!(prop in lazySizesConfig)){
10154				lazySizesConfig[prop] = lazySizesDefaults[prop];
10155			}
10156		}
10157
10158		window.lazySizesConfig = lazySizesConfig;
10159
10160		setTimeout(function(){
10161			if(lazySizesConfig.init){
10162				init();
10163			}
10164		});
10165	})();
10166
10167	var loader = (function(){
10168		var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;
10169
10170		var eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;
10171
10172		var regImg = /^img$/i;
10173		var regIframe = /^iframe$/i;
10174
10175		var supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));
10176
10177		var shrinkExpand = 0;
10178		var currentExpand = 0;
10179
10180		var isLoading = 0;
10181		var lowRuns = -1;
10182
10183		var resetPreloading = function(e){
10184			isLoading--;
10185			if(!e || isLoading < 0 || !e.target){
10186				isLoading = 0;
10187			}
10188		};
10189
10190		var isVisible = function (elem) {
10191			if (isBodyHidden == null) {
10192				isBodyHidden = getCSS(document.body, 'visibility') == 'hidden';
10193			}
10194
10195			return isBodyHidden || (getCSS(elem.parentNode, 'visibility') != 'hidden' && getCSS(elem, 'visibility') != 'hidden');
10196		};
10197
10198		var isNestedVisible = function(elem, elemExpand){
10199			var outerRect;
10200			var parent = elem;
10201			var visible = isVisible(elem);
10202
10203			eLtop -= elemExpand;
10204			eLbottom += elemExpand;
10205			eLleft -= elemExpand;
10206			eLright += elemExpand;
10207
10208			while(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){
10209				visible = ((getCSS(parent, 'opacity') || 1) > 0);
10210
10211				if(visible && getCSS(parent, 'overflow') != 'visible'){
10212					outerRect = parent.getBoundingClientRect();
10213					visible = eLright > outerRect.left &&
10214						eLleft < outerRect.right &&
10215						eLbottom > outerRect.top - 1 &&
10216						eLtop < outerRect.bottom + 1
10217					;
10218				}
10219			}
10220
10221			return visible;
10222		};
10223
10224		var checkElements = function() {
10225			var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,
10226				beforeExpandVal, defaultExpand, preloadExpand, hFac;
10227			var lazyloadElems = lazysizes.elements;
10228
10229			if((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){
10230
10231				i = 0;
10232
10233				lowRuns++;
10234
10235				defaultExpand = (!lazySizesConfig.expand || lazySizesConfig.expand < 1) ?
10236					docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :
10237					lazySizesConfig.expand;
10238
10239				lazysizes._defEx = defaultExpand;
10240
10241				preloadExpand = defaultExpand * lazySizesConfig.expFactor;
10242				hFac = lazySizesConfig.hFac;
10243				isBodyHidden = null;
10244
10245				if(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){
10246					currentExpand = preloadExpand;
10247					lowRuns = 0;
10248				} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){
10249					currentExpand = defaultExpand;
10250				} else {
10251					currentExpand = shrinkExpand;
10252				}
10253
10254				for(; i < eLlen; i++){
10255
10256					if(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}
10257
10258					if(!supportScroll){unveilElement(lazyloadElems[i]);continue;}
10259
10260					if(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){
10261						elemExpand = currentExpand;
10262					}
10263
10264					if(beforeExpandVal !== elemExpand){
10265						eLvW = innerWidth + (elemExpand * hFac);
10266						elvH = innerHeight + elemExpand;
10267						elemNegativeExpand = elemExpand * -1;
10268						beforeExpandVal = elemExpand;
10269					}
10270
10271					rect = lazyloadElems[i].getBoundingClientRect();
10272
10273					if ((eLbottom = rect.bottom) >= elemNegativeExpand &&
10274						(eLtop = rect.top) <= elvH &&
10275						(eLright = rect.right) >= elemNegativeExpand * hFac &&
10276						(eLleft = rect.left) <= eLvW &&
10277						(eLbottom || eLright || eLleft || eLtop) &&
10278						(lazySizesConfig.loadHidden || isVisible(lazyloadElems[i])) &&
10279						((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){
10280						unveilElement(lazyloadElems[i]);
10281						loadedSomething = true;
10282						if(isLoading > 9){break;}
10283					} else if(!loadedSomething && isCompleted && !autoLoadElem &&
10284						isLoading < 4 && lowRuns < 4 && loadMode > 2 &&
10285						(preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&
10286						(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))){
10287						autoLoadElem = preloadElems[0] || lazyloadElems[i];
10288					}
10289				}
10290
10291				if(autoLoadElem && !loadedSomething){
10292					unveilElement(autoLoadElem);
10293				}
10294			}
10295		};
10296
10297		var throttledCheckElements = throttle(checkElements);
10298
10299		var switchLoadingClass = function(e){
10300			var elem = e.target;
10301
10302			if (elem._lazyCache) {
10303				delete elem._lazyCache;
10304				return;
10305			}
10306
10307			resetPreloading(e);
10308			addClass(elem, lazySizesConfig.loadedClass);
10309			removeClass(elem, lazySizesConfig.loadingClass);
10310			addRemoveLoadEvents(elem, rafSwitchLoadingClass);
10311			triggerEvent(elem, 'lazyloaded');
10312		};
10313		var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);
10314		var rafSwitchLoadingClass = function(e){
10315			rafedSwitchLoadingClass({target: e.target});
10316		};
10317
10318		var changeIframeSrc = function(elem, src){
10319			try {
10320				elem.contentWindow.location.replace(src);
10321			} catch(e){
10322				elem.src = src;
10323			}
10324		};
10325
10326		var handleSources = function(source){
10327			var customMedia;
10328
10329			var sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);
10330
10331			if( (customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){
10332				source.setAttribute('media', customMedia);
10333			}
10334
10335			if(sourceSrcset){
10336				source.setAttribute('srcset', sourceSrcset);
10337			}
10338		};
10339
10340		var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){
10341			var src, srcset, parent, isPicture, event, firesLoad;
10342
10343			if(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){
10344
10345				if(sizes){
10346					if(isAuto){
10347						addClass(elem, lazySizesConfig.autosizesClass);
10348					} else {
10349						elem.setAttribute('sizes', sizes);
10350					}
10351				}
10352
10353				srcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);
10354				src = elem[_getAttribute](lazySizesConfig.srcAttr);
10355
10356				if(isImg) {
10357					parent = elem.parentNode;
10358					isPicture = parent && regPicture.test(parent.nodeName || '');
10359				}
10360
10361				firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));
10362
10363				event = {target: elem};
10364
10365				addClass(elem, lazySizesConfig.loadingClass);
10366
10367				if(firesLoad){
10368					clearTimeout(resetPreloadingTimer);
10369					resetPreloadingTimer = setTimeout(resetPreloading, 2500);
10370					addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);
10371				}
10372
10373				if(isPicture){
10374					forEach.call(parent.getElementsByTagName('source'), handleSources);
10375				}
10376
10377				if(srcset){
10378					elem.setAttribute('srcset', srcset);
10379				} else if(src && !isPicture){
10380					if(regIframe.test(elem.nodeName)){
10381						changeIframeSrc(elem, src);
10382					} else {
10383						elem.src = src;
10384					}
10385				}
10386
10387				if(isImg && (srcset || isPicture)){
10388					updatePolyfill(elem, {src: src});
10389				}
10390			}
10391
10392			if(elem._lazyRace){
10393				delete elem._lazyRace;
10394			}
10395			removeClass(elem, lazySizesConfig.lazyClass);
10396
10397			rAF(function(){
10398				// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)
10399				var isLoaded = elem.complete && elem.naturalWidth > 1;
10400
10401				if( !firesLoad || isLoaded){
10402					if (isLoaded) {
10403						addClass(elem, 'ls-is-cached');
10404					}
10405					switchLoadingClass(event);
10406					elem._lazyCache = true;
10407					setTimeout(function(){
10408						if ('_lazyCache' in elem) {
10409							delete elem._lazyCache;
10410						}
10411					}, 9);
10412				}
10413			}, true);
10414		});
10415
10416		var unveilElement = function (elem){
10417			var detail;
10418
10419			var isImg = regImg.test(elem.nodeName);
10420
10421			//allow using sizes="auto", but don't use. it's invalid. Use data-sizes="auto" or a valid value for sizes instead (i.e.: sizes="80vw")
10422			var sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));
10423			var isAuto = sizes == 'auto';
10424
10425			if( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)){return;}
10426
10427			detail = triggerEvent(elem, 'lazyunveilread').detail;
10428
10429			if(isAuto){
10430				 autoSizer.updateElem(elem, true, elem.offsetWidth);
10431			}
10432
10433			elem._lazyRace = true;
10434			isLoading++;
10435
10436			lazyUnveil(elem, detail, isAuto, sizes, isImg);
10437		};
10438
10439		var onload = function(){
10440			if(isCompleted){return;}
10441			if(Date.now() - started < 999){
10442				setTimeout(onload, 999);
10443				return;
10444			}
10445			var afterScroll = debounce(function(){
10446				lazySizesConfig.loadMode = 3;
10447				throttledCheckElements();
10448			});
10449
10450			isCompleted = true;
10451
10452			lazySizesConfig.loadMode = 3;
10453
10454			throttledCheckElements();
10455
10456			addEventListener('scroll', function(){
10457				if(lazySizesConfig.loadMode == 3){
10458					lazySizesConfig.loadMode = 2;
10459				}
10460				afterScroll();
10461			}, true);
10462		};
10463
10464		return {
10465			_: function(){
10466				started = Date.now();
10467
10468				lazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);
10469				preloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);
10470
10471				addEventListener('scroll', throttledCheckElements, true);
10472
10473				addEventListener('resize', throttledCheckElements, true);
10474
10475				if(window.MutationObserver){
10476					new MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );
10477				} else {
10478					docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);
10479					docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);
10480					setInterval(throttledCheckElements, 999);
10481				}
10482
10483				addEventListener('hashchange', throttledCheckElements, true);
10484
10485				//, 'fullscreenchange'
10486				['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function(name){
10487					document[_addEventListener](name, throttledCheckElements, true);
10488				});
10489
10490				if((/d$|^c/.test(document.readyState))){
10491					onload();
10492				} else {
10493					addEventListener('load', onload);
10494					document[_addEventListener]('DOMContentLoaded', throttledCheckElements);
10495					setTimeout(onload, 20000);
10496				}
10497
10498				if(lazysizes.elements.length){
10499					checkElements();
10500					rAF._lsFlush();
10501				} else {
10502					throttledCheckElements();
10503				}
10504			},
10505			checkElems: throttledCheckElements,
10506			unveil: unveilElement
10507		};
10508	})();
10509
10510
10511	var autoSizer = (function(){
10512		var autosizesElems;
10513
10514		var sizeElement = rAFIt(function(elem, parent, event, width){
10515			var sources, i, len;
10516			elem._lazysizesWidth = width;
10517			width += 'px';
10518
10519			elem.setAttribute('sizes', width);
10520
10521			if(regPicture.test(parent.nodeName || '')){
10522				sources = parent.getElementsByTagName('source');
10523				for(i = 0, len = sources.length; i < len; i++){
10524					sources[i].setAttribute('sizes', width);
10525				}
10526			}
10527
10528			if(!event.detail.dataAttr){
10529				updatePolyfill(elem, event.detail);
10530			}
10531		});
10532		var getSizeElement = function (elem, dataAttr, width){
10533			var event;
10534			var parent = elem.parentNode;
10535
10536			if(parent){
10537				width = getWidth(elem, parent, width);
10538				event = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});
10539
10540				if(!event.defaultPrevented){
10541					width = event.detail.width;
10542
10543					if(width && width !== elem._lazysizesWidth){
10544						sizeElement(elem, parent, event, width);
10545					}
10546				}
10547			}
10548		};
10549
10550		var updateElementsSizes = function(){
10551			var i;
10552			var len = autosizesElems.length;
10553			if(len){
10554				i = 0;
10555
10556				for(; i < len; i++){
10557					getSizeElement(autosizesElems[i]);
10558				}
10559			}
10560		};
10561
10562		var debouncedUpdateElementsSizes = debounce(updateElementsSizes);
10563
10564		return {
10565			_: function(){
10566				autosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);
10567				addEventListener('resize', debouncedUpdateElementsSizes);
10568			},
10569			checkElems: debouncedUpdateElementsSizes,
10570			updateElem: getSizeElement
10571		};
10572	})();
10573
10574	var init = function(){
10575		if(!init.i){
10576			init.i = true;
10577			autoSizer._();
10578			loader._();
10579		}
10580	};
10581
10582	lazysizes = {
10583		cfg: lazySizesConfig,
10584		autoSizer: autoSizer,
10585		loader: loader,
10586		init: init,
10587		uP: updatePolyfill,
10588		aC: addClass,
10589		rC: removeClass,
10590		hC: hasClass,
10591		fire: triggerEvent,
10592		gW: getWidth,
10593		rAF: rAF,
10594	};
10595
10596	return lazysizes;
10597}
10598));
10599
10600},{}],344:[function(require,module,exports){
10601var hasMap = typeof Map === 'function' && Map.prototype;
10602var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;
10603var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;
10604var mapForEach = hasMap && Map.prototype.forEach;
10605var hasSet = typeof Set === 'function' && Set.prototype;
10606var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;
10607var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;
10608var setForEach = hasSet && Set.prototype.forEach;
10609var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;
10610var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
10611var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;
10612var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
10613var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;
10614var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
10615var booleanValueOf = Boolean.prototype.valueOf;
10616var objectToString = Object.prototype.toString;
10617var functionToString = Function.prototype.toString;
10618var $match = String.prototype.match;
10619var $slice = String.prototype.slice;
10620var $replace = String.prototype.replace;
10621var $toUpperCase = String.prototype.toUpperCase;
10622var $toLowerCase = String.prototype.toLowerCase;
10623var $test = RegExp.prototype.test;
10624var $concat = Array.prototype.concat;
10625var $join = Array.prototype.join;
10626var $arrSlice = Array.prototype.slice;
10627var $floor = Math.floor;
10628var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;
10629var gOPS = Object.getOwnPropertySymbols;
10630var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;
10631var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';
10632// ie, `has-tostringtag/shams
10633var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')
10634    ? Symbol.toStringTag
10635    : null;
10636var isEnumerable = Object.prototype.propertyIsEnumerable;
10637
10638var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (
10639    [].__proto__ === Array.prototype // eslint-disable-line no-proto
10640        ? function (O) {
10641            return O.__proto__; // eslint-disable-line no-proto
10642        }
10643        : null
10644);
10645
10646function addNumericSeparator(num, str) {
10647    if (
10648        num === Infinity
10649        || num === -Infinity
10650        || num !== num
10651        || (num && num > -1000 && num < 1000)
10652        || $test.call(/e/, str)
10653    ) {
10654        return str;
10655    }
10656    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
10657    if (typeof num === 'number') {
10658        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)
10659        if (int !== num) {
10660            var intStr = String(int);
10661            var dec = $slice.call(str, intStr.length + 1);
10662            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');
10663        }
10664    }
10665    return $replace.call(str, sepRegex, '$&_');
10666}
10667
10668var utilInspect = require('./util.inspect');
vendor: 3,328 bytes, lines 10669-10762
10669var inspectCustom = utilInspect.custom;
10670var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
10671
10672module.exports = function inspect_(obj, options, depth, seen) {
10673    var opts = options || {};
10674
10675    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {
10676        throw new TypeError('option "quoteStyle" must be "single" or "double"');
10677    }
10678    if (
10679        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'
10680            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity
10681            : opts.maxStringLength !== null
10682        )
10683    ) {
10684        throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
10685    }
10686    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;
10687    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {
10688        throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`');
10689    }
10690
10691    if (
10692        has(opts, 'indent')
10693        && opts.indent !== null
10694        && opts.indent !== '\t'
10695        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)
10696    ) {
10697        throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
10698    }
10699    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {
10700        throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
10701    }
10702    var numericSeparator = opts.numericSeparator;
10703
10704    if (typeof obj === 'undefined') {
10705        return 'undefined';
10706    }
10707    if (obj === null) {
10708        return 'null';
10709    }
10710    if (typeof obj === 'boolean') {
10711        return obj ? 'true' : 'false';
10712    }
10713
10714    if (typeof obj === 'string') {
10715        return inspectString(obj, opts);
10716    }
10717    if (typeof obj === 'number') {
10718        if (obj === 0) {
10719            return Infinity / obj > 0 ? '0' : '-0';
10720        }
10721        var str = String(obj);
10722        return numericSeparator ? addNumericSeparator(obj, str) : str;
10723    }
10724    if (typeof obj === 'bigint') {
10725        var bigIntStr = String(obj) + 'n';
10726        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
10727    }
10728
10729    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;
10730    if (typeof depth === 'undefined') { depth = 0; }
10731    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {
10732        return isArray(obj) ? '[Array]' : '[Object]';
10733    }
10734
10735    var indent = getIndent(opts, depth);
10736
10737    if (typeof seen === 'undefined') {
10738        seen = [];
10739    } else if (indexOf(seen, obj) >= 0) {
10740        return '[Circular]';
10741    }
10742
10743    function inspect(value, from, noIndent) {
10744        if (from) {
10745            seen = $arrSlice.call(seen);
10746            seen.push(from);
10747        }
10748        if (noIndent) {
10749            var newOpts = {
10750                depth: opts.depth
10751            };
10752            if (has(opts, 'quoteStyle')) {
10753                newOpts.quoteStyle = opts.quoteStyle;
10754            }
10755            return inspect_(value, newOpts, depth + 1, seen);
10756        }
10757        return inspect_(value, opts, depth + 1, seen);
10758    }
10759
10760    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable
10761        var name = nameOf(obj);
10762        var keys = arrObjKeys(obj, inspect);
vendor: 3,014 bytes, lines 10763-10836
10763        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');
10764    }
10765    if (isSymbol(obj)) {
10766        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj);
10767        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;
10768    }
10769    if (isElement(obj)) {
10770        var s = '<' + $toLowerCase.call(String(obj.nodeName));
10771        var attrs = obj.attributes || [];
10772        for (var i = 0; i < attrs.length; i++) {
10773            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);
10774        }
10775        s += '>';
10776        if (obj.childNodes && obj.childNodes.length) { s += '...'; }
10777        s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';
10778        return s;
10779    }
10780    if (isArray(obj)) {
10781        if (obj.length === 0) { return '[]'; }
10782        var xs = arrObjKeys(obj, inspect);
10783        if (indent && !singleLineValues(xs)) {
10784            return '[' + indentedJoin(xs, indent) + ']';
10785        }
10786        return '[ ' + $join.call(xs, ', ') + ' ]';
10787    }
10788    if (isError(obj)) {
10789        var parts = arrObjKeys(obj, inspect);
10790        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {
10791            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';
10792        }
10793        if (parts.length === 0) { return '[' + String(obj) + ']'; }
10794        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';
10795    }
10796    if (typeof obj === 'object' && customInspect) {
10797        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {
10798            return utilInspect(obj, { depth: maxDepth - depth });
10799        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {
10800            return obj.inspect();
10801        }
10802    }
10803    if (isMap(obj)) {
10804        var mapParts = [];
10805        mapForEach.call(obj, function (value, key) {
10806            mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));
10807        });
10808        return collectionOf('Map', mapSize.call(obj), mapParts, indent);
10809    }
10810    if (isSet(obj)) {
10811        var setParts = [];
10812        setForEach.call(obj, function (value) {
10813            setParts.push(inspect(value, obj));
10814        });
10815        return collectionOf('Set', setSize.call(obj), setParts, indent);
10816    }
10817    if (isWeakMap(obj)) {
10818        return weakCollectionOf('WeakMap');
10819    }
10820    if (isWeakSet(obj)) {
10821        return weakCollectionOf('WeakSet');
10822    }
10823    if (isWeakRef(obj)) {
10824        return weakCollectionOf('WeakRef');
10825    }
10826    if (isNumber(obj)) {
10827        return markBoxed(inspect(Number(obj)));
10828    }
10829    if (isBigInt(obj)) {
10830        return markBoxed(inspect(bigIntValueOf.call(obj)));
10831    }
10832    if (isBoolean(obj)) {
10833        return markBoxed(booleanValueOf.call(obj));
10834    }
10835    if (isString(obj)) {
10836        return markBoxed(inspect(String(obj)))
vendor: 8,843 bytes, lines 10836-11114
10836;
10837    }
10838    if (!isDate(obj) && !isRegExp(obj)) {
10839        var ys = arrObjKeys(obj, inspect);
10840        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
10841        var protoTag = obj instanceof Object ? '' : 'null prototype';
10842        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';
10843        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';
10844        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');
10845        if (ys.length === 0) { return tag + '{}'; }
10846        if (indent) {
10847            return tag + '{' + indentedJoin(ys, indent) + '}';
10848        }
10849        return tag + '{ ' + $join.call(ys, ', ') + ' }';
10850    }
10851    return String(obj);
10852};
10853
10854function wrapQuotes(s, defaultStyle, opts) {
10855    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
10856    return quoteChar + s + quoteChar;
10857}
10858
10859function quote(s) {
10860    return $replace.call(String(s), /"/g, '&quot;');
10861}
10862
10863function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10864function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10865function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10866function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10867function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10868function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10869function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }
10870
10871// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives
10872function isSymbol(obj) {
10873    if (hasShammedSymbols) {
10874        return obj && typeof obj === 'object' && obj instanceof Symbol;
10875    }
10876    if (typeof obj === 'symbol') {
10877        return true;
10878    }
10879    if (!obj || typeof obj !== 'object' || !symToString) {
10880        return false;
10881    }
10882    try {
10883        symToString.call(obj);
10884        return true;
10885    } catch (e) {}
10886    return false;
10887}
10888
10889function isBigInt(obj) {
10890    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {
10891        return false;
10892    }
10893    try {
10894        bigIntValueOf.call(obj);
10895        return true;
10896    } catch (e) {}
10897    return false;
10898}
10899
10900var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };
10901function has(obj, key) {
10902    return hasOwn.call(obj, key);
10903}
10904
10905function toStr(obj) {
10906    return objectToString.call(obj);
10907}
10908
10909function nameOf(f) {
10910    if (f.name) { return f.name; }
10911    var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
10912    if (m) { return m[1]; }
10913    return null;
10914}
10915
10916function indexOf(xs, x) {
10917    if (xs.indexOf) { return xs.indexOf(x); }
10918    for (var i = 0, l = xs.length; i < l; i++) {
10919        if (xs[i] === x) { return i; }
10920    }
10921    return -1;
10922}
10923
10924function isMap(x) {
10925    if (!mapSize || !x || typeof x !== 'object') {
10926        return false;
10927    }
10928    try {
10929        mapSize.call(x);
10930        try {
10931            setSize.call(x);
10932        } catch (s) {
10933            return true;
10934        }
10935        return x instanceof Map; // core-js workaround, pre-v2.5.0
10936    } catch (e) {}
10937    return false;
10938}
10939
10940function isWeakMap(x) {
10941    if (!weakMapHas || !x || typeof x !== 'object') {
10942        return false;
10943    }
10944    try {
10945        weakMapHas.call(x, weakMapHas);
10946        try {
10947            weakSetHas.call(x, weakSetHas);
10948        } catch (s) {
10949            return true;
10950        }
10951        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0
10952    } catch (e) {}
10953    return false;
10954}
10955
10956function isWeakRef(x) {
10957    if (!weakRefDeref || !x || typeof x !== 'object') {
10958        return false;
10959    }
10960    try {
10961        weakRefDeref.call(x);
10962        return true;
10963    } catch (e) {}
10964    return false;
10965}
10966
10967function isSet(x) {
10968    if (!setSize || !x || typeof x !== 'object') {
10969        return false;
10970    }
10971    try {
10972        setSize.call(x);
10973        try {
10974            mapSize.call(x);
10975        } catch (m) {
10976            return true;
10977        }
10978        return x instanceof Set; // core-js workaround, pre-v2.5.0
10979    } catch (e) {}
10980    return false;
10981}
10982
10983function isWeakSet(x) {
10984    if (!weakSetHas || !x || typeof x !== 'object') {
10985        return false;
10986    }
10987    try {
10988        weakSetHas.call(x, weakSetHas);
10989        try {
10990            weakMapHas.call(x, weakMapHas);
10991        } catch (s) {
10992            return true;
10993        }
10994        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0
10995    } catch (e) {}
10996    return false;
10997}
10998
10999function isElement(x) {
11000    if (!x || typeof x !== 'object') { return false; }
11001    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {
11002        return true;
11003    }
11004    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';
11005}
11006
11007function inspectString(str, opts) {
11008    if (str.length > opts.maxStringLength) {
11009        var remaining = str.length - opts.maxStringLength;
11010        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');
11011        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
11012    }
11013    // eslint-disable-next-line no-control-regex
11014    var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte);
11015    return wrapQuotes(s, 'single', opts);
11016}
11017
11018function lowbyte(c) {
11019    var n = c.charCodeAt(0);
11020    var x = {
11021        8: 'b',
11022        9: 't',
11023        10: 'n',
11024        12: 'f',
11025        13: 'r'
11026    }[n];
11027    if (x) { return '\\' + x; }
11028    return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));
11029}
11030
11031function markBoxed(str) {
11032    return 'Object(' + str + ')';
11033}
11034
11035function weakCollectionOf(type) {
11036    return type + ' { ? }';
11037}
11038
11039function collectionOf(type, size, entries, indent) {
11040    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');
11041    return type + ' (' + size + ') {' + joinedEntries + '}';
11042}
11043
11044function singleLineValues(xs) {
11045    for (var i = 0; i < xs.length; i++) {
11046        if (indexOf(xs[i], '\n') >= 0) {
11047            return false;
11048        }
11049    }
11050    return true;
11051}
11052
11053function getIndent(opts, depth) {
11054    var baseIndent;
11055    if (opts.indent === '\t') {
11056        baseIndent = '\t';
11057    } else if (typeof opts.indent === 'number' && opts.indent > 0) {
11058        baseIndent = $join.call(Array(opts.indent + 1), ' ');
11059    } else {
11060        return null;
11061    }
11062    return {
11063        base: baseIndent,
11064        prev: $join.call(Array(depth + 1), baseIndent)
11065    };
11066}
11067
11068function indentedJoin(xs, indent) {
11069    if (xs.length === 0) { return ''; }
11070    var lineJoiner = '\n' + indent.prev + indent.base;
11071    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev;
11072}
11073
11074function arrObjKeys(obj, inspect) {
11075    var isArr = isArray(obj);
11076    var xs = [];
11077    if (isArr) {
11078        xs.length = obj.length;
11079        for (var i = 0; i < obj.length; i++) {
11080            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';
11081        }
11082    }
11083    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];
11084    var symMap;
11085    if (hasShammedSymbols) {
11086        symMap = {};
11087        for (var k = 0; k < syms.length; k++) {
11088            symMap['$' + syms[k]] = syms[k];
11089        }
11090    }
11091
11092    for (var key in obj) { // eslint-disable-line no-restricted-syntax
11093        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
11094        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue
11095        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {
11096            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section
11097            continue; // eslint-disable-line no-restricted-syntax, no-continue
11098        } else if ($test.call(/[^\w$]/, key)) {
11099            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));
11100        } else {
11101            xs.push(key + ': ' + inspect(obj[key], obj));
11102        }
11103    }
11104    if (typeof gOPS === 'function') {
11105        for (var j = 0; j < syms.length; j++) {
11106            if (isEnumerable.call(obj, syms[j])) {
11107                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));
11108            }
11109        }
11110    }
11111    return xs;
11112}
11113
11114}
11114,{"./util.inspect":3}],345:[function(require,module,exports){
vendor: 44,683 bytes, lines 11115-12658
11115/*! picturefill - v3.0.2 - 2016-02-12
11116 * https://scottjehl.github.io/picturefill/
11117 * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT
11118 */
11119/*! Gecko-Picture - v1.0
11120 * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture
11121 * Firefox's early picture implementation (prior to FF41) is static and does
11122 * not react to viewport changes. This tiny module fixes this.
11123 */
11124(function(window) {
11125	/*jshint eqnull:true */
11126	var ua = navigator.userAgent;
11127
11128	if ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\:(\d+)/) && RegExp.$1 < 45) ) {
11129		addEventListener("resize", (function() {
11130			var timer;
11131
11132			var dummySrc = document.createElement("source");
11133
11134			var fixRespimg = function(img) {
11135				var source, sizes;
11136				var picture = img.parentNode;
11137
11138				if (picture.nodeName.toUpperCase() === "PICTURE") {
11139					source = dummySrc.cloneNode();
11140
11141					picture.insertBefore(source, picture.firstElementChild);
11142					setTimeout(function() {
11143						picture.removeChild(source);
11144					});
11145				} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {
11146					img._pfLastSize = img.offsetWidth;
11147					sizes = img.sizes;
11148					img.sizes += ",100vw";
11149					setTimeout(function() {
11150						img.sizes = sizes;
11151					});
11152				}
11153			};
11154
11155			var findPictureImgs = function() {
11156				var i;
11157				var imgs = document.querySelectorAll("picture > img, img[srcset][sizes]");
11158				for (i = 0; i < imgs.length; i++) {
11159					fixRespimg(imgs[i]);
11160				}
11161			};
11162			var onResize = function() {
11163				clearTimeout(timer);
11164				timer = setTimeout(findPictureImgs, 99);
11165			};
11166			var mq = window.matchMedia && matchMedia("(orientation: landscape)");
11167			var init = function() {
11168				onResize();
11169
11170				if (mq && mq.addListener) {
11171					mq.addListener(onResize);
11172				}
11173			};
11174
11175			dummySrc.srcset = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
11176
11177			if (/^[c|i]|d$/.test(document.readyState || "")) {
11178				init();
11179			} else {
11180				document.addEventListener("DOMContentLoaded", init);
11181			}
11182
11183			return onResize;
11184		})());
11185	}
11186})(window);
11187
11188/*! Picturefill - v3.0.2
11189 * http://scottjehl.github.io/picturefill
11190 * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;
11191 *  License: MIT
11192 */
11193
11194(function( window, document, undefined ) {
11195	// Enable strict mode
11196	"use strict";
11197
11198	// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)
11199	document.createElement( "picture" );
11200
11201	var warn, eminpx, alwaysCheckWDescriptor, evalId;
11202	// local object for method references and testing exposure
11203	var pf = {};
11204	var isSupportTestReady = false;
11205	var noop = function() {};
11206	var image = document.createElement( "img" );
11207	var getImgAttr = image.getAttribute;
11208	var setImgAttr = image.setAttribute;
11209	var removeImgAttr = image.removeAttribute;
11210	var docElem = document.documentElement;
11211	var types = {};
11212	var cfg = {
11213		//resource selection:
11214		algorithm: ""
11215	};
11216	var srcAttr = "data-pfsrc";
11217	var srcsetAttr = srcAttr + "set";
11218	// ua sniffing is done for undetectable img loading features,
11219	// to do some non crucial perf optimizations
11220	var ua = navigator.userAgent;
11221	var supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\:(\d+)/) && RegExp.$1 > 35 );
11222	var curSrcProp = "currentSrc";
11223	var regWDesc = /\s+\+?\d+(e\d+)?w/;
11224	var regSize = /(\([^)]+\))?\s*(.+)/;
11225	var setOptions = window.picturefillCFG;
11226	/**
11227	 * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )
11228	 */
11229	// baseStyle also used by getEmValue (i.e.: width: 1em is important)
11230	var baseStyle = "position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)";
11231	var fsCss = "font-size:100%!important;";
11232	var isVwDirty = true;
11233
11234	var cssCache = {};
11235	var sizeLengthCache = {};
11236	var DPR = window.devicePixelRatio;
11237	var units = {
11238		px: 1,
11239		"in": 96
11240	};
11241	var anchor = document.createElement( "a" );
11242	/**
11243	 * alreadyRun flag used for setOptions. is it true setOptions will reevaluate
11244	 * @type {boolean}
11245	 */
11246	var alreadyRun = false;
11247
11248	// Reusable, non-"g" Regexes
11249
11250	// (Don't use \s, to avoid matching non-breaking space.)
11251	var regexLeadingSpaces = /^[ \t\n\r\u000c]+/,
11252	    regexLeadingCommasOrSpaces = /^[, \t\n\r\u000c]+/,
11253	    regexLeadingNotSpaces = /^[^ \t\n\r\u000c]+/,
11254	    regexTrailingCommas = /[,]+$/,
11255	    regexNonNegativeInteger = /^\d+$/,
11256
11257	    // ( Positive or negative or unsigned integers or decimals, without or without exponents.
11258	    // Must include at least one digit.
11259	    // According to spec tests any decimal point must be followed by a digit.
11260	    // No leading plus sign is allowed.)
11261	    // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number
11262	    regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;
11263
11264	var on = function(obj, evt, fn, capture) {
11265		if ( obj.addEventListener ) {
11266			obj.addEventListener(evt, fn, capture || false);
11267		} else if ( obj.attachEvent ) {
11268			obj.attachEvent( "on" + evt, fn);
11269		}
11270	};
11271
11272	/**
11273	 * simple memoize function:
11274	 */
11275
11276	var memoize = function(fn) {
11277		var cache = {};
11278		return function(input) {
11279			if ( !(input in cache) ) {
11280				cache[ input ] = fn(input);
11281			}
11282			return cache[ input ];
11283		};
11284	};
11285
11286	// UTILITY FUNCTIONS
11287
11288	// Manual is faster than RegEx
11289	// http://jsperf.com/whitespace-character/5
11290	function isSpace(c) {
11291		return (c === "\u0020" || // space
11292		        c === "\u0009" || // horizontal tab
11293		        c === "\u000A" || // new line
11294		        c === "\u000C" || // form feed
11295		        c === "\u000D");  // carriage return
11296	}
11297
11298	/**
11299	 * gets a mediaquery and returns a boolean or gets a css length and returns a number
11300	 * @param css mediaqueries or css length
11301	 * @returns {boolean|number}
11302	 *
11303	 * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738
11304	 */
11305	var evalCSS = (function() {
11306
11307		var regLength = /^([\d\.]+)(em|vw|px)$/;
11308		var replace = function() {
11309			var args = arguments, index = 0, string = args[0];
11310			while (++index in args) {
11311				string = string.replace(args[index], args[++index]);
11312			}
11313			return string;
11314		};
11315
11316		var buildStr = memoize(function(css) {
11317
11318			return "return " + replace((css || "").toLowerCase(),
11319				// interpret `and`
11320				/\band\b/g, "&&",
11321
11322				// interpret `,`
11323				/,/g, "||",
11324
11325				// interpret `min-` as >=
11326				/min-([a-z-\s]+):/g, "e.$1>=",
11327
11328				// interpret `max-` as <=
11329				/max-([a-z-\s]+):/g, "e.$1<=",
11330
11331				//calc value
11332				/calc([^)]+)/g, "($1)",
11333
11334				// interpret css values
11335				/(\d+[\.]*[\d]*)([a-z]+)/g, "($1 * e.$2)",
11336				//make eval less evil
11337				/^(?!(e.[a-z]|[0-9\.&=|><\+\-\*\(\)\/])).*/ig, ""
11338			) + ";";
11339		});
11340
11341		return function(css, length) {
11342			var parsedLength;
11343			if (!(css in cssCache)) {
11344				cssCache[css] = false;
11345				if (length && (parsedLength = css.match( regLength ))) {
11346					cssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];
11347				} else {
11348					/*jshint evil:true */
11349					try{
11350						cssCache[css] = new Function("e", buildStr(css))(units);
11351					} catch(e) {}
11352					/*jshint evil:false */
11353				}
11354			}
11355			return cssCache[css];
11356		};
11357	})();
11358
11359	var setResolution = function( candidate, sizesattr ) {
11360		if ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...
11361			candidate.cWidth = pf.calcListLength( sizesattr || "100vw" );
11362			candidate.res = candidate.w / candidate.cWidth ;
11363		} else {
11364			candidate.res = candidate.d;
11365		}
11366		return candidate;
11367	};
11368
11369	/**
11370	 *
11371	 * @param opt
11372	 */
11373	var picturefill = function( opt ) {
11374
11375		if (!isSupportTestReady) {return;}
11376
11377		var elements, i, plen;
11378
11379		var options = opt || {};
11380
11381		if ( options.elements && options.elements.nodeType === 1 ) {
11382			if ( options.elements.nodeName.toUpperCase() === "IMG" ) {
11383				options.elements =  [ options.elements ];
11384			} else {
11385				options.context = options.elements;
11386				options.elements =  null;
11387			}
11388		}
11389
11390		elements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );
11391
11392		if ( (plen = elements.length) ) {
11393
11394			pf.setupRun( options );
11395			alreadyRun = true;
11396
11397			// Loop through all elements
11398			for ( i = 0; i < plen; i++ ) {
11399				pf.fillImg(elements[ i ], options);
11400			}
11401
11402			pf.teardownRun( options );
11403		}
11404	};
11405
11406	/**
11407	 * outputs a warning for the developer
11408	 * @param {message}
11409	 * @type {Function}
11410	 */
11411	warn = ( window.console && console.warn ) ?
11412		function( message ) {
11413			console.warn( message );
11414		} :
11415		noop
11416	;
11417
11418	if ( !(curSrcProp in image) ) {
11419		curSrcProp = "src";
11420	}
11421
11422	// Add support for standard mime types.
11423	types[ "image/jpeg" ] = true;
11424	types[ "image/gif" ] = true;
11425	types[ "image/png" ] = true;
11426
11427	function detectTypeSupport( type, typeUri ) {
11428		// based on Modernizr's lossless img-webp test
11429		// note: asynchronous
11430		var image = new window.Image();
11431		image.onerror = function() {
11432			types[ type ] = false;
11433			picturefill();
11434		};
11435		image.onload = function() {
11436			types[ type ] = image.width === 1;
11437			picturefill();
11438		};
11439		image.src = typeUri;
11440		return "pending";
11441	}
11442
11443	// test svg support
11444	types[ "image/svg+xml" ] = document.implementation.hasFeature( "http://www.w3.org/TR/SVG11/feature#Image", "1.1" );
11445
11446	/**
11447	 * updates the internal vW property with the current viewport width in px
11448	 */
11449	function updateMetrics() {
11450
11451		isVwDirty = false;
11452		DPR = window.devicePixelRatio;
11453		cssCache = {};
11454		sizeLengthCache = {};
11455
11456		pf.DPR = DPR || 1;
11457
11458		units.width = Math.max(window.innerWidth || 0, docElem.clientWidth);
11459		units.height = Math.max(window.innerHeight || 0, docElem.clientHeight);
11460
11461		units.vw = units.width / 100;
11462		units.vh = units.height / 100;
11463
11464		evalId = [ units.height, units.width, DPR ].join("-");
11465
11466		units.em = pf.getEmValue();
11467		units.rem = units.em;
11468	}
11469
11470	function chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {
11471		var bonusFactor, tooMuch, bonus, meanDensity;
11472
11473		//experimental
11474		if (cfg.algorithm === "saveData" ){
11475			if ( lowerValue > 2.7 ) {
11476				meanDensity = dprValue + 1;
11477			} else {
11478				tooMuch = higherValue - dprValue;
11479				bonusFactor = Math.pow(lowerValue - 0.6, 1.5);
11480
11481				bonus = tooMuch * bonusFactor;
11482
11483				if (isCached) {
11484					bonus += 0.1 * bonusFactor;
11485				}
11486
11487				meanDensity = lowerValue + bonus;
11488			}
11489		} else {
11490			meanDensity = (dprValue > 1) ?
11491				Math.sqrt(lowerValue * higherValue) :
11492				lowerValue;
11493		}
11494
11495		return meanDensity > dprValue;
11496	}
11497
11498	function applyBestCandidate( img ) {
11499		var srcSetCandidates;
11500		var matchingSet = pf.getSet( img );
11501		var evaluated = false;
11502		if ( matchingSet !== "pending" ) {
11503			evaluated = evalId;
11504			if ( matchingSet ) {
11505				srcSetCandidates = pf.setRes( matchingSet );
11506				pf.applySetCandidate( srcSetCandidates, img );
11507			}
11508		}
11509		img[ pf.ns ].evaled = evaluated;
11510	}
11511
11512	function ascendingSort( a, b ) {
11513		return a.res - b.res;
11514	}
11515
11516	function setSrcToCur( img, src, set ) {
11517		var candidate;
11518		if ( !set && src ) {
11519			set = img[ pf.ns ].sets;
11520			set = set && set[set.length - 1];
11521		}
11522
11523		candidate = getCandidateForSrc(src, set);
11524
11525		if ( candidate ) {
11526			src = pf.makeUrl(src);
11527			img[ pf.ns ].curSrc = src;
11528			img[ pf.ns ].curCan = candidate;
11529
11530			if ( !candidate.res ) {
11531				setResolution( candidate, candidate.set.sizes );
11532			}
11533		}
11534		return candidate;
11535	}
11536
11537	function getCandidateForSrc( src, set ) {
11538		var i, candidate, candidates;
11539		if ( src && set ) {
11540			candidates = pf.parseSet( set );
11541			src = pf.makeUrl(src);
11542			for ( i = 0; i < candidates.length; i++ ) {
11543				if ( src === pf.makeUrl(candidates[ i ].url) ) {
11544					candidate = candidates[ i ];
11545					break;
11546				}
11547			}
11548		}
11549		return candidate;
11550	}
11551
11552	function getAllSourceElements( picture, candidates ) {
11553		var i, len, source, srcset;
11554
11555		// SPEC mismatch intended for size and perf:
11556		// actually only source elements preceding the img should be used
11557		// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector
11558		var sources = picture.getElementsByTagName( "source" );
11559
11560		for ( i = 0, len = sources.length; i < len; i++ ) {
11561			source = sources[ i ];
11562			source[ pf.ns ] = true;
11563			srcset = source.getAttribute( "srcset" );
11564
11565			// if source does not have a srcset attribute, skip
11566			if ( srcset ) {
11567				candidates.push( {
11568					srcset: srcset,
11569					media: source.getAttribute( "media" ),
11570					type: source.getAttribute( "type" ),
11571					sizes: source.getAttribute( "sizes" )
11572				} );
11573			}
11574		}
11575	}
11576
11577	/**
11578	 * Srcset Parser
11579	 * By Alex Bell |  MIT License
11580	 *
11581	 * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]
11582	 *
11583	 * Based super duper closely on the reference algorithm at:
11584	 * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute
11585	 */
11586
11587	// 1. Let input be the value passed to this algorithm.
11588	// (TO-DO : Explain what "set" argument is here. Maybe choose a more
11589	// descriptive & more searchable name.  Since passing the "set" in really has
11590	// nothing to do with parsing proper, I would prefer this assignment eventually
11591	// go in an external fn.)
11592	function parseSrcset(input, set) {
11593
11594		function collectCharacters(regEx) {
11595			var chars,
11596			    match = regEx.exec(input.substring(pos));
11597			if (match) {
11598				chars = match[ 0 ];
11599				pos += chars.length;
11600				return chars;
11601			}
11602		}
11603
11604		var inputLength = input.length,
11605		    url,
11606		    descriptors,
11607		    currentDescriptor,
11608		    state,
11609		    c,
11610
11611		    // 2. Let position be a pointer into input, initially pointing at the start
11612		    //    of the string.
11613		    pos = 0,
11614
11615		    // 3. Let candidates be an initially empty source set.
11616		    candidates = [];
11617
11618		/**
11619		* Adds descriptor properties to a candidate, pushes to the candidates array
11620		* @return undefined
11621		*/
11622		// (Declared outside of the while loop so that it's only created once.
11623		// (This fn is defined before it is used, in order to pass JSHINT.
11624		// Unfortunately this breaks the sequencing of the spec comments. :/ )
11625		function parseDescriptors() {
11626
11627			// 9. Descriptor parser: Let error be no.
11628			var pError = false,
11629
11630			// 10. Let width be absent.
11631			// 11. Let density be absent.
11632			// 12. Let future-compat-h be absent. (We're implementing it now as h)
11633			    w, d, h, i,
11634			    candidate = {},
11635			    desc, lastChar, value, intVal, floatVal;
11636
11637			// 13. For each descriptor in descriptors, run the appropriate set of steps
11638			// from the following list:
11639			for (i = 0 ; i < descriptors.length; i++) {
11640				desc = descriptors[ i ];
11641
11642				lastChar = desc[ desc.length - 1 ];
11643				value = desc.substring(0, desc.length - 1);
11644				intVal = parseInt(value, 10);
11645				floatVal = parseFloat(value);
11646
11647				// If the descriptor consists of a valid non-negative integer followed by
11648				// a U+0077 LATIN SMALL LETTER W character
11649				if (regexNonNegativeInteger.test(value) && (lastChar === "w")) {
11650
11651					// If width and density are not both absent, then let error be yes.
11652					if (w || d) {pError = true;}
11653
11654					// Apply the rules for parsing non-negative integers to the descriptor.
11655					// If the result is zero, let error be yes.
11656					// Otherwise, let width be the result.
11657					if (intVal === 0) {pError = true;} else {w = intVal;}
11658
11659				// If the descriptor consists of a valid floating-point number followed by
11660				// a U+0078 LATIN SMALL LETTER X character
11661				} else if (regexFloatingPoint.test(value) && (lastChar === "x")) {
11662
11663					// If width, density and future-compat-h are not all absent, then let error
11664					// be yes.
11665					if (w || d || h) {pError = true;}
11666
11667					// Apply the rules for parsing floating-point number values to the descriptor.
11668					// If the result is less than zero, let error be yes. Otherwise, let density
11669					// be the result.
11670					if (floatVal < 0) {pError = true;} else {d = floatVal;}
11671
11672				// If the descriptor consists of a valid non-negative integer followed by
11673				// a U+0068 LATIN SMALL LETTER H character
11674				} else if (regexNonNegativeInteger.test(value) && (lastChar === "h")) {
11675
11676					// If height and density are not both absent, then let error be yes.
11677					if (h || d) {pError = true;}
11678
11679					// Apply the rules for parsing non-negative integers to the descriptor.
11680					// If the result is zero, let error be yes. Otherwise, let future-compat-h
11681					// be the result.
11682					if (intVal === 0) {pError = true;} else {h = intVal;}
11683
11684				// Anything else, Let error be yes.
11685				} else {pError = true;}
11686			} // (close step 13 for loop)
11687
11688			// 15. If error is still no, then append a new image source to candidates whose
11689			// URL is url, associated with a width width if not absent and a pixel
11690			// density density if not absent. Otherwise, there is a parse error.
11691			if (!pError) {
11692				candidate.url = url;
11693
11694				if (w) { candidate.w = w;}
11695				if (d) { candidate.d = d;}
11696				if (h) { candidate.h = h;}
11697				if (!h && !d && !w) {candidate.d = 1;}
11698				if (candidate.d === 1) {set.has1x = true;}
11699				candidate.set = set;
11700
11701				candidates.push(candidate);
11702			}
11703		} // (close parseDescriptors fn)
11704
11705		/**
11706		* Tokenizes descriptor properties prior to parsing
11707		* Returns undefined.
11708		* (Again, this fn is defined before it is used, in order to pass JSHINT.
11709		* Unfortunately this breaks the logical sequencing of the spec comments. :/ )
11710		*/
11711		function tokenize() {
11712
11713			// 8.1. Descriptor tokeniser: Skip whitespace
11714			collectCharacters(regexLeadingSpaces);
11715
11716			// 8.2. Let current descriptor be the empty string.
11717			currentDescriptor = "";
11718
11719			// 8.3. Let state be in descriptor.
11720			state = "in descriptor";
11721
11722			while (true) {
11723
11724				// 8.4. Let c be the character at position.
11725				c = input.charAt(pos);
11726
11727				//  Do the following depending on the value of state.
11728				//  For the purpose of this step, "EOF" is a special character representing
11729				//  that position is past the end of input.
11730
11731				// In descriptor
11732				if (state === "in descriptor") {
11733					// Do the following, depending on the value of c:
11734
11735				  // Space character
11736				  // If current descriptor is not empty, append current descriptor to
11737				  // descriptors and let current descriptor be the empty string.
11738				  // Set state to after descriptor.
11739					if (isSpace(c)) {
11740						if (currentDescriptor) {
11741							descriptors.push(currentDescriptor);
11742							currentDescriptor = "";
11743							state = "after descriptor";
11744						}
11745
11746					// U+002C COMMA (,)
11747					// Advance position to the next character in input. If current descriptor
11748					// is not empty, append current descriptor to descriptors. Jump to the step
11749					// labeled descriptor parser.
11750					} else if (c === ",") {
11751						pos += 1;
11752						if (currentDescriptor) {
11753							descriptors.push(currentDescriptor);
11754						}
11755						parseDescriptors();
11756						return;
11757
11758					// U+0028 LEFT PARENTHESIS (()
11759					// Append c to current descriptor. Set state to in parens.
11760					} else if (c === "\u0028") {
11761						currentDescriptor = currentDescriptor + c;
11762						state = "in parens";
11763
11764					// EOF
11765					// If current descriptor is not empty, append current descriptor to
11766					// descriptors. Jump to the step labeled descriptor parser.
11767					} else if (c === "") {
11768						if (currentDescriptor) {
11769							descriptors.push(currentDescriptor);
11770						}
11771						parseDescriptors();
11772						return;
11773
11774					// Anything else
11775					// Append c to current descriptor.
11776					} else {
11777						currentDescriptor = currentDescriptor + c;
11778					}
11779				// (end "in descriptor"
11780
11781				// In parens
11782				} else if (state === "in parens") {
11783
11784					// U+0029 RIGHT PARENTHESIS ())
11785					// Append c to current descriptor. Set state to in descriptor.
11786					if (c === ")") {
11787						currentDescriptor = currentDescriptor + c;
11788						state = "in descriptor";
11789
11790					// EOF
11791					// Append current descriptor to descriptors. Jump to the step labeled
11792					// descriptor parser.
11793					} else if (c === "") {
11794						descriptors.push(currentDescriptor);
11795						parseDescriptors();
11796						return;
11797
11798					// Anything else
11799					// Append c to current descriptor.
11800					} else {
11801						currentDescriptor = currentDescriptor + c;
11802					}
11803
11804				// After descriptor
11805				} else if (state === "after descriptor") {
11806
11807					// Do the following, depending on the value of c:
11808					// Space character: Stay in this state.
11809					if (isSpace(c)) {
11810
11811					// EOF: Jump to the step labeled descriptor parser.
11812					} else if (c === "") {
11813						parseDescriptors();
11814						return;
11815
11816					// Anything else
11817					// Set state to in descriptor. Set position to the previous character in input.
11818					} else {
11819						state = "in descriptor";
11820						pos -= 1;
11821
11822					}
11823				}
11824
11825				// Advance position to the next character in input.
11826				pos += 1;
11827
11828			// Repeat this step.
11829			} // (close while true loop)
11830		}
11831
11832		// 4. Splitting loop: Collect a sequence of characters that are space
11833		//    characters or U+002C COMMA characters. If any U+002C COMMA characters
11834		//    were collected, that is a parse error.
11835		while (true) {
11836			collectCharacters(regexLeadingCommasOrSpaces);
11837
11838			// 5. If position is past the end of input, return candidates and abort these steps.
11839			if (pos >= inputLength) {
11840				return candidates; // (we're done, this is the sole return path)
11841			}
11842
11843			// 6. Collect a sequence of characters that are not space characters,
11844			//    and let that be url.
11845			url = collectCharacters(regexLeadingNotSpaces);
11846
11847			// 7. Let descriptors be a new empty list.
11848			descriptors = [];
11849
11850			// 8. If url ends with a U+002C COMMA character (,), follow these substeps:
11851			//		(1). Remove all trailing U+002C COMMA characters from url. If this removed
11852			//         more than one character, that is a parse error.
11853			if (url.slice(-1) === ",") {
11854				url = url.replace(regexTrailingCommas, "");
11855				// (Jump ahead to step 9 to skip tokenization and just push the candidate).
11856				parseDescriptors();
11857
11858			//	Otherwise, follow these substeps:
11859			} else {
11860				tokenize();
11861			} // (close else of step 8)
11862
11863		// 16. Return to the step labeled splitting loop.
11864		} // (Close of big while loop.)
11865	}
11866
11867	/*
11868	 * Sizes Parser
11869	 *
11870	 * By Alex Bell |  MIT License
11871	 *
11872	 * Non-strict but accurate and lightweight JS Parser for the string value <img sizes="here">
11873	 *
11874	 * Reference algorithm at:
11875	 * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute
11876	 *
11877	 * Most comments are copied in directly from the spec
11878	 * (except for comments in parens).
11879	 *
11880	 * Grammar is:
11881	 * <source-size-list> = <source-size># [ , <source-size-value> ]? | <source-size-value>
11882	 * <source-size> = <media-condition> <source-size-value>
11883	 * <source-size-value> = <length>
11884	 * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes
11885	 *
11886	 * E.g. "(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw"
11887	 * or "(min-width: 30em), calc(30vw - 15px)" or just "30vw"
11888	 *
11889	 * Returns the first valid <css-length> with a media condition that evaluates to true,
11890	 * or "100vw" if all valid media conditions evaluate to false.
11891	 *
11892	 */
11893
11894	function parseSizes(strValue) {
11895
11896		// (Percentage CSS lengths are not allowed in this case, to avoid confusion:
11897		// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list
11898		// CSS allows a single optional plus or minus sign:
11899		// http://www.w3.org/TR/CSS2/syndata.html#numbers
11900		// CSS is ASCII case-insensitive:
11901		// http://www.w3.org/TR/CSS2/syndata.html#characters )
11902		// Spec allows exponential notation for <number> type:
11903		// http://dev.w3.org/csswg/css-values/#numbers
11904		var regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;
11905
11906		// (This is a quick and lenient test. Because of optional unlimited-depth internal
11907		// grouping parens and strict spacing rules, this could get very complicated.)
11908		var regexCssCalc = /^calc\((?:[0-9a-z \.\+\-\*\/\(\)]+)\)$/i;
11909
11910		var i;
11911		var unparsedSizesList;
11912		var unparsedSizesListLength;
11913		var unparsedSize;
11914		var lastComponentValue;
11915		var size;
11916
11917		// UTILITY FUNCTIONS
11918
11919		//  (Toy CSS parser. The goals here are:
11920		//  1) expansive test coverage without the weight of a full CSS parser.
11921		//  2) Avoiding regex wherever convenient.
11922		//  Quick tests: http://jsfiddle.net/gtntL4gr/3/
11923		//  Returns an array of arrays.)
11924		function parseComponentValues(str) {
11925			var chrctr;
11926			var component = "";
11927			var componentArray = [];
11928			var listArray = [];
11929			var parenDepth = 0;
11930			var pos = 0;
11931			var inComment = false;
11932
11933			function pushComponent() {
11934				if (component) {
11935					componentArray.push(component);
11936					component = "";
11937				}
11938			}
11939
11940			function pushComponentArray() {
11941				if (componentArray[0]) {
11942					listArray.push(componentArray);
11943					componentArray = [];
11944				}
11945			}
11946
11947			// (Loop forwards from the beginning of the string.)
11948			while (true) {
11949				chrctr = str.charAt(pos);
11950
11951				if (chrctr === "") { // ( End of string reached.)
11952					pushComponent();
11953					pushComponentArray();
11954					return listArray;
11955				} else if (inComment) {
11956					if ((chrctr === "*") && (str[pos + 1] === "/")) { // (At end of a comment.)
11957						inComment = false;
11958						pos += 2;
11959						pushComponent();
11960						continue;
11961					} else {
11962						pos += 1; // (Skip all characters inside comments.)
11963						continue;
11964					}
11965				} else if (isSpace(chrctr)) {
11966					// (If previous character in loop was also a space, or if
11967					// at the beginning of the string, do not add space char to
11968					// component.)
11969					if ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {
11970						pos += 1;
11971						continue;
11972					} else if (parenDepth === 0) {
11973						pushComponent();
11974						pos +=1;
11975						continue;
11976					} else {
11977						// (Replace any space character with a plain space for legibility.)
11978						chrctr = " ";
11979					}
11980				} else if (chrctr === "(") {
11981					parenDepth += 1;
11982				} else if (chrctr === ")") {
11983					parenDepth -= 1;
11984				} else if (chrctr === ",") {
11985					pushComponent();
11986					pushComponentArray();
11987					pos += 1;
11988					continue;
11989				} else if ( (chrctr === "/") && (str.charAt(pos + 1) === "*") ) {
11990					inComment = true;
11991					pos += 2;
11992					continue;
11993				}
11994
11995				component = component + chrctr;
11996				pos += 1;
11997			}
11998		}
11999
12000		function isValidNonNegativeSourceSizeValue(s) {
12001			if (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}
12002			if (regexCssCalc.test(s)) {return true;}
12003			// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:
12004			// "-0 is equivalent to 0 and is not a negative number." which means that
12005			// unitless zero and unitless negative zero must be accepted as special cases.)
12006			if ((s === "0") || (s === "-0") || (s === "+0")) {return true;}
12007			return false;
12008		}
12009
12010		// When asked to parse a sizes attribute from an element, parse a
12011		// comma-separated list of component values from the value of the element's
12012		// sizes attribute (or the empty string, if the attribute is absent), and let
12013		// unparsed sizes list be the result.
12014		// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values
12015
12016		unparsedSizesList = parseComponentValues(strValue);
12017		unparsedSizesListLength = unparsedSizesList.length;
12018
12019		// For each unparsed size in unparsed sizes list:
12020		for (i = 0; i < unparsedSizesListLength; i++) {
12021			unparsedSize = unparsedSizesList[i];
12022
12023			// 1. Remove all consecutive <whitespace-token>s from the end of unparsed size.
12024			// ( parseComponentValues() already omits spaces outside of parens. )
12025
12026			// If unparsed size is now empty, that is a parse error; continue to the next
12027			// iteration of this algorithm.
12028			// ( parseComponentValues() won't push an empty array. )
12029
12030			// 2. If the last component value in unparsed size is a valid non-negative
12031			// <source-size-value>, let size be its value and remove the component value
12032			// from unparsed size. Any CSS function other than the calc() function is
12033			// invalid. Otherwise, there is a parse error; continue to the next iteration
12034			// of this algorithm.
12035			// http://dev.w3.org/csswg/css-syntax/#parse-component-value
12036			lastComponentValue = unparsedSize[unparsedSize.length - 1];
12037
12038			if (isValidNonNegativeSourceSizeValue(lastComponentValue)) {
12039				size = lastComponentValue;
12040				unparsedSize.pop();
12041			} else {
12042				continue;
12043			}
12044
12045			// 3. Remove all consecutive <whitespace-token>s from the end of unparsed
12046			// size. If unparsed size is now empty, return size and exit this algorithm.
12047			// If this was not the last item in unparsed sizes list, that is a parse error.
12048			if (unparsedSize.length === 0) {
12049				return size;
12050			}
12051
12052			// 4. Parse the remaining component values in unparsed size as a
12053			// <media-condition>. If it does not parse correctly, or it does parse
12054			// correctly but the <media-condition> evaluates to false, continue to the
12055			// next iteration of this algorithm.
12056			// (Parsing all possible compound media conditions in JS is heavy, complicated,
12057			// and the payoff is unclear. Is there ever an situation where the
12058			// media condition parses incorrectly but still somehow evaluates to true?
12059			// Can we just rely on the browser/polyfill to do it?)
12060			unparsedSize = unparsedSize.join(" ");
12061			if (!(pf.matchesMedia( unparsedSize ) ) ) {
12062				continue;
12063			}
12064
12065			// 5. Return size and exit this algorithm.
12066			return size;
12067		}
12068
12069		// If the above algorithm exhausts unparsed sizes list without returning a
12070		// size value, return 100vw.
12071		return "100vw";
12072	}
12073
12074	// namespace
12075	pf.ns = ("pf" + new Date().getTime()).substr(0, 9);
12076
12077	// srcset support test
12078	pf.supSrcset = "srcset" in image;
12079	pf.supSizes = "sizes" in image;
12080	pf.supPicture = !!window.HTMLPictureElement;
12081
12082	// UC browser does claim to support srcset and picture, but not sizes,
12083	// this extended test reveals the browser does support nothing
12084	if (pf.supSrcset && pf.supPicture && !pf.supSizes) {
12085		(function(image2) {
12086			image.srcset = "data:,a";
12087			image2.src = "data:,a";
12088			pf.supSrcset = image.complete === image2.complete;
12089			pf.supPicture = pf.supSrcset && pf.supPicture;
12090		})(document.createElement("img"));
12091	}
12092
12093	// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute
12094	if (pf.supSrcset && !pf.supSizes) {
12095
12096		(function() {
12097			var width2 = "data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==";
12098			var width1 = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
12099			var img = document.createElement("img");
12100			var test = function() {
12101				var width = img.width;
12102
12103				if (width === 2) {
12104					pf.supSizes = true;
12105				}
12106
12107				alwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;
12108
12109				isSupportTestReady = true;
12110				// force async
12111				setTimeout(picturefill);
12112			};
12113
12114			img.onload = test;
12115			img.onerror = test;
12116			img.setAttribute("sizes", "9px");
12117
12118			img.srcset = width1 + " 1w," + width2 + " 9w";
12119			img.src = width1;
12120		})();
12121
12122	} else {
12123		isSupportTestReady = true;
12124	}
12125
12126	// using pf.qsa instead of dom traversing does scale much better,
12127	// especially on sites mixing responsive and non-responsive images
12128	pf.selShort = "picture>img,img[srcset]";
12129	pf.sel = pf.selShort;
12130	pf.cfg = cfg;
12131
12132	/**
12133	 * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )
12134	 */
12135	pf.DPR = (DPR  || 1 );
12136	pf.u = units;
12137
12138	// container of supported mime types that one might need to qualify before using
12139	pf.types =  types;
12140
12141	pf.setSize = noop;
12142
12143	/**
12144	 * Gets a string and returns the absolute URL
12145	 * @param src
12146	 * @returns {String} absolute URL
12147	 */
12148
12149	pf.makeUrl = memoize(function(src) {
12150		anchor.href = src;
12151		return anchor.href;
12152	});
12153
12154	/**
12155	 * Gets a DOM element or document and a selctor and returns the found matches
12156	 * Can be extended with jQuery/Sizzle for IE7 support
12157	 * @param context
12158	 * @param sel
12159	 * @returns {NodeList|Array}
12160	 */
12161	pf.qsa = function(context, sel) {
12162		return ( "querySelector" in context ) ? context.querySelectorAll(sel) : [];
12163	};
12164
12165	/**
12166	 * Shortcut method for matchMedia ( for easy overriding in tests )
12167	 * wether native or pf.mMQ is used will be decided lazy on first call
12168	 * @returns {boolean}
12169	 */
12170	pf.matchesMedia = function() {
12171		if ( window.matchMedia && (matchMedia( "(min-width: 0.1em)" ) || {}).matches ) {
12172			pf.matchesMedia = function( media ) {
12173				return !media || ( matchMedia( media ).matches );
12174			};
12175		} else {
12176			pf.matchesMedia = pf.mMQ;
12177		}
12178
12179		return pf.matchesMedia.apply( this, arguments );
12180	};
12181
12182	/**
12183	 * A simplified matchMedia implementation for IE8 and IE9
12184	 * handles only min-width/max-width with px or em values
12185	 * @param media
12186	 * @returns {boolean}
12187	 */
12188	pf.mMQ = function( media ) {
12189		return media ? evalCSS(media) : true;
12190	};
12191
12192	/**
12193	 * Returns the calculated length in css pixel from the given sourceSizeValue
12194	 * http://dev.w3.org/csswg/css-values-3/#length-value
12195	 * intended Spec mismatches:
12196	 * * Does not check for invalid use of CSS functions
12197	 * * Does handle a computed length of 0 the same as a negative and therefore invalid value
12198	 * @param sourceSizeValue
12199	 * @returns {Number}
12200	 */
12201	pf.calcLength = function( sourceSizeValue ) {
12202
12203		var value = evalCSS(sourceSizeValue, true) || false;
12204		if (value < 0) {
12205			value = false;
12206		}
12207
12208		return value;
12209	};
12210
12211	/**
12212	 * Takes a type string and checks if its supported
12213	 */
12214
12215	pf.supportsType = function( type ) {
12216		return ( type ) ? types[ type ] : true;
12217	};
12218
12219	/**
12220	 * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)
12221	 * @param sourceSizeStr
12222	 * @returns {*}
12223	 */
12224	pf.parseSize = memoize(function( sourceSizeStr ) {
12225		var match = ( sourceSizeStr || "" ).match(regSize);
12226		return {
12227			media: match && match[1],
12228			length: match && match[2]
12229		};
12230	});
12231
12232	pf.parseSet = function( set ) {
12233		if ( !set.cands ) {
12234			set.cands = parseSrcset(set.srcset, set);
12235		}
12236		return set.cands;
12237	};
12238
12239	/**
12240	 * returns 1em in css px for html/body default size
12241	 * function taken from respondjs
12242	 * @returns {*|number}
12243	 */
12244	pf.getEmValue = function() {
12245		var body;
12246		if ( !eminpx && (body = document.body) ) {
12247			var div = document.createElement( "div" ),
12248				originalHTMLCSS = docElem.style.cssText,
12249				originalBodyCSS = body.style.cssText;
12250
12251			div.style.cssText = baseStyle;
12252
12253			// 1em in a media query is the value of the default font size of the browser
12254			// reset docElem and body to ensure the correct value is returned
12255			docElem.style.cssText = fsCss;
12256			body.style.cssText = fsCss;
12257
12258			body.appendChild( div );
12259			eminpx = div.offsetWidth;
12260			body.removeChild( div );
12261
12262			//also update eminpx before returning
12263			eminpx = parseFloat( eminpx, 10 );
12264
12265			// restore the original values
12266			docElem.style.cssText = originalHTMLCSS;
12267			body.style.cssText = originalBodyCSS;
12268
12269		}
12270		return eminpx || 16;
12271	};
12272
12273	/**
12274	 * Takes a string of sizes and returns the width in pixels as a number
12275	 */
12276	pf.calcListLength = function( sourceSizeListStr ) {
12277		// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%
12278		//
12279		//                           or (min-width:30em) calc(30% - 15px)
12280		if ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {
12281			var winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );
12282
12283			sizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;
12284		}
12285
12286		return sizeLengthCache[ sourceSizeListStr ];
12287	};
12288
12289	/**
12290	 * Takes a candidate object with a srcset property in the form of url/
12291	 * ex. "images/pic-medium.png 1x, images/pic-medium-2x.png 2x" or
12292	 *     "images/pic-medium.png 400w, images/pic-medium-2x.png 800w" or
12293	 *     "images/pic-small.png"
12294	 * Get an array of image candidates in the form of
12295	 *      {url: "/foo/bar.png", resolution: 1}
12296	 * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value
12297	 * If sizes is specified, res is calculated
12298	 */
12299	pf.setRes = function( set ) {
12300		var candidates;
12301		if ( set ) {
12302
12303			candidates = pf.parseSet( set );
12304
12305			for ( var i = 0, len = candidates.length; i < len; i++ ) {
12306				setResolution( candidates[ i ], set.sizes );
12307			}
12308		}
12309		return candidates;
12310	};
12311
12312	pf.setRes.res = setResolution;
12313
12314	pf.applySetCandidate = function( candidates, img ) {
12315		if ( !candidates.length ) {return;}
12316		var candidate,
12317			i,
12318			j,
12319			length,
12320			bestCandidate,
12321			curSrc,
12322			curCan,
12323			candidateSrc,
12324			abortCurSrc;
12325
12326		var imageData = img[ pf.ns ];
12327		var dpr = pf.DPR;
12328
12329		curSrc = imageData.curSrc || img[curSrcProp];
12330
12331		curCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);
12332
12333		// if we have a current source, we might either become lazy or give this source some advantage
12334		if ( curCan && curCan.set === candidates[ 0 ].set ) {
12335
12336			// if browser can abort image request and the image has a higher pixel density than needed
12337			// and this image isn't downloaded yet, we skip next part and try to save bandwidth
12338			abortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);
12339
12340			if ( !abortCurSrc ) {
12341				curCan.cached = true;
12342
12343				// if current candidate is "best", "better" or "okay",
12344				// set it to bestCandidate
12345				if ( curCan.res >= dpr ) {
12346					bestCandidate = curCan;
12347				}
12348			}
12349		}
12350
12351		if ( !bestCandidate ) {
12352
12353			candidates.sort( ascendingSort );
12354
12355			length = candidates.length;
12356			bestCandidate = candidates[ length - 1 ];
12357
12358			for ( i = 0; i < length; i++ ) {
12359				candidate = candidates[ i ];
12360				if ( candidate.res >= dpr ) {
12361					j = i - 1;
12362
12363					// we have found the perfect candidate,
12364					// but let's improve this a little bit with some assumptions ;-)
12365					if (candidates[ j ] &&
12366						(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&
12367						chooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {
12368
12369						bestCandidate = candidates[ j ];
12370
12371					} else {
12372						bestCandidate = candidate;
12373					}
12374					break;
12375				}
12376			}
12377		}
12378
12379		if ( bestCandidate ) {
12380
12381			candidateSrc = pf.makeUrl( bestCandidate.url );
12382
12383			imageData.curSrc = candidateSrc;
12384			imageData.curCan = bestCandidate;
12385
12386			if ( candidateSrc !== curSrc ) {
12387				pf.setSrc( img, bestCandidate );
12388			}
12389			pf.setSize( img );
12390		}
12391	};
12392
12393	pf.setSrc = function( img, bestCandidate ) {
12394		var origWidth;
12395		img.src = bestCandidate.url;
12396
12397		// although this is a specific Safari issue, we don't want to take too much different code paths
12398		if ( bestCandidate.set.type === "image/svg+xml" ) {
12399			origWidth = img.style.width;
12400			img.style.width = (img.offsetWidth + 1) + "px";
12401
12402			// next line only should trigger a repaint
12403			// if... is only done to trick dead code removal
12404			if ( img.offsetWidth + 1 ) {
12405				img.style.width = origWidth;
12406			}
12407		}
12408	};
12409
12410	pf.getSet = function( img ) {
12411		var i, set, supportsType;
12412		var match = false;
12413		var sets = img [ pf.ns ].sets;
12414
12415		for ( i = 0; i < sets.length && !match; i++ ) {
12416			set = sets[i];
12417
12418			if ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {
12419				continue;
12420			}
12421
12422			if ( supportsType === "pending" ) {
12423				set = supportsType;
12424			}
12425
12426			match = set;
12427			break;
12428		}
12429
12430		return match;
12431	};
12432
12433	pf.parseSets = function( element, parent, options ) {
12434		var srcsetAttribute, imageSet, isWDescripor, srcsetParsed;
12435
12436		var hasPicture = parent && parent.nodeName.toUpperCase() === "PICTURE";
12437		var imageData = element[ pf.ns ];
12438
12439		if ( imageData.src === undefined || options.src ) {
12440			imageData.src = getImgAttr.call( element, "src" );
12441			if ( imageData.src ) {
12442				setImgAttr.call( element, srcAttr, imageData.src );
12443			} else {
12444				removeImgAttr.call( element, srcAttr );
12445			}
12446		}
12447
12448		if ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {
12449			srcsetAttribute = getImgAttr.call( element, "srcset" );
12450			imageData.srcset = srcsetAttribute;
12451			srcsetParsed = true;
12452		}
12453
12454		imageData.sets = [];
12455
12456		if ( hasPicture ) {
12457			imageData.pic = true;
12458			getAllSourceElements( parent, imageData.sets );
12459		}
12460
12461		if ( imageData.srcset ) {
12462			imageSet = {
12463				srcset: imageData.srcset,
12464				sizes: getImgAttr.call( element, "sizes" )
12465			};
12466
12467			imageData.sets.push( imageSet );
12468
12469			isWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || "");
12470
12471			// add normal src as candidate, if source has no w descriptor
12472			if ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {
12473				imageSet.srcset += ", " + imageData.src;
12474				imageSet.cands.push({
12475					url: imageData.src,
12476					d: 1,
12477					set: imageSet
12478				});
12479			}
12480
12481		} else if ( imageData.src ) {
12482			imageData.sets.push( {
12483				srcset: imageData.src,
12484				sizes: null
12485			} );
12486		}
12487
12488		imageData.curCan = null;
12489		imageData.curSrc = undefined;
12490
12491		// if img has picture or the srcset was removed or has a srcset and does not support srcset at all
12492		// or has a w descriptor (and does not support sizes) set support to false to evaluate
12493		imageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );
12494
12495		if ( srcsetParsed && pf.supSrcset && !imageData.supported ) {
12496			if ( srcsetAttribute ) {
12497				setImgAttr.call( element, srcsetAttr, srcsetAttribute );
12498				element.srcset = "";
12499			} else {
12500				removeImgAttr.call( element, srcsetAttr );
12501			}
12502		}
12503
12504		if (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) ||  element.src !== pf.makeUrl(imageData.src))) {
12505			if (imageData.src === null) {
12506				element.removeAttribute("src");
12507			} else {
12508				element.src = imageData.src;
12509			}
12510		}
12511
12512		imageData.parsed = true;
12513	};
12514
12515	pf.fillImg = function(element, options) {
12516		var imageData;
12517		var extreme = options.reselect || options.reevaluate;
12518
12519		// expando for caching data on the img
12520		if ( !element[ pf.ns ] ) {
12521			element[ pf.ns ] = {};
12522		}
12523
12524		imageData = element[ pf.ns ];
12525
12526		// if the element has already been evaluated, skip it
12527		// unless `options.reevaluate` is set to true ( this, for example,
12528		// is set to true when running `picturefill` on `resize` ).
12529		if ( !extreme && imageData.evaled === evalId ) {
12530			return;
12531		}
12532
12533		if ( !imageData.parsed || options.reevaluate ) {
12534			pf.parseSets( element, element.parentNode, options );
12535		}
12536
12537		if ( !imageData.supported ) {
12538			applyBestCandidate( element );
12539		} else {
12540			imageData.evaled = evalId;
12541		}
12542	};
12543
12544	pf.setupRun = function() {
12545		if ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {
12546			updateMetrics();
12547		}
12548	};
12549
12550	// If picture is supported, well, that's awesome.
12551	if ( pf.supPicture ) {
12552		picturefill = noop;
12553		pf.fillImg = noop;
12554	} else {
12555
12556		 // Set up picture polyfill by polling the document
12557		(function() {
12558			var isDomReady;
12559			var regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;
12560
12561			var run = function() {
12562				var readyState = document.readyState || "";
12563
12564				timerId = setTimeout(run, readyState === "loading" ? 200 :  999);
12565				if ( document.body ) {
12566					pf.fillImgs();
12567					isDomReady = isDomReady || regReady.test(readyState);
12568					if ( isDomReady ) {
12569						clearTimeout( timerId );
12570					}
12571
12572				}
12573			};
12574
12575			var timerId = setTimeout(run, document.body ? 9 : 99);
12576
12577			// Also attach picturefill on resize and readystatechange
12578			// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html
12579			var debounce = function(func, wait) {
12580				var timeout, timestamp;
12581				var later = function() {
12582					var last = (new Date()) - timestamp;
12583
12584					if (last < wait) {
12585						timeout = setTimeout(later, wait - last);
12586					} else {
12587						timeout = null;
12588						func();
12589					}
12590				};
12591
12592				return function() {
12593					timestamp = new Date();
12594
12595					if (!timeout) {
12596						timeout = setTimeout(later, wait);
12597					}
12598				};
12599			};
12600			var lastClientWidth = docElem.clientHeight;
12601			var onResize = function() {
12602				isVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;
12603				lastClientWidth = docElem.clientHeight;
12604				if ( isVwDirty ) {
12605					pf.fillImgs();
12606				}
12607			};
12608
12609			on( window, "resize", debounce(onResize, 99 ) );
12610			on( document, "readystatechange", run );
12611		})();
12612	}
12613
12614	pf.picturefill = picturefill;
12615	//use this internally for easy monkey patching/performance testing
12616	pf.fillImgs = picturefill;
12617	pf.teardownRun = noop;
12618
12619	/* expose methods for testing */
12620	picturefill._ = pf;
12621
12622	window.picturefillCFG = {
12623		pf: pf,
12624		push: function(args) {
12625			var name = args.shift();
12626			if (typeof pf[name] === "function") {
12627				pf[name].apply(pf, args);
12628			} else {
12629				cfg[name] = args[0];
12630				if (alreadyRun) {
12631					pf.fillImgs( { reselect: true } );
12632				}
12633			}
12634		}
12635	};
12636
12637	while (setOptions && setOptions.length) {
12638		window.picturefillCFG.push(setOptions.shift());
12639	}
12640
12641	/* expose picturefill */
12642	window.picturefill = picturefill;
12643
12644	/* expose picturefill */
12645	if ( typeof module === "object" && typeof module.exports === "object" ) {
12646		// CommonJS, just export
12647		module.exports = picturefill;
12648	} else if ( typeof define === "function" && define.amd ) {
12649		// AMD support
12650		define( "picturefill", function() { return picturefill; } );
12651	}
12652
12653	// IE8 evals this sync, so it must be the last thing we do
12654	if ( !pf.supPicture ) {
12655		types[ "image/webp" ] = detectTypeSupport("image/webp", "data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==" );
12656	}
12657
12658} )( window, document );
12659
12660},{}],346:[function(require,module,exports){
12661'use strict';
12662
12663var replace = String.prototype.replace;
12664var percentTwenties = /%20/g;
12665
12666var Format = {
12667    RFC1738: 'RFC1738',
12668    RFC3986: 'RFC3986'
vendor: 9,145 bytes, lines 12669-12932
12669};
12670
12671module.exports = {
12672    'default': Format.RFC3986,
12673    formatters: {
12674        RFC1738: function (value) {
12675            return replace.call(value, percentTwenties, '+');
12676        },
12677        RFC3986: function (value) {
12678            return String(value);
12679        }
12680    },
12681    RFC1738: Format.RFC1738,
12682    RFC3986: Format.RFC3986
12683};
12684
12685},{}],347:[function(require,module,exports){
12686'use strict';
12687
12688var stringify = require('./stringify');
12689var parse = require('./parse');
12690var formats = require('./formats');
12691
12692module.exports = {
12693    formats: formats,
12694    parse: parse,
12695    stringify: stringify
12696};
12697
12698},{"./formats":346,"./parse":348,"./stringify":349}],348:[function(require,module,exports){
12699'use strict';
12700
12701var utils = require('./utils');
12702
12703var has = Object.prototype.hasOwnProperty;
12704var isArray = Array.isArray;
12705
12706var defaults = {
12707    allowDots: false,
12708    allowPrototypes: false,
12709    allowSparse: false,
12710    arrayLimit: 20,
12711    charset: 'utf-8',
12712    charsetSentinel: false,
12713    comma: false,
12714    decoder: utils.decode,
12715    delimiter: '&',
12716    depth: 5,
12717    ignoreQueryPrefix: false,
12718    interpretNumericEntities: false,
12719    parameterLimit: 1000,
12720    parseArrays: true,
12721    plainObjects: false,
12722    strictNullHandling: false
12723};
12724
12725var interpretNumericEntities = function (str) {
12726    return str.replace(/&#(\d+);/g, function ($0, numberStr) {
12727        return String.fromCharCode(parseInt(numberStr, 10));
12728    });
12729};
12730
12731var parseArrayValue = function (val, options) {
12732    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {
12733        return val.split(',');
12734    }
12735
12736    return val;
12737};
12738
12739// This is what browsers will submit when the ✓ character occurs in an
12740// application/x-www-form-urlencoded body and the encoding of the page containing
12741// the form is iso-8859-1, or when the submitted form has an accept-charset
12742// attribute of iso-8859-1. Presumably also with other charsets that do not contain
12743// the ✓ character, such as us-ascii.
12744var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')
12745
12746// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
12747var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
12748
12749var parseValues = function parseQueryStringValues(str, options) {
12750    var obj = {};
12751    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
12752    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
12753    var parts = cleanStr.split(options.delimiter, limit);
12754    var skipIndex = -1; // Keep track of where the utf8 sentinel was found
12755    var i;
12756
12757    var charset = options.charset;
12758    if (options.charsetSentinel) {
12759        for (i = 0; i < parts.length; ++i) {
12760            if (parts[i].indexOf('utf8=') === 0) {
12761                if (parts[i] === charsetSentinel) {
12762                    charset = 'utf-8';
12763                } else if (parts[i] === isoSentinel) {
12764                    charset = 'iso-8859-1';
12765                }
12766                skipIndex = i;
12767                i = parts.length; // The eslint settings do not allow break;
12768            }
12769        }
12770    }
12771
12772    for (i = 0; i < parts.length; ++i) {
12773        if (i === skipIndex) {
12774            continue;
12775        }
12776        var part = parts[i];
12777
12778        var bracketEqualsPos = part.indexOf(']=');
12779        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;
12780
12781        var key, val;
12782        if (pos === -1) {
12783            key = options.decoder(part, defaults.decoder, charset, 'key');
12784            val = options.strictNullHandling ? null : '';
12785        } else {
12786            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
12787            val = utils.maybeMap(
12788                parseArrayValue(part.slice(pos + 1), options),
12789                function (encodedVal) {
12790                    return options.decoder(encodedVal, defaults.decoder, charset, 'value');
12791                }
12792            );
12793        }
12794
12795        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
12796            val = interpretNumericEntities(val);
12797        }
12798
12799        if (part.indexOf('[]=') > -1) {
12800            val = isArray(val) ? [val] : val;
12801        }
12802
12803        if (has.call(obj, key)) {
12804            obj[key] = utils.combine(obj[key], val);
12805        } else {
12806            obj[key] = val;
12807        }
12808    }
12809
12810    return obj;
12811};
12812
12813var parseObject = function (chain, val, options, valuesParsed) {
12814    var leaf = valuesParsed ? val : parseArrayValue(val, options);
12815
12816    for (var i = chain.length - 1; i >= 0; --i) {
12817        var obj;
12818        var root = chain[i];
12819
12820        if (root === '[]' && options.parseArrays) {
12821            obj = [].concat(leaf);
12822        } else {
12823            obj = options.plainObjects ? Object.create(null) : {};
12824            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
12825            var index = parseInt(cleanRoot, 10);
12826            if (!options.parseArrays && cleanRoot === '') {
12827                obj = { 0: leaf };
12828            } else if (
12829                !isNaN(index)
12830                && root !== cleanRoot
12831                && String(index) === cleanRoot
12832                && index >= 0
12833                && (options.parseArrays && index <= options.arrayLimit)
12834            ) {
12835                obj = [];
12836                obj[index] = leaf;
12837            } else if (cleanRoot !== '__proto__') {
12838                obj[cleanRoot] = leaf;
12839            }
12840        }
12841
12842        leaf = obj;
12843    }
12844
12845    return leaf;
12846};
12847
12848var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
12849    if (!givenKey) {
12850        return;
12851    }
12852
12853    // Transform dot notation to bracket notation
12854    var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey;
12855
12856    // The regex chunks
12857
12858    var brackets = /(\[[^[\]]*])/;
12859    var child = /(\[[^[\]]*])/g;
12860
12861    // Get the parent
12862
12863    var segment = options.depth > 0 && brackets.exec(key);
12864    var parent = segment ? key.slice(0, segment.index) : key;
12865
12866    // Stash the parent if it exists
12867
12868    var keys = [];
12869    if (parent) {
12870        // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties
12871        if (!options.plainObjects && has.call(Object.prototype, parent)) {
12872            if (!options.allowPrototypes) {
12873                return;
12874            }
12875        }
12876
12877        keys.push(parent);
12878    }
12879
12880    // Loop through children appending to the array until we hit depth
12881
12882    var i = 0;
12883    while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
12884        i += 1;
12885        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
12886            if (!options.allowPrototypes) {
12887                return;
12888            }
12889        }
12890        keys.push(segment[1]);
12891    }
12892
12893    // If there's a remainder, just add whatever is left
12894
12895    if (segment) {
12896        keys.push('[' + key.slice(segment.index) + ']');
12897    }
12898
12899    return parseObject(keys, val, options, valuesParsed);
12900};
12901
12902var normalizeParseOptions = function normalizeParseOptions(opts) {
12903    if (!opts) {
12904        return defaults;
12905    }
12906
12907    if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {
12908        throw new TypeError('Decoder has to be a function.');
12909    }
12910
12911    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
12912        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
12913    }
12914    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;
12915
12916    return {
12917        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
12918        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,
12919        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,
12920        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,
12921        charset: charset,
12922        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
12923        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
12924        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
12925        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
12926        // eslint-disable-next-line no-implicit-coercion, no-extra-parens
12927        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,
12928        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
12929        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
12930        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
12931        parseArrays: opts.parseArrays !== false,
12932        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
vendor: 6,028 bytes, lines 12933-13134
12933        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
12934    };
12935};
12936
12937module.exports = function (str, opts) {
12938    var options = normalizeParseOptions(opts);
12939
12940    if (str === '' || str === null || typeof str === 'undefined') {
12941        return options.plainObjects ? Object.create(null) : {};
12942    }
12943
12944    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
12945    var obj = options.plainObjects ? Object.create(null) : {};
12946
12947    // Iterate over the keys and setup the new object
12948
12949    var keys = Object.keys(tempObj);
12950    for (var i = 0; i < keys.length; ++i) {
12951        var key = keys[i];
12952        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');
12953        obj = utils.merge(obj, newObj, options);
12954    }
12955
12956    if (options.allowSparse === true) {
12957        return obj;
12958    }
12959
12960    return utils.compact(obj);
12961};
12962
12963},{"./utils":350}],349:[function(require,module,exports){
12964'use strict';
12965
12966var getSideChannel = require('side-channel');
12967var utils = require('./utils');
12968var formats = require('./formats');
12969var has = Object.prototype.hasOwnProperty;
12970
12971var arrayPrefixGenerators = {
12972    brackets: function brackets(prefix) {
12973        return prefix + '[]';
12974    },
12975    comma: 'comma',
12976    indices: function indices(prefix, key) {
12977        return prefix + '[' + key + ']';
12978    },
12979    repeat: function repeat(prefix) {
12980        return prefix;
12981    }
12982};
12983
12984var isArray = Array.isArray;
12985var split = String.prototype.split;
12986var push = Array.prototype.push;
12987var pushToArray = function (arr, valueOrArray) {
12988    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
12989};
12990
12991var toISO = Date.prototype.toISOString;
12992
12993var defaultFormat = formats['default'];
12994var defaults = {
12995    addQueryPrefix: false,
12996    allowDots: false,
12997    charset: 'utf-8',
12998    charsetSentinel: false,
12999    delimiter: '&',
13000    encode: true,
13001    encoder: utils.encode,
13002    encodeValuesOnly: false,
13003    format: defaultFormat,
13004    formatter: formats.formatters[defaultFormat],
13005    // deprecated
13006    indices: false,
13007    serializeDate: function serializeDate(date) {
13008        return toISO.call(date);
13009    },
13010    skipNulls: false,
13011    strictNullHandling: false
13012};
13013
13014var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
13015    return typeof v === 'string'
13016        || typeof v === 'number'
13017        || typeof v === 'boolean'
13018        || typeof v === 'symbol'
13019        || typeof v === 'bigint';
13020};
13021
13022var sentinel = {};
13023
13024var stringify = function stringify(
13025    object,
13026    prefix,
13027    generateArrayPrefix,
13028    strictNullHandling,
13029    skipNulls,
13030    encoder,
13031    filter,
13032    sort,
13033    allowDots,
13034    serializeDate,
13035    format,
13036    formatter,
13037    encodeValuesOnly,
13038    charset,
13039    sideChannel
13040) {
13041    var obj = object;
13042
13043    var tmpSc = sideChannel;
13044    var step = 0;
13045    var findFlag = false;
13046    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {
13047        // Where object last appeared in the ref tree
13048        var pos = tmpSc.get(object);
13049        step += 1;
13050        if (typeof pos !== 'undefined') {
13051            if (pos === step) {
13052                throw new RangeError('Cyclic object value');
13053            } else {
13054                findFlag = true; // Break while
13055            }
13056        }
13057        if (typeof tmpSc.get(sentinel) === 'undefined') {
13058            step = 0;
13059        }
13060    }
13061
13062    if (typeof filter === 'function') {
13063        obj = filter(prefix, obj);
13064    } else if (obj instanceof Date) {
13065        obj = serializeDate(obj);
13066    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {
13067        obj = utils.maybeMap(obj, function (value) {
13068            if (value instanceof Date) {
13069                return serializeDate(value);
13070            }
13071            return value;
13072        });
13073    }
13074
13075    if (obj === null) {
13076        if (strictNullHandling) {
13077            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
13078        }
13079
13080        obj = '';
13081    }
13082
13083    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
13084        if (encoder) {
13085            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);
13086            if (generateArrayPrefix === 'comma' && encodeValuesOnly) {
13087                var valuesArray = split.call(String(obj), ',');
13088                var valuesJoined = '';
13089                for (var i = 0; i < valuesArray.length; ++i) {
13090                    valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));
13091                }
13092                return [formatter(keyValue) + '=' + valuesJoined];
13093            }
13094            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
13095        }
13096        return [formatter(prefix) + '=' + formatter(String(obj))];
13097    }
13098
13099    var values = [];
13100
13101    if (typeof obj === 'undefined') {
13102        return values;
13103    }
13104
13105    var objKeys;
13106    if (generateArrayPrefix === 'comma' && isArray(obj)) {
13107        // we need to join elements in
13108        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];
13109    } else if (isArray(filter)) {
13110        objKeys = filter;
13111    } else {
13112        var keys = Object.keys(obj);
13113        objKeys = sort ? keys.sort(sort) : keys;
13114    }
13115
13116    for (var j = 0; j < objKeys.length; ++j) {
13117        var key = objKeys[j];
13118        var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];
13119
13120        if (skipNulls && value === null) {
13121            continue;
13122        }
13123
13124        var keyPrefix = isArray(obj)
13125            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix
13126            : prefix + (allowDots ? '.' + key : '[' + key + ']');
13127
13128        sideChannel.set(object, step);
13129        var valueSideChannel = getSideChannel();
13130        valueSideChannel.set(sentinel, sideChannel);
13131        pushToArray(values, stringify(
13132            value,
13133            keyPrefix,
13134            generateArrayPrefix,
vendor: 14,464 bytes, lines 13135-13633
13135            strictNullHandling,
13136            skipNulls,
13137            encoder,
13138            filter,
13139            sort,
13140            allowDots,
13141            serializeDate,
13142            format,
13143            formatter,
13144            encodeValuesOnly,
13145            charset,
13146            valueSideChannel
13147        ));
13148    }
13149
13150    return values;
13151};
13152
13153var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
13154    if (!opts) {
13155        return defaults;
13156    }
13157
13158    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
13159        throw new TypeError('Encoder has to be a function.');
13160    }
13161
13162    var charset = opts.charset || defaults.charset;
13163    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
13164        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
13165    }
13166
13167    var format = formats['default'];
13168    if (typeof opts.format !== 'undefined') {
13169        if (!has.call(formats.formatters, opts.format)) {
13170            throw new TypeError('Unknown format option provided.');
13171        }
13172        format = opts.format;
13173    }
13174    var formatter = formats.formatters[format];
13175
13176    var filter = defaults.filter;
13177    if (typeof opts.filter === 'function' || isArray(opts.filter)) {
13178        filter = opts.filter;
13179    }
13180
13181    return {
13182        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
13183        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
13184        charset: charset,
13185        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
13186        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
13187        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
13188        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
13189        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
13190        filter: filter,
13191        format: format,
13192        formatter: formatter,
13193        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
13194        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
13195        sort: typeof opts.sort === 'function' ? opts.sort : null,
13196        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
13197    };
13198};
13199
13200module.exports = function (object, opts) {
13201    var obj = object;
13202    var options = normalizeStringifyOptions(opts);
13203
13204    var objKeys;
13205    var filter;
13206
13207    if (typeof options.filter === 'function') {
13208        filter = options.filter;
13209        obj = filter('', obj);
13210    } else if (isArray(options.filter)) {
13211        filter = options.filter;
13212        objKeys = filter;
13213    }
13214
13215    var keys = [];
13216
13217    if (typeof obj !== 'object' || obj === null) {
13218        return '';
13219    }
13220
13221    var arrayFormat;
13222    if (opts && opts.arrayFormat in arrayPrefixGenerators) {
13223        arrayFormat = opts.arrayFormat;
13224    } else if (opts && 'indices' in opts) {
13225        arrayFormat = opts.indices ? 'indices' : 'repeat';
13226    } else {
13227        arrayFormat = 'indices';
13228    }
13229
13230    var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
13231
13232    if (!objKeys) {
13233        objKeys = Object.keys(obj);
13234    }
13235
13236    if (options.sort) {
13237        objKeys.sort(options.sort);
13238    }
13239
13240    var sideChannel = getSideChannel();
13241    for (var i = 0; i < objKeys.length; ++i) {
13242        var key = objKeys[i];
13243
13244        if (options.skipNulls && obj[key] === null) {
13245            continue;
13246        }
13247        pushToArray(keys, stringify(
13248            obj[key],
13249            key,
13250            generateArrayPrefix,
13251            options.strictNullHandling,
13252            options.skipNulls,
13253            options.encode ? options.encoder : null,
13254            options.filter,
13255            options.sort,
13256            options.allowDots,
13257            options.serializeDate,
13258            options.format,
13259            options.formatter,
13260            options.encodeValuesOnly,
13261            options.charset,
13262            sideChannel
13263        ));
13264    }
13265
13266    var joined = keys.join(options.delimiter);
13267    var prefix = options.addQueryPrefix === true ? '?' : '';
13268
13269    if (options.charsetSentinel) {
13270        if (options.charset === 'iso-8859-1') {
13271            // encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
13272            prefix += 'utf8=%26%2310003%3B&';
13273        } else {
13274            // encodeURIComponent('✓')
13275            prefix += 'utf8=%E2%9C%93&';
13276        }
13277    }
13278
13279    return joined.length > 0 ? prefix + joined : '';
13280};
13281
13282},{"./formats":346,"./utils":350,"side-channel":351}],350:[function(require,module,exports){
13283'use strict';
13284
13285var formats = require('./formats');
13286
13287var has = Object.prototype.hasOwnProperty;
13288var isArray = Array.isArray;
13289
13290var hexTable = (function () {
13291    var array = [];
13292    for (var i = 0; i < 256; ++i) {
13293        array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
13294    }
13295
13296    return array;
13297}());
13298
13299var compactQueue = function compactQueue(queue) {
13300    while (queue.length > 1) {
13301        var item = queue.pop();
13302        var obj = item.obj[item.prop];
13303
13304        if (isArray(obj)) {
13305            var compacted = [];
13306
13307            for (var j = 0; j < obj.length; ++j) {
13308                if (typeof obj[j] !== 'undefined') {
13309                    compacted.push(obj[j]);
13310                }
13311            }
13312
13313            item.obj[item.prop] = compacted;
13314        }
13315    }
13316};
13317
13318var arrayToObject = function arrayToObject(source, options) {
13319    var obj = options && options.plainObjects ? Object.create(null) : {};
13320    for (var i = 0; i < source.length; ++i) {
13321        if (typeof source[i] !== 'undefined') {
13322            obj[i] = source[i];
13323        }
13324    }
13325
13326    return obj;
13327};
13328
13329var merge = function merge(target, source, options) {
13330    /* eslint no-param-reassign: 0 */
13331    if (!source) {
13332        return target;
13333    }
13334
13335    if (typeof source !== 'object') {
13336        if (isArray(target)) {
13337            target.push(source);
13338        } else if (target && typeof target === 'object') {
13339            if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {
13340                target[source] = true;
13341            }
13342        } else {
13343            return [target, source];
13344        }
13345
13346        return target;
13347    }
13348
13349    if (!target || typeof target !== 'object') {
13350        return [target].concat(source);
13351    }
13352
13353    var mergeTarget = target;
13354    if (isArray(target) && !isArray(source)) {
13355        mergeTarget = arrayToObject(target, options);
13356    }
13357
13358    if (isArray(target) && isArray(source)) {
13359        source.forEach(function (item, i) {
13360            if (has.call(target, i)) {
13361                var targetItem = target[i];
13362                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {
13363                    target[i] = merge(targetItem, item, options);
13364                } else {
13365                    target.push(item);
13366                }
13367            } else {
13368                target[i] = item;
13369            }
13370        });
13371        return target;
13372    }
13373
13374    return Object.keys(source).reduce(function (acc, key) {
13375        var value = source[key];
13376
13377        if (has.call(acc, key)) {
13378            acc[key] = merge(acc[key], value, options);
13379        } else {
13380            acc[key] = value;
13381        }
13382        return acc;
13383    }, mergeTarget);
13384};
13385
13386var assign = function assignSingleSource(target, source) {
13387    return Object.keys(source).reduce(function (acc, key) {
13388        acc[key] = source[key];
13389        return acc;
13390    }, target);
13391};
13392
13393var decode = function (str, decoder, charset) {
13394    var strWithoutPlus = str.replace(/\+/g, ' ');
13395    if (charset === 'iso-8859-1') {
13396        // unescape never throws, no try...catch needed:
13397        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
13398    }
13399    // utf-8
13400    try {
13401        return decodeURIComponent(strWithoutPlus);
13402    } catch (e) {
13403        return strWithoutPlus;
13404    }
13405};
13406
13407var encode = function encode(str, defaultEncoder, charset, kind, format) {
13408    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
13409    // It has been adapted here for stricter adherence to RFC 3986
13410    if (str.length === 0) {
13411        return str;
13412    }
13413
13414    var string = str;
13415    if (typeof str === 'symbol') {
13416        string = Symbol.prototype.toString.call(str);
13417    } else if (typeof str !== 'string') {
13418        string = String(str);
13419    }
13420
13421    if (charset === 'iso-8859-1') {
13422        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
13423            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
13424        });
13425    }
13426
13427    var out = '';
13428    for (var i = 0; i < string.length; ++i) {
13429        var c = string.charCodeAt(i);
13430
13431        if (
13432            c === 0x2D // -
13433            || c === 0x2E // .
13434            || c === 0x5F // _
13435            || c === 0x7E // ~
13436            || (c >= 0x30 && c <= 0x39) // 0-9
13437            || (c >= 0x41 && c <= 0x5A) // a-z
13438            || (c >= 0x61 && c <= 0x7A) // A-Z
13439            || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
13440        ) {
13441            out += string.charAt(i);
13442            continue;
13443        }
13444
13445        if (c < 0x80) {
13446            out = out + hexTable[c];
13447            continue;
13448        }
13449
13450        if (c < 0x800) {
13451            out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
13452            continue;
13453        }
13454
13455        if (c < 0xD800 || c >= 0xE000) {
13456            out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
13457            continue;
13458        }
13459
13460        i += 1;
13461        c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
13462        /* eslint operator-linebreak: [2, "before"] */
13463        out += hexTable[0xF0 | (c >> 18)]
13464            + hexTable[0x80 | ((c >> 12) & 0x3F)]
13465            + hexTable[0x80 | ((c >> 6) & 0x3F)]
13466            + hexTable[0x80 | (c & 0x3F)];
13467    }
13468
13469    return out;
13470};
13471
13472var compact = function compact(value) {
13473    var queue = [{ obj: { o: value }, prop: 'o' }];
13474    var refs = [];
13475
13476    for (var i = 0; i < queue.length; ++i) {
13477        var item = queue[i];
13478        var obj = item.obj[item.prop];
13479
13480        var keys = Object.keys(obj);
13481        for (var j = 0; j < keys.length; ++j) {
13482            var key = keys[j];
13483            var val = obj[key];
13484            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
13485                queue.push({ obj: obj, prop: key });
13486                refs.push(val);
13487            }
13488        }
13489    }
13490
13491    compactQueue(queue);
13492
13493    return value;
13494};
13495
13496var isRegExp = function isRegExp(obj) {
13497    return Object.prototype.toString.call(obj) === '[object RegExp]';
13498};
13499
13500var isBuffer = function isBuffer(obj) {
13501    if (!obj || typeof obj !== 'object') {
13502        return false;
13503    }
13504
13505    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
13506};
13507
13508var combine = function combine(a, b) {
13509    return [].concat(a, b);
13510};
13511
13512var maybeMap = function maybeMap(val, fn) {
13513    if (isArray(val)) {
13514        var mapped = [];
13515        for (var i = 0; i < val.length; i += 1) {
13516            mapped.push(fn(val[i]));
13517        }
13518        return mapped;
13519    }
13520    return fn(val);
13521};
13522
13523module.exports = {
13524    arrayToObject: arrayToObject,
13525    assign: assign,
13526    combine: combine,
13527    compact: compact,
13528    decode: decode,
13529    encode: encode,
13530    isBuffer: isBuffer,
13531    isRegExp: isRegExp,
13532    maybeMap: maybeMap,
13533    merge: merge
13534};
13535
13536},{"./formats":346}],351:[function(require,module,exports){
13537'use strict';
13538
13539var GetIntrinsic = require('get-intrinsic');
13540var callBound = require('call-bind/callBound');
13541var inspect = require('object-inspect');
13542
13543var $TypeError = GetIntrinsic('%TypeError%');
13544var $WeakMap = GetIntrinsic('%WeakMap%', true);
13545var $Map = GetIntrinsic('%Map%', true);
13546
13547var $weakMapGet = callBound('WeakMap.prototype.get', true);
13548var $weakMapSet = callBound('WeakMap.prototype.set', true);
13549var $weakMapHas = callBound('WeakMap.prototype.has', true);
13550var $mapGet = callBound('Map.prototype.get', true);
13551var $mapSet = callBound('Map.prototype.set', true);
13552var $mapHas = callBound('Map.prototype.has', true);
13553
13554/*
13555 * This function traverses the list returning the node corresponding to the
13556 * given key.
13557 *
13558 * That node is also moved to the head of the list, so that if it's accessed
13559 * again we don't need to traverse the whole list. By doing so, all the recently
13560 * used nodes can be accessed relatively quickly.
13561 */
13562var listGetNode = function (list, key) { // eslint-disable-line consistent-return
13563	for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {
13564		if (curr.key === key) {
13565			prev.next = curr.next;
13566			curr.next = list.next;
13567			list.next = curr; // eslint-disable-line no-param-reassign
13568			return curr;
13569		}
13570	}
13571};
13572
13573var listGet = function (objects, key) {
13574	var node = listGetNode(objects, key);
13575	return node && node.value;
13576};
13577var listSet = function (objects, key, value) {
13578	var node = listGetNode(objects, key);
13579	if (node) {
13580		node.value = value;
13581	} else {
13582		// Prepend the new node to the beginning of the list
13583		objects.next = { // eslint-disable-line no-param-reassign
13584			key: key,
13585			next: objects.next,
13586			value: value
13587		};
13588	}
13589};
13590var listHas = function (objects, key) {
13591	return !!listGetNode(objects, key);
13592};
13593
13594module.exports = function getSideChannel() {
13595	var $wm;
13596	var $m;
13597	var $o;
13598	var channel = {
13599		assert: function (key) {
13600			if (!channel.has(key)) {
13601				throw new $TypeError('Side channel does not contain ' + inspect(key));
13602			}
13603		},
13604		get: function (key) { // eslint-disable-line consistent-return
13605			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
13606				if ($wm) {
13607					return $weakMapGet($wm, key);
13608				}
13609			} else if ($Map) {
13610				if ($m) {
13611					return $mapGet($m, key);
13612				}
13613			} else {
13614				if ($o) { // eslint-disable-line no-lonely-if
13615					return listGet($o, key);
13616				}
13617			}
13618		},
13619		has: function (key) {
13620			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
13621				if ($wm) {
13622					return $weakMapHas($wm, key);
13623				}
13624			} else if ($Map) {
13625				if ($m) {
13626					return $mapHas($m, key);
13627				}
13628			} else {
13629				if ($o) { // eslint-disable-line no-lonely-if
13630					return listHas($o, key);
13631				}
13632			}
13633			return false;
13634		},
13635		set: function (key, value) {
13636			if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {
13637				if (!$wm) {
13638					$wm = new $WeakMap();
13639				}
13640				$weakMapSet($wm, key, value);
13641			} else if ($Map) {
13642				if (!$m) {
13643					$m = new $Map();
13644				}
13645				$mapSet($m, key, value);
13646			} else {
13647				if (!$o) {
13648					/*
13649					 * Initialize the linked list as an empty node, so that we don't have
13650					 * to special-case handling of the first node: we can always refer to
13651					 * it as (previous node).next, instead of something like (list).head
13652					 */
13653					$o = { key: {}, next: null };
13654				}
13655				listSet($o, key, value);
13656			}
13657		}
13658	};
13659	return channel;
13660};
13661
13662},{"call-bind/callBound":4,"get-intrinsic":338,"object-inspect":344}],352:[function(require,module,exports){
13663(function (global){
13664'use strict';
13665
13666Object.defineProperty(exports, "__esModule", {
13667    value: true
13668});
13669
13670var _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; };
13671
13672var _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; }; }();
13673
13674var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
13675
13676var _jquery2 = _interopRequireDefault(_jquery);
13677
13678var _events = require('./_events');
13679
13680var _events2 = _interopRequireDefault(_events);
13681
13682function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13683
13684function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13685
13686var defaults = {
13687    $element: undefined,
13688    selectors: {
13689        accordion: '.js-accordion',
13690        radio: '.js-accordion.js-accordion-radio',
13691        item: '.js-accordion .js-accordion-item',
13692        heading: '.js-accordion .js-accordion-heading',
13693        content: '.js-accordion .js-accordion-content',
13694        active: '.js-accordion .js-accordion-heading-active',
13695        collapse: '.js-accordion .accordion__content--collapse',
13696        clickable: 'a, button'
13697    },
13698    classes: {
13699        active: 'js-accordion-heading-active accordion__heading--active',
13700        expanded: 'js-accordion-content-expanded accordion__content--expanded',
13701        collapse: 'accordion__content--collapse'
13702    },
13703    keys: {
13704        enter: 13
13705    },
13706    transitions: {
13707        open: {
13708            easing: 'easeInOutQuart',
13709            duration: 1000
13710
13711        },
13712        close: {
13713            easing: 'easeInOutQuart',
13714            duration: 670
13715        }
13716    }
13717};
13718
13719/**
13720 *
13721 * Accordion.
13722 *
13723 * @module Accordion
13724 * @param {Object} properties - specifies the configurations
13725 * for the module.
13726 */
13727
13728var Accordion = function () {
13729    function Accordion() {
13730        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13731
13732        _classCallCheck(this, Accordion);
13733
13734        var members = _jquery2.default.extend(true, {}, defaults, properties);
13735
13736        this.$element = members.$element;
13737        this.selectors = members.selectors;
13738        this.classes = members.classes;
13739        this.keys = members.keys;
13740        this.transitions = members.transitions;
13741    }
13742
13743    /**
13744     * Initialise the module.
13745     *
13746     * @function init
13747     *
13748     * @return {undefined}
13749     */
13750
13751
13752    _createClass(Accordion, [{
13753        key: 'init',
13754        value: function init() {
13755            this.accessibility();
13756            this.bind();
13757
13758            /**
13759             * This will be used when VUE loads after clientlib, this will re-apply the js-accordion events
13760             * removed by the re-render of the the VUE component.
13761             */
13762            document.addEventListener('vue-mounted', () => {
13763              document.querySelectorAll('[data-js="_accordion"]').forEach(el => {
13764                if (!el.__accordionInitialized) {
13765                  new Accordion({ $element: $(el) }).init();
13766                  el.__accordionInitialized = true;
13767                }
13768              });
13769            });
13770        }
13771
13772        /**
13773         * Configure the accordion interactive elements
13774         * for assisted technology users.
13775         *
13776         * @function accessibility
13777         *
13778         * @return {undefined}
13779         */
13780
13781    }, {
13782        key: 'accessibility',
13783        value: function accessibility() {
13784            var $heading = this.$element.only(this.selectors.heading);
13785
13786            $heading.each(this.expanded.bind(this)).attr({ tabindex: 0, 'role': 'tab', 'aria-selected': false });
13787        }
13788
13789        /**
13790         * Apply the default aria expanded state for the
13791         * context given content.
13792         *
13793         * @function expanded
13794         * @callback
13795         * @param {number} index - specifies the element index.
13796         * @param {HTMLElement} heading - specifies the heading element.
13797         *
13798         * @return {undefined}
13799         */
13800
13801    }, {
13802        key: 'expanded',
13803        value: function expanded(index, heading) {
13804            var expanded = this.classes.active.split(/\s+/).some(function (className) {
13805                return (0, _jquery2.default)(heading).hasClass(className);
13806            });
13807
13808            (0, _jquery2.default)(heading).attr('aria-expanded', expanded);
13809            (0, _jquery2.default)(heading).attr('aria-selected', expanded);
13810        }
13811
13812        /**
13813         * Bind the instance to the DOM
13814         *
13815         * @function bind
13816         *
13817         * @return {undefined}
13818         */
13819
13820    }, {
13821        key: 'bind',
13822        value: function bind() {
13823            var $heading = this.$element.only(this.selectors.heading);
13824
13825            $heading.on('click', this.toggle.bind(this));
13826            $heading.on('keydown', this.keydown.bind(this));
13827
13828            // 1. These are hidden by CSS based on the .js feature class, so explicitly trigger the hide event to match.
13829            // 2. Remove the `collapse` class and set display: none on the same elements, so they play nice with jQuery animations later.
13830            this.$element.only(this.selectors.collapse).trigger(_events2.default.dynamicContent.hide).hide().removeClass(this.classes.collapse);
13831        }
13832
13833        /**
13834         * Link the keyboard key pressed to the
13835         * appropriate callback function.
13836         *
13837         * @function keydown
13838         * @param {$.Event} event - specifies the keydown event.
13839         *
13840         * @return {undefined}
13841         */
13842
13843    }, {
13844        key: 'keydown',
13845        value: function keydown(event) {
13846            if (event.keyCode === this.keys.enter) {
13847                this.toggle(event);
13848            }
13849        }
13850
13851        /**
13852         * Toggle the visibility of the accordion content, if it's not currently animating.
13853         *
13854         * @function toggle
13855         * @param {$.Event} event - specifies the event.
13856         *
13857         * @return {undefined}
13858         */
13859
13860    }, {
13861        key: 'toggle',
13862        value: function toggle(event) {
13863            var _this = this;
13864
13865            if ((0, _jquery2.default)(event.target).not(this.selectors.heading).is(this.selectors.clickable)) {
13866                return;
13867            }
13868            event.preventDefault();
13869            if (!this.isAnimating(event.currentTarget)) {
13870                this.beginToggle(event.currentTarget).then(function (heading) {
13871                    _this.endToggle(heading, event);
13872                });
13873            }
13874        }
13875
13876        /**
13877         * Checks if accordion content is animating
13878         *
13879         * @param {HTMLElement|$.Element} heading - specifies the heading to toggle
13880         *
13881         * @return {true or false}
13882         */
13883
13884    }, {
13885        key: 'isAnimating',
13886        value: function isAnimating(heading) {
13887            var $heading = (0, _jquery2.default)(heading);
13888            var $content = $heading.siblings(this.selectors.content).first();
13889            return $content.is(':animated');
13890        }
13891
13892        /**
13893         * Animates the accordion content to the opposite visibility state.
13894         *
13895         * @param {HTMLElement|$.Element} heading - specifies the heading to toggle
13896         *
13897         * @return {Promise<HTMLElement|$.Element>} - The heading element
13898         */
13899
13900    }, {
13901        key: 'beginToggle',
13902        value: function beginToggle(heading) {
13903            var _this2 = this;
13904
13905            var $heading = (0, _jquery2.default)(heading);
13906            var $content = $heading.siblings(this.selectors.content).first();
13907            var isCollapsed = $content.is(':hidden');
13908
13909            $heading.trigger({
13910                type: _events2.default.accordion.beginToggle,
13911                beginToggle: isCollapsed
13912            });
13913
13914            return new Promise(function (resolve) {
13915                if (_this2.$element.is(_this2.selectors.radio)) {
13916                    if (!isCollapsed) {
13917                        resolve(heading);
13918                        return;
13919                    }
13920                    _this2.reset();
13921                }
13922
13923                var toggleOptions = isCollapsed ? _this2.transitions.open : _this2.transitions.close;
13924                $heading.toggleClass(_this2.classes.active);
13925                $content.stop().slideToggle(_extends({}, toggleOptions, {
13926                    complete: function complete() {
13927                        resolve(heading);
13928                    }
13929                }));
13930            });
13931        }
13932
13933        /**
13934         * Handles accessibility and triggers events for a completed accordion interaction.
13935         *
13936         * @param {HTMLElement|$.Element} heading - specifies the heading toggled
13937         * @param {$.Event} event - the event being handled, if any
13938         *
13939         * @return {undefined}
13940         */
13941
13942    }, {
13943        key: 'endToggle',
13944        value: function endToggle(heading, event) {
13945            var $heading = (0, _jquery2.default)(heading);
13946            var $content = $heading.siblings(this.selectors.content).first();
13947            var isExpanded = !$content.is(':hidden');
13948
13949            if (this.$element.is(this.selectors.radio)) {
13950                if (!isExpanded) {
13951                    return;
13952                }
13953            }
13954
13955            $heading.attr({
13956                'aria-expanded': isExpanded,
13957                'aria-selected': isExpanded
13958            });
13959
13960            this.$element.trigger(_events2.default.accordion.toggle);
13961
13962            if (isExpanded) {
13963                $content.attr('tabindex', 0).focus();
13964
13965                this.$element.trigger(_events2.default.accordion.expand);
13966                $content.trigger(_events2.default.dynamicContent.show);
13967            } else {
13968                $content.removeAttr('tabindex');
13969
13970                this.$element.trigger(_events2.default.accordion.collapse);
13971                $content.trigger(_events2.default.dynamicContent.hide);
13972            }
13973
13974            if (event && event.keyCode === this.keys.enter) {
13975                if (isExpanded) {
13976                    $content.attr('tabindex', 0).focus();
13977                } else {
13978                    $content.removeAttr('tabindex');
13979                }
13980            }
13981        }
13982
13983        /**
13984         * Reset the accordion.
13985         *
13986         * @function reset
13987         *
13988         * @return {undefined}
13989         */
13990
13991    }, {
13992        key: 'reset',
13993        value: function reset() {
13994            var $heading = this.$element.only(this.selectors.heading);
13995            var $content = this.$element.only(this.selectors.content);
13996
13997            $heading.removeClass(this.classes.active);
13998            $content.slideUp().removeClass(this.classes.expanded).trigger(_events2.default.dynamicContent.hide);
13999
14000            $heading.attr('aria-expanded', false);
14001            $heading.attr('aria-selected', false);
14002        }
14003    }]);
14004
14005    return Accordion;
14006}();
14007
14008exports.default = Accordion;
14009
14010}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
14011},{"./_events":356}],353:[function(require,module,exports){
14012(function (global){
14013'use strict';
14014
14015Object.defineProperty(exports, "__esModule", {
14016    value: true
14017});
14018
14019var _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; }; }();
14020
14021var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
14022
14023var _jquery2 = _interopRequireDefault(_jquery);
14024
14025var _utils = require('./_utils');
14026
14027var utils = _interopRequireWildcard(_utils);
14028
14029var _events = require('./_events');
14030
14031var _events2 = _interopRequireDefault(_events);
14032
14033var _dynamicContent = require('./_dynamic-content');
14034
14035var _dynamicContent2 = _interopRequireDefault(_dynamicContent);
14036
14037function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
14038
14039function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14040
14041function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
14042
14043function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14044
14045var defaults = {
14046    $element: undefined,
14047    selectors: {
14048        slider: '.js-carousel-slider',
14049        slide: '.js-carousel-slide',
14050        controls: '.js-carousel-controls',
14051        control: '.js-carousel-control',
14052        pagination: '.js-carousel-pagination',
14053        page: '.js-carousel-page'
14054    },
14055    classes: {
14056        activePage: 'carousel__page--active',
14057        activeSlide: 'carousel__slide--active',
14058        visibleControls: 'carousel__controls--visible',
14059        visiblePagination: 'carousel__pagination--visible',
14060        dynamicContentListener: _dynamicContent2.default.classes.listener
14061    },
14062    breakpoints: {
14063        mobile: 1,
14064        tablet: 2,
14065        desktop: 3
14066    },
14067    paginationType: 'slide',
14068    swipeEvents: {
14069        swipeleft: 1,
14070        swiperight: -1
14071    },
14072    center: false,
14073    forceControls: false,
14074    adjustHeight: true,
14075    generatePagination: true
14076};
14077
14078/**
14079* Carousel (this module only supports an inifite effect).
14080*
14081* @module Carousel
14082* @param {Object} properties - specifies the configurations
14083* for the module.
14084*/
14085
14086var Carousel = function () {
14087    function Carousel() {
14088        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14089
14090        _classCallCheck(this, Carousel);
14091
14092        var members = _jquery2.default.extend(true, {}, defaults, properties);
14093
14094        this.$element = members.$element;
14095        this.selectors = members.selectors;
14096        this.templates = members.templates;
14097        this.classes = members.classes;
14098        this.center = members.center;
14099        this.paginationType = members.paginationType;
14100        this.swipeEvents = members.swipeEvents;
14101        this.breakpoints = members.breakpoints;
14102        this.forceControls = Boolean(members.forceControls);
14103        this.adjustHeight = Boolean(members.adjustHeight);
14104        this.generatePagination = Boolean(members.generatePagination);
14105    }
14106
14107    /**
14108     * Initialise the module.
14109     *
14110     * @global
14111     */
14112
14113
14114    _createClass(Carousel, [{
14115        key: 'init',
14116        value: function init() {
14117            this._addIDs();
14118            this.data = this._generateData();
14119            this.configure(true);
14120            this._generatePagination();
14121            this._bind();
14122        }
14123
14124        /**
14125         * Set the data Object to the instance and apply the sizes
14126         *
14127         * @public
14128         *
14129         * @param {Boolean} force Force the configuration to run, even when nothing changed.
14130         */
14131
14132    }, {
14133        key: 'configure',
14134        value: function configure() {
14135            var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
14136
14137            if (this._getSlidesBreakpoint() === this.data.slidesPerPage && !force) {
14138                return;
14139            }
14140
14141            this.data.slidesPerPage = this._getSlidesBreakpoint();
14142            this.data.renderedData = this._getRenderData(this.data.currentPage).slice(0, this.data.slidesPerPage);
14143            this.data.totalPages = Math.ceil(this.data.slides.length / this.data.slidesPerPage);
14144            this.data.offset = this.center && this.data.slidesPerPage % 2 !== 0 ? Math.floor(this.data.slidesPerPage / 2) : 0;
14145
14146            this._injectSlides(this.data.renderedData);
14147            this._toggleControls();
14148            this._applySizes();
14149            this._activate();
14150            this.navigateTo(this.data.currentPage, 0);
14151            this.$element.trigger(_events2.default.carousel.configured);
14152        }
14153
14154        /**
14155         * Navigate directly to a slide index
14156         *
14157         * @public
14158         *
14159         * @param  {Number}   slideIndex    [description]
14160         * @param  {Number}   duration [description]
14161         * @param  {Function} callback [description]
14162         */
14163
14164    }, {
14165        key: 'navigateTo',
14166        value: function navigateTo(slideIndex) {
14167            var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
14168            var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : utils.noop;
14169
14170            var end = this._isInView(slideIndex) ? this._isInView(slideIndex) - this.data.renderedData.indexOf(this.data.slides[this.data.currentPage]) : slideIndex - this.data.currentPage;
14171            this.navigate(end, duration, callback);
14172        }
14173
14174        /**
14175         * Navigate the carousel to a certain direction
14176         *
14177         * @public
14178         *
14179         * @param  {Number}   direction
14180         * @param  {Object}   context
14181         * @param  {Number}   duration
14182         * @param  {Function} callback
14183         */
14184
14185    }, {
14186        key: 'navigate',
14187        value: function navigate() {
14188            var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14189            var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;
14190            var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 400;
14191            var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : utils.noop;
14192
14193            if (context == 0) {
14194                context = this;
14195            }
14196
14197            if (context.isAnimating) {
14198                return;
14199            }
14200
14201            context.isAnimating = true;
14202
14203            var slides = context._getSlides(context.data.renderedData, context._getRenderData(direction), direction);
14204            var count = direction;
14205
14206            context._resetHeight(false);
14207            context.data.renderedData = context._getRenderData(direction);
14208            context.data.currentPage = (context.data.currentPage + direction) % context.data.slides.length;
14209
14210            if (context.data.currentPage < 0) {
14211                context.data.currentPage += context.data.slides.length;
14212            }
14213
14214            context._injectSlides(slides);
14215            context._applySizes();
14216            context.$element.trigger(_events2.default.carousel.navigate);
14217
14218            if (direction < 0) {
14219                context.animate(direction * -1, 0);
14220                count = 0;
14221            }
14222
14223            context.animate(count, duration, function () {
14224                context.data.renderedData = direction > 0 ? slides.slice(context.data.slidesPerPage * -1) : slides.slice(0, context.data.slidesPerPage);
14225                context._injectSlides(context.data.renderedData);
14226                context.animate(0, 0);
14227                context._paginate();
14228                context._activate();
14229                context._applySizes();
14230                context._resetHeight(true, function () {
14231                    context.isAnimating = false;
14232                    context.$element.trigger(_events2.default.carousel.navigated);
14233                    callback();
14234                });
14235            });
14236        }
14237
14238        /**
14239         * Animate the carousel by a set direction
14240         *
14241         * @public
14242         *
14243         * @param  {Number}   direction
14244         * @param  {Number}   duration
14245         * @param  {Function} callback
14246         */
14247
14248    }, {
14249        key: 'animate',
14250        value: function animate() {
14251            var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
14252            var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
14253            var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : utils.noop;
14254
14255            var divider = this.paginationType === 'slide' ? this.data.slidesPerPage : 1;
14256            var $slider = this.$element.find(this.selectors.slider);
14257
14258            $slider.animate({
14259                marginLeft: direction * -(100 / divider) + '%'
14260            }, duration, 'linear', callback);
14261        }
14262
14263        /**
14264         * Add an Array of slides to a carousel at the end or to a specified position
14265         *
14266         * @public
14267         *
14268         * @param {Array|$.Element} slides The Array of the slides to add to the Carousel
14269         * @param {Number?}         to     The position where to insert the slides
14270         */
14271
14272    }, {
14273        key: 'add',
14274        value: function add(slides) {
14275            var to = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.data.slides.length;
14276
14277            this.data.slides = this.data.slides.slice(0, to).concat(newSlides).concat(this.data.slides.slice(to));
14278
14279            this.data.slides.forEach(function ($slide, index) {
14280                return $slide.attr('data-slide', index);
14281            });
14282
14283            this.configure(true);
14284            this._generatePagination();
14285
14286            return newSlides;
14287        }
14288
14289        /**
14290         * Remove an Array of slides
14291         *
14292         * @public
14293         *
14294         * @param  {Array} slideIndexes
14295         *
14296         * @return {Array}  The deleted slides
14297         */
14298
14299    }, {
14300        key: 'remove',
14301        value: function remove(slideIndexes) {
14302            var _this = this;
14303
14304            var slideIndexesArray = [].concat(slideIndexes);
14305            var deletedSlides = slideIndexesArray.map(function (slideIndex) {
14306                return _this.data.slides.filter(function (slide) {
14307                    return (0, _jquery2.default)(slide).data('slide') === slideIndex;
14308                })[0];
14309            });
14310
14311            this.data.slides = this.data.slides.filter(function (slide) {
14312                return !slideIndexesArray.includes((0, _jquery2.default)(slide).data('slide'));
14313            });
14314
14315            if (slideIndexesArray.includes(this.data.currentPage)) {
14316                this.data.currentPage = 0;
14317                this._paginate();
14318            }
14319
14320            this.configure(true);
14321            this._generatePagination();
14322
14323            return deletedSlides;
14324        }
14325
14326        /**
14327         * Move a slide from an index to another
14328         *
14329         * @public
14330         *
14331         * @param  {Number} from
14332         * @param  {Number} to
14333         */
14334
14335    }, {
14336        key: 'move',
14337        value: function move(from, to) {
14338            this.data.slides.splice(to, 0, this.data.slides.splice(from, 1)[0]);
14339
14340            this.configure(true);
14341            this._generatePagination();
14342        }
14343
14344        /**
14345         * Return if a slide is in view
14346         *
14347         * @param  {Number}  slideIndex
14348         *
14349         * @return {Boolean|$.Element}
14350         */
14351
14352    }, {
14353        key: '_isInView',
14354        value: function _isInView(slideIndex) {
14355            var slidesInView = this.data.renderedData.filter(function ($slide) {
14356                return $slide.data('slide') === slideIndex;
14357            });
14358
14359            return slidesInView.length && this.data.renderedData.indexOf(slidesInView[0]);
14360        }
14361
14362        /**
14363         * Bind the events for the controls and for the window resizing
14364         */
14365
14366    }, {
14367        key: '_bind',
14368        value: function _bind() {
14369            this.$element.addClass(this.classes.dynamicContentListener);
14370            (0, _jquery2.default)(window).on('vf::resize', this._handleResize.bind(this));
14371            this.$element.find(this.selectors.control).on('click', this._handleControl.bind(this));
14372            this.$element.find(this.selectors.pagination).on('click', this.selectors.page, this._handlePage.bind(this));
14373            this.$element.on('swiperight swipeleft', this._handleSwipe.bind(this));
14374            this.$element.on([_events2.default.dynamicContent.show, _events2.default.dynamicContent.hide].join(' '), this._handleDynamicContent.bind(this));
14375        }
14376
14377        /**
14378         * Handle the dynamic content change
14379         */
14380
14381    }, {
14382        key: '_handleDynamicContent',
14383        value: function _handleDynamicContent(event) {
14384            if (_jquery2.default.contains(event.target, this.$element.get(0))) {
14385                this.configure(true);
14386            }
14387        }
14388
14389        /**
14390         * Handle the window resizing
14391         */
14392
14393    }, {
14394        key: '_handleResize',
14395        value: function _handleResize() {
14396            this.configure();
14397        }
14398
14399        /**
14400         * Handle the control clicking and navigate to the set direction
14401         *
14402         * @param  {$.Event} event
14403         */
14404
14405    }, {
14406        key: '_handleControl',
14407        value: function _handleControl(event) {
14408            event.preventDefault();
14409
14410            this.navigate((0, _jquery2.default)(event.currentTarget).data('direction'));
14411        }
14412
14413        /**
14414         * Handle the page item click event
14415         *
14416         * @param  {$.Event} event
14417         */
14418
14419    }, {
14420        key: '_handlePage',
14421        value: function _handlePage(event) {
14422            event.preventDefault();
14423
14424            this.navigate((0, _jquery2.default)(event.currentTarget).data('page') - this.data.currentPage);
14425        }
14426
14427        /**
14428         * Handle the swipe event
14429         *
14430         * @param  {$.Event} event
14431         */
14432
14433    }, {
14434        key: '_handleSwipe',
14435        value: function _handleSwipe(event) {
14436            if (!window.Modernizr.touchevents) {
14437                return;
14438            }
14439
14440            this.navigate(this.swipeEvents[event.type]);
14441        }
14442
14443        /**
14444         * Adapt the height of the slider to the slide max height
14445         * and set it to auto after
14446         */
14447
14448    }, {
14449        key: '_adaptHeight',
14450        value: function _adaptHeight() {
14451            var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 400;
14452
14453            if (!this.adjustHeight) {
14454                return;
14455            }
14456
14457            var $slider = this.$element.find(this.selectors.slider);
14458
14459            $slider.animate({
14460                height: this._getMaxHeight() + 'px'
14461            }, duration, function () {
14462                return $slider.css('height', 'auto');
14463            });
14464        }
14465
14466        /**
14467         * Reset the height to the maximum height of the slider
14468         *
14469         * @param  {Boolean}  isAnimated  Use the animation or the transaction
14470         * @param  {Function} callback
14471         */
14472
14473    }, {
14474        key: '_resetHeight',
14475        value: function _resetHeight() {
14476            var isAnimated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
14477            var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : utils.noop;
14478
14479            if (!this.adjustHeight) {
14480                callback();
14481
14482                return;
14483            }
14484
14485            var $slider = this.$element.find(this.selectors.slider);
14486
14487            if (isAnimated) {
14488                $slider.animate({
14489                    height: this._getMaxHeight() + 'px'
14490                }, 200, function () {
14491                    $slider.css('height', 'auto');
14492                    callback();
14493                });
14494
14495                return;
14496            }
14497
14498            $slider.css('height', this._getMaxHeight());
14499
14500            callback();
14501        }
14502
14503        /**
14504         * Return the slide max height
14505         */
14506
14507    }, {
14508        key: '_getMaxHeight',
14509        value: function _getMaxHeight() {
14510            return this.data.renderedData.reduce(function (carry, $slide) {
14511                return carry < $slide.height() ? $slide.height() : carry;
14512            }, 0);
14513        }
14514
14515        /**
14516         * Manage the active class on the slides
14517         *
14518         * @return {$.Element} The active element
14519         */
14520
14521    }, {
14522        key: '_activate',
14523        value: function _activate() {
14524            return this.$element.find(this.selectors.slide).removeClass(this.classes.activeSlide).filter('[data-slide=' + this.data.currentPage + ']').addClass(this.classes.activeSlide);
14525        }
14526
14527        /**
14528         * Add the data-slide attribute to the slides
14529         */
14530
14531    }, {
14532        key: '_addIDs',
14533        value: function _addIDs() {
14534            this.$element.find(this.selectors.slide).each(function (i, slide) {
14535                return (0, _jquery2.default)(slide).attr('data-slide', i);
14536            });
14537        }
14538
14539        /**
14540         * Save the data needed for the carousel
14541         */
14542
14543    }, {
14544        key: '_generateData',
14545        value: function _generateData() {
14546            var slides = this._getSlidesData();
14547            var slidesPerPage = this._getSlidesBreakpoint();
14548
14549            return {
14550                slides: slides,
14551                currentPage: 0,
14552                slidesPerPage: slidesPerPage,
14553                totalPages: Math.ceil(slides.length / slidesPerPage),
14554                renderedData: slides.slice(0, slidesPerPage),
14555                offset: this.center && slidesPerPage % 2 !== 0 ? Math.floor(slidesPerPage / 2) : 0
14556            };
14557        }
14558
14559        /**
14560         * Delete all the slides, storing them in the data layer
14561         */
14562
14563    }, {
14564        key: '_killSlides',
14565        value: function _killSlides() {
14566            var _this2 = this;
14567
14568            this.$element.find(this.selectors.slide).each(function (index, slide) {
14569                var $slide = (0, _jquery2.default)(slide);
14570                var slideDataIndex = _this2.data.slides.indexOf($slide);
14571
14572                _this2.data.slides[slideDataIndex] = $slide.removeClass(_this2.classes.activeSlide).detach();
14573            });
14574        }
14575
14576        /**
14577         * This is needed for IE11 and below, where SVGs disappear when detaching and appending them back
14578         * to the DOM.
14579         */
14580
14581    }, {
14582        key: '_attachSVGs',
14583        value: function _attachSVGs() {
14584            this.$element.find(this.selectors.slide).find('use').each(function (i, useElement) {
14585                var $use = (0, _jquery2.default)(useElement);
14586                var svgHref = $use.attr('xlink:href');
14587
14588                $use.attr('xlink:href', svgHref);
14589            });
14590        }
14591
14592        /**
14593         * Uses an Array of slides as source of the carousel
14594         *
14595         * @param  {Array} slides
14596         */
14597
14598    }, {
14599        key: '_injectSlides',
14600        value: function _injectSlides(slides) {
14601            var _$element$find;
14602
14603            this._killSlides();
14604            (_$element$find = this.$element.find(this.selectors.slider)).append.apply(_$element$find, _toConsumableArray(slides));
14605            if (window.equalHeights != undefined) {
14606                equalHeights();
14607            };
14608            this._attachSVGs();
14609        }
14610
14611        /**
14612         * Get the slides from the the existing ones, from the data or clone them.
14613         *
14614         * @param  {Array} from
14615         * @param  {Array} to
14616         * @param  {number} direction
14617         *
14618         * @return {Array}
14619         */
14620
14621    }, {
14622        key: '_getSlides',
14623        value: function _getSlides(from, to, direction) {
14624            var _this3 = this;
14625
14626            return to.map(function ($slide, index) {
14627                var fromSlide = from.indexOf($slide);
14628                var dataSlide = _this3.data.slides.indexOf($slide);
14629                var startIndex = direction > 0 ? to.lastIndexOf($slide) : to.indexOf($slide);
14630
14631                if (fromSlide !== -1) {
14632                    if (startIndex !== index) {
14633                        return from[fromSlide].clone();
14634                    }
14635
14636                    return from[fromSlide];
14637                }
14638
14639                return _this3.data.slides[dataSlide];
14640            });
14641        }
14642
14643        /**
14644         * Get the slides needed to do the animation
14645         *
14646         * @param  {number} direction The direction the carousel is pointing to
14647         *
14648         * @return {Array}
14649         */
14650
14651    }, {
14652        key: '_getRenderData',
14653        value: function _getRenderData(direction) {
14654            var nextIndex = this.data.currentPage + direction;
14655            var start = nextIndex < this.data.currentPage ? nextIndex : this.data.currentPage;
14656            var end = nextIndex < this.data.currentPage ? this.data.currentPage + this.data.slidesPerPage : nextIndex + this.data.slidesPerPage;
14657            var renderData = [];
14658
14659            for (var i = start - this.data.offset; i < end - this.data.offset; ++i) {
14660                var absIndex = i % this.data.slides.length;
14661
14662                if (absIndex < 0) {
14663                    absIndex += this.data.slides.length;
14664                }
14665
14666                renderData.push(this.data.slides[absIndex]);
14667            }
14668
14669            return renderData;
14670        }
14671
14672        /**
14673         * Get the slides into an array
14674         *
14675         * @return {Array}
14676         */
14677
14678    }, {
14679        key: '_getSlidesData',
14680        value: function _getSlidesData() {
14681            return this.$element.find(this.selectors.slide).toArray().map(function (slide) {
14682                return (0, _jquery2.default)(slide);
14683            });
14684        }
14685
14686        /**
14687         * Generate the pagination html and add it to the pagination
14688         *
14689         * @param  {number?} activeIndex The active item
14690         */
14691
14692    }, {
14693        key: '_generatePagination',
14694        value: function _generatePagination() {
14695            var activeIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data.currentPage;
14696
14697            if (!this.$element.find(this.selectors.pagination).length || !this.generatePagination) {
14698                return;
14699            }
14700
14701            var totalPages = this.paginationType === 'slide' ? this.data.slides.length : this.data.totalPages;
14702        }
14703
14704        /**
14705         * Get the breakpoint slides per page from the before pseudo elements
14706         *
14707         * @return {number}
14708         */
14709
14710    }, {
14711        key: '_getSlidesBreakpoint',
14712        value: function _getSlidesBreakpoint() {
14713            return parseInt(this.breakpoints[utils.getBreakpoint()]);
14714        }
14715
14716        /**
14717         * Calculate the width of each slide
14718         *
14719         * @return {number}
14720         */
14721
14722    }, {
14723        key: '_calculateSlideWidth',
14724        value: function _calculateSlideWidth() {
14725            return 100 / this.data.renderedData.length;
14726        }
14727
14728        /**
14729         * Calculate the width of the slider
14730         *
14731         * @return {number}
14732         */
14733
14734    }, {
14735        key: '_calculateSliderWidth',
14736        value: function _calculateSliderWidth() {
14737            return this.data.renderedData.length / this.data.slidesPerPage * 100;
14738        }
14739
14740        /**
14741         * Toggle the controls based on the slide number
14742         */
14743
14744    }, {
14745        key: '_toggleControls',
14746        value: function _toggleControls() {
14747            this.$element.find(this.selectors.controls).toggleClass(this.classes.visibleControls, this.data.slides.length > this.data.slidesPerPage || this.forceControls);
14748
14749            this.$element.find(this.selectors.pagination).toggleClass(this.classes.visiblePagination, this.data.slides.length > this.data.slidesPerPage || this.forceControls);
14750        }
14751
14752        /**
14753         * Apply the widths to the slider and to each slide
14754         */
14755
14756    }, {
14757        key: '_applySizes',
14758        value: function _applySizes() {
14759            this.$element.find(this.selectors.slider).innerWidth(this._calculateSliderWidth() + '%');
14760            this.$element.find(this.selectors.slide).innerWidth(this._calculateSlideWidth() + '%');
14761        }
14762
14763        /**
14764         * Set the active page
14765         *
14766         * @param  {number?} page
14767         */
14768
14769    }, {
14770        key: '_paginate',
14771        value: function _paginate() {
14772            var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data.currentPage;
14773
14774            this.$element.find('.' + this.classes.activePage).removeClass(this.classes.activePage);
14775            this.$element.find(this.selectors.page).filter('[data-page="' + page + '"]').addClass(this.classes.activePage);
14776        }
14777    }]);
14778
14779    return Carousel;
14780}();
14781
14782exports.default = Carousel;
14783
14784}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
14785},{"./_dynamic-content":355,"./_events":356,"./_utils":368}],354:[function(require,module,exports){
14786(function (global){
14787'use strict';
14788
14789Object.defineProperty(exports, "__esModule", {
14790    value: true
14791});
14792
14793var _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; }; }();
14794
14795var _utils = require('./_utils');
14796
14797var utils = _interopRequireWildcard(_utils);
14798
14799var _events = require('./_events');
14800
14801var _events2 = _interopRequireDefault(_events);
14802
14803var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
14804
14805var _jquery2 = _interopRequireDefault(_jquery);
14806
14807var _nudge = require('./_nudge');
14808
14809var _nudge2 = _interopRequireDefault(_nudge);
14810
14811function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14812
14813function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
14814
14815function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14816
14817var defaults = {
14818    $element: undefined,
14819    nudge: undefined
14820};
14821
14822/**
14823 * CookiePolicy.
14824 *
14825 * @module CookiePolicy
14826 * @param {Object} properties - specifies the configurations
14827 * for the module.
14828 */
14829
14830var CookiePolicy = function () {
14831    function CookiePolicy() {
14832        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14833
14834        _classCallCheck(this, CookiePolicy);
14835
14836        var members = _jquery2.default.extend(true, {}, defaults, properties);
14837
14838        this.$element = members.$element;
14839    }
14840
14841    /**
14842     * Initialise the module.
14843     *
14844     * @function init
14845     *
14846     * @return {undefined}
14847     */
14848
14849
14850    _createClass(CookiePolicy, [{
14851        key: 'init',
14852        value: function init() {
14853            this.nudge = new _nudge2.default({ $element: this.$element });
14854            this.bind();
14855        }
14856
14857        /**
14858         * Listen for the cookie event on the document to action
14859         * the close functionality.
14860         *
14861         * @function bind
14862         *
14863         * @return {undefined}
14864         */
14865
14866    }, {
14867        key: 'bind',
14868        value: function bind() {
14869            (0, _jquery2.default)(document).on(_events2.default.cookie.updated, this.close.bind(this));
14870        }
14871
14872        /**
14873         * Close the the cookie policy notification.
14874         *
14875         * @function close
14876         *
14877         * @return {undefined}
14878         */
14879
14880    }, {
14881        key: 'close',
14882        value: function close(event) {
14883            this.nudge.close(event);
14884            utils.trigger(_events2.default.cookiePolicy.closed, this.$element, event);
14885        }
14886    }]);
14887
14888    return CookiePolicy;
14889}();
14890
14891exports.default = CookiePolicy;
14892
14893}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
14894},{"./_events":356,"./_nudge":363,"./_utils":368}],355:[function(require,module,exports){
14895'use strict';
14896
14897var _events = require('./_events');
14898
14899var _events2 = _interopRequireDefault(_events);
14900
14901function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14902
14903var classes = {
14904    listener: 'js-dynamic-content-listener'
14905};
14906
14907var selectors = {
14908    listener: '.' + classes.listener
14909};
14910
14911/**
14912 * Provides selective downwards event propagation for dynamicContent.* events.
14913 *
14914 * We register a top-level event handler for dynamicContent events, in which
14915 * we trigger (without bubbling) the same events on any listeners (identified
14916 * by selectors.listener) found within the original event target.
14917 *
14918 * This allows components to register their interest in any such events
14919 * triggered by their containers, and so have a reliable indicator of their
14920 * own visibility status without resorting to DOM polling etc.
14921 */
14922function init() {
14923    $(document).on([_events2.default.dynamicContent.show, _events2.default.dynamicContent.hide].join(' '), function (event) {
14924        var scope = event.target || document;
14925        var listeners = $(scope).find(selectors.listener).toArray();
14926        var _iteratorNormalCompletion = true;
14927        var _didIteratorError = false;
14928        var _iteratorError = undefined;
14929
14930        try {
14931            for (var _iterator = listeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14932                var listener = _step.value;
14933
14934                $(listener).triggerHandler(event);
14935            }
14936        } catch (err) {
14937            _didIteratorError = true;
14938            _iteratorError = err;
14939        } finally {
14940            try {
14941                if (!_iteratorNormalCompletion && _iterator.return) {
14942                    _iterator.return();
14943                }
14944            } finally {
14945                if (_didIteratorError) {
14946                    throw _iteratorError;
14947                }
14948            }
14949        }
14950    });
14951}
14952
14953module.exports = {
14954    classes: classes,
14955    selectors: selectors,
14956    init: init
14957};
14958
14959},{"./_events":356}],356:[function(require,module,exports){
14960'use strict';
14961
14962Object.defineProperty(exports, "__esModule", {
14963    value: true
14964});
14965var events = {
14966    cookie: {
14967        updated: 'vf::cookie::updated'
14968    },
14969    cookiePolicy: {
14970        closed: 'vf::cookiePolicy::closed'
14971    },
14972    carousel: {
14973        configured: 'vf::carousel::configured',
14974        navigate: 'vf::carousel::navigate',
14975        navigated: 'vf::carousel::navigated'
14976    },
14977    dialog: {
14978        opened: 'vf::dialog::opened',
14979        loaded: 'vf::dialog::loaded',
14980        closed: 'vf::dialog::closed'
14981    },
14982    loginNudge: {
14983        closed: 'vf::loginNudge::closed'
14984    },
14985    navigation: {
14986        opened: 'vf::navigation::opened',
14987        fixed: 'vf::navigation::fixed'
14988    },
14989    simpleTabs: {
14990        opened: 'vf::simpleTabs::opened',
14991        loading: 'vf::simpleTabs::loading',
14992        loaded: 'vf::simpleTabs::loaded'
14993    },
14994    quicklink: {
14995        opened: 'vf::quicklink::opened',
14996        closed: 'vf::quicklink::closed'
14997    },
14998    tabs: {
14999        opened: 'vf::tabs::opened',
15000        clicked: 'vf::tabs::clicked',
15001        loaded: 'vf::tabs::loaded'
15002    },
15003    topUp: {
15004        update: 'vf::top-up::update'
15005    },
15006    nudge: {
15007        closed: 'vf::nudge::closed'
15008    },
15009    toaster: {
15010        opened: 'vf::toaster::opened',
15011        closed: 'vf::toaster::closed'
15012    },
15013    map: {
15014        initialised: 'vf::map::initialised'
15015    },
15016    sayt: {
15017        submit: 'vf::sayt::submit'
15018    },
15019    validation: {
15020        submit: 'vf::validation::submit'
15021    },
15022    formStepper: {
15023        willFetch: 'vf::formStepper::willFetch',
15024        fetched: 'vf::formStepper::fetched'
15025    },
15026    dynamicContent: {
15027        show: 'vf::dynamicContent::show',
15028        hide: 'vf::dynamicContent::hide'
15029    },
15030    accordion: {
15031        toggle: 'vf::accordion::toggle',
15032        beginToggle: 'vf::accordion::beginToggle',
15033        expand: 'vf::accordion::expand',
15034        collapse: 'vf::accordion::collapse'
15035    },
15036    init: {
15037        pre: 'vf::init::pre',
15038        post: 'vf::init::post'
15039    }
15040};
15041
15042exports.default = events;
15043
15044},{}],357:[function(require,module,exports){
15045(function (global){
15046'use strict';
15047
15048Object.defineProperty(exports, "__esModule", {
15049    value: true
15050});
15051
15052var _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; }; }();
15053
15054var _events = require('./_events');
15055
15056var _events2 = _interopRequireDefault(_events);
15057
15058var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
15059
15060var _jquery2 = _interopRequireDefault(_jquery);
15061
15062function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15063
15064function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15065
15066var defaults = {
15067    $element: undefined,
15068    classes: {
15069        fixed: 'fixed'
15070    }
15071};
15072
15073/**
15074 * Fixed.
15075 *
15076 * @module Fixed
15077 * @param {Object} properties - specifies the configurations
15078 * for the module.
15079 */
15080
15081var Fixed = function () {
15082    function Fixed() {
15083        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15084
15085        _classCallCheck(this, Fixed);
15086
15087        var members = _jquery2.default.extend(true, {}, defaults, properties);
15088
15089        this.$element = members.$element;
15090        this.classes = members.classes;
15091    }
15092
15093    /**
15094     * Initialise the module.
15095     *
15096     * @function init
15097     *
15098     * @return {undefined}
15099     */
15100
15101
15102    _createClass(Fixed, [{
15103        key: 'init',
15104        value: function init() {
15105            this.bind();
15106        }
15107
15108        /**
15109        * Bind the dialog events to fix the body when dialogs are open.
15110        *
15111        * @function bind
15112        *
15113        * @return {undefined}
15114        */
15115
15116    }, {
15117        key: 'bind',
15118        value: function bind() {
15119            (0, _jquery2.default)(document).on(_events2.default.dialog.opened, this.fix.bind(this, true));
15120            (0, _jquery2.default)(document).on(_events2.default.dialog.closed, this.fix.bind(this, false));
15121        }
15122
15123        /**
15124        * Toggle the fix on the body when dialogs are opened or closed.
15125        *
15126        * @function fix
15127        * @param {Boolean} fixed - specifies if the body should be fixed or not.
15128        *
15129        * @return {undefined}
15130        */
15131
15132    }, {
15133        key: 'fix',
15134        value: function fix(fixed) {
15135            this.$element.toggleClass(this.classes.fixed, fixed);
15136        }
15137    }]);
15138
15139    return Fixed;
15140}();
15141
15142exports.default = Fixed;
15143
15144}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15145},{"./_events":356}],358:[function(require,module,exports){
15146(function (global){
15147'use strict';
15148
15149var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
15150
15151var _jquery2 = _interopRequireDefault(_jquery);
15152
15153function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15154
15155_jquery2.default.fn.extend({
15156    only: function only(selector) {
15157        var delimiter = selector.indexOf(' ');
15158
15159        if (~delimiter) {
15160            var context = selector.substr(0, delimiter);
15161            var subject = selector.substr(delimiter + 1);
15162            var $parent = (0, _jquery2.default)([]);
15163            var $nested = (0, _jquery2.default)([]);
15164
15165            $parent = this.closest(context);
15166            $nested = $parent.find(context).find(subject);
15167
15168            return this.find(subject).not($nested);
15169        }
15170
15171        return this.find(selector);
15172    }
15173});
15174
15175_jquery2.default.fn.extend(_jquery2.default.expr[':'], {
15176    focusable: function focusable(element) {
15177        return (0, _jquery2.default)(element).is('a, button, :input, [tabindex]') && (0, _jquery2.default)(element).is(':visible') && (0, _jquery2.default)(element).css('visibility') !== 'hidden' && !(0, _jquery2.default)(element).is(':disabled');
15178    }
15179});
15180
15181_jquery2.default.fn.extend({
15182    scrollParent: function scrollParent() {
15183        var overflowRegex = /(auto|scroll)/;
15184        var position = this.css('position');
15185        var excludeStaticParent = position === 'absolute';
15186        var scrollParent = this.parents().filter(function () {
15187            var parent = (0, _jquery2.default)(this);
15188            if (excludeStaticParent && parent.css('position') === 'static') {
15189                return false;
15190            }
15191            var overflowState = parent.css(['overflow', 'overflowX', 'overflowY']);
15192            return overflowRegex.test(overflowState.overflow + overflowState.overflowX + overflowState.overflowY);
15193        }).eq(0);
15194
15195        return position === 'fixed' || !scrollParent.length ? (0, _jquery2.default)(this[0].ownerDocument || document).find('body, html') : scrollParent;
15196    }
15197});
15198
15199/** see http://www.henryalgus.com/reading-binary-files-using-jquery-ajax/ */
15200_jquery2.default.ajaxTransport('+binary', function (options, originalOptions, jqXHR) {
15201    // check for conditions and support for blob / arraybuffer response type
15202    var isValidBinaryFetch = window.FormData && (options.dataType && options.dataType === 'binary' || options.data && (window.ArrayBuffer && options.data instanceof ArrayBuffer || window.Blob && options.data instanceof Blob));
15203    if (!isValidBinaryFetch) return false;
15204
15205    return {
15206        // create new XMLHttpRequest
15207        send: function send(headers, callback) {
15208            var xhr = new XMLHttpRequest();
15209            xhr.addEventListener('load', function () {
15210                var data = {};
15211                data[options.dataType] = xhr.response;
15212                // make callback and send data
15213                callback(xhr.status, xhr.statusText, data, xhr.getAllResponseHeaders());
15214            });
15215
15216            var url = options.url,
15217                type = options.type;
15218
15219            var async = options.async || true;
15220            var username = options.username || null;
15221            var password = options.password || null;
15222            xhr.open(type, url, async, username, password);
15223
15224            // setup custom headers
15225            for (var i in headers) {
15226                xhr.setRequestHeader(i, headers[i]);
15227            }
15228
15229            // blob or arraybuffer. Default is blob
15230            var dataType = options.responseType || 'blob';
15231            xhr.responseType = dataType;
15232
15233            var data = options.data || null;
15234            xhr.send(data);
15235        },
15236        abort: function abort() {
15237            jqXHR.abort();
15238        }
15239    };
15240});
15241
15242}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15243},{}],359:[function(require,module,exports){
15244"use strict";
15245
15246Object.defineProperty(exports, "__esModule", {
15247  value: true
15248});
15249window.lazySizesConfig = window.lazySizesConfig || {};
15250
15251window.lazySizesConfig.expand = 100;
15252window.lazySizesConfig.loadMode = 1;
15253exports.default = window.lazySizesConfig;
15254
15255},{}],360:[function(require,module,exports){
15256'use strict';
15257
15258var _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; };
15259
15260(function (window, factory) {
15261	var globalInstall = function globalInstall() {
15262		factory(window.lazySizes);
15263		window.removeEventListener('lazyunveilread', globalInstall, true);
15264	};
15265
15266	factory = factory.bind(null, window, window.document);
15267
15268	if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) == 'object' && module.exports) {
15269		factory(require('lazysizes'));
15270	} else if (window.lazySizes) {
15271		globalInstall();
15272	} else {
15273		window.addEventListener('lazyunveilread', globalInstall, true);
15274	}
15275})(window, function (window, document, lazySizes) {
15276	'use strict';
15277
15278	if (!window.addEventListener) {
15279		return;
15280	}
15281
15282	var regWhite = /\s+/g;
15283	var regSplitSet = /\s*\|\s+|\s+\|\s*/g;
15284	var regSource = /^(.+?)(?:\s+\[\s*(.+?)\s*\])?$/;
15285	var regBgUrlEscape = /\(|\)|'/;
15286	var allowedBackgroundSize = { contain: 1, cover: 1 };
15287	var proxyWidth = function proxyWidth(elem) {
15288		var width = lazySizes.gW(elem, elem.parentNode);
15289
15290		if (!elem._lazysizesWidth || width > elem._lazysizesWidth) {
15291			elem._lazysizesWidth = width;
15292		}
15293		return elem._lazysizesWidth;
15294	};
15295	var getBgSize = function getBgSize(elem) {
15296		var bgSize;
15297
15298		bgSize = (getComputedStyle(elem) || { getPropertyValue: function getPropertyValue() {} }).getPropertyValue('background-size');
15299
15300		if (!allowedBackgroundSize[bgSize] && allowedBackgroundSize[elem.style.backgroundSize]) {
15301			bgSize = elem.style.backgroundSize;
15302		}
15303
15304		return bgSize;
15305	};
15306	var createPicture = function createPicture(sets, elem, img) {
15307		var picture = document.createElement('picture');
15308		var sizes = elem.getAttribute(lazySizesConfig.sizesAttr);
15309		var ratio = elem.getAttribute('data-ratio');
15310		var optimumx = elem.getAttribute('data-optimumx');
15311
15312		if (elem._lazybgset && elem._lazybgset.parentNode == elem) {
15313			elem.removeChild(elem._lazybgset);
15314		}
15315
15316		Object.defineProperty(img, '_lazybgset', {
15317			value: elem,
15318			writable: true
15319		});
15320		Object.defineProperty(elem, '_lazybgset', {
15321			value: picture,
15322			writable: true
15323		});
15324
15325		sets = sets.replace(regWhite, ' ').split(regSplitSet);
15326
15327		picture.style.display = 'none';
15328		img.className = lazySizesConfig.lazyClass;
15329
15330		if (sets.length == 1 && !sizes) {
15331			sizes = 'auto';
15332		}
15333
15334		sets.forEach(function (set) {
15335			var source = document.createElement('source');
15336
15337			if (sizes && sizes != 'auto') {
15338				source.setAttribute('sizes', sizes);
15339			}
15340
15341			if (set.match(regSource)) {
15342				source.setAttribute(lazySizesConfig.srcsetAttr, RegExp.$1);
15343				if (RegExp.$2) {
15344					source.setAttribute('media', lazySizesConfig.customMedia[RegExp.$2] || RegExp.$2);
15345				}
15346			}
15347			picture.appendChild(source);
15348		});
15349
15350		if (sizes) {
15351			img.setAttribute(lazySizesConfig.sizesAttr, sizes);
15352			elem.removeAttribute(lazySizesConfig.sizesAttr);
15353			elem.removeAttribute('sizes');
15354		}
15355		if (optimumx) {
15356			img.setAttribute('data-optimumx', optimumx);
15357		}
15358		if (ratio) {
15359			img.setAttribute('data-ratio', ratio);
15360		}
15361
15362		picture.appendChild(img);
15363
15364		elem.appendChild(picture);
15365	};
15366
15367	var proxyLoad = function proxyLoad(e) {
15368		if (!e.target._lazybgset) {
15369			return;
15370		}
15371
15372		var image = e.target;
15373		var elem = image._lazybgset;
15374		var bg = image.currentSrc || image.src;
15375
15376		if (bg) {
15377			elem.style.backgroundImage = 'url(' + (regBgUrlEscape.test(bg) ? JSON.stringify(bg) : bg) + ')';
15378		}
15379
15380		if (image._lazybgsetLoading) {
15381			lazySizes.fire(elem, '_lazyloaded', {}, false, true);
15382			delete image._lazybgsetLoading;
15383		}
15384	};
15385
15386	addEventListener('lazybeforeunveil', function (e) {
15387		var set, image, elem;
15388
15389		if (e.defaultPrevented || !(set = e.target.getAttribute('data-bgset'))) {
15390			return;
15391		}
15392
15393		elem = e.target;
15394		image = document.createElement('img');
15395
15396		image.alt = '';
15397
15398		image._lazybgsetLoading = true;
15399		e.detail.firesLoad = true;
15400
15401		createPicture(set, elem, image);
15402
15403		setTimeout(function () {
15404			lazySizes.loader.unveil(image);
15405
15406			lazySizes.rAF(function () {
15407				lazySizes.fire(image, '_lazyloaded', {}, true, true);
15408				if (image.complete) {
15409					proxyLoad({ target: image });
15410				}
15411			});
15412		});
15413	});
15414
15415	document.addEventListener('load', proxyLoad, true);
15416
15417	window.addEventListener('lazybeforesizes', function (e) {
15418		if (e.detail.instance != lazySizes) {
15419			return;
15420		}
15421		if (e.target._lazybgset && e.detail.dataAttr) {
15422			var elem = e.target._lazybgset;
15423			var bgSize = getBgSize(elem);
15424
15425			if (allowedBackgroundSize[bgSize]) {
15426				e.target._lazysizesParentFit = bgSize;
15427
15428				lazySizes.rAF(function () {
15429					e.target.setAttribute('data-parent-fit', bgSize);
15430					if (e.target._lazysizesParentFit) {
15431						delete e.target._lazysizesParentFit;
15432					}
15433				});
15434			}
15435		}
15436	}, true);
15437
15438	document.documentElement.addEventListener('lazybeforesizes', function (e) {
15439		if (e.defaultPrevented || !e.target._lazybgset || e.detail.instance != lazySizes) {
15440			return;
15441		}
15442		e.detail.width = proxyWidth(e.target._lazybgset);
15443	});
15444});
15445
15446},{"lazysizes":343}],361:[function(require,module,exports){
15447'use strict';
15448
15449Object.defineProperty(exports, "__esModule", {
15450    value: true
15451});
15452
15453var _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; }; }();
15454
15455function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15456
15457var defaults = {
15458    $element: undefined,
15459    classes: {
15460        active: 'mouse-active'
15461    }
15462};
15463
15464/**
15465 * Mouse active.
15466 *
15467 * @module MouseActive
15468 * @param {Object} properties - specifies the configurations
15469 * for the module.
15470 */
15471
15472var MouseActive = function () {
15473    function MouseActive() {
15474        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15475
15476        _classCallCheck(this, MouseActive);
15477
15478        var members = $.extend(true, {}, defaults, properties);
15479
15480        this.$element = members.$element;
15481        this.classes = members.classes;
15482    }
15483
15484    /**
15485     * Initialise the module.
15486     *
15487     * @function init
15488     *
15489     * @return {undefined}
15490     */
15491
15492
15493    _createClass(MouseActive, [{
15494        key: 'init',
15495        value: function init() {
15496            this.bind();
15497        }
15498
15499        /**
15500        * Bind the events to the actionable elements.
15501        * within the tabs system.
15502        *
15503        * @function bind
15504        *
15505        * @return {undefined}
15506        */
15507
15508    }, {
15509        key: 'bind',
15510        value: function bind() {
15511            this.$element.on('keydown mousedown', this.toggleMouseClass.bind(this));
15512        }
15513
15514        /**
15515        * Toggle mouse-active class on the window element.
15516        *
15517        * @function toggleMouseClass
15518        *
15519        * @return {undefined}
15520        */
15521
15522    }, {
15523        key: 'toggleMouseClass',
15524        value: function toggleMouseClass() {
15525            var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15526
15527            this.$element.toggleClass(this.classes.active, event.type === 'mousedown');
15528        }
15529    }]);
15530
15531    return MouseActive;
15532}();
15533
15534exports.default = MouseActive;
15535
15536},{}],362:[function(require,module,exports){
15537(function (global){
15538'use strict';
15539
15540Object.defineProperty(exports, "__esModule", {
15541    value: true
15542});
15543
15544var _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; }; }();
15545
15546var _utils = require('./_utils');
15547
15548var utils = _interopRequireWildcard(_utils);
15549
15550var _events = require('./_events');
15551
15552var _events2 = _interopRequireDefault(_events);
15553
15554var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
15555
15556var _jquery2 = _interopRequireDefault(_jquery);
15557
15558function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15559
15560function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15561
15562function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15563
15564var defaults = {
15565    $element: undefined,
15566    selectors: {
15567        navigation: '.js-navigation',
15568        display: '.navigation--display',
15569        item: '.js-navigation-item',
15570        mouseable: '.js-navigation-item:not(.js-navigation-item-clickable, .js-navigation-item-clickable .js-navigation-item)',
15571        clickable: '.js-navigation-item-clickable > .js-navigation-link:first-child',
15572        toggle: '.js-navigation-toggle',
15573        close: '.js-navigation-close',
15574        link: '.js-navigation-link',
15575        languageNavigation: '.js-navigation-language',
15576        brand: '.js-brand',
15577        touchable: '.touchevents',
15578        static: '.js-navigation-static',
15579        content: '.js-content'
15580    },
15581    classes: {
15582        display: 'navigation--display',
15583        closed: 'navigation--closed',
15584        fixed: 'navigation--fixed',
15585        hide: 'navigation--hide',
15586        navActive: 'navigation--active',
15587        brandFixed: 'brand--fixed',
15588        active: 'navigation__item--active',
15589        linkActive: 'navigation__link--active',
15590        bodyFixed: 'body--navigation-fixed'
15591    },
15592    $touched: (0, _jquery2.default)([]),
15593    scrollPosition: 0,
15594    timer: 0
15595};
15596
15597/**
15598 * Navigation.
15599 *
15600 * @module Navigation
15601 * @param {Object} properties - specifies the configurations
15602 * for the module.
15603 */
15604
15605var Navigation = function () {
15606    function Navigation() {
15607        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15608
15609        _classCallCheck(this, Navigation);
15610
15611        var members = _jquery2.default.extend(true, {}, defaults, properties);
15612
15613        this.$element = members.$element;
15614        this.selectors = members.selectors;
15615        this.classes = members.classes;
15616        this.$touched = members.$touched;
15617
15618        this.accessibility();
15619    }
15620
15621    /**
15622     * Initialise the module.
15623     *
15624     * @function init
15625     *
15626     * @return {undefined}
15627     */
15628
15629
15630    _createClass(Navigation, [{
15631        key: 'init',
15632        value: function init() {
15633            this.bind();
15634        }
15635
15636        /**
15637        * Apply the interactive accessibility
15638        * attributes for assisted technology
15639        * users.
15640        *
15641        * @function accessibility
15642        *
15643        * @return {undefined}
15644        */
15645
15646    }, {
15647        key: 'accessibility',
15648        value: function accessibility() {
15649            var $clickable = this.$element.find(this.selectors.clickable);
15650
15651            $clickable.attr('aria-haspopup', 'true');
15652        }
15653
15654        /**
15655        * Bind the events to the actionable elements
15656        * within the navigation.
15657        *
15658        * @function bind
15659        *
15660        * @return {undefined}
15661        */
15662
15663    }, {
15664        key: 'bind',
15665        value: function bind() {
15666            var $mouseable = this.$element.find(this.selectors.mouseable);
15667            var $clickable = this.$element.find(this.selectors.clickable);
15668            var $content = (0, _jquery2.default)(document).find(this.selectors.content);
15669
15670            $mouseable.on('focusin mouseover', this.toggle.bind(this, true));
15671            $mouseable.on('focusout mouseout', this.toggle.bind(this, false));
15672            $mouseable.on('click', this.touchable.bind(this));
15673            $clickable.on('click', this.toggle.bind(this, undefined));
15674            (0, _jquery2.default)(document).on('scroll', this, this.fix.bind(this));
15675            $content.on('touchmove', this.preventBackgroundScroll.bind(this));
15676        }
15677
15678        /**
15679         * Handle the mouse hover equivelant interactions for touch
15680         * devices.
15681         *
15682         * @function touchable
15683         * @param {$.Event} event - specifies the click event.
15684         *
15685         * @return {undefined}
15686         */
15687
15688    }, {
15689        key: 'touchable',
15690        value: function touchable(event) {
15691            event.stopPropagation();
15692
15693            var $touchable = (0, _jquery2.default)(this.selectors.touchable);
15694            var $mouseable = (0, _jquery2.default)(event.currentTarget);
15695            var $touched = (0, _jquery2.default)([]);
15696
15697            if ($touchable.length && !this.$touched.is($mouseable)) {
15698                var $navigation = $mouseable.find(this.selectors.navigation).first();
15699
15700                if ($navigation.length) {
15701                    event.preventDefault();
15702
15703                    this.toggle(true, event);
15704
15705                    $touched = $mouseable;
15706                }
15707            }
15708
15709            this.$touched = $touched;
15710        }
15711
15712        /**
15713         * Returns open whether it'is undefined or if the releatedTarget
15714         * has elements in it
15715         *
15716         * @param {Boolean} open - specifies whether or not the
15717         * navigation should be opened or closed.
15718         * @param {$.Element} $item - the item to check
15719         * @param {HTMLElement} relatedTarget
15720         *
15721         * @return {Boolean || undefined}
15722         */
15723
15724    }, {
15725        key: 'display',
15726        value: function display(open, $item, relatedTarget) {
15727            return open === undefined ? open : Boolean(open || $item.has(relatedTarget).length);
15728        }
15729
15730        /**
15731        * Toggle the visibility of the lower level
15732        * navigations.
15733        *
15734        * @function toggle
15735        * @param {Boolean} open - specifies whether or not the
15736        * navigation should be opened or closed.
15737        * @param {$.Event} event - specifies the focusin, mouseover,
15738        * focusout, or mouseout event.
15739        *
15740        * @return {undefined}
15741        */
15742
15743    }, {
15744        key: 'toggle',
15745        value: function toggle(open, event) {
15746            if ((event.type === 'mouseover' || event.type === 'mouseout') && (0, _jquery2.default)('.' + this.classes.active).has(this.selectors.toggle).length && utils.getBreakpoint() !== 'desktop') {
15747                return;
15748            }
15749
15750            event.preventDefault();
15751
15752            var $item = (0, _jquery2.default)(event.currentTarget).parent(this.selectors.item).addBack(this.selectors.item);
15753            var $items = $item.siblings(this.selectors.item).not($item);
15754            var $navigation = $item.find(this.selectors.navigation).first();
15755            var $navigations = $items.find(this.selectors.navigation).not($navigation);
15756            var $link = $navigation.parent(this.selectors.item).find(this.selectors.link).first();
15757            var $links = this.$element.find(this.selectors.link).not($link);
15758            var display = this.display(open, $item, event.relatedTarget);
15759
15760            if (event.type === 'click') {
15761                event.stopPropagation();
15762            }
15763
15764            this.$element.addClass(this.classes.closed);
15765            $navigations.removeClass(this.classes.display).addClass(this.classes.closed);
15766            $navigation.toggleClass([this.classes.display, this.classes.closed].join(' '), display);
15767            $items.removeClass(this.classes.active);
15768            $item.toggleClass(this.classes.active, display);
15769            $links.removeClass(this.classes.linkActive);
15770            $link.toggleClass(this.classes.linkActive, display);
15771
15772            if ($navigation.is(this.selectors.display)) {
15773                this.$element.removeClass(this.classes.closed);
15774                utils.trigger(_events2.default.navigation.opened, this.$element, event);
15775                $links.attr('aria-haspopup', 'false');
15776                (0, _jquery2.default)('body').addClass(this.classes.bodyFixed);
15777            } else {
15778                $links.attr('aria-haspopup', 'true');
15779                (0, _jquery2.default)('body').removeClass(this.classes.bodyFixed);
15780            }
15781        }
15782
15783        /**
15784        * Fix the navigation to the top of the window
15785        * once the user has scrolled pass the navigation
15786        * top position.
15787        *
15788        * @function fix
15789        * @event {$.Event} event - specifies the scroll event.
15790        *
15791        * @return {undefined}
15792        */
15793
15794    }, {
15795        key: 'fix',
15796        value: function fix(event) {
15797            var $static = this.$element.prev(this.selectors.static);
15798            var fixed = (0, _jquery2.default)(window).scrollTop() >= $static.offset().top;
15799            this.$element.toggleClass(this.classes.fixed, fixed);
15800            $static.height(fixed && this.$element.height() || 0);
15801
15802            if ((0, _jquery2.default)(window).scrollTop() === 0) {
15803                this.$element.removeClass(this.classes.fixed);
15804                $static.height(0);
15805            }
15806
15807            utils.trigger(_events2.default.navigation.fixed, this.$element, event);
15808        }
15809
15810        /**
15811        * Stop content in the background from scrolling
15812        * while the navigation is open.
15813        *
15814        * @function preventBackgroundScroll
15815        * @event {$.Event} event - specifies the touchmove event.
15816        *
15817        * @return {undefined}
15818        */
15819
15820    }, {
15821        key: 'preventBackgroundScroll',
15822        value: function preventBackgroundScroll(event) {
15823            if ((0, _jquery2.default)('body').hasClass(this.classes.bodyFixed)) {
15824                event.preventDefault();
15825            }
15826        }
15827    }]);
15828
15829    return Navigation;
15830}();
15831
15832exports.default = Navigation;
15833
15834}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
15835},{"./_events":356,"./_utils":368}],363:[function(require,module,exports){
15836(function (global){
15837'use strict';
15838
15839Object.defineProperty(exports, "__esModule", {
15840    value: true
15841});
15842
15843var _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; }; }();
15844
15845var _utils = require('./_utils');
15846
15847var utils = _interopRequireWildcard(_utils);
15848
15849var _events = require('./_events');
15850
15851var _events2 = _interopRequireDefault(_events);
15852
15853var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
15854
15855var _jquery2 = _interopRequireDefault(_jquery);
15856
15857function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15858
15859function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15860
15861function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15862
15863var defaults = {
15864    $element: undefined,
15865    selectors: {
15866        close: '.js-nudge-close'
15867    },
15868    delay: 3000
15869};
15870
15871/**
15872 * Location Nudge.
15873 *
15874 * @module Nudge
15875 * @param {Object} properties - specifies the configurations
15876 * for the module.
15877 */
15878
15879var Nudge = function () {
15880    function Nudge() {
15881        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15882
15883        _classCallCheck(this, Nudge);
15884
15885        var members = _jquery2.default.extend(true, {}, defaults, properties);
15886
15887        this.$element = members.$element;
15888        this.selectors = members.selectors;
15889        this.delay = members.delay;
15890    }
15891
15892    /**
15893     * Initialise the module.
15894     *
15895     * @function init
15896     *
15897     * @return {undefined}
15898     */
15899
15900
15901    _createClass(Nudge, [{
15902        key: 'init',
15903        value: function init() {
15904            this.bind();
15905
15906            this.height.apply(this);
15907        }
15908
15909        /**
15910         * Bind the events to the element responsible for getting the nudge.
15911         *
15912         * @function bind
15913         *
15914         * @return {undefined}
15915         */
15916
15917    }, {
15918        key: 'bind',
15919        value: function bind() {
15920            this.$element.on('click', this.selectors.close, this.close.bind(this));
15921
15922            window.setTimeout(this.show.bind(this), this.delay);
15923        }
15924
15925        /**
15926         * Compute the height of the nudge
15927         *
15928         * @function height
15929         *
15930         * @return {undefined}
15931         */
15932
15933    }, {
15934        key: 'height',
15935        value: function height() {
15936            var height = this.$element.outerHeight();
15937
15938            this.$element.css('margin-top', '-' + height + 'px');
15939        }
15940
15941        /**
15942         * Show the the nudge.
15943         *
15944         * @function show
15945         *
15946         * @return {undefined}
15947         */
15948
15949    }, {
15950        key: 'show',
15951        value: function show() {
15952            this.$element.animate({
15953                marginTop: '0px'
15954            }, 'easeInCubic');
15955        }
15956
15957        /**
15958         * Close the the nudge.
15959         *
15960         * @function close
15961         *
15962         * @return {undefined}
15963         */
15964
15965    }, {
15966        key: 'close',
15967        value: function close(event) {
15968            event.preventDefault();
15969
15970            var height = this.$element.outerHeight();
15971
15972            this.$element.animate({
15973                marginTop: '-' + height + 'px'
15974            }, 'easeInCubic', this.remove.bind(this));
15975        }
15976
15977        /**
15978         * Remove the nudge.
15979         *
15980         * @function remove
15981         *
15982         * @return {undefined}
15983         */
15984
15985    }, {
15986        key: 'remove',
15987        value: function remove() {
15988            this.$element.remove();
15989
15990            utils.trigger(_events2.default.nudge.closed, this.$element, event);
15991        }
15992    }]);
15993
15994    return Nudge;
15995}();
15996
15997exports.default = Nudge;
15998
15999}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
16000},{"./_events":356,"./_utils":368}],364:[function(require,module,exports){
16001'use strict';
16002
16003require('babel-polyfill');
16004
16005require('console-polyfill');
16006
16007if (Element && !Element.prototype.matches) {
16008    var elementProto = Element.prototype;
16009    elementProto.matches = elementProto.matchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector || elementProto.oMatchesSelector || elementProto.webkitMatchesSelector;
16010}
16011
16012},{"babel-polyfill":1,"console-polyfill":6}],365:[function(require,module,exports){
16013(function (global){
16014'use strict';
16015
16016Object.defineProperty(exports, "__esModule", {
16017    value: true
16018});
16019
16020var _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; }; }();
16021
16022var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
16023
16024var _jquery2 = _interopRequireDefault(_jquery);
16025
16026function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16027
16028function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16029
16030var defaults = {
16031    $element: undefined,
16032    $body: (0, _jquery2.default)('body, html'),
16033    selectors: {},
16034    classes: {
16035        preload: 'preload'
16036    }
16037};
16038
16039/**
16040 * Preload.
16041 *
16042 * @module Preload
16043 * @param {Object} properties - specifies the configurations
16044 * for the module.
16045 */
16046
16047var Preload = function () {
16048    function Preload() {
16049        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16050
16051        _classCallCheck(this, Preload);
16052
16053        var members = _jquery2.default.extend(true, {}, defaults, properties);
16054
16055        this.$element = members.$element;
16056        this.$body = members.$body;
16057        this.selectors = members.selectors;
16058        this.classes = members.classes;
16059    }
16060
16061    /**
16062     * Initialise the module.
16063     *
16064     * @function init
16065     *
16066     * @return {undefined}
16067     */
16068
16069
16070    _createClass(Preload, [{
16071        key: 'init',
16072        value: function init() {
16073            this.bind();
16074        }
16075
16076        /**
16077        * Bind the events to the actionable elements
16078        *
16079        * @function bind
16080        *
16081        * @return {undefined}
16082        */
16083
16084    }, {
16085        key: 'bind',
16086        value: function bind() {
16087            (0, _jquery2.default)(window).on('load', this.loaded.bind(this));
16088        }
16089
16090        /**
16091        * Remove preload class on the body
16092        *
16093        * @function active
16094        * @param {$.Event} event - specifies the click event.
16095        *
16096        * @return {undefined}
16097        */
16098
16099    }, {
16100        key: 'loaded',
16101        value: function loaded() {
16102            this.$body.removeClass(this.classes.preload);
16103        }
16104    }]);
16105
16106    return Preload;
16107}();
16108
16109exports.default = Preload;
16110
16111}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
16112},{}],366:[function(require,module,exports){
16113(function (global){
16114'use strict';
16115
16116Object.defineProperty(exports, "__esModule", {
16117    value: true
16118});
16119
16120var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
16121
16122var _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; }; }();
16123
16124var _utils = require('./_utils');
16125
16126var utils = _interopRequireWildcard(_utils);
16127
16128var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
16129
16130var _jquery2 = _interopRequireDefault(_jquery);
16131
16132var _events = require('./_events');
16133
16134var _events2 = _interopRequireDefault(_events);
16135
16136var _dynamicContent = require('./_dynamic-content');
16137
16138var _dynamicContent2 = _interopRequireDefault(_dynamicContent);
16139
16140function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16141
16142function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
16143
16144function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16145
16146var defaults = {
16147    $element: undefined,
16148    selectors: {
16149        tabs: '.js-tabs',
16150        nestedTab: '[data-js*="_simpleTabs"] [data-js*="_simpleTabs"]',
16151        navigation: '.js-tabs .js-tabs-navigation',
16152        tab: '.js-tabs .js-tabs-tab',
16153        active: '.js-tabs .tabs__tab--active',
16154        content: '.js-tabs .js-tabs-content',
16155        ajax: '#ajax'
16156    },
16157    classes: {
16158        active: 'tabs__tab--active',
16159        dynamicContentListener: _dynamicContent2.default.classes.listener
16160    }
16161};
16162
16163/**
16164 * SimpleTabs.
16165 *
16166 * @module SimpleTabs
16167 * @param {Object} properties - specifies the configurations
16168 * for the module.
16169 */
16170
16171var SimpleTabs = function () {
16172    function SimpleTabs() {
16173        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16174
16175        _classCallCheck(this, SimpleTabs);
16176
16177        var members = _jquery2.default.extend(true, {}, defaults, properties);
16178
16179        this.$element = members.$element;
16180        this.selectors = members.selectors;
16181        this.classes = members.classes;
16182    }
16183
16184    /**
16185     * Initialise the module.
16186     *
16187     * @function init
16188     *
16189     * @return {undefined}
16190     */
16191
16192
16193    _createClass(SimpleTabs, [{
16194        key: 'init',
16195        value: function init() {
16196            this.accessibility();
16197            this.bind();
16198            this.targets = this._generateTargets();
16199            this.defaultHash = false;
16200            this.configure();
16201        }
16202
16203        /**
16204         * Return all tab targets.
16205         *
16206         * @private
16207         * @return {array}
16208         */
16209
16210    }, {
16211        key: '_generateTargets',
16212        value: function _generateTargets() {
16213            var $navigation = this.$element.only(this.selectors.navigation).first();
16214            var tabs = Array.from($navigation.only(this.selectors.tab));
16215
16216            return tabs.map(function (tab) {
16217                return tab.href.split('#')[1];
16218            });
16219        }
16220
16221        /**
16222         * Create a new hash based on current hash and current target.
16223         *
16224         * @private
16225         * @return {string}
16226         */
16227
16228    }, {
16229        key: '_generateHash',
16230        value: function _generateHash(currentTarget) {
16231            var _this = this;
16232
16233            var hash = window.location.hash;
16234
16235            var activeTargets = hash.split('#').filter(Boolean);
16236            var hashIndex = activeTargets.findIndex(function (activeTarget) {
16237                return _this.targets.indexOf(activeTarget) !== -1;
16238            });
16239
16240            if (hashIndex === -1) {
16241                return activeTargets.concat(currentTarget).join('#');
16242            }
16243
16244            var newHash = activeTargets.slice(0, hashIndex + 1);
16245            newHash[hashIndex] = currentTarget;
16246
16247            return newHash.join('#');
16248        }
16249
16250        /**
16251         * Update the hash.
16252         *
16253         * @private
16254         * @return {undefined}
16255         */
16256
16257    }, {
16258        key: '_appendHash',
16259        value: function _appendHash(hashTarget) {
16260            window.location.hash = hashTarget;
16261        }
16262
16263        /**
16264         * Apply the interactive accessibility
16265         * attributes for assisted technology
16266         * users.
16267         *
16268         * @function accessibility
16269         *
16270         * @return {undefined}
16271         */
16272
16273    }, {
16274        key: 'accessibility',
16275        value: function accessibility() {
16276            var $navigation = this.$element.only(this.selectors.navigation);
16277            var $tab = this.$element.only(this.selectors.tab);
16278
16279            $navigation.attr('role', 'tablist');
16280            $tab.each(this.control).attr('role', 'tab');
16281        }
16282
16283        /**
16284         * Apply the aria controls attribute to
16285         * the tab given by the functions context.
16286         *
16287         * @callback control
16288         *
16289         * @return {undefined}
16290         */
16291
16292    }, {
16293        key: 'control',
16294        value: function control() {
16295            var $tab = (0, _jquery2.default)(this);
16296            var url = $tab.attr('href').split('#');
16297            var id = url.pop();
16298
16299            $tab.attr('aria-controls', '#' + id);
16300        }
16301
16302        /**
16303         * Bind the events to the actionable elements
16304         * within the tabs system.
16305         *
16306         * @function bind
16307         *
16308         * @return {undefined}
16309         */
16310
16311    }, {
16312        key: 'bind',
16313        value: function bind() {
16314            var $navigation = this.$element.only(this.selectors.navigation).first();
16315            var $tab = $navigation.only(this.selectors.tab);
16316
16317            this.$tabScrollParent = $tab.scrollParent();
16318
16319            $tab.on('click', this.clickHandler.bind(this));
16320
16321            this.$element.addClass(this.classes.dynamicContentListener);
16322            this.$element.on([_events2.default.dynamicContent.show].join(' '), this.handleDynamicShow.bind(this));
16323
16324            (0, _jquery2.default)(window).on('popstate', this.configure.bind(this));
16325        }
16326    }, {
16327        key: 'handleDynamicShow',
16328        value: function handleDynamicShow(event) {
16329            if (_jquery2.default.contains(event.target, this.$element.get(0))) {
16330                this.configure();
16331            }
16332        }
16333
16334        /**
16335         * Open the default tab or the tab in the URL hash.
16336         *
16337         * @function configure
16338         *
16339         * @return {undefined}
16340         */
16341
16342    }, {
16343        key: 'configure',
16344        value: function configure() {
16345            var hash = window.location.hash;
16346
16347            var $tab = this.$element.only(this.selectors.tab);
16348            var $open = $tab;
16349
16350            if (hash) {
16351                $open = $tab.filter(function (i, element) {
16352                    var regexp = new RegExp('#' + element.href.split('#')[1] + '(#|$)', 'g');
16353
16354                    return hash.match(regexp);
16355                });
16356
16357                if (!$open.length) {
16358                    $open = $tab;
16359                }
16360            }
16361
16362            this.proxy($open.first());
16363        }
16364
16365        /**
16366         * Handle the click event for tab
16367         *
16368         * @param  {$.Event} event
16369         *
16370         * @return {undefined}
16371         */
16372
16373    }, {
16374        key: 'clickHandler',
16375        value: function clickHandler(event) {
16376            event.preventDefault();
16377            var $tab = (0, _jquery2.default)(event.currentTarget);
16378            this.proxy($tab, true);
16379        }
16380
16381        /**
16382         * Ensures the specified tab is fully visible in the viewport.
16383         * If not, scrolls the tab's scroll parent along the X axis to
16384         * show the tab.
16385         *
16386         * @param {$.Element} $tab - The tab to show
16387         * @param {boolean} clicked - If is coming from a click event
16388         */
16389
16390    }, {
16391        key: 'ensureVisible',
16392        value: function ensureVisible($tab, clicked) {
16393            if ($tab[0].classList.contains('vertical-tabs--tab')) {
16394                return;
16395            }
16396            var viewportWidth = this.$tabScrollParent.outerWidth();
16397            var viewportLeft = this.$tabScrollParent.offset().left;
16398            var viewportRight = viewportLeft + viewportWidth;
16399            var tabWidth = $tab.outerWidth();
16400            var tabLeft = $tab.offset().left;
16401            var tabRight = tabLeft + tabWidth;
16402
16403            var scrollLeft = void 0;
16404            if (tabRight > viewportRight) {
16405                scrollLeft = tabRight - tabWidth - viewportLeft;
16406            } else if (tabLeft < viewportLeft) {
16407                scrollLeft = tabLeft - viewportLeft;
16408            }
16409            if (scrollLeft !== undefined) {
16410                if (!clicked) {
16411                    this.$tabScrollParent.stop().scrollLeft(scrollLeft);
16412                    return;
16413                }
16414                var distance = Math.abs(scrollLeft - this.$tabScrollParent.scrollLeft());
16415                var pixelsPerSecond = 300;
16416                this.$tabScrollParent.stop().animate({ scrollLeft: scrollLeft }, { duration: 1000 * distance / pixelsPerSecond, easing: 'linear' });
16417            }
16418        }
16419
16420        /**
16421         * Determine if the tab content should be ajax loaded.
16422         *
16423         * @function proxy
16424         * @param {$.Element} $active - The element that will be active
16425         * @param {boolean} clicked - If is coming from a click event
16426         *
16427         * @return {undefined}
16428         */
16429
16430    }, {
16431        key: 'proxy',
16432        value: function proxy($active) {
16433            var clicked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
16434
16435            this.ensureVisible($active, clicked);
16436            if ($active.attr('href').split('#')[0]) {
16437                this.fetch($active, clicked);
16438            } else {
16439                this.open($active, clicked);
16440            }
16441        }
16442
16443        /**
16444         * Open the tabs' content.
16445         *
16446         * @function open
16447         * @param {$.Element} $active - The element that will be active
16448         * @param {boolean} clicked - If is coming from a click event
16449         *
16450         * @return {undefined}
16451         */
16452
16453    }, {
16454        key: 'open',
16455        value: function open($active, clicked) {
16456            var $navigation = this.$element.only(this.selectors.navigation).first();
16457            var $tab = $navigation.only(this.selectors.tab);
16458            var $content = this.$element.only(this.selectors.content);
16459            var target = $active.attr('href').split('#')[1];
16460            var $target = $content.filter('#' + target);
16461
16462            $tab.removeClass(this.classes.active).attr('aria-selected', false);
16463            $active.addClass(this.classes.active).attr('aria-selected', true);
16464
16465            $content.hide().trigger(_events2.default.dynamicContent.hide);
16466
16467            this.$element.trigger(_events2.default.simpleTabs.opened);
16468            utils.init($target);
16469
16470            $target.show().trigger(_events2.default.dynamicContent.show);
16471
16472            if (clicked) {
16473                if (window.Modernizr.history) {
16474                    window.history.pushState(null, null, '#' + this._generateHash(target));
16475                } else {
16476                    $target.attr('id', target + '--tmp');
16477                    this._appendHash(this._generateHash(target));
16478                    $target.attr('id', target);
16479                }
16480
16481                /**$target
16482                    .find(':focusable')
16483                    .first()
16484                    .focus();**/
16485            }
16486
16487            this.$element.trigger(_events2.default.simpleTabs.loaded);
16488            (0, _jquery2.default)(window).trigger('resize');
16489        }
16490
16491        /**
16492         * Send the ajax request for the content
16493         * at the url provided by the target.
16494         *
16495         * @function fetch
16496         * @param {$.Element} $active - The element that will be active
16497         * @param {boolean} clicked - If is coming from a click event
16498         *
16499         * @return {undefined}
16500         */
16501
16502    }, {
16503        key: 'fetch',
16504        value: function fetch($active, clicked) {
16505            var _this2 = this;
16506
16507            var _$active$attr$split = $active.attr('href').split('#'),
16508                _$active$attr$split2 = _slicedToArray(_$active$attr$split, 2),
16509                href = _$active$attr$split2[0],
16510                target = _$active$attr$split2[1];
16511
16512            _jquery2.default.get(href, function (response) {
16513                var $ajax = (0, _jquery2.default)(response).find(_this2.selectors.ajax);
16514                var content = $ajax.html();
16515                var $content = _this2.$element.find('#' + target);
16516
16517                $content.height('auto').html(content);
16518
16519                _this2.open($active, clicked);
16520            });
16521
16522            this.$element.trigger(_events2.default.simpleTabs.loading);
16523        }
16524    }]);
16525
16526    return SimpleTabs;
16527}();
16528
16529exports.default = SimpleTabs;
16530
16531}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
16532},{"./_dynamic-content":355,"./_events":356,"./_utils":368}],367:[function(require,module,exports){
16533(function (global){
16534'use strict';
16535
16536Object.defineProperty(exports, "__esModule", {
16537    value: true
16538});
16539
16540var _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; }; }();
16541
16542var _utils = require('./_utils');
16543
16544var utils = _interopRequireWildcard(_utils);
16545
16546var _events = require('./_events');
16547
16548var _events2 = _interopRequireDefault(_events);
16549
16550var _tabs = require('./templates/_tabs');
16551
16552var _tabs2 = _interopRequireDefault(_tabs);
16553
16554var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
16555
16556var _jquery2 = _interopRequireDefault(_jquery);
16557
16558function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16559
16560function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
16561
16562function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16563
16564var defaults = {
16565    $element: undefined,
16566    selectors: {
16567        navigation: '.js-tabs-navigation',
16568        tab: '.js-tabs-tab',
16569        ajax: '#ajax',
16570        content: '.js-tabs-content',
16571        selected: '.js-tabs-selected',
16572        close: '.js-tabs-close'
16573    },
16574    classes: {
16575        active: 'tabs__tab--active'
16576    }
16577};
16578
16579/**
16580 * Tabs.
16581 *
16582 * @module Tabs
16583 * @param {Object} properties - specifies the configurations
16584 * for the module.
16585 */
16586
16587var Tabs = function () {
16588    function Tabs() {
16589        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16590
16591        _classCallCheck(this, Tabs);
16592
16593        var members = _jquery2.default.extend(true, {}, defaults, properties);
16594
16595        this.$element = members.$element;
16596        this.selectors = members.selectors;
16597        this.classes = members.classes;
16598        this.$content = null;
16599
16600        this.accessibility();
16601    }
16602
16603    /**
16604     * Initialise the module.
16605     *
16606     * @function init
16607     *
16608     * @return {undefined}
16609     */
16610
16611
16612    _createClass(Tabs, [{
16613        key: 'init',
16614        value: function init() {
16615            this.bind();
16616
16617            if (!this.$element.find(this.selectors.close).length) {
16618                var $open = this.$element.find(this.selectors.tab).first();
16619
16620                this.fetch($open);
16621            }
16622        }
16623
16624        /**
16625        * Apply the interactive accessibility
16626        * attributes for assisted technology
16627        * users.
16628        *
16629        * @function accessibility
16630        *
16631        * @return {undefined}
16632        */
16633
16634    }, {
16635        key: 'accessibility',
16636        value: function accessibility() {
16637            var $navigation = this.$element.find(this.selectors.navigation);
16638            var $tabs = this.$element.find(this.selectors.tab);
16639
16640            $navigation.attr('role', 'tablist');
16641            $tabs.attr({
16642                'role': 'tab',
16643                'aria-selected': false,
16644                'aria-expanded': false
16645            });
16646            (0, _jquery2.default)('.' + this.classes.active).attr({
16647                'aria-selected': true,
16648                'aria-expanded': true
16649            });
16650        }
16651
16652        /**
16653        * Bind the events to the actionable elements
16654        * within the tabs system.
16655        *
16656        * @function bind
16657        *
16658        * @return {undefined}
16659        */
16660
16661    }, {
16662        key: 'bind',
16663        value: function bind() {
16664            var $tab = this.$element.find(this.selectors.tab);
16665
16666            $tab.on('click', this.clickHandler.bind(this));
16667            this.$element.find(this.selectors.close).on('click', this.close.bind(this));
16668        }
16669
16670        /**
16671         * Handle the click event from a tab
16672         *
16673         * @param  {$.Event} event
16674         *
16675         * @return {undefined}
16676         */
16677
16678    }, {
16679        key: 'clickHandler',
16680        value: function clickHandler(event) {
16681            var $active = (0, _jquery2.default)(event.currentTarget);
16682            var target = $active.attr('target');
16683
16684            if (target === '_blank') {
16685                return;
16686            }
16687
16688            event.preventDefault();
16689
16690            this.fetch($active);
16691        }
16692
16693        /**
16694        * Send the ajax request for the content
16695        * at the url provided by the target.
16696        *
16697        * @function fetch
16698        * @param {$.Element} $active - The tab to make active
16699        *
16700        * @return {undefined}
16701        */
16702
16703    }, {
16704        key: 'fetch',
16705        value: function fetch($active) {
16706            this.$content = $active.data('target') ? (0, _jquery2.default)($active.data('target')) : this.$element.find(this.selectors.content);
16707
16708            var $tabs = this.$element.find(this.selectors.tab);
16709            var $selected = this.$element.find(this.selectors.selected);
16710            var href = $active.attr('href');
16711
16712            $selected.remove();
16713
16714            $tabs.removeClass(this.classes.active);
16715            $active.addClass(this.classes.active);
16716            this.accessibility();
16717
16718            this.$element.trigger(_events2.default.tabs.opened);
16719        }
16720
16721        /**
16722        * Delay appending the ajax response to the document
16723        * for 2.5 seconds.
16724        *
16725        * @function delay
16726        * @param {string} response - specifies the ajax
16727        * response.
16728        *
16729        * @return {undefined}
16730        */
16731
16732    }, {
16733        key: 'delay',
16734        value: function delay(response) {
16735            setTimeout(this.open.bind(this, response), 1500);
16736        }
16737
16738        /**
16739        * Add the ajax response content to the
16740        * tab.
16741        *
16742        * @function open
16743        * @param {string} response - specifies the ajax
16744        * response.
16745        *
16746        * @return {undefined}
16747        */
16748
16749    }, {
16750        key: 'open',
16751        value: function open(response) {
16752            var $response = (0, _jquery2.default)(response).find(this.selectors.ajax).html();
16753            var $close = this.$content.prev(this.selectors.close);
16754            var $focusable = $close.length ? $close : this.$content.find(':focusable').first();
16755
16756            this.$content.trigger(_events2.default.dynamicContent.hide);
16757            this.$content.height('auto').html($response);
16758            utils.init(this.$content);
16759            this.$content.trigger(_events2.default.dynamicContent.show);
16760            $focusable.focus();
16761            this.$element.trigger(_events2.default.tabs.loaded);
16762        }
16763
16764        /**
16765        * Close all the tabs
16766        *
16767        * @function open
16768        *
16769        * @param {$.Event} event
16770        *
16771        * @return {undefined}
16772        */
16773
16774    }, {
16775        key: 'close',
16776        value: function close(event) {
16777            event.preventDefault();
16778
16779            this.$element.find('.' + this.classes.active).focus().removeClass(this.classes.active);
16780            if (this.$content) {
16781                this.$content.trigger(_events2.default.dynamicContent.hide);
16782            }
16783            this.accessibility();
16784        }
16785    }]);
16786
16787    return Tabs;
16788}();
16789
16790exports.default = Tabs;
16791
16792}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
16793},{"./_events":356,"./_utils":368,"./templates/_tabs":373}],368:[function(require,module,exports){
16794(function (global){
16795'use strict';
16796
16797var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
16798
16799var _jquery2 = _interopRequireDefault(_jquery);
16800
16801var _qs = require('qs');
16802
16803var _qs2 = _interopRequireDefault(_qs);
16804
16805var _events = require('./_events');
16806
16807var _events2 = _interopRequireDefault(_events);
16808
16809function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16810
16811/**
16812 * Convert a query string into an Object
16813 *
16814 * @deprecated Prefer to use the 'qs' module where applicable.
16815 *
16816 * @param  {string} query The query to be converted
16817 * @return {Object}
16818 */
16819function queryToObject(query) {
16820    return query.replace(/^\?/, '').split('&').reduce(function (carry, keyValue) {
16821        var keyValueArr = keyValue.split('=');
16822        var value = carry[keyValueArr[0]] ? [carry[keyValueArr[0]]].concat(keyValueArr[1]) : keyValueArr[1];
16823
16824        carry[keyValueArr[0]] = value;
16825
16826        return carry;
16827    }, {});
16828}
16829
16830/**
16831 * Parse an attribute value for use with framework JavaScript components.
16832 *
16833 * Strings beginning with '_raw=' have this prefix removed and aren't processed further.
16834 * Strings containing '=' are parsed by the qs module.
16835 * All other strings or other values are returned unmodified.
16836 *
16837 * @param  {string} value to be parsed
16838 * @return {Object|string}
16839 */
16840function parsePropertyValue(value) {
16841    if (typeof value === 'string') {
16842        var found = value.match(/^\s*_raw=/);
16843
16844        if (found) {
16845            return value.substr(found.length);
16846        }
16847
16848        if (value.indexOf('=') > 0) {
16849            return _qs2.default.parse(value, { ignoreQueryPrefix: true, allowDots: true });
16850        }
16851    }
16852    return value;
16853}
16854
16855function init(context) {
16856    (0, _jquery2.default)(window).trigger(_events2.default.init.pre);
16857
16858    (0, _jquery2.default)('[data-js]', context || 'body').addBack('[data-js]').each(function (moduleIndex, dataModule) {
16859        var $module = (0, _jquery2.default)(dataModule);
16860
16861        if ($module.data('module-instances') === undefined) {
16862            (function () {
16863                var data = $module.data();
16864                var modules = $module.data('js').split(',').map(function (module) {
16865                    return module.trim();
16866                });
16867                var instances = {};
16868
16869                for (var key in modules) {
16870                    var _module = modules[key];
16871
16872                    if (window._vf[_module] !== undefined) {
16873                        var properties = Object.keys(data).reduce(function (carry, property) {
16874                            carry[property] = parsePropertyValue(data[property]);
16875
16876                            return carry;
16877                        }, data);
16878
16879                        delete properties.js;
16880
16881                        properties.$element = $module;
16882
16883                        var instance = new window._vf[_module](properties);
16884
16885                        instances[_module] = instance;
16886
16887                        properties.$element.data('module-instance', instance);
16888                        $module.data('module-instances', instances);
16889
16890                        if (instance.init) {
16891                            instance.init();
16892                        }
16893                    }
16894                }
16895            })();
16896        }
16897    });
16898
16899    (0, _jquery2.default)(window).trigger(_events2.default.init.post);
16900}
16901
16902function replace(source, matches) {
16903    for (var tag in matches) {
16904        var match = '{- ' + tag + ' -}';
16905        var rgx = new RegExp(match, 'g');
16906        var replacement = matches[tag];
16907
16908        source = source.replace(rgx, replacement);
16909    }
16910
16911    return source;
16912}
16913
16914function template(source, matches) {
16915    if (typeof source === 'function') {
16916        return source(matches);
16917    }
16918    if (matches !== undefined) {
16919        return replace(source, matches);
16920    }
16921
16922    return source;
16923}
16924
16925function trigger(event, context) {
16926    var _$;
16927
16928    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
16929        args[_key - 2] = arguments[_key];
16930    }
16931
16932    (_$ = (0, _jquery2.default)(context)).trigger.apply(_$, [event].concat(args));
16933}
16934
16935/**
16936 * Fill a specific form based on a given query string
16937 *
16938 * @param  {string|object} query
16939 * @param  {jQueryElement} form
16940 *
16941 * @return {undefined}
16942 */
16943function fillForm(query, $form) {
16944    var legacyParsing = typeof query === 'string';
16945
16946    var data = legacyParsing ? queryToObject(query) : query;
16947
16948    Object.keys(data).forEach(function (name) {
16949        var $input = $form.find('[name="' + name + '"]');
16950        var value = legacyParsing ? data[name].replace(/\+/g, ' ') : data[name];
16951
16952        if ($input.attr('type') === 'radio' || $input.attr('type') === 'checkbox') {
16953            $input.filter(function (i, input) {
16954                return (0, _jquery2.default)(input).val() === value;
16955            }).click();
16956        } else {
16957            $input.val(data[name].replace(/\+/g, ' '));
16958        }
16959    });
16960}
16961
16962function contains() {
16963    var needle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
16964    var haystack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
16965
16966    return haystack.indexOf(needle) !== -1;
16967}
16968
16969function index() {
16970    var needle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
16971    var haystack = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
16972
16973    return haystack.indexOf(needle);
16974}
16975
16976function noop() {
16977    return undefined;
16978}
16979
16980function ajax(url) {
16981    var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/plain';
16982
16983    return new Promise(function (resolve, reject) {
16984        var request = new XMLHttpRequest();
16985
16986        request.open('get', url);
16987
16988        request.onload = function () {
16989            if (request.status === 200) {
16990                resolve(request.response);
16991            } else {
16992                var status = url + ': ' + request.statusText;
16993                var error = new Error(status);
16994
16995                reject(error);
16996            }
16997        };
16998
16999        request.setRequestHeader('contentType', contentType);
17000
17001        request.send();
17002    });
17003}
17004
17005function getBreakpoint() {
17006    return window.getComputedStyle(document.querySelector('body'), ':before').getPropertyValue('content').replace(/"/g, '');
17007}
17008
17009module.exports = {
17010    init: init,
17011    template: template,
17012    replace: replace,
17013    trigger: trigger,
17014    fillForm: fillForm,
17015    queryToObject: queryToObject,
17016    parsePropertyValue: parsePropertyValue,
17017    contains: contains,
17018    index: index,
17019    noop: noop,
17020    ajax: ajax,
17021    getBreakpoint: getBreakpoint
17022};
17023
17024}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17025},{"./_events":356,"qs":347}],369:[function(require,module,exports){
17026'use strict';
17027
17028Object.defineProperty(exports, "__esModule", {
17029    value: true
17030});
17031
17032var _events = require('./_events');
17033
17034var _events2 = _interopRequireDefault(_events);
17035
17036var _accordion = require('./_accordion');
17037
17038var _accordion2 = _interopRequireDefault(_accordion);
17039
17040var _simpleTabs = require('./_simple-tabs');
17041
17042var _simpleTabs2 = _interopRequireDefault(_simpleTabs);
17043
17044var _lazysizes = require('./_lazysizes');
17045
17046var _lazysizes2 = _interopRequireDefault(_lazysizes);
17047
17048var _cookiePolicy = require('./_cookie-policy');
17049
17050var _cookiePolicy2 = _interopRequireDefault(_cookiePolicy);
17051
17052var _carousel = require('./_carousel');
17053
17054var _carousel2 = _interopRequireDefault(_carousel);
17055
17056var _tabs = require('./_tabs');
17057
17058var _tabs2 = _interopRequireDefault(_tabs);
17059
17060var _mouseActive = require('./_mouse-active');
17061
17062var _mouseActive2 = _interopRequireDefault(_mouseActive);
17063
17064var _fixed = require('./_fixed');
17065
17066var _fixed2 = _interopRequireDefault(_fixed);
17067
17068var _preload = require('./_preload');
17069
17070var _preload2 = _interopRequireDefault(_preload);
17071
17072var _navigation = require('./_navigation');
17073
17074var _navigation2 = _interopRequireDefault(_navigation);
17075
17076var _nudge = require('./_nudge');
17077
17078var _nudge2 = _interopRequireDefault(_nudge);
17079
17080var _videoStream = require('./_video-stream');
17081
17082var _videoStream2 = _interopRequireDefault(_videoStream);
17083
17084var _utils = require('./_utils');
17085
17086var _utils2 = _interopRequireDefault(_utils);
17087
17088function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17089
17090function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17091
17092var vf = window._vf = _defineProperty({
17093    _events: _events2.default,
17094    _accordion: _accordion2.default,
17095    _simpleTabs: _simpleTabs2.default,
17096    _lazysizes: _lazysizes2.default,
17097    _cookiePolicy: _cookiePolicy2.default,
17098    _carousel: _carousel2.default,
17099    _tabs: _tabs2.default,
17100    _navigation: _navigation2.default,
17101    _nudge: _nudge2.default,
17102    _videoStream: _videoStream2.default,
17103    _utils: _utils2.default,
17104    _mouseActive: _mouseActive2.default,
17105    _fixed: _fixed2.default,
17106    _preload: _preload2.default
17107}, '_utils', _utils2.default);
17108
17109exports.default = vf;
17110
17111},{"./_accordion":352,"./_carousel":353,"./_cookie-policy":354,"./_events":356,"./_fixed":357,"./_lazysizes":359,"./_mouse-active":361,"./_navigation":362,"./_nudge":363,"./_preload":365,"./_simple-tabs":366,"./_tabs":367,"./_utils":368,"./_video-stream":370}],370:[function(require,module,exports){
17112(function (global){
17113'use strict';
17114
17115Object.defineProperty(exports, "__esModule", {
17116    value: true
17117});
17118
17119var _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; }; }();
17120
17121var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
17122
17123var _jquery2 = _interopRequireDefault(_jquery);
17124
17125function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17126
17127function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17128
17129var defaults = {
17130    $element: undefined,
17131    selectors: {
17132        video: '.js-video-stream-video',
17133        toggle: '.js-video-stream-toggle',
17134        touch: '.touchevents'
17135    },
17136    classes: {
17137        paused: 'video-stream--paused',
17138        play: 'video-stream--play',
17139        ended: 'video-stream--ended',
17140        hide: 'video-stream__toggle--hide'
17141    }
17142};
17143
17144/**
17145 * VideoStream.
17146 *
17147 * @module VideoStream
17148 * @param {Object} properties - specifies the configurations
17149 * for the module.
17150 */
17151
17152var VideoStream = function () {
17153    function VideoStream() {
17154        var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17155
17156        _classCallCheck(this, VideoStream);
17157
17158        var members = _jquery2.default.extend(true, {}, defaults, properties);
17159
17160        this.$element = members.$element;
17161        this.selectors = members.selectors;
17162        this.classes = members.classes;
17163    }
17164
17165    /**
17166     * Initialise the module.
17167     *
17168     * @function init
17169     *
17170     * @return {undefined}
17171     */
17172
17173
17174    _createClass(VideoStream, [{
17175        key: 'init',
17176        value: function init() {
17177            this.bind();
17178        }
17179
17180        /**
17181         * Bind the events to toggle the video stream
17182         *
17183         * @function bind
17184         *
17185         * @return {undefined}
17186         */
17187
17188    }, {
17189        key: 'bind',
17190        value: function bind() {
17191            var $touch = (0, _jquery2.default)(this.selectors.touch);
17192            var $toggle = this.$element.find(this.selectors.toggle);
17193            var $video = this.$element.find(this.selectors.video);
17194
17195            if ($touch.length) {
17196                $video.attr('controls', 'controls');
17197            } else {
17198                $toggle.on('click', this.toggle.bind(this));
17199
17200                $video.on('play', this.play.bind(this));
17201                $video.on('pause', this.pause.bind(this));
17202                $video.on('ended', this.end.bind(this));
17203                this.$element.on('mouseenter', this.enter.bind(this));
17204            }
17205        }
17206
17207        /**
17208         * Toggle the video stream
17209         *
17210         * @function toggle
17211         * @param {$.Event} event - specifies the click event.
17212         *
17213         * @return {undefined}
17214         */
17215
17216    }, {
17217        key: 'toggle',
17218        value: function toggle(event) {
17219            event.preventDefault();
17220
17221            this.$element.removeClass(this.classes.ended);
17222
17223            var $video = this.$element.find(this.selectors.video);
17224            var video = $video.get(0);
17225
17226            //$video.attr('controls', 'controls');
17227
17228            if (video.paused) {
17229                video.play();
17230            } else {
17231                video.pause();
17232            }
17233        }
17234
17235        /**
17236         * Play the video stream
17237         *
17238         * @function play
17239         * @param {$.Event} event - specifies the click event.
17240         *
17241         * @return {undefined}
17242         */
17243
17244    }, {
17245        key: 'play',
17246        value: function play(event) {
17247            var _this = this;
17248
17249            event.preventDefault();
17250
17251            this.$element.addClass(this.classes.play);
17252            this.$element.removeClass(this.classes.paused);
17253            this.$element.removeClass(this.classes.ended);
17254            this.$element.on('mouseleave', this.leave.bind(this));
17255
17256            this.hideSetTimeout = setTimeout(function () {
17257                _this.$element.find(_this.selectors.toggle).addClass(_this.classes.hide);
17258            }, 4000);
17259        }
17260
17261        /**
17262         * Pause the video stream
17263         *
17264         * @function pause
17265         * @param {$.Event} event - specifies the click event.
17266         *
17267         * @return {undefined}
17268         */
17269
17270    }, {
17271        key: 'pause',
17272        value: function pause(event) {
17273            event.preventDefault();
17274
17275            this.$element.addClass(this.classes.paused);
17276            this.$element.removeClass(this.classes.play);
17277            this.$element.removeClass(this.classes.ended);
17278            this.$element.find(this.selectors.toggle).removeClass(this.classes.hide);
17279            this.$element.off('mouseleave');
17280        }
17281
17282        /**
17283         * End the video stream
17284         *
17285         * @function end
17286         * @param {$.Event} event - specifies the click event.
17287         *
17288         * @return {undefined}
17289         */
17290
17291    }, {
17292        key: 'end',
17293        value: function end(event) {
17294            event.preventDefault();
17295
17296            this.$element.addClass(this.classes.ended);
17297            this.$element.removeClass(this.classes.paused);
17298            this.$element.removeClass(this.classes.play);
17299            this.$element.find(this.selectors.toggle).removeClass(this.classes.hide);
17300            this.$element.off('mouseleave');
17301        }
17302
17303        /**
17304         * Leave the video stream
17305         *
17306         * @function leave
17307         *
17308         * @return {undefined}
17309         */
17310
17311    }, {
17312        key: 'leave',
17313        value: function leave() {
17314            clearTimeout(this.hideSetTimeout);
17315
17316            this.$element.find(this.selectors.toggle).addClass(this.classes.hide);
17317        }
17318
17319        /**
17320         * Enter the video stream
17321         *
17322         * @function enter
17323         *
17324         * @return {undefined}
17325         */
17326
17327    }, {
17328        key: 'enter',
17329        value: function enter() {
17330            this.$element.find(this.selectors.toggle).removeClass(this.classes.hide);
17331        }
17332    }]);
17333
17334    return VideoStream;
17335}();
17336
17337exports.default = VideoStream;
17338
17339}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17340},{}],371:[function(require,module,exports){
17341"use strict";
17342
17343var _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; };
17344
17345/*! modernizr 3.4.0 (Custom Build) | MIT *
17346 * https://modernizr.com/download/?-appearance-bloburls-cssanimations-csstransforms-csstransitions-filereader-history-opacity-touchevents-video-setclasses !*/
17347!function (e, n, t) {
17348  function r(e, n) {
17349    return (typeof e === "undefined" ? "undefined" : _typeof(e)) === n;
17350  }function o() {
17351    var e, n, t, o, i, s, a;for (var l in x) {
17352      if (x.hasOwnProperty(l)) {
17353        if (e = [], n = x[l], n.name && (e.push(n.name.toLowerCase()), n.options && n.options.aliases && n.options.aliases.length)) for (t = 0; t < n.options.aliases.length; t++) {
17354          e.push(n.options.aliases[t].toLowerCase());
17355        }for (o = r(n.fn, "function") ? n.fn() : n.fn, i = 0; i < e.length; i++) {
17356          s = e[i], a = s.split("."), 1 === a.length ? Modernizr[a[0]] = o : (!Modernizr[a[0]] || Modernizr[a[0]] instanceof Boolean || (Modernizr[a[0]] = new Boolean(Modernizr[a[0]])), Modernizr[a[0]][a[1]] = o), C.push((o ? "" : "no-") + a.join("-"));
17357        }
17358      }
17359    }
17360  }function i(e) {
17361    var n = w.className,
17362        t = Modernizr._config.classPrefix || "";if (b && (n = n.baseVal), Modernizr._config.enableJSClass) {
17363      var r = new RegExp("(^|\\s)" + t + "no-js(\\s|$)");n = n.replace(r, "$1" + t + "js$2");
17364    }Modernizr._config.enableClasses && (n += " " + t + e.join(" " + t), b ? w.className.baseVal = n : w.className = n);
17365  }function s() {
17366    return "function" != typeof n.createElement ? n.createElement(arguments[0]) : b ? n.createElementNS.call(n, "http://www.w3.org/2000/svg", arguments[0]) : n.createElement.apply(n, arguments);
17367  }function a() {
17368    var e = n.body;return e || (e = s(b ? "svg" : "body"), e.fake = !0), e;
17369  }function l(e, t, r, o) {
17370    var i,
17371        l,
17372        f,
17373        u,
17374        c = "modernizr",
17375        d = s("div"),
17376        p = a();if (parseInt(r, 10)) for (; r--;) {
17377      f = s("div"), f.id = o ? o[r] : c + (r + 1), d.appendChild(f);
17378    }return i = s("style"), i.type = "text/css", i.id = "s" + c, (p.fake ? p : d).appendChild(i), p.appendChild(d), i.styleSheet ? i.styleSheet.cssText = e : i.appendChild(n.createTextNode(e)), d.id = c, p.fake && (p.style.background = "", p.style.overflow = "hidden", u = w.style.overflow, w.style.overflow = "hidden", w.appendChild(p)), l = t(d, e), p.fake ? (p.parentNode.removeChild(p), w.style.overflow = u, w.offsetHeight) : d.parentNode.removeChild(d), !!l;
17379  }function f(e, n) {
17380    return !!~("" + e).indexOf(n);
17381  }function u(e) {
17382    return e.replace(/([a-z])-([a-z])/g, function (e, n, t) {
17383      return n + t.toUpperCase();
17384    }).replace(/^-/, "");
17385  }function c(e, n) {
17386    return function () {
17387      return e.apply(n, arguments);
17388    };
17389  }function d(e, n, t) {
17390    var o;for (var i in e) {
17391      if (e[i] in n) return t === !1 ? e[i] : (o = n[e[i]], r(o, "function") ? c(o, t || n) : o);
17392    }return !1;
17393  }function p(e) {
17394    return e.replace(/([A-Z])/g, function (e, n) {
17395      return "-" + n.toLowerCase();
17396    }).replace(/^ms-/, "-ms-");
17397  }function m(n, t, r) {
17398    var o;if ("getComputedStyle" in e) {
17399      o = getComputedStyle.call(e, n, t);var i = e.console;if (null !== o) r && (o = o.getPropertyValue(r));else if (i) {
17400        var s = i.error ? "error" : "log";i[s].call(i, "getComputedStyle returning null, its possible modernizr test results are inaccurate");
17401      }
17402    } else o = !t && n.currentStyle && n.currentStyle[r];return o;
17403  }function v(n, r) {
17404    var o = n.length;if ("CSS" in e && "supports" in e.CSS) {
17405      for (; o--;) {
17406        if (e.CSS.supports(p(n[o]), r)) return !0;
17407      }return !1;
17408    }if ("CSSSupportsRule" in e) {
17409      for (var i = []; o--;) {
17410        i.push("(" + p(n[o]) + ":" + r + ")");
17411      }return i = i.join(" or "), l("@supports (" + i + ") { #modernizr { position: absolute; } }", function (e) {
17412        return "absolute" == m(e, null, "position");
17413      });
17414    }return t;
17415  }function y(e, n, o, i) {
17416    function a() {
17417      c && (delete j.style, delete j.modElem);
17418    }if (i = r(i, "undefined") ? !1 : i, !r(o, "undefined")) {
17419      var l = v(e, o);if (!r(l, "undefined")) return l;
17420    }for (var c, d, p, m, y, h = ["modernizr", "tspan", "samp"]; !j.style && h.length;) {
17421      c = !0, j.modElem = s(h.shift()), j.style = j.modElem.style;
17422    }for (p = e.length, d = 0; p > d; d++) {
17423      if (m = e[d], y = j.style[m], f(m, "-") && (m = u(m)), j.style[m] !== t) {
17424        if (i || r(o, "undefined")) return a(), "pfx" == n ? m : !0;try {
17425          j.style[m] = o;
17426        } catch (g) {}if (j.style[m] != y) return a(), "pfx" == n ? m : !0;
17427      }
17428    }return a(), !1;
17429  }function h(e, n, t, o, i) {
17430    var s = e.charAt(0).toUpperCase() + e.slice(1),
17431        a = (e + " " + E.join(s + " ") + s).split(" ");return r(n, "string") || r(n, "undefined") ? y(a, n, o, i) : (a = (e + " " + O.join(s + " ") + s).split(" "), d(a, n, t));
17432  }function g(e, n, r) {
17433    return h(e, t, t, n, r);
17434  }var C = [],
17435      x = [],
17436      T = { _version: "3.4.0", _config: { classPrefix: "", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function on(e, n) {
17437      var t = this;setTimeout(function () {
17438        n(t[e]);
17439      }, 0);
17440    }, addTest: function addTest(e, n, t) {
17441      x.push({ name: e, fn: n, options: t });
17442    }, addAsyncTest: function addAsyncTest(e) {
17443      x.push({ name: null, fn: e });
17444    } },
17445      Modernizr = function Modernizr() {};Modernizr.prototype = T, Modernizr = new Modernizr(), Modernizr.addTest("history", function () {
17446    var n = navigator.userAgent;return -1 === n.indexOf("Android 2.") && -1 === n.indexOf("Android 4.0") || -1 === n.indexOf("Mobile Safari") || -1 !== n.indexOf("Chrome") || -1 !== n.indexOf("Windows Phone") || "file:" === location.protocol ? e.history && "pushState" in e.history : !1;
17447  }), Modernizr.addTest("filereader", !!(e.File && e.FileList && e.FileReader));var w = n.documentElement,
17448      b = "svg" === w.nodeName.toLowerCase(),
17449      S = T._config.usePrefixes ? " -webkit- -moz- -o- -ms- ".split(" ") : ["", ""];T._prefixes = S, Modernizr.addTest("video", function () {
17450    var e = s("video"),
17451        n = !1;try {
17452      n = !!e.canPlayType, n && (n = new Boolean(n), n.ogg = e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), n.h264 = e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), n.webm = e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, ""), n.vp9 = e.canPlayType('video/webm; codecs="vp9"').replace(/^no$/, ""), n.hls = e.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/, ""));
17453    } catch (t) {}return n;
17454  }), Modernizr.addTest("opacity", function () {
17455    var e = s("a").style;return e.cssText = S.join("opacity:.55;"), /^0.55$/.test(e.opacity);
17456  });var _ = T.testStyles = l;Modernizr.addTest("touchevents", function () {
17457    var t;if ("ontouchstart" in e || e.DocumentTouch && n instanceof DocumentTouch) t = !0;else {
17458      var r = ["@media (", S.join("touch-enabled),("), "heartz", ")", "{#modernizr{top:9px;position:absolute}}"].join("");_(r, function (e) {
17459        t = 9 === e.offsetTop;
17460      });
17461    }return t;
17462  });var P = "Moz O ms Webkit",
17463      E = T._config.usePrefixes ? P.split(" ") : [];T._cssomPrefixes = E;var O = T._config.usePrefixes ? P.toLowerCase().split(" ") : [];T._domPrefixes = O;var z = { elem: s("modernizr") };Modernizr._q.push(function () {
17464    delete z.elem;
17465  });var j = { style: z.elem.style };Modernizr._q.unshift(function () {
17466    delete j.style;
17467  }), T.testAllProps = h, T.testAllProps = g, Modernizr.addTest("cssanimations", g("animationName", "a", !0)), Modernizr.addTest("appearance", g("appearance")), Modernizr.addTest("csstransforms", function () {
17468    return -1 === navigator.userAgent.indexOf("Android 2.") && g("transform", "scale(1)", !0);
17469  }), Modernizr.addTest("csstransitions", g("transition", "all", !0));var L = function L(n) {
17470    var r,
17471        o = S.length,
17472        i = e.CSSRule;if ("undefined" == typeof i) return t;if (!n) return !1;if (n = n.replace(/^@/, ""), r = n.replace(/-/g, "_").toUpperCase() + "_RULE", r in i) return "@" + n;for (var s = 0; o > s; s++) {
17473      var a = S[s],
17474          l = a.toUpperCase() + "_" + r;if (l in i) return "@-" + a.toLowerCase() + "-" + n;
17475    }return !1;
17476  };T.atRule = L;var A = T.prefixed = function (e, n, t) {
17477    return 0 === e.indexOf("@") ? L(e) : (-1 != e.indexOf("-") && (e = u(e)), n ? h(e, n, t) : h(e, "pfx"));
17478  },
17479      R = A("URL", e, !1);R = R && e[R], Modernizr.addTest("bloburls", R && "revokeObjectURL" in R && "createObjectURL" in R), o(), i(C), delete T.addTest, delete T.addAsyncTest;for (var N = 0; N < Modernizr._q.length; N++) {
17480    Modernizr._q[N]();
17481  }e.Modernizr = Modernizr;
17482}(window, document);
17483
17484},{}],372:[function(require,module,exports){
17485(function (global){
17486'use strict';
17487
17488require('./lib/modernizr-custom.min');
17489
17490require('./_ls.bgset');
17491
17492require('./_polyfills');
17493
17494var _jquery = (typeof window !== "undefined" ? window['$'] : typeof global !== "undefined" ? global['$'] : null);
17495
17496var _jquery2 = _interopRequireDefault(_jquery);
17497
17498function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17499
17500window.jQuery = _jquery2.default;
17501window.$ = _jquery2.default;
17502require('jquery-mobile-events');
17503require('picturefill');
17504require('lazysizes');
17505require('./_jquery-extensions');
17506require('./_vf');
17507require('./_utils').init();
17508
17509}
17509).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17510},{"./_jquery-extensions":358,"./_ls.bgset":360,"./_polyfills":364,"./_utils":368,"./_vf":369,"./lib/modernizr-custom.min":371,"jquery-mobile-events":342,"lazysizes":343,"picturefill":345}],373:[function(require,module,exports){
17511'use strict';
17512
17513Object.defineProperty(exports, "__esModule", {
17514    value: true
17515});
17516var templates = {
17517    loading: '<p class="tabs__loading" role="alert">Loading content...</p>'
17518};
17519
17520exports.default = templates;
17521
17522},{}]},{},[372]);
17523

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.