From 104cf2afe06c7a51dee47b412a508bc9b0d83a69 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 12 Nov 2015 17:21:08 +0100 Subject: [PATCH] update es6 shim --- js/vendor/es6-shim/.bower.json | 8 +- js/vendor/es6-shim/CHANGELOG.md | 30 ++ js/vendor/es6-shim/Gruntfile.js | 74 ++- js/vendor/es6-shim/README.md | 67 ++- js/vendor/es6-shim/component.json | 2 +- js/vendor/es6-shim/es6-sham.js | 14 +- js/vendor/es6-shim/es6-sham.map | 2 +- js/vendor/es6-shim/es6-sham.min.js | 4 +- js/vendor/es6-shim/es6-shim.js | 467 ++++++++++-------- js/vendor/es6-shim/es6-shim.map | 2 +- js/vendor/es6-shim/es6-shim.min.js | 8 +- js/vendor/es6-shim/package.json | 20 +- .../es6-shim/test-sham/set-prototype-of.js | 3 +- 13 files changed, 397 insertions(+), 304 deletions(-) diff --git a/js/vendor/es6-shim/.bower.json b/js/vendor/es6-shim/.bower.json index a0e5ad62d..00499dbf6 100644 --- a/js/vendor/es6-shim/.bower.json +++ b/js/vendor/es6-shim/.bower.json @@ -27,12 +27,12 @@ "test" ], "homepage": "https://github.com/paulmillr/es6-shim", - "version": "0.33.8", - "_release": "0.33.8", + "version": "0.33.12", + "_release": "0.33.12", "_resolution": { "type": "version", - "tag": "0.33.8", - "commit": "bdc0510b2db1366713f084c1d2d2fde4b1500f0e" + "tag": "0.33.12", + "commit": "2fc76e7c759cbc1643722bc21132e246f935d4e1" }, "_source": "git://github.com/paulmillr/es6-shim.git", "_target": "~0.*", diff --git a/js/vendor/es6-shim/CHANGELOG.md b/js/vendor/es6-shim/CHANGELOG.md index 3bd76e678..244cd55d0 100644 --- a/js/vendor/es6-shim/CHANGELOG.md +++ b/js/vendor/es6-shim/CHANGELOG.md @@ -1,5 +1,35 @@ # es6-shim x.x.x (not yet released) +# es6-shim 0.33.12 (11 Nov 2015) +* [Fix] IE 8: more NFE madness. +* [Dev Deps] update `es5-shim` +* [Docs] removing now-fixed `Number` caveat +* [Docs] use assertions so `evalmd` will test the readme better. +* [Docs] fix incorrect isFinite note (#373) + +# es6-shim 0.33.11 (9 Nov 2015) +* [Fix] handle future change of RegExp.prototype not being a regex (#370, #371) +* [Fix] disallow invalid hex strings in `Number` (#369) +* [Tests] Tweak "polluted prototype" approach +* [Dev Deps] update `chai`, `es5-shim`, `eslint`, `@ljharb/eslint-config`, `jscs` + +# es6-shim 0.33.10 (2 Nov 2015) +* [Fix] the `Number` constructor properly trims (or not) whitespace characters (#368) +* [Fix] `Number('0b12')` and `Number('0o18')` should both be `NaN` (#366) +* [Tests] Fix npm upgrades in older nodes +* [Tests] add `npm run tests-only` +* [Tests] on `node` `v5.0` +* [Tests] ensure `JSON.stringify` has the right name +* [Tests] add `npm run eslint` +* [Dev Deps] update `es5-shim`, `jscs` +* [Cleanup] Rearrange things so that they’re defined before they’re used +* [Cleanup] Don't reassign to function or catch parameters +* [Cleanup] Remove unused variables +* [Refactor] String#trim shim should use `defineProperty`, and check more non-whitespace chars + +# es6-shim 0.33.9 (29 Oct 2015) +* [Fix] IE 8: `Number(new Number(1))` was throwing. More NFE madness. (#365) + # es6-shim 0.33.8 (23 Oct 2015) * [Fix] IE 8: `Promise.resolve(2)` was throwing. More named function expression madness. * [Tests] Reflect: Don't attempt to define properties on this test object unless we're in true ES5. diff --git a/js/vendor/es6-shim/Gruntfile.js b/js/vendor/es6-shim/Gruntfile.js index 370443762..230934d6b 100644 --- a/js/vendor/es6-shim/Gruntfile.js +++ b/js/vendor/es6-shim/Gruntfile.js @@ -1,14 +1,16 @@ +'use strict'; + module.exports = function (grunt) { var browsers = [ - { browserName: "firefox", version: "19", platform: "XP" }, - { browserName: "firefox", platform: "linux" }, - { browserName: "firefox", platform: "OS X 10.10" }, - { browserName: "chrome", platform: "linux" }, - { browserName: "chrome", platform: "OS X 10.9" }, - { browserName: "chrome", platform: "XP" }, - { browserName: "internet explorer", platform: "Windows 8.1", version: "11" }, - { browserName: "internet explorer", platform: "WIN8", version: "10" }, - { browserName: "internet explorer", platform: "VISTA", version: "9" }, + { browserName: 'firefox', version: '19', platform: 'XP' }, + { browserName: 'firefox', platform: 'linux' }, + { browserName: 'firefox', platform: 'OS X 10.10' }, + { browserName: 'chrome', platform: 'linux' }, + { browserName: 'chrome', platform: 'OS X 10.9' }, + { browserName: 'chrome', platform: 'XP' }, + { browserName: 'internet explorer', platform: 'Windows 8.1', version: '11' }, + { browserName: 'internet explorer', platform: 'WIN8', version: '10' }, + { browserName: 'internet explorer', platform: 'VISTA', version: '9' }, { browserName: 'safari', platform: 'OS X 10.6' }, { browserName: 'safari', platform: 'OS X 10.8' }, { browserName: 'safari', platform: 'OS X 10.9' }, @@ -17,16 +19,16 @@ module.exports = function (grunt) { { browserName: 'android', platform: 'Linux', version: '4.4' }, ]; var extraBrowsers = [ - { browserName: "firefox", platform: "linux", version: "30" }, - { browserName: "firefox", platform: "linux", version: "25" }, + { browserName: 'firefox', platform: 'linux', version: '30' }, + { browserName: 'firefox', platform: 'linux', version: '25' }, { browserName: 'iphone', platform: 'OS X 10.8', version: '6.1' }, { browserName: 'iphone', platform: 'OS X 10.8', version: '5.1' }, { browserName: 'android', platform: 'Linux', version: '4.2' }, // XXX haven't investigated these: - //{ browserName: "opera", platform: "Windows 7", version: "12" }, - //{ browserName: "opera", platform: "Windows 2008", version: "12" } - //{ browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' }, - //{ browserName: 'android', platform: 'Linux', version: '4.0' }, + // { browserName: 'opera', platform: 'Windows 7', version: '12' }, + // { browserName: 'opera', platform: 'Windows 2008', version: '12' } + // { browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' }, + // { browserName: 'android', platform: 'Linux', version: '4.0' }, ]; if (grunt.option('extra')) { browsers = browsers.concat(extraBrowsers); @@ -35,7 +37,7 @@ module.exports = function (grunt) { connect: { server: { options: { - base: "", + base: '', port: 9999, useAvailablePort: true } @@ -45,56 +47,52 @@ module.exports = function (grunt) { all: { options: { urls: (function () { - var urls = ["http://localhost:9999/test/"]; + var urls = ['http://localhost:9999/test/']; if (grunt.option('extra')) { - urls.push("http://localhost:9999/test-sham/"); + urls.push('http://localhost:9999/test-sham/'); } return urls; }()), - //tunnelTimeout: 5, + // tunnelTimeout: 5, build: process.env.TRAVIS_BUILD_NUMBER, tunneled: !process.env.SAUCE_HAS_TUNNEL, identifier: process.env.TRAVIS_JOB_NUMBER, sauceConfig: { 'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER }, - //concurrency: 3, + // concurrency: 3, browsers: browsers, testname: (function () { - var testname = "mocha"; - if (process.env.TRAVIS_PULL_REQUEST && - process.env.TRAVIS_PULL_REQUEST !== 'false') { - testname += ' (PR '+process.env.TRAVIS_PULL_REQUEST+')'; + var testname = 'mocha'; + if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') { + testname += ' (PR ' + process.env.TRAVIS_PULL_REQUEST + ')'; } - if (process.env.TRAVIS_BRANCH && - process.env.TRAVIS_BRANCH !== 'false') { - testname += ' (branch '+process.env.TRAVIS_BRANCH+')'; + if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') { + testname += ' (branch ' + process.env.TRAVIS_BRANCH + ')'; } return testname; - })(), + }()), tags: (function () { var tags = []; - if (process.env.TRAVIS_PULL_REQUEST && - process.env.TRAVIS_PULL_REQUEST !== 'false') { - tags.push('PR-'+process.env.TRAVIS_PULL_REQUEST); + if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') { + tags.push('PR-' + process.env.TRAVIS_PULL_REQUEST); } - if (process.env.TRAVIS_BRANCH && - process.env.TRAVIS_BRANCH !== 'false') { + if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') { tags.push(process.env.TRAVIS_BRANCH); } return tags; - })() + }()) } } }, watch: {} }); // Loading dependencies - for (var key in grunt.file.readJSON("package.json").devDependencies) { - if (key !== "grunt" && key.indexOf("grunt") === 0) { + for (var key in grunt.file.readJSON('package.json').devDependencies) { + if (key !== 'grunt' && key.indexOf('grunt') === 0) { grunt.loadNpmTasks(key); } } - grunt.registerTask("dev", ["connect", "watch"]); - grunt.registerTask("sauce", ["connect", "saucelabs-mocha"]); + grunt.registerTask('dev', ['connect', 'watch']); + grunt.registerTask('sauce', ['connect', 'saucelabs-mocha']); }; diff --git a/js/vendor/es6-shim/README.md b/js/vendor/es6-shim/README.md index 9e1b54169..5a0955674 100644 --- a/js/vendor/es6-shim/README.md +++ b/js/vendor/es6-shim/README.md @@ -156,27 +156,43 @@ The [es6-collections](https://github.com/WebReflection/es6-collections) implemen ## Getting started ```javascript -var assert = require('assert'); require('es6-shim'); +var assert = require('assert'); -'abc'.startsWith('a'); // true -'abc'.endsWith('a'); // false -'john alice'.includes('john'); // true -'123'.repeat(2); // '123123' +assert.equal(true, 'abc'.startsWith('a')); +assert.equal(false, 'abc'.endsWith('a')); +assert.equal(true, 'john alice'.includes('john')); +assert.equal('123'.repeat(2), '123123'); -Object.is(NaN, NaN); // Fixes ===. 0 isnt -0, NaN is NaN -Object.assign({a: 1}, {b: 2}); // {a: 1, b: 2} +assert.equal(false, NaN === NaN); +assert.equal(true, Object.is(NaN, NaN)); +assert.equal(true, -0 === 0); +assert.equal(false, Object.is(-0, 0)); + +var result = Object.assign({ a: 1 }, { b: 2 }); +assert.deepEqual(result, { a: 1, b: 2 }); + +assert.equal(true, isNaN('a')); +assert.equal(false, Number.isNaN('a')); +assert.equal(true, Number.isNaN(NaN)); + +assert.equal(true, isFinite('123')); +assert.equal(false, Number.isFinite('123')); +assert.equal(false, Number.isFinite(Infinity)); -Number.isNaN('123'); // false. Global isNaN('123') will give true. -Number.isFinite('asd'); // false. Global isFinite() will give true. // Tests if value is a number, finite, // >= -9007199254740992 && <= 9007199254740992 and floor(value) === value -Number.isInteger(2.4); // false. +assert.equal(false, Number.isInteger(2.4)); -Math.sign(400); // 1, 0 or -1 depending on sign. In this case 1. +assert.equal(1, Math.sign(400)); +assert.equal(0, Math.sign(0)); +assert.equal(-1, Math.sign(-400)); -[5, 10, 15, 10].find(function (item) { return item / 2 === 5; }); // 10 -[5, 10, 15, 10].findIndex(function (item) { return item / 2 === 5; }); // 1 +var found = [5, 10, 15, 10].find(function (item) { return item / 2 === 5; }); +assert.equal(10, found); + +var foundIndex = [5, 10, 15, 10].findIndex(function (item) { return item / 2 === 5; }); +assert.equal(1, foundIndex); // Replacement for `{}` key-value storage. // Keys can be anything. @@ -184,30 +200,35 @@ var map = new Map([['Bob', 42], ['Foo', 'bar']]); map.set('John', 25); map.set('Alice', 400); map.set(['meh'], 555); -assert(map.get(['meh']) === undefined); // undefined because you need to use exactly the same object. +assert.equal(undefined, map.get(['meh'])); // undefined because you need to use exactly the same object. map.delete('Alice'); map.keys(); map.values(); -assert(map.size === 4); +assert.equal(4, map.size); // Useful for storing unique items. var set = new Set([0, 1]); set.add(2); set.add(5); -assert(set.has(0) === true); -assert(set.has(1) === true); -assert(set.has(2) === true); -assert(set.has(4) === false); +assert.equal(true, set.has(0)); +assert.equal(true, set.has(1)); +assert.equal(true, set.has(2)); +assert.equal(false, set.has(4)); +assert.equal(true, set.has(5)); set.delete(5); +assert.equal(false, set.has(5)); // Promises, see // http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript // https://github.com/petkaantonov/bluebird/#what-are-promises-and-why-should-i-use-them Promise.resolve(5).then(function (value) { - if (value) throw new Error("whoops!"); + assert.equal(value, 5); + if (value) throw new Error('whoops!'); // do some stuff return anotherPromise(); }).catch(function (e) { + assert.equal(e.message, 'whoops!'); + assert.equal(true, e instanceof Error); // any errors thrown asynchronously end up here }); ``` @@ -216,12 +237,6 @@ Promise.resolve(5).then(function (value) { - `Object.setPrototypeOf` / `Reflect.setPrototypeOf` - Note that null objects (`Object.create(null)`, eg, an object with `null` as its `[[Prototype]]`) can not have their `[[Prototype]]` changed except via a native `Object.setPrototypeOf`. - - `Number`: - - In order to support binary literals (`Number('0b1')`) and octal literals (`Number('0o7')`), the global `Number` constructor is wrapped in a shim. However, this can cause issues in the exceedingly unlikely event that you ever call `Number` as a function with a receiver (a “this” value) that is itself a number. Some problematic examples: -```js - assert(typeof Number.call(2, 3) === 'number'); // will fail when `Number` is wrapped, is "object" - assert(typeof (1).constructor(2) === 'number'); // will fail when `Number` is wrapped, is "object" -``` ## [License][license-url] diff --git a/js/vendor/es6-shim/component.json b/js/vendor/es6-shim/component.json index fd52e0b97..c0f5fbcd0 100644 --- a/js/vendor/es6-shim/component.json +++ b/js/vendor/es6-shim/component.json @@ -1,6 +1,6 @@ { "name": "es6-shim", - "version": "0.33.8", + "version": "0.33.12", "repo": "paulmillr/es6-shim", "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", "keywords": [ diff --git a/js/vendor/es6-shim/es6-sham.js b/js/vendor/es6-shim/es6-sham.js index 851b83046..65f0f5cc6 100644 --- a/js/vendor/es6-shim/es6-sham.js +++ b/js/vendor/es6-shim/es6-sham.js @@ -2,8 +2,8 @@ * https://github.com/paulmillr/es6-shim * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * and contributors, MIT License - * es6-sham: v0.33.8 - * see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE + * es6-sham: v0.33.12 + * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE * Details and documentation: * https://github.com/paulmillr/es6-shim/ */ @@ -28,7 +28,9 @@ 'use strict'; /*jshint evil: true */ + /* eslint-disable no-new-func */ var getGlobal = new Function('return this;'); + /* eslint-enable no-new-func */ /*jshint evil: false */ var globals = getGlobal(); @@ -85,20 +87,24 @@ }; } catch (e) { // do one or more feature detections - set = {__proto__: null}; + set = { __proto__: null }; // if proto does not work, needs to fallback // some Opera, Rhino, ducktape if (set instanceof Object) { setPrototypeOf = createAndCopy; } else { // verify if null objects are buggy + /* eslint-disable no-proto */ set.__proto__ = objProto; + /* eslint-enable no-proto */ // if null objects are buggy // nodejs 0.8 to 0.10 if (set instanceof Object) { setPrototypeOf = function (origin, proto) { // use such bug to promote + /* eslint-disable no-proto */ origin.__proto__ = proto; + /* eslint-enable no-proto */ return origin; }; } else { @@ -108,7 +114,9 @@ // if proto is not null if (getPrototypeOf(origin)) { // use __proto__ to promote + /* eslint-disable no-proto */ origin.__proto__ = proto; + /* eslint-enable no-proto */ return origin; } else { // otherwise unable to promote: fallback diff --git a/js/vendor/es6-shim/es6-sham.map b/js/vendor/es6-shim/es6-sham.map index aed17fdff..8f3589e2e 100644 --- a/js/vendor/es6-shim/es6-sham.map +++ b/js/vendor/es6-shim/es6-sham.map @@ -1 +1 @@ -{"version":3,"sources":["es6-sham.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","getGlobal","Function","globals","Object","setPrototypeOf","getOwnPropertyNames","getOwnPropertyDescriptor","create","defineProperty","getPrototypeOf","objProto","prototype","copyDescriptors","target","source","forEach","key","createAndCopy","origin","proto","set","call","e","__proto__"],"mappings":";;;;;;;;;CAYC,SAAUA,EAAMC,GAEf,SAAWC,UAAW,YAAcA,OAAOC,IAAK,CAE9CD,OAAOD,OACF,UAAWG,WAAY,SAAU,CAItCC,OAAOD,QAAUH,QACZ,CAELD,EAAKM,cAAgBL,OAEvBM,KAAM,WACN,YAGA,IAAIC,GAAY,GAAIC,UAAS,eAG7B,IAAIC,GAAUF,GACd,IAAIG,GAASD,EAAQC,QAWpB,WACC,GAAIA,EAAOC,eAAgB,CAAE,OAK7B,GAAIC,GAAsBF,EAAOE,mBACjC,IAAIC,GAA2BH,EAAOG,wBACtC,IAAIC,GAASJ,EAAOI,MACpB,IAAIC,GAAiBL,EAAOK,cAC5B,IAAIC,GAAiBN,EAAOM,cAC5B,IAAIC,GAAWP,EAAOQ,SAEtB,IAAIC,GAAkB,SAAUC,EAAQC,GAEtCT,EAAoBS,GAAQC,QAAQ,SAAUC,GAC5CR,EACEK,EACAG,EACAV,EAAyBQ,EAAQE,KAGrC,OAAOH,GAGT,IAAII,GAAgB,SAAUC,EAAQC,GACpC,MAAOP,GAAgBL,EAAOY,GAAQD,GAExC,IAAIE,GAAKhB,CACT,KAGEgB,EAAMd,EAAyBI,EAAU,aAAaU,GACtDA,GAAIC,QAAS,KAGbjB,GAAiB,SAAUc,EAAQC,GACjCC,EAAIC,KAAKH,EAAQC,EACjB,OAAOD,IAET,MAAOI,GAEPF,GAAOG,UAAW,KAGlB,IAAIH,YAAejB,GAAQ,CACzBC,EAAiBa,MACZ,CAELG,EAAIG,UAAYb,CAGhB,IAAIU,YAAejB,GAAQ,CACzBC,EAAiB,SAAUc,EAAQC,GAEjCD,EAAOK,UAAYJ,CACnB,OAAOD,QAEJ,CAGLd,EAAiB,SAAUc,EAAQC,GAEjC,GAAIV,EAAeS,GAAS,CAE1BA,EAAOK,UAAYJ,CACnB,OAAOD,OACF,CAEL,MAAOD,GAAcC,EAAQC,OAMvChB,EAAOC,eAAiBA"} \ No newline at end of file +{"version":3,"sources":["es6-sham.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","getGlobal","Function","globals","Object","setPrototypeOf","getOwnPropertyNames","getOwnPropertyDescriptor","create","defineProperty","getPrototypeOf","objProto","prototype","copyDescriptors","target","source","forEach","key","createAndCopy","origin","proto","set","call","e","__proto__"],"mappings":";;;;;;;;;CAYC,SAAUA,EAAMC,GAEf,SAAWC,UAAW,YAAcA,OAAOC,IAAK,CAE9CD,OAAOD,OACF,UAAWG,WAAY,SAAU,CAItCC,OAAOD,QAAUH,QACZ,CAELD,EAAKM,cAAgBL,OAEvBM,KAAM,WACN,YAIA,IAAIC,GAAY,GAAIC,UAAS,eAI7B,IAAIC,GAAUF,GACd,IAAIG,GAASD,EAAQC,QAWpB,WACC,GAAIA,EAAOC,eAAgB,CAAE,OAK7B,GAAIC,GAAsBF,EAAOE,mBACjC,IAAIC,GAA2BH,EAAOG,wBACtC,IAAIC,GAASJ,EAAOI,MACpB,IAAIC,GAAiBL,EAAOK,cAC5B,IAAIC,GAAiBN,EAAOM,cAC5B,IAAIC,GAAWP,EAAOQ,SAEtB,IAAIC,GAAkB,SAAUC,EAAQC,GAEtCT,EAAoBS,GAAQC,QAAQ,SAAUC,GAC5CR,EACEK,EACAG,EACAV,EAAyBQ,EAAQE,KAGrC,OAAOH,GAGT,IAAII,GAAgB,SAAUC,EAAQC,GACpC,MAAOP,GAAgBL,EAAOY,GAAQD,GAExC,IAAIE,GAAKhB,CACT,KAGEgB,EAAMd,EAAyBI,EAAU,aAAaU,GACtDA,GAAIC,QAAS,KAGbjB,GAAiB,SAAUc,EAAQC,GACjCC,EAAIC,KAAKH,EAAQC,EACjB,OAAOD,IAET,MAAOI,GAEPF,GAAQG,UAAW,KAGnB,IAAIH,YAAejB,GAAQ,CACzBC,EAAiBa,MACZ,CAGLG,EAAIG,UAAYb,CAIhB,IAAIU,YAAejB,GAAQ,CACzBC,EAAiB,SAAUc,EAAQC,GAGjCD,EAAOK,UAAYJ,CAEnB,OAAOD,QAEJ,CAGLd,EAAiB,SAAUc,EAAQC,GAEjC,GAAIV,EAAeS,GAAS,CAG1BA,EAAOK,UAAYJ,CAEnB,OAAOD,OACF,CAEL,MAAOD,GAAcC,EAAQC,OAMvChB,EAAOC,eAAiBA"} \ No newline at end of file diff --git a/js/vendor/es6-shim/es6-sham.min.js b/js/vendor/es6-shim/es6-sham.min.js index f8372331f..a0f862efe 100644 --- a/js/vendor/es6-shim/es6-sham.min.js +++ b/js/vendor/es6-shim/es6-sham.min.js @@ -2,8 +2,8 @@ * https://github.com/paulmillr/es6-shim * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * and contributors, MIT License - * es6-sham: v0.33.8 - * see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE + * es6-sham: v0.33.12 + * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE * Details and documentation: * https://github.com/paulmillr/es6-shim/ */ diff --git a/js/vendor/es6-shim/es6-shim.js b/js/vendor/es6-shim/es6-shim.js index feb438909..d1d052fe3 100644 --- a/js/vendor/es6-shim/es6-shim.js +++ b/js/vendor/es6-shim/es6-shim.js @@ -2,8 +2,8 @@ * https://github.com/paulmillr/es6-shim * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * and contributors, MIT License - * es6-shim: v0.33.8 - * see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE + * es6-shim: v0.33.12 + * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE * Details and documentation: * https://github.com/paulmillr/es6-shim/ */ @@ -61,26 +61,8 @@ var _forEach = Function.call.bind(Array.prototype.forEach); var _reduce = Function.call.bind(Array.prototype.reduce); var _filter = Function.call.bind(Array.prototype.filter); - var _every = Function.call.bind(Array.prototype.every); + var _some = Function.call.bind(Array.prototype.some); - var createDataProperty = function createDataProperty(object, name, value) { - if (supportsDescriptors) { - Object.defineProperty(object, name, { - configurable: true, - enumerable: true, - writable: true, - value: value - }); - } else { - object[name] = value; - } - }; - var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) { - createDataProperty(object, name, value); - if (!ES.SameValue(object[name], value)) { - throw new TypeError('property is nonconfigurable'); - } - }; var defineProperty = function (object, name, value, force) { if (!force && name in object) { return; } if (supportsDescriptors) { @@ -135,6 +117,7 @@ }; var getGlobal = function () { + /* global self, window, global */ // the only reliable means to get the global object is // `Function('return this')()` // However, this causes CSP violations in Chrome apps. @@ -146,7 +129,6 @@ var globals = getGlobal(); var globalIsFinite = globals.isFinite; - var hasStrictMode = (function () { return this === null; }.call(null)); var _indexOf = Function.call.bind(String.prototype.indexOf); var _toString = Function.call.bind(Object.prototype.toString); var _concat = Function.call.bind(Array.prototype.concat); @@ -167,89 +149,6 @@ var Symbol = globals.Symbol || {}; var symbolSpecies = Symbol.species || '@@species'; - var Value = { - getter: function (object, name, getter) { - if (!supportsDescriptors) { - throw new TypeError('getters require true ES5 support'); - } - Object.defineProperty(object, name, { - configurable: true, - enumerable: false, - get: getter - }); - }, - proxy: function (originalObject, key, targetObject) { - if (!supportsDescriptors) { - throw new TypeError('getters require true ES5 support'); - } - var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key); - Object.defineProperty(targetObject, key, { - configurable: originalDescriptor.configurable, - enumerable: originalDescriptor.enumerable, - get: function getKey() { return originalObject[key]; }, - set: function setKey(value) { originalObject[key] = value; } - }); - }, - redefine: function (object, property, newValue) { - if (supportsDescriptors) { - var descriptor = Object.getOwnPropertyDescriptor(object, property); - descriptor.value = newValue; - Object.defineProperty(object, property, descriptor); - } else { - object[property] = newValue; - } - }, - defineByDescriptor: function (object, property, descriptor) { - if (supportsDescriptors) { - Object.defineProperty(object, property, descriptor); - } else if ('value' in descriptor) { - object[property] = descriptor.value; - } - }, - preserveToString: function (target, source) { - if (source && ES.IsCallable(source.toString)) { - defineProperty(target, 'toString', source.toString.bind(source), true); - } - } - }; - - var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) { - Value.preserveToString(replacement, original); - if (Object.setPrototypeOf) { - // sets up proper prototype chain where possible - Object.setPrototypeOf(original, replacement); - } - if (supportsDescriptors) { - _forEach(Object.getOwnPropertyNames(original), function (key) { - if (key in noop || keysToSkip[key]) { return; } - Value.proxy(original, key, replacement); - }); - } else { - _forEach(Object.keys(original), function (key) { - if (key in noop || keysToSkip[key]) { return; } - replacement[key] = original[key]; - }); - } - replacement.prototype = original.prototype; - Value.redefine(original.prototype, 'constructor', replacement); - }; - - var defaultSpeciesGetter = function () { return this; }; - var addDefaultSpecies = function (C) { - if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) { - Value.getter(C, symbolSpecies, defaultSpeciesGetter); - } - }; - var Type = { - primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); }, - object: function (x) { return x !== null && typeof x === 'object'; }, - string: function (x) { return _toString(x) === '[object String]'; }, - regex: function (x) { return _toString(x) === '[object RegExp]'; }, - symbol: function (x) { - return typeof globals.Symbol === 'function' && typeof x === 'symbol'; - } - }; - var numberIsNaN = Number.isNaN || function isNaN(value) { // NaN !== NaN, but they are identical. // NaNs are the only non-reflexive value, i.e., if x !== x, @@ -262,33 +161,6 @@ return typeof value === 'number' && globalIsFinite(value); }; - var overrideNative = function overrideNative(object, property, replacement) { - var original = object[property]; - defineProperty(object, property, replacement, true); - Value.preserveToString(object[property], original); - }; - - // This is a private name in the es6 spec, equal to '[Symbol.iterator]' - // we're going to use an arbitrary _-prefixed name to make our shims - // work properly with each other, even though we don't have full Iterator - // support. That is, `Array.from(map.keys())` will work, but we don't - // pretend to export a "real" Iterator interface. - var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_'; - // Firefox ships a partial implementation using the name @@iterator. - // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14 - // So use that name if we detect it. - if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') { - $iterator$ = '@@iterator'; - } - var addIterator = function (prototype, impl) { - var implementation = impl || function iterator() { return this; }; - defineProperty(prototype, $iterator$, implementation); - if (!prototype[$iterator$] && Type.symbol($iterator$)) { - // implementations are buggy when $iterator$ is a Symbol - prototype[$iterator$] = implementation; - } - }; - // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js // can be replaced with require('is-arguments') if we ever use a build process instead var isStandardArguments = function isArguments(value) { @@ -304,6 +176,35 @@ }; var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments; + var Type = { + primitive: function (x) { return x === null || (typeof x !== 'function' && typeof x !== 'object'); }, + object: function (x) { return x !== null && typeof x === 'object'; }, + string: function (x) { return _toString(x) === '[object String]'; }, + regex: function (x) { return _toString(x) === '[object RegExp]'; }, + symbol: function (x) { + return typeof globals.Symbol === 'function' && typeof x === 'symbol'; + } + }; + + // This is a private name in the es6 spec, equal to '[Symbol.iterator]' + // we're going to use an arbitrary _-prefixed name to make our shims + // work properly with each other, even though we don't have full Iterator + // support. That is, `Array.from(map.keys())` will work, but we don't + // pretend to export a "real" Iterator interface. + var $iterator$ = Type.symbol(Symbol.iterator) ? Symbol.iterator : '_es6-shim iterator_'; + // Firefox ships a partial implementation using the name @@iterator. + // https://bugzilla.mozilla.org/show_bug.cgi?id=907077#c14 + // So use that name if we detect it. + if (globals.Set && typeof new globals.Set()['@@iterator'] === 'function') { + $iterator$ = '@@iterator'; + } + + // Reflect + if (!globals.Reflect) { + defineProperty(globals, 'Reflect', {}); + } + var Reflect = globals.Reflect; + var ES = { // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args Call: function Call(F, V) { @@ -459,19 +360,18 @@ }, Construct: function (C, args, newTarget, isES6internal) { - if (newTarget === void 0) { - newTarget = C; - } + var target = typeof newTarget === 'undefined' ? C : newTarget; + if (!isES6internal) { // Try to use Reflect.construct if available - return Reflect.construct(C, args, newTarget); + return Reflect.construct(C, args, target); } // OK, we have to fake it. This will only work if the // C.[[ConstructorKind]] == "base" -- but that's the only // kind we can make in ES5 code anyway. - // OrdinaryCreateFromConstructor(newTarget, "%ObjectPrototype%") - var proto = newTarget.prototype; + // OrdinaryCreateFromConstructor(target, "%ObjectPrototype%") + var proto = target.prototype; if (!ES.TypeIsObject(proto)) { proto = Object.prototype; } @@ -513,6 +413,114 @@ } }; + var Value = { + getter: function (object, name, getter) { + if (!supportsDescriptors) { + throw new TypeError('getters require true ES5 support'); + } + Object.defineProperty(object, name, { + configurable: true, + enumerable: false, + get: getter + }); + }, + proxy: function (originalObject, key, targetObject) { + if (!supportsDescriptors) { + throw new TypeError('getters require true ES5 support'); + } + var originalDescriptor = Object.getOwnPropertyDescriptor(originalObject, key); + Object.defineProperty(targetObject, key, { + configurable: originalDescriptor.configurable, + enumerable: originalDescriptor.enumerable, + get: function getKey() { return originalObject[key]; }, + set: function setKey(value) { originalObject[key] = value; } + }); + }, + redefine: function (object, property, newValue) { + if (supportsDescriptors) { + var descriptor = Object.getOwnPropertyDescriptor(object, property); + descriptor.value = newValue; + Object.defineProperty(object, property, descriptor); + } else { + object[property] = newValue; + } + }, + defineByDescriptor: function (object, property, descriptor) { + if (supportsDescriptors) { + Object.defineProperty(object, property, descriptor); + } else if ('value' in descriptor) { + object[property] = descriptor.value; + } + }, + preserveToString: function (target, source) { + if (source && ES.IsCallable(source.toString)) { + defineProperty(target, 'toString', source.toString.bind(source), true); + } + } + }; + + var wrapConstructor = function wrapConstructor(original, replacement, keysToSkip) { + Value.preserveToString(replacement, original); + if (Object.setPrototypeOf) { + // sets up proper prototype chain where possible + Object.setPrototypeOf(original, replacement); + } + if (supportsDescriptors) { + _forEach(Object.getOwnPropertyNames(original), function (key) { + if (key in noop || keysToSkip[key]) { return; } + Value.proxy(original, key, replacement); + }); + } else { + _forEach(Object.keys(original), function (key) { + if (key in noop || keysToSkip[key]) { return; } + replacement[key] = original[key]; + }); + } + replacement.prototype = original.prototype; + Value.redefine(original.prototype, 'constructor', replacement); + }; + + var defaultSpeciesGetter = function () { return this; }; + var addDefaultSpecies = function (C) { + if (supportsDescriptors && !_hasOwnProperty(C, symbolSpecies)) { + Value.getter(C, symbolSpecies, defaultSpeciesGetter); + } + }; + + var overrideNative = function overrideNative(object, property, replacement) { + var original = object[property]; + defineProperty(object, property, replacement, true); + Value.preserveToString(object[property], original); + }; + + var addIterator = function (prototype, impl) { + var implementation = impl || function iterator() { return this; }; + defineProperty(prototype, $iterator$, implementation); + if (!prototype[$iterator$] && Type.symbol($iterator$)) { + // implementations are buggy when $iterator$ is a Symbol + prototype[$iterator$] = implementation; + } + }; + + var createDataProperty = function createDataProperty(object, name, value) { + if (supportsDescriptors) { + Object.defineProperty(object, name, { + configurable: true, + enumerable: true, + writable: true, + value: value + }); + } else { + object[name] = value; + } + }; + var createDataPropertyOrThrow = function createDataPropertyOrThrow(object, name, value) { + createDataProperty(object, name, value); + if (!ES.SameValue(object[name], value)) { + throw new TypeError('property is nonconfigurable'); + } + }; + var emulateES6construct = function (o, defaultNewTarget, defaultProto, slots) { // This is an es5 approximation to es6 construct semantics. in es6, // 'new Foo' invokes Foo.[[Construct]] which (for almost all objects) @@ -531,14 +539,14 @@ if (!ES.TypeIsObject(proto)) { proto = defaultProto; } - o = create(proto); + var obj = create(proto); for (var name in slots) { if (_hasOwnProperty(slots, name)) { var value = slots[name]; - defineProperty(o, name, value, true); + defineProperty(obj, name, value, true); } } - return o; + return obj; }; // Firefox 31 reports this function's length as 0 @@ -591,7 +599,7 @@ next = nextIndex + 1 < arguments.length ? arguments[nextIndex + 1] : ''; nextSub = String(next); _push(stringElements, nextSub); - nextIndex++; + nextIndex += 1; } return stringElements.join(''); } @@ -695,26 +703,25 @@ defineProperties(String.prototype, StringPrototypeShims); - var hasStringTrimBug = '\u0085'.trim().length !== 1; - if (hasStringTrimBug) { - delete String.prototype.trim; - // whitespace from: http://es5.github.io/#x15.5.4.20 - // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 - var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' - ].join(''); - var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); - defineProperties(String.prototype, { - trim: function trim() { - if (typeof this === 'undefined' || this === null) { - throw new TypeError("can't convert " + this + ' to object'); - } - return String(this).replace(trimRegexp, ''); - } - }); - } + // whitespace from: http://es5.github.io/#x15.5.4.20 + // implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 + var ws = [ + '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', + '\u2029\uFEFF' + ].join(''); + var trimRegexp = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); + var trimShim = function trim() { + if (typeof this === 'undefined' || this === null) { + throw new TypeError("can't convert " + this + ' to object'); + } + return String(this).replace(trimRegexp, ''); + }; + var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); + var nonWSregex = new RegExp('[' + nonWS + ']', 'g'); + var isBadHexRegex = /^[\-+]0x[0-9a-f]+$/i; + var hasStringTrimBug = nonWS.trim().length !== nonWS.length; + defineProperty(String.prototype, 'trim', trimShim, hasStringTrimBug); // see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-string.prototype-@@iterator var StringIterator = function (s) { @@ -760,10 +767,10 @@ // Note that that Arrays will use ArrayIterator: // https://bugs.ecmascript.org/show_bug.cgi?id=2416 - var usingIterator = isArguments(items) || ES.GetMethod(items, $iterator$); + var usingIterator = typeof (isArguments(items) || ES.GetMethod(items, $iterator$)) !== 'undefined'; var length, result, i; - if (usingIterator !== void 0) { + if (usingIterator) { result = ES.IsConstructor(C) ? Object(new C()) : []; var iterator = ES.GetIterator(items); var next, nextValue; @@ -777,7 +784,7 @@ nextValue = next.value; try { if (mapping) { - nextValue = T !== undefined ? _call(mapFn, T, nextValue, i) : mapFn(nextValue, i); + nextValue = T === undefined ? mapFn(nextValue, i) : _call(mapFn, T, nextValue, i); } result[i] = nextValue; } catch (e) { @@ -862,14 +869,6 @@ }); addIterator(ArrayIterator.prototype); - var ObjectIterator = function (object, kind) { - defineProperties(this, { - object: object, - array: getAllKeys(object), - kind: kind - }); - }; - var getAllKeys = function getAllKeys(object) { var keys = []; @@ -880,6 +879,14 @@ return keys; }; + var ObjectIterator = function (object, kind) { + defineProperties(this, { + object: object, + array: getAllKeys(object), + kind: kind + }); + }; + defineProperties(ObjectIterator.prototype, { next: function next() { var key; @@ -1137,10 +1144,15 @@ }, true); } - if (Number('0o10') !== 8 || Number('0b10') !== 2) { + var lacksOctalSupport = Number('0o10') !== 8; + var lacksBinarySupport = Number('0b10') !== 2; + var trimsNonWhitespace = _some(nonWS, function (c) { + return Number(c + 0 + c) === 0; + }); + if (lacksOctalSupport || lacksBinarySupport || trimsNonWhitespace) { var OrigNumber = Number; - var binaryRegex = /^0b/i; - var octalRegex = /^0o/i; + var binaryRegex = /^0b[01]+$/i; + var octalRegex = /^0o[0-7]+$/i; // Note that in IE 8, RegExp.prototype.test doesn't seem to exist: ie, "test" is an own property of regexes. wtf. var isBinary = binaryRegex.test.bind(binaryRegex); var isOctal = octalRegex.test.bind(octalRegex); @@ -1160,34 +1172,43 @@ } throw new TypeError('No default value'); }; + var hasNonWS = nonWSregex.test.bind(nonWSregex); + var isBadHex = isBadHexRegex.test.bind(isBadHexRegex); var NumberShim = (function () { // this is wrapped in an IIFE because of IE 6-8's wacky scoping issues with named function expressions. - return function Number(value) { + var NumberShim = function Number(value) { var primValue = Type.primitive(value) ? value : toPrimitive(value, 'number'); if (typeof primValue === 'string') { if (isBinary(primValue)) { primValue = parseInt(_strSlice(primValue, 2), 2); } else if (isOctal(primValue)) { primValue = parseInt(_strSlice(primValue, 2), 8); + } else if (hasNonWS(primValue) || isBadHex(primValue)) { + primValue = NaN; + } else { + primValue = _call(trimShim, primValue); } } var receiver = this; var valueOfSucceeds = valueOrFalseIfThrows(function () { - Number.prototype.valueOf.call(receiver); + OrigNumber.prototype.valueOf.call(receiver); return true; }); - if (receiver instanceof Number && !valueOfSucceeds) { + if (receiver instanceof NumberShim && !valueOfSucceeds) { return new OrigNumber(primValue); } /* jshint newcap: false */ return OrigNumber(primValue); /* jshint newcap: true */ }; + return NumberShim; }()); wrapConstructor(OrigNumber, NumberShim, {}); /*globals Number: true */ + /* eslint-disable no-undef */ Number = NumberShim; Value.redefine(globals, 'Number', NumberShim); + /* eslint-enable no-undef */ /*globals Number: false */ } @@ -1220,12 +1241,14 @@ // implementations of find/findIndex indirectly use shimmed // methods of Number, so this test has to happen down here.) /*jshint elision: true */ + /* eslint-disable no-sparse-arrays */ if (![, 1].find(function (item, idx) { return idx === 0; })) { overrideNative(Array.prototype, 'find', ArrayPrototypeShims.find); } if ([, 1].findIndex(function (item, idx) { return idx === 0; }) !== 0) { overrideNative(Array.prototype, 'findIndex', ArrayPrototypeShims.findIndex); } + /* eslint-enable no-sparse-arrays */ /*jshint elision: false */ var isEnumerableOn = Function.bind.call(Function.bind, Object.prototype.propertyIsEnumerable); @@ -1468,7 +1491,11 @@ } } - if (!RegExp.prototype.flags && supportsDescriptors) { + var hasFlags = supportsDescriptors && (function () { + var desc = Object.getOwnPropertyDescriptor(RegExp.prototype, 'flags'); + return desc && ES.IsCallable(desc.get); + }()); + if (supportsDescriptors && !hasFlags) { var regExpFlagsGetter = function flags() { if (!ES.TypeIsObject(this)) { throw new TypeError('Method called on incompatible type: must be an object.'); @@ -1501,22 +1528,26 @@ if (!regExpSupportsFlagsWithRegex && supportsDescriptors) { var OrigRegExp = RegExp; - var RegExpShim = function RegExp(pattern, flags) { - var calledWithNew = this instanceof RegExp; - if (!calledWithNew && (Type.regex(pattern) || (pattern && pattern.constructor === RegExp))) { - return pattern; - } - if (Type.regex(pattern) && Type.string(flags)) { - return new RegExp(pattern.source, flags); - } - return new OrigRegExp(pattern, flags); - }; + var RegExpShim = (function () { + return function RegExp(pattern, flags) { + var calledWithNew = this instanceof RegExp; + if (!calledWithNew && (Type.regex(pattern) || (pattern && pattern.constructor === RegExp))) { + return pattern; + } + if (Type.regex(pattern) && Type.string(flags)) { + return new RegExp(pattern.source, flags); + } + return new OrigRegExp(pattern, flags); + }; + }()); wrapConstructor(OrigRegExp, RegExpShim, { $input: true // Chrome < v39 & Opera < 26 have a nonstandard "$input" property }); /*globals RegExp: true */ + /* eslint-disable no-undef */ RegExp = RegExpShim; Value.redefine(globals, 'RegExp', RegExpShim); + /* eslint-enable no-undef */ /*globals RegExp: false */ } @@ -1975,6 +2006,7 @@ return C; }; + var Promise$prototype; var Promise = (function () { var PromiseShim = function Promise(resolver) { if (!(this instanceof PromiseShim)) { @@ -2006,7 +2038,7 @@ }; return PromiseShim; }()); - var Promise$prototype = Promise.prototype; + Promise$prototype = Promise.prototype; var _promiseAllResolver = function (index, values, capability, remaining) { var alreadyCalled = false; @@ -2042,7 +2074,7 @@ var resolveElement = _promiseAllResolver( index, values, resultCapability, remaining ); - remaining.count++; + remaining.count += 1; nextPromise.then(resolveElement, resultCapability.reject); index += 1; } @@ -2087,15 +2119,16 @@ iteratorRecord = { iterator: iterator, done: false }; return performPromiseAll(iteratorRecord, C, capability); } catch (e) { + var exception = e; if (iteratorRecord && !iteratorRecord.done) { try { ES.IteratorClose(iterator, true); } catch (ee) { - e = ee; + exception = ee; } } var reject = capability.reject; - reject(e); + reject(exception); return capability.promise; } }, @@ -2109,15 +2142,16 @@ iteratorRecord = { iterator: iterator, done: false }; return performPromiseRace(iteratorRecord, C, capability); } catch (e) { + var exception = e; if (iteratorRecord && !iteratorRecord.done) { try { ES.IteratorClose(iterator, true); } catch (ee) { - e = ee; + exception = ee; } } var reject = capability.reject; - reject(e); + reject(exception); return capability.promise; } }, @@ -2155,15 +2189,16 @@ var C = ES.SpeciesConstructor(promise, Promise); var resultCapability = new PromiseCapability(C); // PerformPromiseThen(promise, onFulfilled, onRejected, resultCapability) - if (!ES.IsCallable(onFulfilled)) { - onFulfilled = PROMISE_IDENTITY; - } - if (!ES.IsCallable(onRejected)) { - onRejected = PROMISE_THROWER; - } - var fulfillReaction = { capabilities: resultCapability, handler: onFulfilled }; - var rejectReaction = { capabilities: resultCapability, handler: onRejected }; - var _promise = promise._promise, value; + var fulfillReaction = { + capabilities: resultCapability, + handler: ES.IsCallable(onFulfilled) ? onFulfilled : PROMISE_IDENTITY + }; + var rejectReaction = { + capabilities: resultCapability, + handler: ES.IsCallable(onRejected) ? onRejected : PROMISE_THROWER + }; + var _promise = promise._promise; + var value; if (_promise.state === PROMISE_PENDING) { _push(_promise.fulfillReactions, fulfillReaction); _push(_promise.rejectReactions, rejectReaction); @@ -2219,7 +2254,9 @@ if (!promiseSupportsSubclassing || !promiseIgnoresNonFunctionThenCallbacks || !promiseRequiresObjectContext || promiseResolveBroken) { /*globals Promise: true */ + /* eslint-disable no-undef */ Promise = PromiseShim; + /* eslint-enable no-undef */ /*globals Promise: false */ overrideNative(globals, 'Promise', PromiseShim); } @@ -2399,6 +2436,7 @@ }; addIterator(MapIterator.prototype); + var Map$prototype; var MapShim = function Map() { if (!(this instanceof Map)) { throw new TypeError('Constructor Map requires "new"'); @@ -2424,7 +2462,7 @@ } return map; }; - var Map$prototype = MapShim.prototype; + Map$prototype = MapShim.prototype; Value.getter(Map$prototype, 'size', function () { if (typeof this._size === 'undefined') { @@ -2589,6 +2627,7 @@ // Sets containing only string or numeric keys, we use an object // as backing storage and lazily create a full Map only when // required. + var Set$prototype; var SetShim = function Set() { if (!(this instanceof Set)) { throw new TypeError('Constructor Set requires "new"'); @@ -2611,13 +2650,14 @@ } return set; }; - var Set$prototype = SetShim.prototype; + Set$prototype = SetShim.prototype; // Switch from the object backing storage to a full Map. var ensureMap = function ensureMap(set) { if (!set['[[SetData]]']) { var m = set['[[SetData]]'] = new collectionShims.Map(); - _forEach(Object.keys(set._storage), function (k) { + _forEach(Object.keys(set._storage), function (key) { + var k = key; if (k === '^null') { k = null; } else if (k === '^undefined') { @@ -2915,12 +2955,6 @@ addDefaultSpecies(globals.Set); } - // Reflect - if (!globals.Reflect) { - defineProperty(globals, 'Reflect', {}); - } - var Reflect = globals.Reflect; - var throwUnlessTargetIsObject = function throwUnlessTargetIsObject(target) { if (!ES.TypeIsObject(target)) { throw new TypeError('target must be an object'); @@ -2942,7 +2976,7 @@ if (!ES.IsConstructor(constructor)) { throw new TypeError('First argument must be a constructor.'); } - var newTarget = (arguments.length < 3) ? constructor : arguments[2]; + var newTarget = arguments.length < 3 ? constructor : arguments[2]; if (!ES.IsConstructor(newTarget)) { throw new TypeError('new.target must be a constructor.'); } @@ -3132,7 +3166,8 @@ } if (Object.setPrototypeOf && ReflectShims.getPrototypeOf) { - var willCreateCircularPrototype = function (object, proto) { + var willCreateCircularPrototype = function (object, lastProto) { + var proto = lastProto; while (proto) { if (object === proto) { return true; diff --git a/js/vendor/es6-shim/es6-shim.map b/js/vendor/es6-shim/es6-shim.map index 180c582c5..4d7d8c49f 100644 --- a/js/vendor/es6-shim/es6-shim.map +++ b/js/vendor/es6-shim/es6-shim.map @@ -1 +1 @@ -{"version":3,"sources":["es6-shim.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","_apply","Function","call","bind","apply","_call","isArray","Array","not","notThunker","func","notThunk","arguments","throwsError","e","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","Object","defineProperty","get","supportsDescriptors","functionsHaveNames","foo","name","_forEach","prototype","forEach","_reduce","reduce","_filter","filter","_every","every","createDataProperty","object","value","configurable","enumerable","writable","createDataPropertyOrThrow","ES","SameValue","TypeError","force","defineProperties","map","keys","method","create","properties","Prototype","key","Value","defineByDescriptor","supportsSubclassing","C","f","setPrototypeOf","Sub","Subclass","arg","o","constructor","getGlobal","self","window","global","Error","globals","globalIsFinite","isFinite","hasStrictMode","_indexOf","String","indexOf","_toString","toString","_concat","concat","_strSlice","slice","_push","push","_pushApply","_shift","shift","_max","Math","max","_min","min","_floor","floor","_abs","abs","_log","log","_sqrt","sqrt","_hasOwnProperty","hasOwnProperty","ArrayIterator","noop","Symbol","symbolSpecies","species","getter","proxy","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","getKey","set","setKey","redefine","property","newValue","descriptor","preserveToString","target","source","IsCallable","wrapConstructor","original","replacement","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","Type","primitive","x","string","regex","symbol","numberIsNaN","Number","isNaN","numberIsFinite","overrideNative","$iterator$","iterator","Set","addIterator","impl","implementation","isStandardArguments","isArguments","isLegacyArguments","length","callee","Call","F","V","args","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","number","ToLength","len","MAX_SAFE_INTEGER","a","b","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","p","IteratorComplete","iterResult","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","done","Construct","newTarget","isES6internal","Reflect","construct","proto","obj","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","tag","attribute","p1","escapedV","replace","p2","p3","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","i","RangeError","fromCharCode","join","raw","callSite","cooked","rawString","literalsegments","stringElements","nextIndex","nextKey","nextSeg","nextSub",0,1,"stringRepeat","repeat","s","times","half","stringMaxLength","Infinity","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","searchStr","startArg","start","endsWith","thisLen","posArg","pos","end","includes","position","codePointAt","first","charCodeAt","isEnd","second","startsWithRejectsRegex","startsWithHandlesInfinity","hasStringTrimBug","trim","ws","trimRegexp","RegExp","StringIterator","_s","_i","substr","ArrayShims","from","items","mapFn","mapping","T","usingIterator","nextValue","undefined","arrayLike","of","A","k","iteratorResult","array","kind","retval","ObjectIterator","getAllKeys","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","fin","count","direction","fill","relativeEnd","find","predicate","list","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arr","arrayFromHandlesUndefinedMapFunction","origArrayFrom","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","some","originalSome","originalEvery","originalReduce","reduceRight","originalReduceRight","OrigNumber","binaryRegex","octalRegex","isBinary","test","isOctal","toPrimitive","valueOf","NumberShim","primValue","parseInt","receiver","valueOfSucceeds","maxSafeInteger","pow","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","item","idx","isEnumerableOn","propertyIsEnumerable","sliceArgs","initial","desiredArgCount","assignTo","assignToSource","assignReducer","symbols","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","FAKENULL","gpo","spo","objectKeysAcceptsPrimitives","originalObjectKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","val","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","seal","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","freeze","objectFreezeAcceptsPrimitives","originalObjectFreeze","isFrozen","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","flags","regExpFlagsGetter","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","OrigRegExp","RegExpShim","pattern","calledWithNew","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","prop","inverseEpsilon","roundTiesToEven","n","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","numberCLZ","clz","MathShims","acosh","NaN","E","asinh","atanh","cbrt","negate","exp","clz32","LOG2E","cosh","expm1","t","sum","hypot","y","largest","log2","log10","LOG10E","log1p","sign","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","v","MAX_VALUE","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","ceil","origImul","PromiseShim","setTimeout","IsPromise","promise","_promise","PromiseCapability","capability","resolver","resolve","reject","makeZeroTimeout","postMessage","timeouts","messageName","setZeroTimeout","fn","handleMessage","event","data","stopPropagation","addEventListener","makePromiseAsap","P","Promise","task","then","enqueue","setImmediate","process","nextTick","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_PENDING","PROMISE_FULFILLED","PROMISE_REJECTED","promiseReactionJob","reaction","argument","promiseCapability","capabilities","handler","handlerResult","handlerException","triggerPromiseReactions","reactions","fulfillPromise","fulfillReactions","rejectReactions","state","rejectPromise","reason","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","thenable","resolvingFunctions","getPromiseSpecies","Promise$prototype","_promiseAllResolver","index","remaining","alreadyCalled","performPromiseAll","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseRace","all","iterable","ee","race","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","fulfillReaction","rejectReaction","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","type","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","add","collectionShims","Map","empty","MapEntry","prev","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","head","_head","MapShim","Map$prototype","_storage","_size","fkey","has","delete","clear","callback","context","isSet","_es6set","requireSetSlot","SetShim","Set$prototype","[[SetData]]","ensureMap","m","charAt","size","hasFKey","entireSet","mapAcceptsArguments","OrigMapNoArgs","testMap","mapUsesSameValueZero","mapSupportsChaining","origMapSet","origMapGet","origMapHas","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","SetDelete","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","OrigMap","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","desc","enumerate","ownKeys","callAndCatchException","ConvertExceptionToBoolean","internalGet","parent","internalSet","existingDesc","propertyKey","attributes","objectDotGetPrototypeOf","willCreateCircularPrototype","defineOrOverrideReflectProperty","shim","acceptsPrimitives","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","match","toLowerCase","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replacer","replaceFn","wrappedReplacer","parsedValue"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["es6-shim.js"],"names":["root","factory","define","amd","exports","module","returnExports","this","_apply","Function","call","bind","apply","_call","isArray","Array","not","notThunker","func","notThunk","arguments","throwsError","e","valueOrFalseIfThrows","isCallableWithoutNew","arePropertyDescriptorsSupported","Object","defineProperty","get","supportsDescriptors","functionsHaveNames","foo","name","_forEach","prototype","forEach","_reduce","reduce","_filter","filter","_some","some","object","value","force","configurable","enumerable","writable","defineProperties","map","keys","method","create","properties","Prototype","key","Value","defineByDescriptor","supportsSubclassing","C","f","setPrototypeOf","Sub","Subclass","arg","o","constructor","getGlobal","self","window","global","Error","globals","globalIsFinite","isFinite","_indexOf","String","indexOf","_toString","toString","_concat","concat","_strSlice","slice","_push","push","_pushApply","_shift","shift","_max","Math","max","_min","min","_floor","floor","_abs","abs","_log","log","_sqrt","sqrt","_hasOwnProperty","hasOwnProperty","ArrayIterator","noop","Symbol","symbolSpecies","species","numberIsNaN","Number","isNaN","numberIsFinite","isStandardArguments","isArguments","isLegacyArguments","length","callee","Type","primitive","x","string","regex","symbol","$iterator$","iterator","Set","Reflect","ES","Call","F","V","args","IsCallable","TypeError","RequireObjectCoercible","optMessage","TypeIsObject","ToObject","IsConstructor","ToInt32","ToNumber","ToUint32","ToInteger","number","ToLength","len","MAX_SAFE_INTEGER","SameValue","a","b","SameValueZero","IsIterable","GetIterator","itFn","GetMethod","it","p","IteratorComplete","iterResult","IteratorClose","completionIsThrow","returnMethod","innerResult","innerException","IteratorNext","result","next","IteratorStep","done","Construct","newTarget","isES6internal","target","construct","proto","obj","SpeciesConstructor","O","defaultConstructor","S","CreateHTML","tag","attribute","p1","escapedV","replace","p2","p3","getter","proxy","originalObject","targetObject","originalDescriptor","getOwnPropertyDescriptor","getKey","set","setKey","redefine","property","newValue","descriptor","preserveToString","source","wrapConstructor","original","replacement","keysToSkip","getOwnPropertyNames","defaultSpeciesGetter","addDefaultSpecies","overrideNative","addIterator","impl","implementation","createDataProperty","createDataPropertyOrThrow","emulateES6construct","defaultNewTarget","defaultProto","slots","fromCodePoint","originalFromCodePoint","codePoints","StringShims","i","RangeError","fromCharCode","join","raw","callSite","cooked","rawString","literalsegments","stringElements","nextIndex","nextKey","nextSeg","nextSub",0,1,"stringRepeat","repeat","s","times","half","stringMaxLength","Infinity","StringPrototypeShims","thisStr","numTimes","startsWith","searchString","searchStr","startArg","start","endsWith","thisLen","posArg","pos","end","includes","position","codePointAt","first","charCodeAt","isEnd","second","startsWithRejectsRegex","startsWithHandlesInfinity","ws","trimRegexp","RegExp","trimShim","trim","nonWS","nonWSregex","isBadHexRegex","hasStringTrimBug","StringIterator","_s","_i","substr","ArrayShims","from","items","mapFn","mapping","T","usingIterator","nextValue","undefined","arrayLike","of","A","k","iteratorResult","array","kind","retval","getAllKeys","ObjectIterator","arrayOfSupportsSubclassing","Foo","fooArr","ArrayPrototypeShims","copyWithin","relativeTarget","relativeStart","to","fin","count","direction","fill","relativeEnd","find","predicate","list","thisArg","findIndex","values","entries","unscopables","originalArrayPrototypeValues","getPrototypeOf","arrayFromSwallowsNegativeLengths","arrayFromHandlesIterables","arr","arrayFromHandlesUndefinedMapFunction","origArrayFrom","toLengthsCorrectly","reversed","originalForEach","callbackFn","originalMap","originalFilter","originalSome","every","originalEvery","originalReduce","reduceRight","originalReduceRight","lacksOctalSupport","lacksBinarySupport","trimsNonWhitespace","c","OrigNumber","binaryRegex","octalRegex","isBinary","test","isOctal","toPrimitive","valueOf","hasNonWS","isBadHex","NumberShim","primValue","parseInt","NaN","receiver","valueOfSucceeds","maxSafeInteger","pow","MIN_SAFE_INTEGER","EPSILON","parseFloat","isInteger","isSafeInteger","item","idx","isEnumerableOn","propertyIsEnumerable","sliceArgs","initial","desiredArgCount","assignTo","assignToSource","assignReducer","symbols","getOwnPropertySymbols","ObjectShims","assign","is","assignHasPendingExceptions","preventExtensions","thrower","ES5ObjectShims","magic","checkArgs","polyfill","FAKENULL","gpo","spo","objectKeysAcceptsPrimitives","originalObjectKeys","objectGOPNAcceptsPrimitives","cachedWindowNames","originalObjectGetOwnPropertyNames","val","objectGOPDAcceptsPrimitives","originalObjectGetOwnPropertyDescriptor","seal","objectSealAcceptsPrimitives","originalObjectSeal","isSealed","objectIsSealedAcceptsPrimitives","originalObjectIsSealed","freeze","objectFreezeAcceptsPrimitives","originalObjectFreeze","isFrozen","objectIsFrozenAcceptsPrimitives","originalObjectIsFrozen","objectPreventExtensionsAcceptsPrimitives","originalObjectPreventExtensions","isExtensible","objectIsExtensibleAcceptsPrimitives","originalObjectIsExtensible","objectGetProtoAcceptsPrimitives","originalGetProto","hasFlags","desc","regExpFlagsGetter","flags","ignoreCase","multiline","unicode","sticky","regExpSupportsFlagsWithRegex","OrigRegExp","RegExpShim","pattern","calledWithNew","$input","regexGlobals","input","lastMatch","lastParen","leftContext","rightContext","prop","inverseEpsilon","roundTiesToEven","n","BINARY_32_EPSILON","BINARY_32_MAX_VALUE","BINARY_32_MIN_VALUE","numberCLZ","clz","MathShims","acosh","E","asinh","atanh","cbrt","negate","exp","clz32","LOG2E","cosh","expm1","t","sum","hypot","y","largest","log2","log10","LOG10E","log1p","sign","sinh","tanh","trunc","imul","ah","al","bh","bl","fround","v","MAX_VALUE","expm1OfTen","origMathRound","round","roundHandlesBoundaryConditions","smallestPositiveNumberWhereRoundBreaks","largestPositiveNumberWhereRoundBreaks","roundDoesNotIncreaseIntegers","num","ceil","origImul","PromiseShim","setTimeout","IsPromise","promise","_promise","PromiseCapability","capability","resolver","resolve","reject","makeZeroTimeout","postMessage","timeouts","messageName","setZeroTimeout","fn","handleMessage","event","data","stopPropagation","addEventListener","makePromiseAsap","P","Promise","task","then","enqueue","setImmediate","process","nextTick","PROMISE_IDENTITY","PROMISE_THROWER","PROMISE_PENDING","PROMISE_FULFILLED","PROMISE_REJECTED","promiseReactionJob","reaction","argument","promiseCapability","capabilities","handler","handlerResult","handlerException","triggerPromiseReactions","reactions","fulfillPromise","fulfillReactions","rejectReactions","state","rejectPromise","reason","createResolvingFunctions","alreadyResolved","resolution","promiseResolveThenableJob","thenable","resolvingFunctions","getPromiseSpecies","Promise$prototype","_promiseAllResolver","index","remaining","alreadyCalled","performPromiseAll","iteratorRecord","resultCapability","nextPromise","resolveElement","performPromiseRace","all","iterable","exception","ee","race","rejectFunc","resolveFunc","catch","onRejected","onFulfilled","fulfillReaction","rejectReaction","accept","defer","chain","promiseSupportsSubclassing","promiseIgnoresNonFunctionThenCallbacks","promiseRequiresObjectContext","promiseResolveBroken","testOrder","preservesInsertionOrder","preservesNumericInsertionOrder","fastkey","type","emptyObject","addIterableToMap","MapConstructor","entry","iter","adder","nextItem","addIterableToSet","SetConstructor","add","collectionShims","Map","empty","MapEntry","prev","isRemoved","isMap","_es6map","requireMapSlot","MapIterator","head","_head","Map$prototype","MapShim","_storage","_size","fkey","has","delete","clear","callback","context","isSet","_es6set","requireSetSlot","Set$prototype","SetShim","[[SetData]]","ensureMap","m","charAt","size","hasFKey","entireSet","mapAcceptsArguments","OrigMapNoArgs","testMap","mapUsesSameValueZero","mapSupportsChaining","origMapSet","origMapGet","origMapHas","testSet","setUsesSameValueZero","setSupportsChaining","origSetAdd","origSetHas","origSetDel","SetDelete","mapSupportsSubclassing","M","mapFailsToSupportSubclassing","mapRequiresNew","OrigMap","setSupportsSubclassing","setFailsToSupportSubclassing","setRequiresNew","OrigSet","mapIterationThrowsStopIterator","anonymousSetHas","throwUnlessTargetIsObject","ReflectShims","deleteProperty","enumerate","ownKeys","callAndCatchException","ConvertExceptionToBoolean","internalGet","parent","internalSet","existingDesc","propertyKey","attributes","objectDotGetPrototypeOf","willCreateCircularPrototype","lastProto","defineOrOverrideReflectProperty","shim","acceptsPrimitives","originalReflectGetProto","basic","extensible","Date","dateToString","shimmedDateToString","stringHTMLshims","anchor","big","blink","bold","fixed","fontcolor","color","fontsize","italics","link","url","small","strike","sub","sup","shouldOverwrite","output","quotesCount","match","toLowerCase","JSONstringifiesSymbols","stringify","JSON","JSONstringifyAcceptsObjectSymbol","origStringify","replacer","replaceFn","wrappedReplacer","parsedValue"],"mappings":";;;;;;;;;CAYC,SAAUA,EAAMC,GAEf,SAAWC,UAAW,YAAcA,OAAOC,IAAK,CAE9CD,OAAOD,OACF,UAAWG,WAAY,SAAU,CAItCC,OAAOD,QAAUH,QACZ,CAELD,EAAKM,cAAgBL,OAEvBM,KAAM,WACN,YAEA,IAAIC,GAASC,SAASC,KAAKC,KAAKF,SAASG,MACzC,IAAIC,GAAQJ,SAASC,KAAKC,KAAKF,SAASC,KACxC,IAAII,GAAUC,MAAMD,OAEpB,IAAIE,GAAM,QAASC,YAAWC,GAC5B,MAAO,SAASC,YAAa,OAAQX,EAAOU,EAAMX,KAAMa,YAE1D,IAAIC,GAAc,SAAUH,GAC1B,IACEA,GACA,OAAO,OACP,MAAOI,GACP,MAAO,OAGX,IAAIC,GAAuB,QAASA,sBAAqBL,GACvD,IACE,MAAOA,KACP,MAAOI,GACP,MAAO,QAIX,IAAIE,GAAuBR,EAAIK,EAC/B,IAAII,GAAkC,WAEpC,OAAQJ,EAAY,WAAcK,OAAOC,kBAAmB,KAAOC,IAAK,iBAE1E,IAAIC,KAAwBH,OAAOC,gBAAkBF,GACrD,IAAIK,GAAqB,QAAUC,SAAUC,OAAS,KAEtD,IAAIC,GAAWxB,SAASC,KAAKC,KAAKI,MAAMmB,UAAUC,QAClD,IAAIC,GAAU3B,SAASC,KAAKC,KAAKI,MAAMmB,UAAUG,OACjD,IAAIC,GAAU7B,SAASC,KAAKC,KAAKI,MAAMmB,UAAUK,OACjD,IAAIC,GAAQ/B,SAASC,KAAKC,KAAKI,MAAMmB,UAAUO,KAE/C,IAAId,GAAiB,SAAUe,EAAQV,EAAMW,EAAOC,GAClD,IAAKA,GAASZ,IAAQU,GAAQ,CAAE,OAChC,GAAIb,EAAqB,CACvBH,OAAOC,eAAee,EAAQV,GAC5Ba,aAAc,KACdC,WAAY,MACZC,SAAU,KACVJ,MAAOA,QAEJ,CACLD,EAAOV,GAAQW,GAMnB,IAAIK,GAAmB,SAAUN,EAAQO,GACvChB,EAASP,OAAOwB,KAAKD,GAAM,SAAUjB,GACnC,GAAImB,GAASF,EAAIjB,EACjBL,GAAee,EAAQV,EAAMmB,EAAQ,SAMzC,IAAIC,GAAS1B,OAAO0B,QAAU,SAAUlB,EAAWmB,GACjD,GAAIC,GAAY,QAASA,cACzBA,GAAUpB,UAAYA,CACtB,IAAIQ,GAAS,GAAIY,EACjB,UAAWD,KAAe,YAAa,CACrC3B,OAAOwB,KAAKG,GAAYlB,QAAQ,SAAUoB,GACxCC,EAAMC,mBAAmBf,EAAQa,EAAKF,EAAWE,MAGrD,MAAOb,GAGT,IAAIgB,GAAsB,SAAUC,EAAGC,GACrC,IAAKlC,OAAOmC,eAAgB,CAAE,MAAO,OACrC,MAAOtC,GAAqB,WAC1B,GAAIuC,GAAM,QAASC,UAASC,GAC1B,GAAIC,GAAI,GAAIN,GAAEK,EACdtC,QAAOmC,eAAeI,EAAGF,SAAS7B,UAClC,OAAO+B,GAETvC,QAAOmC,eAAeC,EAAKH,EAC3BG,GAAI5B,UAAYkB,EAAOO,EAAEzB,WACvBgC,aAAevB,MAAOmB,IAExB,OAAOF,GAAEE,KAIb,IAAIK,GAAY,WAKd,SAAWC,QAAS,YAAa,CAAE,MAAOA,MAC1C,SAAWC,UAAW,YAAa,CAAE,MAAOA,QAC5C,SAAWC,UAAW,YAAa,CAAE,MAAOA,QAC5C,KAAM,IAAIC,OAAM,kCAGlB,IAAIC,GAAUL,GACd,IAAIM,GAAiBD,EAAQE,QAC7B,IAAIC,GAAWlE,SAASC,KAAKC,KAAKiE,OAAO1C,UAAU2C,QACnD,IAAIC,GAAYrE,SAASC,KAAKC,KAAKe,OAAOQ,UAAU6C,SACpD,IAAIC,GAAUvE,SAASC,KAAKC,KAAKI,MAAMmB,UAAU+C,OACjD,IAAIC,GAAYzE,SAASC,KAAKC,KAAKiE,OAAO1C,UAAUiD,MACpD,IAAIC,GAAQ3E,SAASC,KAAKC,KAAKI,MAAMmB,UAAUmD,KAC/C,IAAIC,GAAa7E,SAASG,MAAMD,KAAKI,MAAMmB,UAAUmD,KACrD,IAAIE,GAAS9E,SAASC,KAAKC,KAAKI,MAAMmB,UAAUsD,MAChD,IAAIC,GAAOC,KAAKC,GAChB,IAAIC,GAAOF,KAAKG,GAChB,IAAIC,GAASJ,KAAKK,KAClB,IAAIC,GAAON,KAAKO,GAChB,IAAIC,GAAOR,KAAKS,GAChB,IAAIC,GAAQV,KAAKW,IACjB,IAAIC,GAAkB7F,SAASC,KAAKC,KAAKe,OAAOQ,UAAUqE,eAC1D,IAAIC,EACJ,IAAIC,GAAO,YAEX,IAAIC,GAASlC,EAAQkC,UACrB,IAAIC,GAAgBD,EAAOE,SAAW,WAEtC,IAAIC,GAAcC,OAAOC,OAAS,QAASA,OAAMpE,GAM/C,MAAOA,KAAUA,EAEnB,IAAIqE,GAAiBF,OAAOpC,UAAY,QAASA,UAAS/B,GACxD,aAAcA,KAAU,UAAY8B,EAAe9B,GAKrD,IAAIsE,GAAsB,QAASC,aAAYvE,GAC7C,MAAOmC,GAAUnC,KAAW,qBAE9B,IAAIwE,GAAoB,QAASD,aAAYvE,GAC3C,MAAOA,KAAU,YACRA,KAAU,gBACVA,GAAMyE,SAAW,UACxBzE,EAAMyE,QAAU,GAChBtC,EAAUnC,KAAW,kBACrBmC,EAAUnC,EAAM0E,UAAY,oBAEhC,IAAIH,GAAcD,EAAoB7F,WAAa6F,EAAsBE,CAEzE,IAAIG,IACFC,UAAW,SAAUC,GAAK,MAAOA,KAAM,YAAgBA,KAAM,kBAAqBA,KAAM,UACxF9E,OAAQ,SAAU8E,GAAK,MAAOA,KAAM,YAAeA,KAAM,UACzDC,OAAQ,SAAUD,GAAK,MAAO1C,GAAU0C,KAAO,mBAC/CE,MAAO,SAAUF,GAAK,MAAO1C,GAAU0C,KAAO,mBAC9CG,OAAQ,SAAUH,GAChB,aAAchD,GAAQkC,SAAW,kBAAqBc,KAAM,UAShE,IAAII,GAAaN,EAAKK,OAAOjB,EAAOmB,UAAYnB,EAAOmB,SAAW,qBAIlE,IAAIrD,EAAQsD,YAAc,GAAItD,GAAQsD,KAAM,gBAAkB,WAAY,CACxEF,EAAa,aAIf,IAAKpD,EAAQuD,QAAS,CACpBpG,EAAe6C,EAAS,cAE1B,GAAIuD,GAAUvD,EAAQuD,OAEtB,IAAIC,IAEFC,KAAM,QAASA,MAAKC,EAAGC,GACrB,GAAIC,GAAOhH,UAAUgG,OAAS,EAAIhG,UAAU,KAC5C,KAAK4G,EAAGK,WAAWH,GAAI,CACrB,KAAM,IAAII,WAAUJ,EAAI,sBAE1B,MAAO1H,GAAO0H,EAAGC,EAAGC,IAGtBG,uBAAwB,SAAUf,EAAGgB,GAEnC,GAAIhB,GAAK,KAAM,CACb,KAAM,IAAIc,WAAUE,GAAc,yBAA2BhB,KAIjEiB,aAAc,SAAUjB,GAItB,MAAOA,IAAK,MAAQ9F,OAAO8F,KAAOA,GAGpCkB,SAAU,SAAUzE,EAAGuE,GACrBR,EAAGO,uBAAuBtE,EAAGuE,EAC7B,OAAO9G,QAAOuC,IAGhBoE,WAAY,SAAUb,GAEpB,aAAcA,KAAM,YAAc1C,EAAU0C,KAAO,qBAGrDmB,cAAe,SAAUnB,GAEvB,MAAOQ,GAAGK,WAAWb,IAGvBoB,QAAS,SAAUpB,GACjB,MAAOQ,GAAGa,SAASrB,IAAM,GAG3BsB,SAAU,SAAUtB,GAClB,MAAOQ,GAAGa,SAASrB,KAAO,GAG5BqB,SAAU,SAAUlG,GAClB,GAAImC,EAAUnC,KAAW,kBAAmB,CAC1C,KAAM,IAAI2F,WAAU,6CAEtB,OAAQ3F,GAGVoG,UAAW,SAAUpG,GACnB,GAAIqG,GAAShB,EAAGa,SAASlG,EACzB,IAAIkE,EAAYmC,GAAS,CAAE,MAAO,GAClC,GAAIA,IAAW,IAAMhC,EAAegC,GAAS,CAAE,MAAOA,GACtD,OAAQA,EAAS,EAAI,GAAK,GAAKlD,EAAOE,EAAKgD,KAG7CC,SAAU,SAAUtG,GAClB,GAAIuG,GAAMlB,EAAGe,UAAUpG,EACvB,IAAIuG,GAAO,EAAG,CAAE,MAAO,GACvB,GAAIA,EAAMpC,OAAOqC,iBAAkB,CAAE,MAAOrC,QAAOqC,iBACnD,MAAOD,IAGTE,UAAW,SAAUC,EAAGC,GACtB,GAAID,IAAMC,EAAG,CAEX,GAAID,IAAM,EAAG,CAAE,MAAO,GAAIA,IAAM,EAAIC,EACpC,MAAO,MAET,MAAOzC,GAAYwC,IAAMxC,EAAYyC,IAGvCC,cAAe,SAAUF,EAAGC,GAE1B,MAAQD,KAAMC,GAAOzC,EAAYwC,IAAMxC,EAAYyC,IAGrDE,WAAY,SAAUvF,GACpB,MAAO+D,GAAGS,aAAaxE,WAAcA,GAAE2D,KAAgB,aAAeV,EAAYjD,KAGpFwF,YAAa,SAAUxF,GACrB,GAAIiD,EAAYjD,GAAI,CAElB,MAAO,IAAIuC,GAAcvC,EAAG,SAE9B,GAAIyF,GAAO1B,EAAG2B,UAAU1F,EAAG2D,EAC3B,KAAKI,EAAGK,WAAWqB,GAAO,CAExB,KAAM,IAAIpB,WAAU,4BAEtB,GAAIsB,GAAK/I,EAAM6I,EAAMzF,EACrB,KAAK+D,EAAGS,aAAamB,GAAK,CACxB,KAAM,IAAItB,WAAU,gBAEtB,MAAOsB,IAGTD,UAAW,SAAU1F,EAAG4F,GACtB,GAAI3I,GAAO8G,EAAGU,SAASzE,GAAG4F,EAC1B,IAAI3I,QAAc,IAAKA,IAAS,KAAM,CACpC,WAAY,GAEd,IAAK8G,EAAGK,WAAWnH,GAAO,CACxB,KAAM,IAAIoH,WAAU,wBAA0BuB,GAEhD,MAAO3I,IAGT4I,iBAAkB,SAAUC,GAC1B,QAAUA,EAAe,MAG3BC,cAAe,SAAUnC,EAAUoC,GACjC,GAAIC,GAAelC,EAAG2B,UAAU9B,EAAU,SAC1C,IAAIqC,QAAsB,GAAG,CAC3B,OAEF,GAAIC,GAAaC,CACjB,KACED,EAActJ,EAAMqJ,EAAcrC,GAClC,MAAOvG,GACP8I,EAAiB9I,EAEnB,GAAI2I,EAAmB,CACrB,OAEF,GAAIG,EAAgB,CAClB,KAAMA,GAER,IAAKpC,EAAGS,aAAa0B,GAAc,CACjC,KAAM,IAAI7B,WAAU,qDAIxB+B,aAAc,SAAUT,GACtB,GAAIU,GAASlJ,UAAUgG,OAAS,EAAIwC,EAAGW,KAAKnJ,UAAU,IAAMwI,EAAGW,MAC/D,KAAKvC,EAAGS,aAAa6B,GAAS,CAC5B,KAAM,IAAIhC,WAAU,gBAEtB,MAAOgC,IAGTE,aAAc,SAAUZ,GACtB,GAAIU,GAAStC,EAAGqC,aAAaT,EAC7B,IAAIa,GAAOzC,EAAG8B,iBAAiBQ,EAC/B,OAAOG,GAAO,MAAQH,GAGxBI,UAAW,SAAU/G,EAAGyE,EAAMuC,EAAWC,GACvC,GAAIC,SAAgBF,KAAc,YAAchH,EAAIgH,CAEpD,KAAKC,EAAe,CAElB,MAAO7C,GAAQ+C,UAAUnH,EAAGyE,EAAMyC,GAOpC,GAAIE,GAAQF,EAAO3I,SACnB,KAAK8F,EAAGS,aAAasC,GAAQ,CAC3BA,EAAQrJ,OAAOQ,UAEjB,GAAI8I,GAAM5H,EAAO2H,EAEjB,IAAIT,GAAStC,EAAGC,KAAKtE,EAAGqH,EAAK5C,EAC7B,OAAOJ,GAAGS,aAAa6B,GAAUA,EAASU,GAG5CC,mBAAoB,SAAUC,EAAGC,GAC/B,GAAIxH,GAAIuH,EAAEhH,WACV,IAAIP,QAAW,GAAG,CAChB,MAAOwH,GAET,IAAKnD,EAAGS,aAAa9E,GAAI,CACvB,KAAM,IAAI2E,WAAU,mBAEtB,GAAI8C,GAAIzH,EAAEgD,EACV,IAAIyE,QAAW,IAAKA,IAAM,KAAM,CAC9B,MAAOD,GAET,IAAKnD,EAAGW,cAAcyC,GAAI,CACxB,KAAM,IAAI9C,WAAU,iBAEtB,MAAO8C,IAGTC,WAAY,SAAU5D,EAAQ6D,EAAKC,EAAW5I,GAC5C,GAAIyI,GAAIxG,OAAO6C,EACf,IAAI+D,GAAK,IAAMF,CACf,IAAIC,IAAc,GAAI,CACpB,GAAIpD,GAAIvD,OAAOjC,EACf,IAAI8I,GAAWtD,EAAEuD,QAAQ,KAAM,SAC/BF,IAAM,IAAMD,EAAY,KAAOE,EAAW,IAE5C,GAAIE,GAAKH,EAAK,GACd,IAAII,GAAKD,EAAKP,CACd,OAAOQ,GAAK,KAAON,EAAM,KAI7B,IAAI9H,IACFqI,OAAQ,SAAUnJ,EAAQV,EAAM6J,GAC9B,IAAKhK,EAAqB,CACxB,KAAM,IAAIyG,WAAU,oCAEtB5G,OAAOC,eAAee,EAAQV,GAC5Ba,aAAc,KACdC,WAAY,MACZlB,IAAKiK,KAGTC,MAAO,SAAUC,EAAgBxI,EAAKyI,GACpC,IAAKnK,EAAqB,CACxB,KAAM,IAAIyG,WAAU,oCAEtB,GAAI2D,GAAqBvK,OAAOwK,yBAAyBH,EAAgBxI,EACzE7B,QAAOC,eAAeqK,EAAczI,GAClCV,aAAcoJ,EAAmBpJ,aACjCC,WAAYmJ,EAAmBnJ,WAC/BlB,IAAK,QAASuK,UAAW,MAAOJ,GAAexI,IAC/C6I,IAAK,QAASC,QAAO1J,GAASoJ,EAAexI,GAAOZ,MAGxD2J,SAAU,SAAU5J,EAAQ6J,EAAUC,GACpC,GAAI3K,EAAqB,CACvB,GAAI4K,GAAa/K,OAAOwK,yBAAyBxJ,EAAQ6J,EACzDE,GAAW9J,MAAQ6J,CACnB9K,QAAOC,eAAee,EAAQ6J,EAAUE,OACnC,CACL/J,EAAO6J,GAAYC,IAGvB/I,mBAAoB,SAAUf,EAAQ6J,EAAUE,GAC9C,GAAI5K,EAAqB,CACvBH,OAAOC,eAAee,EAAQ6J,EAAUE,OACnC,IAAI,SAAWA,GAAY,CAChC/J,EAAO6J,GAAYE,EAAW9J,QAGlC+J,iBAAkB,SAAU7B,EAAQ8B,GAClC,GAAIA,GAAU3E,EAAGK,WAAWsE,EAAO5H,UAAW,CAC5CpD,EAAekJ,EAAQ,WAAY8B,EAAO5H,SAASpE,KAAKgM,GAAS,QAKvE,IAAIC,GAAkB,QAASA,iBAAgBC,EAAUC,EAAaC,GACpEvJ,EAAMkJ,iBAAiBI,EAAaD,EACpC,IAAInL,OAAOmC,eAAgB,CAEzBnC,OAAOmC,eAAegJ,EAAUC,GAElC,GAAIjL,EAAqB,CACvBI,EAASP,OAAOsL,oBAAoBH,GAAW,SAAUtJ,GACvD,GAAIA,IAAOkD,IAAQsG,EAAWxJ,GAAM,CAAE,OACtCC,EAAMsI,MAAMe,EAAUtJ,EAAKuJ,SAExB,CACL7K,EAASP,OAAOwB,KAAK2J,GAAW,SAAUtJ,GACxC,GAAIA,IAAOkD,IAAQsG,EAAWxJ,GAAM,CAAE,OACtCuJ,EAAYvJ,GAAOsJ,EAAStJ,KAGhCuJ,EAAY5K,UAAY2K,EAAS3K,SACjCsB,GAAM8I,SAASO,EAAS3K,UAAW,cAAe4K,GAGpD,IAAIG,GAAuB,WAAc,MAAO1M,MAChD,IAAI2M,GAAoB,SAAUvJ,GAChC,GAAI9B,IAAwByE,EAAgB3C,EAAGgD,GAAgB,CAC7DnD,EAAMqI,OAAOlI,EAAGgD,EAAesG,IAInC,IAAIE,GAAiB,QAASA,gBAAezK,EAAQ6J,EAAUO,GAC7D,GAAID,GAAWnK,EAAO6J,EACtB5K,GAAee,EAAQ6J,EAAUO,EAAa,KAC9CtJ,GAAMkJ,iBAAiBhK,EAAO6J,GAAWM,GAG3C,IAAIO,GAAc,SAAUlL,EAAWmL,GACrC,GAAIC,GAAiBD,GAAQ,QAASxF,YAAa,MAAOtH,MAC1DoB,GAAeO,EAAW0F,EAAY0F,EACtC,KAAKpL,EAAU0F,IAAeN,EAAKK,OAAOC,GAAa,CAErD1F,EAAU0F,GAAc0F,GAI5B,IAAIC,IAAqB,QAASA,oBAAmB7K,EAAQV,EAAMW,GACjE,GAAId,EAAqB,CACvBH,OAAOC,eAAee,EAAQV,GAC5Ba,aAAc,KACdC,WAAY,KACZC,SAAU,KACVJ,MAAOA,QAEJ,CACLD,EAAOV,GAAQW,GAGnB,IAAI6K,IAA4B,QAASA,2BAA0B9K,EAAQV,EAAMW,GAC/E4K,GAAmB7K,EAAQV,EAAMW,EACjC,KAAKqF,EAAGoB,UAAU1G,EAAOV,GAAOW,GAAQ,CACtC,KAAM,IAAI2F,WAAU,gCAIxB,IAAImF,IAAsB,SAAUxJ,EAAGyJ,EAAkBC,EAAcC,GAWrE,IAAK5F,EAAGS,aAAaxE,GAAI,CACvB,KAAM,IAAIqE,WAAU,+BAAiCoF,EAAiB1L,MAExE,GAAI+I,GAAQ2C,EAAiBxL,SAC7B,KAAK8F,EAAGS,aAAasC,GAAQ,CAC3BA,EAAQ4C,EAEV,GAAI3C,GAAM5H,EAAO2H,EACjB,KAAK,GAAI/I,KAAQ4L,GAAO,CACtB,GAAItH,EAAgBsH,EAAO5L,GAAO,CAChC,GAAIW,GAAQiL,EAAM5L,EAClBL,GAAeqJ,EAAKhJ,EAAMW,EAAO,OAGrC,MAAOqI,GAKT,IAAIpG,OAAOiJ,eAAiBjJ,OAAOiJ,cAAczG,SAAW,EAAG,CAC7D,GAAI0G,IAAwBlJ,OAAOiJ,aACnCV,GAAevI,OAAQ,gBAAiB,QAASiJ,eAAcE,GAAc,MAAOvN,GAAOsN,GAAuBvN,KAAMa,aAG1H,GAAI4M,KACFH,cAAe,QAASA,eAAcE,GACpC,GAAIzD,KACJ,IAAIC,EACJ,KAAK,GAAI0D,GAAI,EAAG7G,EAAShG,UAAUgG,OAAQ6G,EAAI7G,EAAQ6G,IAAK,CAC1D1D,EAAOzD,OAAO1F,UAAU6M,GACxB,KAAKjG,EAAGoB,UAAUmB,EAAMvC,EAAGe,UAAUwB,KAAUA,EAAO,GAAKA,EAAO,QAAU,CAC1E,KAAM,IAAI2D,YAAW,sBAAwB3D,GAG/C,GAAIA,EAAO,MAAS,CAClBnF,EAAMkF,EAAQ1F,OAAOuJ,aAAa5D,QAC7B,CACLA,GAAQ,KACRnF,GAAMkF,EAAQ1F,OAAOuJ,cAAc5D,GAAQ,IAAM,OACjDnF,GAAMkF,EAAQ1F,OAAOuJ,aAAc5D,EAAO,KAAS,SAGvD,MAAOD,GAAO8D,KAAK,KAGrBC,IAAK,QAASA,KAAIC,GAChB,GAAIC,GAASvG,EAAGU,SAAS4F,EAAU,eACnC,IAAIE,GAAYxG,EAAGU,SAAS6F,EAAOF,IAAK,gBACxC,IAAInF,GAAMsF,EAAUpH,MACpB,IAAIqH,GAAkBzG,EAAGiB,SAASC,EAClC,IAAIuF,GAAmB,EAAG,CACxB,MAAO,GAGT,GAAIC,KACJ,IAAIC,GAAY,CAChB,IAAIC,GAASrE,EAAMsE,EAASC,CAC5B,OAAOH,EAAYF,EAAiB,CAClCG,EAAUhK,OAAO+J,EACjBE,GAAUjK,OAAO4J,EAAUI,GAC3BxJ,GAAMsJ,EAAgBG,EACtB,IAAIF,EAAY,GAAKF,EAAiB,CACpC,MAEFlE,EAAOoE,EAAY,EAAIvN,UAAUgG,OAAShG,UAAUuN,EAAY,GAAK,EACrEG,GAAUlK,OAAO2F,EACjBnF,GAAMsJ,EAAgBI,EACtBH,IAAa,EAEf,MAAOD,GAAeN,KAAK,KAG/B,IAAIxJ,OAAOyJ,KAAOzJ,OAAOyJ,KAAMA,KAAOU,EAAG,IAAKC,EAAG,IAAK5H,OAAQ,OAAW,KAAM,CAE7E+F,EAAevI,OAAQ,MAAOoJ,GAAYK,KAE5CrL,EAAiB4B,OAAQoJ,GAIzB,IAAIiB,IAAe,QAASC,QAAOC,EAAGC,GACpC,GAAIA,EAAQ,EAAG,CAAE,MAAO,GACxB,GAAIA,EAAQ,EAAG,CAAE,MAAOF,QAAOC,EAAGC,EAAQ,GAAKD,EAC/C,GAAIE,GAAOH,OAAOC,EAAGC,EAAQ,EAC7B,OAAOC,GAAOA,EAEhB,IAAIC,IAAkBC,QAEtB,IAAIC,KACFN,OAAQ,QAASA,QAAOE,GACtBpH,EAAGO,uBAAuBhI,KAC1B,IAAIkP,GAAU7K,OAAOrE,KACrB,IAAImP,GAAW1H,EAAGe,UAAUqG,EAC5B,IAAIM,EAAW,GAAKA,GAAYJ,GAAiB,CAC/C,KAAM,IAAIpB,YAAW,gFAEvB,MAAOe,IAAaQ,EAASC,IAG/BC,WAAY,QAASA,YAAWC,GAC9B5H,EAAGO,uBAAuBhI,KAC1B,IAAIkP,GAAU7K,OAAOrE,KACrB,IAAI+G,EAAKI,MAAMkI,GAAe,CAC5B,KAAM,IAAItH,WAAU,gDAEtB,GAAIuH,GAAYjL,OAAOgL,EACvB,IAAIE,GAAW1O,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EAC1D,IAAI2O,GAAQtK,EAAKuC,EAAGe,UAAU+G,GAAW,EACzC,OAAO5K,GAAUuK,EAASM,EAAOA,EAAQF,EAAUzI,UAAYyI,GAGjEG,SAAU,QAASA,UAASJ,GAC1B5H,EAAGO,uBAAuBhI,KAC1B,IAAIkP,GAAU7K,OAAOrE,KACrB,IAAI+G,EAAKI,MAAMkI,GAAe,CAC5B,KAAM,IAAItH,WAAU,8CAEtB,GAAIuH,GAAYjL,OAAOgL,EACvB,IAAIK,GAAUR,EAAQrI,MACtB,IAAI8I,GAAS9O,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EACxD,IAAI+O,SAAaD,KAAW,YAAcD,EAAUjI,EAAGe,UAAUmH,EACjE,IAAIE,GAAMxK,EAAKH,EAAK0K,EAAK,GAAIF,EAC7B,OAAO/K,GAAUuK,EAASW,EAAMP,EAAUzI,OAAQgJ,KAASP,GAG7DQ,SAAU,QAASA,UAAST,GAC1B,GAAItI,EAAKI,MAAMkI,GAAe,CAC5B,KAAM,IAAItH,WAAU,uCAEtB,GAAIgI,EACJ,IAAIlP,UAAUgG,OAAS,EAAG,CACxBkJ,EAAWlP,UAAU,GAGvB,MAAOuD,GAASpE,KAAMqP,EAAcU,MAAe,GAGrDC,YAAa,QAASA,aAAYJ,GAChCnI,EAAGO,uBAAuBhI,KAC1B,IAAIkP,GAAU7K,OAAOrE,KACrB,IAAI+P,GAAWtI,EAAGe,UAAUoH,EAC5B,IAAI/I,GAASqI,EAAQrI,MACrB,IAAIkJ,GAAY,GAAKA,EAAWlJ,EAAQ,CACtC,GAAIoJ,GAAQf,EAAQgB,WAAWH,EAC/B,IAAII,GAASJ,EAAW,IAAMlJ,CAC9B,IAAIoJ,EAAQ,OAAUA,EAAQ,OAAUE,EAAO,CAAE,MAAOF,GACxD,GAAIG,GAASlB,EAAQgB,WAAWH,EAAW,EAC3C,IAAIK,EAAS,OAAUA,EAAS,MAAQ,CAAE,MAAOH,GACjD,OAASA,EAAQ,OAAU,MAASG,EAAS,OAAU,QAI7D,IAAI/L,OAAO1C,UAAUmO,UAAY,IAAIA,SAAS,IAAKd,YAAc,MAAO,CACtEpC,EAAevI,OAAO1C,UAAW,WAAYsN,GAAqBa,UAGpE,GAAIzL,OAAO1C,UAAUyN,YAAc/K,OAAO1C,UAAU8N,SAAU,CAC5D,GAAIY,IAAyBvP,EAAY,WAEvC,MAAMsO,WAAW,MAEnB,IAAIkB,IAA4B,MAAMlB,WAAW,IAAKJ,YAAc,KACpE,KAAKqB,KAA2BC,GAA2B,CAEzD1D,EAAevI,OAAO1C,UAAW,aAAcsN,GAAqBG,WACpExC,GAAevI,OAAO1C,UAAW,WAAYsN,GAAqBQ,WAItEhN,EAAiB4B,OAAO1C,UAAWsN,GAInC,IAAIsB,KACF,oDACA,qEACA,gBACA1C,KAAK,GACP,IAAI2C,IAAa,GAAIC,QAAO,MAAQF,GAAK,SAAWA,GAAK,OAAQ,IACjE,IAAIG,IAAW,QAASC,QACtB,SAAW3Q,QAAS,aAAeA,OAAS,KAAM,CAChD,KAAM,IAAI+H,WAAU,iBAAmB/H,KAAO,cAEhD,MAAOqE,QAAOrE,MAAMmL,QAAQqF,GAAY,IAE1C,IAAII,KAAS,OAAU,SAAU,UAAU/C,KAAK,GAChD,IAAIgD,IAAa,GAAIJ,QAAO,IAAMG,GAAQ,IAAK,IAC/C,IAAIE,IAAgB,qBACpB,IAAIC,IAAmBH,GAAMD,OAAO9J,SAAW+J,GAAM/J,MACrDzF,GAAeiD,OAAO1C,UAAW,OAAQ+O,GAAUK,GAGnD,IAAIC,IAAiB,SAAUpC,GAC7BnH,EAAGO,uBAAuB4G,EAC1B5O,MAAKiR,GAAK5M,OAAOuK,EACjB5O,MAAKkR,GAAK,EAEZF,IAAerP,UAAUqI,KAAO,WAC9B,GAAI4E,GAAI5O,KAAKiR,GAAIvD,EAAI1N,KAAKkR,EAC1B,UAAWtC,KAAM,aAAelB,GAAKkB,EAAE/H,OAAQ,CAC7C7G,KAAKiR,OAAU,EACf,QAAS7O,UAAY,GAAG8H,KAAM,MAEhC,GAAI+F,GAAQrB,EAAEsB,WAAWxC,GAAI0C,EAAQzH,CACrC,IAAIsH,EAAQ,OAAUA,EAAQ,OAAWvC,EAAI,IAAOkB,EAAE/H,OAAQ,CAC5D8B,EAAM,MACD,CACLyH,EAASxB,EAAEsB,WAAWxC,EAAI,EAC1B/E,GAAOyH,EAAS,OAAUA,EAAS,MAAU,EAAI,EAEnDpQ,KAAKkR,GAAKxD,EAAI/E,CACd,QAASvG,MAAOwM,EAAEuC,OAAOzD,EAAG/E,GAAMuB,KAAM,OAE1C2C,GAAYmE,GAAerP,UAC3BkL,GAAYxI,OAAO1C,UAAW,WAC5B,MAAO,IAAIqP,IAAehR,OAG5B,IAAIoR,KACFC,KAAM,QAASA,MAAKC,GAClB,GAAIlO,GAAIpD,IACR,IAAIuR,GAAQ1Q,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EACvD,IAAI2Q,GAASC,CACb,IAAIF,QAAe,GAAG,CACpBC,EAAU,UACL,CACL,IAAK/J,EAAGK,WAAWyJ,GAAQ,CACzB,KAAM,IAAIxJ,WAAU,qEAEtB0J,EAAI5Q,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EAC/C2Q,GAAU,KAKZ,GAAIE,UAAwB/K,EAAY2K,IAAU7J,EAAG2B,UAAUkI,EAAOjK,MAAiB,WAEvF,IAAIR,GAAQkD,EAAQ2D,CACpB,IAAIgE,EAAe,CACjB3H,EAAStC,EAAGW,cAAchF,GAAKjC,OAAO,GAAIiC,MAC1C,IAAIkE,GAAWG,EAAGyB,YAAYoI,EAC9B,IAAItH,GAAM2H,CAEVjE,GAAI,CACJ,OAAO,KAAM,CACX1D,EAAOvC,EAAGwC,aAAa3C,EACvB,IAAI0C,IAAS,MAAO,CAClB,MAEF2H,EAAY3H,EAAK5H,KACjB,KACE,GAAIoP,EAAS,CACXG,EAAYF,IAAMG,UAAYL,EAAMI,EAAWjE,GAAKpN,EAAMiR,EAAOE,EAAGE,EAAWjE,GAEjF3D,EAAO2D,GAAKiE,EACZ,MAAO5Q,GACP0G,EAAGgC,cAAcnC,EAAU,KAC3B,MAAMvG,GAER2M,GAAK,EAEP7G,EAAS6G,MACJ,CACL,GAAImE,GAAYpK,EAAGU,SAASmJ,EAC5BzK,GAASY,EAAGiB,SAASmJ,EAAUhL,OAC/BkD,GAAStC,EAAGW,cAAchF,GAAKjC,OAAO,GAAIiC,GAAEyD,IAAW,GAAIrG,OAAMqG,EACjE,IAAIzE,EACJ,KAAKsL,EAAI,EAAGA,EAAI7G,IAAU6G,EAAG,CAC3BtL,EAAQyP,EAAUnE,EAClB,IAAI8D,EAAS,CACXpP,EAAQqP,IAAMG,UAAYtR,EAAMiR,EAAOE,EAAGrP,EAAOsL,GAAK6D,EAAMnP,EAAOsL,GAErE3D,EAAO2D,GAAKtL,GAIhB2H,EAAOlD,OAASA,CAChB,OAAOkD,IAGT+H,GAAI,QAASA,MACX,GAAInJ,GAAM9H,UAAUgG,MACpB,IAAIzD,GAAIpD,IACR,IAAI+R,GAAIxR,EAAQ6C,KAAOqE,EAAGK,WAAW1E,GAAK,GAAI5C,OAAMmI,GAAOlB,EAAG0C,UAAU/G,GAAIuF,GAC5E,KAAK,GAAIqJ,GAAI,EAAGA,EAAIrJ,IAAOqJ,EAAG,CAC5B/E,GAA0B8E,EAAGC,EAAGnR,UAAUmR,IAE5CD,EAAElL,OAAS8B,CACX,OAAOoJ,IAGXtP,GAAiBjC,MAAO4Q,GACxBzE,GAAkBnM,MAKlB,IAAIyR,IAAiB,SAAUhL,GAC7B,OAAS7E,MAAO6E,EAAGiD,KAAMrJ,UAAUgG,SAAW,GAKhDZ,GAAgB,SAAUiM,EAAOC,GAC7BnS,KAAK0N,EAAI,CACT1N,MAAKkS,MAAQA,CACblS,MAAKmS,KAAOA,EAGhB1P,GAAiBwD,EAActE,WAC7BqI,KAAM,WACJ,GAAI0D,GAAI1N,KAAK0N,EAAGwE,EAAQlS,KAAKkS,KAC7B,MAAMlS,eAAgBiG,IAAgB,CACpC,KAAM,IAAI8B,WAAU,wBAEtB,SAAWmK,KAAU,YAAa,CAChC,GAAIvJ,GAAMlB,EAAGiB,SAASwJ,EAAMrL,OAC5B,MAAO6G,EAAI/E,EAAK+E,IAAK,CACnB,GAAIyE,GAAOnS,KAAKmS,IAChB,IAAIC,EACJ,IAAID,IAAS,MAAO,CAClBC,EAAS1E,MACJ,IAAIyE,IAAS,QAAS,CAC3BC,EAASF,EAAMxE,OACV,IAAIyE,IAAS,QAAS,CAC3BC,GAAU1E,EAAGwE,EAAMxE,IAErB1N,KAAK0N,EAAIA,EAAI,CACb,QAAStL,MAAOgQ,EAAQlI,KAAM,QAGlClK,KAAKkS,UAAa,EAClB,QAAS9P,UAAY,GAAG8H,KAAM,QAGlC2C,GAAY5G,EAActE,UAE1B,IAAI0Q,IAAa,QAASA,YAAWlQ,GACnC,GAAIQ,KAEJ,KAAK,GAAIK,KAAOb,GAAQ,CACtB0C,EAAMlC,EAAMK,GAGd,MAAOL,GAGT,IAAI2P,IAAiB,SAAUnQ,EAAQgQ,GACrC1P,EAAiBzC,MACfmC,OAAQA,EACR+P,MAAOG,GAAWlQ,GAClBgQ,KAAMA,IAIV1P,GAAiB6P,GAAe3Q,WAC9BqI,KAAM,QAASA,QACb,GAAIhH,EACJ,IAAIkP,GAAQlS,KAAKkS,KAEjB,MAAMlS,eAAgBsS,KAAiB,CACrC,KAAM,IAAIvK,WAAU,yBAItB,MAAOmK,EAAMrL,OAAS,EAAG,CACvB7D,EAAMgC,EAAOkN,EAKb,MAAMlP,IAAOhD,MAAKmC,QAAS,CACzB,SAGF,GAAInC,KAAKmS,OAAS,MAAO,CACvB,MAAOF,IAAejP,OACjB,IAAIhD,KAAKmS,OAAS,QAAS,CAChC,MAAOF,IAAejS,KAAKmC,OAAOa,QAC7B,CACL,MAAOiP,KAAgBjP,EAAKhD,KAAKmC,OAAOa,MAI5C,MAAOiP,QAGXpF,GAAYyF,GAAe3Q,UAG3B,IAAI4Q,IAA6B/R,MAAMsR,KAAOV,GAAWU,IAAO,WAE9D,GAAIU,GAAM,QAASA,KAAI7J,GAAO3I,KAAK6G,OAAS8B,EAC5C6J,GAAI7Q,YACJ,IAAI8Q,GAASjS,MAAMsR,GAAGzR,MAAMmS,GAAM,EAAG,GACrC,OAAOC,aAAkBD,IAAOC,EAAO5L,SAAW,IAEpD,KAAK0L,GAA4B,CAC/B3F,EAAepM,MAAO,KAAM4Q,GAAWU,IAGzC,GAAIY,KACFC,WAAY,QAASA,YAAWrI,EAAQkF,GACtC,GAAIK,GAAMhP,UAAU,EACpB,IAAI6C,GAAI+D,EAAGU,SAASnI,KACpB,IAAI2I,GAAMlB,EAAGiB,SAAShF,EAAEmD,OACxB,IAAI+L,GAAiBnL,EAAGe,UAAU8B,EAClC,IAAIuI,GAAgBpL,EAAGe,UAAUgH,EACjC,IAAIsD,GAAKF,EAAiB,EAAI1N,EAAKyD,EAAMiK,EAAgB,GAAKvN,EAAKuN,EAAgBjK,EACnF,IAAI0I,GAAOwB,EAAgB,EAAI3N,EAAKyD,EAAMkK,EAAe,GAAKxN,EAAKwN,EAAelK,EAClFkH,SAAaA,KAAQ,YAAclH,EAAMlB,EAAGe,UAAUqH,EACtD,IAAIkD,GAAMlD,EAAM,EAAI3K,EAAKyD,EAAMkH,EAAK,GAAKxK,EAAKwK,EAAKlH,EACnD,IAAIqK,GAAQ3N,EAAK0N,EAAM1B,EAAM1I,EAAMmK,EACnC,IAAIG,GAAY,CAChB,IAAI5B,EAAOyB,GAAMA,EAAMzB,EAAO2B,EAAQ,CACpCC,GAAa,CACb5B,IAAQ2B,EAAQ,CAChBF,IAAME,EAAQ,EAEhB,MAAOA,EAAQ,EAAG,CAChB,GAAIjN,EAAgBrC,EAAG2N,GAAO,CAC5B3N,EAAEoP,GAAMpP,EAAE2N,OACL,OACE3N,GAAE2N,GAEXA,GAAQ4B,CACRH,IAAMG,CACND,IAAS,EAEX,MAAOtP,IAGTwP,KAAM,QAASA,MAAK9Q,GAClB,GAAIoN,GAAQ3O,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EACvD,IAAIgP,GAAMhP,UAAUgG,OAAS,EAAIhG,UAAU,OAAU,EACrD,IAAI8J,GAAIlD,EAAGU,SAASnI,KACpB,IAAI2I,GAAMlB,EAAGiB,SAASiC,EAAE9D,OACxB2I,GAAQ/H,EAAGe,gBAAiBgH,KAAU,YAAc,EAAIA,EACxDK,GAAMpI,EAAGe,gBAAiBqH,KAAQ,YAAclH,EAAMkH,EAEtD,IAAIgD,GAAgBrD,EAAQ,EAAItK,EAAKyD,EAAM6G,EAAO,GAAKnK,EAAKmK,EAAO7G,EACnE,IAAIwK,GAActD,EAAM,EAAIlH,EAAMkH,EAAMA,CAExC,KAAK,GAAInC,GAAImF,EAAenF,EAAI/E,GAAO+E,EAAIyF,IAAezF,EAAG,CAC3D/C,EAAE+C,GAAKtL,EAET,MAAOuI,IAGTyI,KAAM,QAASA,MAAKC,GAClB,GAAIC,GAAO7L,EAAGU,SAASnI,KACvB,IAAI6G,GAASY,EAAGiB,SAAS4K,EAAKzM,OAC9B,KAAKY,EAAGK,WAAWuL,GAAY,CAC7B,KAAM,IAAItL,WAAU,4CAEtB,GAAIwL,GAAU1S,UAAUgG,OAAS,EAAIhG,UAAU,GAAK,IACpD,KAAK,GAAI6M,GAAI,EAAGtL,EAAOsL,EAAI7G,EAAQ6G,IAAK,CACtCtL,EAAQkR,EAAK5F,EACb,IAAI6F,EAAS,CACX,GAAIjT,EAAM+S,EAAWE,EAASnR,EAAOsL,EAAG4F,GAAO,CAAE,MAAOlR,QACnD,IAAIiR,EAAUjR,EAAOsL,EAAG4F,GAAO,CACpC,MAAOlR,MAKboR,UAAW,QAASA,WAAUH,GAC5B,GAAIC,GAAO7L,EAAGU,SAASnI,KACvB,IAAI6G,GAASY,EAAGiB,SAAS4K,EAAKzM,OAC9B,KAAKY,EAAGK,WAAWuL,GAAY,CAC7B,KAAM,IAAItL,WAAU,iDAEtB,GAAIwL,GAAU1S,UAAUgG,OAAS,EAAIhG,UAAU,GAAK,IACpD,KAAK,GAAI6M,GAAI,EAAGA,EAAI7G,EAAQ6G,IAAK,CAC/B,GAAI6F,EAAS,CACX,GAAIjT,EAAM+S,EAAWE,EAASD,EAAK5F,GAAIA,EAAG4F,GAAO,CAAE,MAAO5F,QACrD,IAAI2F,EAAUC,EAAK5F,GAAIA,EAAG4F,GAAO,CACtC,MAAO5F,IAGX,OAAQ,GAGV/K,KAAM,QAASA,QACb,MAAO,IAAIsD,GAAcjG,KAAM,QAGjCyT,OAAQ,QAASA,UACf,MAAO,IAAIxN,GAAcjG,KAAM,UAGjC0T,QAAS,QAASA,WAChB,MAAO,IAAIzN,GAAcjG,KAAM,UAKnC,IAAIQ,MAAMmB,UAAUgB,OAAS8E,EAAGK,YAAY,GAAGnF,OAAOqH,MAAO,OACpDxJ,OAAMmB,UAAUgB,KAEzB,GAAInC,MAAMmB,UAAU+R,UAAYjM,EAAGK,YAAY,GAAG4L,UAAU1J,MAAO,OAC1DxJ,OAAMmB,UAAU+R,QAIzB,GAAIlT,MAAMmB,UAAUgB,MAAQnC,MAAMmB,UAAU+R,UAAYlT,MAAMmB,UAAU8R,QAAUjT,MAAMmB,UAAU0F,GAAa,CAC7G5E,EAAiBjC,MAAMmB,WACrB8R,OAAQjT,MAAMmB,UAAU0F,IAE1B,IAAIN,EAAKK,OAAOjB,EAAOwN,aAAc,CACnCnT,MAAMmB,UAAUwE,EAAOwN,aAAaF,OAAS,MAIjD,GAAIlS,GAAsBf,MAAMmB,UAAU8R,QAAUjT,MAAMmB,UAAU8R,OAAOhS,OAAS,SAAU,CAC5F,GAAImS,IAA+BpT,MAAMmB,UAAU8R,MACnD7G,GAAepM,MAAMmB,UAAW,SAAU,QAAS8R,UAAW,MAAOnT,GAAMsT,GAA8B5T,OACzGoB,GAAeZ,MAAMmB,UAAW0F,EAAY7G,MAAMmB,UAAU8R,OAAQ,MAEtEhR,EAAiBjC,MAAMmB,UAAW+Q,GAElC7F,GAAYrM,MAAMmB,UAAW,WAAc,MAAO3B,MAAKyT,UAGvD,IAAItS,OAAO0S,eAAgB,CACzBhH,EAAY1L,OAAO0S,kBAAkBJ,WAIvC,GAAIK,IAAoC,WAGtC,MAAO9S,GAAqB,WAAc,MAAOR,OAAM6Q,MAAOxK,QAAS,IAAKA,SAAW,MAEzF,IAAIkN,IAA6B,WAE/B,GAAIC,GAAMxT,MAAM6Q,MAAM,GAAGqC,UACzB,OAAOM,GAAInN,SAAW,GAAKtG,EAAQyT,EAAI,KAAOA,EAAI,GAAG,KAAO,GAAKA,EAAI,GAAG,KAAO,IAEjF,KAAKF,KAAqCC,GAA2B,CACnEnH,EAAepM,MAAO,OAAQ4Q,GAAWC,MAE3C,GAAI4C,IAAwC,WAG1C,MAAOjT,GAAqB,WAAc,MAAOR,OAAM6Q,MAAM,GAAIO,eAEnE,KAAKqC,GAAsC,CACzC,GAAIC,IAAgB1T,MAAM6Q,IAC1BzE,GAAepM,MAAO,OAAQ,QAAS6Q,MAAKC,GAC1C,GAAIzQ,UAAUgG,OAAS,SAAYhG,WAAU,KAAO,YAAa,CAC/D,MAAOZ,GAAOiU,GAAelU,KAAMa,eAC9B,CACL,MAAOP,GAAM4T,GAAelU,KAAMsR,MAKxC,GAAI6C,IAAqB,SAAUvR,EAAQwR,GACzC,GAAI3J,IAAQ5D,QAAS,EACrB4D,GAAI2J,IAAc,IAAM,GAAK,EAAK,GAAK,IACvC,OAAOpT,GAAqB,WAC1BV,EAAMsC,EAAQ6H,EAAK,WAGjB,KAAM,IAAIkD,YAAW,gCAI3B,KAAKwG,GAAmB3T,MAAMmB,UAAUC,SAAU,CAChD,GAAIyS,IAAkB7T,MAAMmB,UAAUC,OACtCgL,GAAepM,MAAMmB,UAAW,UAAW,QAASC,SAAQ0S,GAC1D,MAAOrU,GAAOoU,GAAiBrU,KAAK6G,QAAU,EAAI7G,QAAWa,YAC5D,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAUe,KAAM,CAC5C,GAAI6R,IAAc/T,MAAMmB,UAAUe,GAClCkK,GAAepM,MAAMmB,UAAW,MAAO,QAASe,KAAI4R,GAClD,MAAOrU,GAAOsU,GAAavU,KAAK6G,QAAU,EAAI7G,QAAWa,YACxD,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAUK,QAAS,CAC/C,GAAIwS,IAAiBhU,MAAMmB,UAAUK,MACrC4K,GAAepM,MAAMmB,UAAW,SAAU,QAASK,QAAOsS,GACxD,MAAOrU,GAAOuU,GAAgBxU,KAAK6G,QAAU,EAAI7G,QAAWa,YAC3D,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAUO,MAAO,CAC7C,GAAIuS,IAAejU,MAAMmB,UAAUO,IACnC0K,GAAepM,MAAMmB,UAAW,OAAQ,QAASO,MAAKoS,GACpD,MAAOrU,GAAOwU,GAAczU,KAAK6G,QAAU,EAAI7G,QAAWa,YACzD,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAU+S,OAAQ,CAC9C,GAAIC,IAAgBnU,MAAMmB,UAAU+S,KACpC9H,GAAepM,MAAMmB,UAAW,QAAS,QAAS+S,OAAMJ,GACtD,MAAOrU,GAAO0U,GAAe3U,KAAK6G,QAAU,EAAI7G,QAAWa,YAC1D,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAUG,QAAS,CAC/C,GAAI8S,IAAiBpU,MAAMmB,UAAUG,MACrC8K,GAAepM,MAAMmB,UAAW,SAAU,QAASG,QAAOwS,GACxD,MAAOrU,GAAO2U,GAAgB5U,KAAK6G,QAAU,EAAI7G,QAAWa,YAC3D,MAEL,IAAKsT,GAAmB3T,MAAMmB,UAAUkT,YAAa,MAAO,CAC1D,GAAIC,IAAsBtU,MAAMmB,UAAUkT,WAC1CjI,GAAepM,MAAMmB,UAAW,cAAe,QAASkT,aAAYP,GAClE,MAAOrU,GAAO6U,GAAqB9U,KAAK6G,QAAU,EAAI7G,QAAWa,YAChE,MAGL,GAAIkU,IAAoBxO,OAAO,UAAY,CAC3C,IAAIyO,IAAqBzO,OAAO,UAAY,CAC5C,IAAI0O,IAAqBhT,EAAM2O,GAAO,SAAUsE,GAC9C,MAAO3O,QAAO2O,EAAI,EAAIA,KAAO,GAE/B,IAAIH,IAAqBC,IAAsBC,GAAoB,CACjE,GAAIE,IAAa5O,MACjB,IAAI6O,IAAc,YAClB,IAAIC,IAAa,aAEjB,IAAIC,IAAWF,GAAYG,KAAKnV,KAAKgV,GACrC,IAAII,IAAUH,GAAWE,KAAKnV,KAAKiV,GACnC,IAAII,IAAc,SAAU9K,GAC1B,GAAIZ,EACJ,UAAWY,GAAE+K,UAAY,WAAY,CACnC3L,EAASY,EAAE+K,SACX,IAAI3O,EAAKC,UAAU+C,GAAS,CAC1B,MAAOA,IAGX,SAAWY,GAAEnG,WAAa,WAAY,CACpCuF,EAASY,EAAEnG,UACX,IAAIuC,EAAKC,UAAU+C,GAAS,CAC1B,MAAOA,IAGX,KAAM,IAAIhC,WAAU,oBAEtB,IAAI4N,IAAW9E,GAAW0E,KAAKnV,KAAKyQ,GACpC,IAAI+E,IAAW9E,GAAcyE,KAAKnV,KAAK0Q,GACvC,IAAI+E,IAAc,WAEhB,GAAIA,GAAa,QAAStP,QAAOnE,GAC/B,GAAI0T,GAAY/O,EAAKC,UAAU5E,GAASA,EAAQqT,GAAYrT,EAAO,SACnE,UAAW0T,KAAc,SAAU,CACjC,GAAIR,GAASQ,GAAY,CACvBA,EAAYC,SAASpR,EAAUmR,EAAW,GAAI,OACzC,IAAIN,GAAQM,GAAY,CAC7BA,EAAYC,SAASpR,EAAUmR,EAAW,GAAI,OACzC,IAAIH,GAASG,IAAcF,GAASE,GAAY,CACrDA,EAAYE,QACP,CACLF,EAAYxV,EAAMoQ,GAAUoF,IAGhC,GAAIG,GAAWjW,IACf,IAAIkW,GAAkBlV,EAAqB,WACzCmU,GAAWxT,UAAU+T,QAAQvV,KAAK8V,EAClC,OAAO,OAET,IAAIA,YAAoBJ,KAAeK,EAAiB,CACtD,MAAO,IAAIf,IAAWW,GAGxB,MAAOX,IAAWW,GAGpB,OAAOD,KAETxJ,GAAgB8I,GAAYU,MAG5BtP,QAASsP,EACT5S,GAAM8I,SAAS9H,EAAS,SAAU4R,IAKpC,GAAIM,IAAiBhR,KAAKiR,IAAI,EAAG,IAAM,CACvC3T,GAAiB8D,QACfqC,iBAAkBuN,GAClBE,kBAAmBF,GACnBG,QAAS,sBAETP,SAAU9R,EAAQ8R,SAClBQ,WAAYtS,EAAQsS,WAEpBpS,SAAUsC,EAEV+P,UAAW,QAASA,WAAUpU,GAC5B,MAAOqE,GAAerE,IAAUqF,EAAGe,UAAUpG,KAAWA,GAG1DqU,cAAe,QAASA,eAAcrU,GACpC,MAAOmE,QAAOiQ,UAAUpU,IAAUqD,EAAKrD,IAAUmE,OAAOqC,kBAG1DpC,MAAOF,GAGTlF,GAAemF,OAAQ,WAAYtC,EAAQ8R,SAAUxP,OAAOwP,WAAa9R,EAAQ8R,SAQjF,MAAM,CAAE,GAAG3C,KAAK,SAAUsD,EAAMC,GAAO,MAAOA,KAAQ,IAAO,CAC3D/J,EAAepM,MAAMmB,UAAW,OAAQ+Q,GAAoBU,MAE9D,IAAK,CAAE,GAAGI,UAAU,SAAUkD,EAAMC,GAAO,MAAOA,KAAQ,MAAU,EAAG,CACrE/J,EAAepM,MAAMmB,UAAW,YAAa+Q,GAAoBc,WAKnE,GAAIoD,IAAiB1W,SAASE,KAAKD,KAAKD,SAASE,KAAMe,OAAOQ,UAAUkV,qBACxE,IAAIC,IAAY,QAASA,aAGvB,GAAIC,GAAUxQ,OAAOvG,KACrB,IAAI2I,GAAM9H,UAAUgG,MACpB,IAAImQ,GAAkBrO,EAAMoO,CAC5B,IAAIlP,GAAO,GAAIrH,OAAMwW,EAAkB,EAAI,EAAIA,EAC/C,KAAK,GAAItJ,GAAIqJ,EAASrJ,EAAI/E,IAAO+E,EAAG,CAClC7F,EAAK6F,EAAIqJ,GAAWlW,UAAU6M,GAEhC,MAAO7F,GAET,IAAIoP,IAAW,QAASA,UAAS7K,GAC/B,MAAO,SAAS8K,gBAAe5M,EAAQtH,GACrCsH,EAAOtH,GAAOoJ,EAAOpJ,EACrB,OAAOsH,IAGX,IAAI6M,IAAgB,SAAU7M,EAAQ8B,GACpC,GAAIzJ,GAAOxB,OAAOwB,KAAKxB,OAAOiL,GAC9B,IAAIgL,EACJ,IAAI3P,EAAGK,WAAW3G,OAAOkW,uBAAwB,CAC/CD,EAAUrV,EAAQZ,OAAOkW,sBAAsBlW,OAAOiL,IAAUwK,GAAexK,IAEjF,MAAOvK,GAAQ4C,EAAQ9B,EAAMyU,OAAgBH,GAAS7K,GAAS9B,GAGjE,IAAIgN,KAEFC,OAAQ,SAAUjN,EAAQ8B,GACxB,GAAI0G,GAAKrL,EAAGU,SAASmC,EAAQ,6CAC7B,OAAOzI,GAAQ5B,EAAO6W,GAAW,EAAGjW,WAAYsW,GAAerE,IAIjE0E,GAAI,QAASA,IAAG1O,EAAGC,GACjB,MAAOtB,GAAGoB,UAAUC,EAAGC,IAG3B,IAAI0O,IAA6BtW,OAAOoW,QAAUpW,OAAOuW,mBAAsB,WAG7E,GAAIC,GAAUxW,OAAOuW,mBAAoBjJ,EAAG,GAC5C,KACEtN,OAAOoW,OAAOI,EAAS,MACvB,MAAO5W,GACP,MAAO4W,GAAQ,KAAO,OAG1B,IAAIF,GAA4B,CAC9B7K,EAAezL,OAAQ,SAAUmW,GAAYC,QAE/C9U,EAAiBtB,OAAQmW,GAEzB,IAAIhW,EAAqB,CACvB,GAAIsW,KAGFtU,eAAiB,SAAUnC,EAAQ0W,GACjC,GAAIhM,EAEJ,IAAIiM,GAAY,SAAUnN,EAAGH,GAC3B,IAAK/C,EAAGS,aAAayC,GAAI,CACvB,KAAM,IAAI5C,WAAU,wCAEtB,KAAMyC,IAAU,MAAQ/C,EAAGS,aAAasC,IAAS,CAC/C,KAAM,IAAIzC,WAAU,8CAAgDyC,IAIxE,IAAIlH,GAAiB,SAAUqH,EAAGH,GAChCsN,EAAUnN,EAAGH,EACblK,GAAMuL,EAAKlB,EAAGH,EACd,OAAOG,GAGT,KAEEkB,EAAM1K,EAAOwK,yBAAyBxK,EAAOQ,UAAWkW,GAAOhM,GAC/DvL,GAAMuL,KAAS,MACf,MAAO9K,GACP,GAAII,EAAOQ,eAAiBkW,GAAQ,CAElC,OAGFhM,EAAM,SAAUrB,GACdxK,KAAK6X,GAASrN,EAOhBlH,GAAeyU,SAAWzU,EACxBA,KAAmB,MACnBnC,EAAOQ,oBACIR,GASf,MAAOmC,IACPnC,OAAQ,aAGZsB,GAAiBtB,OAAQyW,IAK3B,GAAIzW,OAAOmC,gBAAkBnC,OAAO0S,gBAChC1S,OAAO0S,eAAe1S,OAAOmC,kBAAmB,SAAW,MAC3DnC,OAAO0S,eAAe1S,OAAO0B,OAAO,SAAW,KAAM,EACtD,WACC,GAAImV,GAAW7W,OAAO0B,OAAO,KAC7B,IAAIoV,GAAM9W,OAAO0S,eAAgBqE,EAAM/W,OAAOmC,cAC9CnC,QAAO0S,eAAiB,SAAUnQ,GAChC,GAAIqG,GAASkO,EAAIvU,EACjB,OAAOqG,KAAWiO,EAAW,KAAOjO,EAEtC5I,QAAOmC,eAAiB,SAAUI,EAAG4F,GACnC,GAAIkB,GAAQlB,IAAM,KAAO0O,EAAW1O,CACpC,OAAO4O,GAAIxU,EAAG8G,GAEhBrJ,QAAOmC,eAAeyU,SAAW,UAIrC,GAAII,KAA+BrX,EAAY,WAAcK,OAAOwB,KAAK,QACzE,KAAKwV,GAA6B,CAChC,GAAIC,IAAqBjX,OAAOwB,IAChCiK,GAAezL,OAAQ,OAAQ,QAASwB,MAAKP,GAC3C,MAAOgW,IAAmB3Q,EAAGU,SAAS/F,MAI1C,GAAIjB,OAAOsL,oBAAqB,CAC9B,GAAI4L,KAA+BvX,EAAY,WAAcK,OAAOsL,oBAAoB,QACxF,KAAK4L,GAA6B,CAChC,GAAIC,UAA2BxU,UAAW,SAAW3C,OAAOsL,oBAAoB3I,UAChF,IAAIyU,IAAoCpX,OAAOsL,mBAC/CG,GAAezL,OAAQ,sBAAuB,QAASsL,qBAAoBrK,GACzE,GAAIoW,GAAM/Q,EAAGU,SAAS/F,EACtB,IAAImC,EAAUiU,KAAS,kBAAmB,CACxC,IACE,MAAOD,IAAkCC,GACzC,MAAOzX,GAEP,MAAO0D,MAAY6T,KAGvB,MAAOC,IAAkCC,MAI/C,GAAIrX,OAAOwK,yBAA0B,CACnC,GAAI8M,KAA+B3X,EAAY,WAAcK,OAAOwK,yBAAyB,MAAO,QACpG,KAAK8M,GAA6B,CAChC,GAAIC,IAAyCvX,OAAOwK,wBACpDiB,GAAezL,OAAQ,2BAA4B,QAASwK,0BAAyBvJ,EAAO4J,GAC1F,MAAO0M,IAAuCjR,EAAGU,SAAS/F,GAAQ4J,MAIxE,GAAI7K,OAAOwX,KAAM,CACf,GAAIC,KAA+B9X,EAAY,WAAcK,OAAOwX,KAAK,QACzE,KAAKC,GAA6B,CAChC,GAAIC,IAAqB1X,OAAOwX,IAChC/L,GAAezL,OAAQ,OAAQ,QAASwX,MAAKvW,GAC3C,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAOA,GAClC,MAAOyW,IAAmBzW,MAIhC,GAAIjB,OAAO2X,SAAU,CACnB,GAAIC,KAAmCjY,EAAY,WAAcK,OAAO2X,SAAS,QACjF,KAAKC,GAAiC,CACpC,GAAIC,IAAyB7X,OAAO2X,QACpClM,GAAezL,OAAQ,WAAY,QAAS2X,UAAS1W,GACnD,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAO,MAClC,MAAO4W,IAAuB5W,MAIpC,GAAIjB,OAAO8X,OAAQ,CACjB,GAAIC,KAAiCpY,EAAY,WAAcK,OAAO8X,OAAO,QAC7E,KAAKC,GAA+B,CAClC,GAAIC,IAAuBhY,OAAO8X,MAClCrM,GAAezL,OAAQ,SAAU,QAAS8X,QAAO7W,GAC/C,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAOA,GAClC,MAAO+W,IAAqB/W,MAIlC,GAAIjB,OAAOiY,SAAU,CACnB,GAAIC,KAAmCvY,EAAY,WAAcK,OAAOiY,SAAS,QACjF,KAAKC,GAAiC,CACpC,GAAIC,IAAyBnY,OAAOiY,QACpCxM,GAAezL,OAAQ,WAAY,QAASiY,UAAShX,GACnD,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAO,MAClC,MAAOkX,IAAuBlX,MAIpC,GAAIjB,OAAOuW,kBAAmB,CAC5B,GAAI6B,KAA4CzY,EAAY,WAAcK,OAAOuW,kBAAkB,QACnG,KAAK6B,GAA0C,CAC7C,GAAIC,IAAkCrY,OAAOuW,iBAC7C9K,GAAezL,OAAQ,oBAAqB,QAASuW,mBAAkBtV,GACrE,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAOA,GAClC,MAAOoX,IAAgCpX,MAI7C,GAAIjB,OAAOsY,aAAc,CACvB,GAAIC,KAAuC5Y,EAAY,WAAcK,OAAOsY,aAAa,QACzF,KAAKC,GAAqC,CACxC,GAAIC,IAA6BxY,OAAOsY,YACxC7M,GAAezL,OAAQ,eAAgB,QAASsY,cAAarX,GAC3D,IAAK2E,EAAK5E,OAAOC,GAAQ,CAAE,MAAO,OAClC,MAAOuX,IAA2BvX,MAIxC,GAAIjB,OAAO0S,eAAgB,CACzB,GAAI+F,KAAmC9Y,EAAY,WAAcK,OAAO0S,eAAe,QACvF,KAAK+F,GAAiC,CACpC,GAAIC,IAAmB1Y,OAAO0S,cAC9BjH,GAAezL,OAAQ,iBAAkB,QAAS0S,gBAAezR,GAC/D,MAAOyX,IAAiBpS,EAAGU,SAAS/F,OAK1C,GAAI0X,IAAWxY,GAAwB,WACrC,GAAIyY,GAAO5Y,OAAOwK,yBAAyB8E,OAAO9O,UAAW,QAC7D,OAAOoY,IAAQtS,EAAGK,WAAWiS,EAAK1Y,OAEpC,IAAIC,IAAwBwY,GAAU,CACpC,GAAIE,IAAoB,QAASC,SAC/B,IAAKxS,EAAGS,aAAalI,MAAO,CAC1B,KAAM,IAAI+H,WAAU,0DAEtB,GAAIgC,GAAS,EACb,IAAI/J,KAAK+D,OAAQ,CACfgG,GAAU,IAEZ,GAAI/J,KAAKka,WAAY,CACnBnQ,GAAU,IAEZ,GAAI/J,KAAKma,UAAW,CAClBpQ,GAAU,IAEZ,GAAI/J,KAAKoa,QAAS,CAChBrQ,GAAU,IAEZ,GAAI/J,KAAKqa,OAAQ,CACftQ,GAAU,IAEZ,MAAOA,GAGT9G,GAAMqI,OAAOmF,OAAO9O,UAAW,QAASqY,IAG1C,GAAIM,IAA+BtZ,EAAqB,WACtD,MAAOqD,QAAO,GAAIoM,QAAO,KAAM,QAAU,QAG3C,KAAK6J,IAAgChZ,EAAqB,CACxD,GAAIiZ,IAAa9J,MACjB,IAAI+J,IAAc,WAChB,MAAO,SAAS/J,QAAOgK,EAASR,GAC9B,GAAIS,GAAgB1a,eAAgByQ,OACpC,KAAKiK,IAAkB3T,EAAKI,MAAMsT,IAAaA,GAAWA,EAAQ9W,cAAgB8M,QAAU,CAC1F,MAAOgK,GAET,GAAI1T,EAAKI,MAAMsT,IAAY1T,EAAKG,OAAO+S,GAAQ,CAC7C,MAAO,IAAIxJ,QAAOgK,EAAQrO,OAAQ6N,GAEpC,MAAO,IAAIM,IAAWE,EAASR,MAGnC5N,GAAgBkO,GAAYC,IAC1BG,OAAQ,MAIVlK,QAAS+J,EACTvX,GAAM8I,SAAS9H,EAAS,SAAUuW,IAKpC,GAAIlZ,EAAqB,CACvB,GAAIsZ,KACFC,MAAO,KACPC,UAAW,KACXC,UAAW,KACXC,YAAa,KACbC,aAAc,KAEhBvZ,GAASP,OAAOwB,KAAKiY,IAAe,SAAUM,GAC5C,GAAIA,IAAQzK,WAAYmK,GAAaM,IAASzK,SAAS,CACrDxN,EAAMqI,OAAOmF,OAAQmK,GAAaM,GAAO,QAAS7Z,OAChD,MAAOoP,QAAOyK,QAKtBvO,EAAkB8D,OAElB,IAAI0K,IAAiB,EAAI5U,OAAO+P,OAChC,IAAI8E,IAAkB,QAASA,iBAAgBC,GAE7C,MAAQA,GAAIF,GAAkBA,GAEhC,IAAIG,IAAoBnW,KAAKiR,IAAI,GAAI,GACrC,IAAImF,IAAsBpW,KAAKiR,IAAI,EAAG,MAAQ,EAAIkF,GAClD,IAAIE,IAAsBrW,KAAKiR,IAAI,GAAI,IACvC,IAAIqF,IAAYlV,OAAO5E,UAAU+Z,UAC1BnV,QAAO5E,UAAU+Z,GAExB,IAAIC,KACFC,MAAO,QAASA,OAAMxZ,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAImE,OAAOC,MAAMS,IAAM7E,EAAQ,EAAG,CAAE,MAAO4T,KAC3C,GAAI/O,IAAM,EAAG,CAAE,MAAO,GACtB,GAAIA,IAAM+H,SAAU,CAAE,MAAO/H,GAC7B,MAAOtB,GAAKsB,EAAI9B,KAAK0W,EAAIhW,EAAMoB,EAAI,GAAKpB,EAAMoB,EAAI,GAAK9B,KAAK0W,GAAK,GAGnEC,MAAO,QAASA,OAAM1Z,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAI6E,IAAM,IAAM/C,EAAe+C,GAAI,CACjC,MAAOA,GAET,MAAOA,GAAI,GAAK9B,KAAK2W,OAAO7U,GAAKtB,EAAKsB,EAAIpB,EAAMoB,EAAIA,EAAI,KAG1D8U,MAAO,QAASA,OAAM3Z,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAImE,OAAOC,MAAMS,IAAMA,GAAK,GAAKA,EAAI,EAAG,CACtC,MAAO+O,KAET,GAAI/O,KAAO,EAAG,CAAE,OAAQ+H,SACxB,GAAI/H,IAAM,EAAG,CAAE,MAAO+H,UACtB,GAAI/H,IAAM,EAAG,CAAE,MAAOA,GACtB,MAAO,GAAMtB,GAAM,EAAIsB,IAAM,EAAIA,KAGnC+U,KAAM,QAASA,MAAK5Z,GAClB,GAAI6E,GAAIV,OAAOnE,EACf,IAAI6E,IAAM,EAAG,CAAE,MAAOA,GACtB,GAAIgV,GAAShV,EAAI,EAAG8C,CACpB,IAAIkS,EAAQ,CAAEhV,GAAKA,EACnB,GAAIA,IAAM+H,SAAU,CAClBjF,EAASiF,aACJ,CACLjF,EAAS5E,KAAK+W,IAAIvW,EAAKsB,GAAK,EAE5B8C,IAAU9C,GAAK8C,EAASA,GAAW,EAAIA,GAAW,EAEpD,MAAOkS,IAAUlS,EAASA,GAG5BoS,MAAO,QAASA,OAAM/Z,GAEpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAIqG,GAAShB,EAAGc,SAAStB,EACzB,IAAIwB,IAAW,EAAG,CAChB,MAAO,IAET,MAAOgT,IAAYnb,EAAMmb,GAAWhT,GAAU,GAAKlD,EAAOI,EAAK8C,EAAS,IAAOtD,KAAKiX,QAGtFC,KAAM,QAASA,MAAKja,GAClB,GAAI6E,GAAIV,OAAOnE,EACf,IAAI6E,IAAM,EAAG,CAAE,MAAO,GACtB,GAAIV,OAAOC,MAAMS,GAAI,CAAE,MAAO+O,KAC9B,IAAK9R,EAAe+C,GAAI,CAAE,MAAO+H,UACjC,GAAI/H,EAAI,EAAG,CAAEA,GAAKA,EAClB,GAAIA,EAAI,GAAI,CAAE,MAAO9B,MAAK+W,IAAIjV,GAAK,EACnC,OAAQ9B,KAAK+W,IAAIjV,GAAK9B,KAAK+W,KAAKjV,IAAM,GAGxCqV,MAAO,QAASA,OAAMla,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAI6E,KAAO+H,SAAU,CAAE,OAAQ,EAC/B,IAAK9K,EAAe+C,IAAMA,IAAM,EAAG,CAAE,MAAOA,GAC5C,GAAIxB,EAAKwB,GAAK,GAAK,CACjB,MAAO9B,MAAK+W,IAAIjV,GAAK,EAIvB,GAAIsV,GAAItV,CACR,IAAIuV,GAAM,CACV,IAAInB,GAAI,CACR,OAAOmB,EAAMD,IAAMC,EAAK,CACtBA,GAAOD,CACPlB,IAAK,CACLkB,IAAKtV,EAAIoU,EAEX,MAAOmB,IAGTC,MAAO,QAASA,OAAMxV,EAAGyV,GACvB,GAAI3S,GAAS,CACb,IAAI4S,GAAU,CACd,KAAK,GAAIjP,GAAI,EAAGA,EAAI7M,UAAUgG,SAAU6G,EAAG,CACzC,GAAItL,GAAQqD,EAAKc,OAAO1F,UAAU6M,IAClC,IAAIiP,EAAUva,EAAO,CACnB2H,GAAW4S,EAAUva,GAAUua,EAAUva,EACzC2H,IAAU,CACV4S,GAAUva,MACL,CACL2H,GAAW3H,EAAQ,EAAKA,EAAQua,GAAYva,EAAQua,GAAWva,GAGnE,MAAOua,KAAY3N,SAAWA,SAAW2N,EAAU9W,EAAMkE,IAG3D6S,KAAM,QAASA,MAAKxa,GAClB,MAAOuD,GAAKvD,GAAS+C,KAAKiX,OAG5BS,MAAO,QAASA,OAAMza,GACpB,MAAOuD,GAAKvD,GAAS+C,KAAK2X,QAG5BC,MAAO,QAASA,OAAM3a,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,IAAI6E,GAAK,GAAKV,OAAOC,MAAMS,GAAI,CAAE,MAAO+O,KACxC,GAAI/O,IAAM,GAAKA,IAAM+H,SAAU,CAAE,MAAO/H,GACxC,GAAIA,KAAO,EAAG,CAAE,OAAQ+H,SAExB,MAAQ,GAAI/H,EAAK,IAAM,EAAIA,EAAIA,GAAKtB,EAAK,EAAIsB,IAAO,EAAIA,EAAK,KAG/D+V,KAAM,QAASA,MAAK5a,GAClB,GAAIqG,GAASlC,OAAOnE,EACpB,IAAIqG,IAAW,EAAG,CAAE,MAAOA,GAC3B,GAAIlC,OAAOC,MAAMiC,GAAS,CAAE,MAAOA,GACnC,MAAOA,GAAS,GAAK,EAAI,GAG3BwU,KAAM,QAASA,MAAK7a,GAClB,GAAI6E,GAAIV,OAAOnE,EACf,KAAK8B,EAAe+C,IAAMA,IAAM,EAAG,CAAE,MAAOA,GAE5C,GAAIxB,EAAKwB,GAAK,EAAG,CACf,OAAQ9B,KAAKmX,MAAMrV,GAAK9B,KAAKmX,OAAOrV,IAAM,EAE5C,OAAQ9B,KAAK+W,IAAIjV,EAAI,GAAK9B,KAAK+W,KAAKjV,EAAI,IAAM9B,KAAK0W,EAAI,GAGzDqB,KAAM,QAASA,MAAK9a,GAClB,GAAI6E,GAAIV,OAAOnE,EACf,IAAImE,OAAOC,MAAMS,IAAMA,IAAM,EAAG,CAAE,MAAOA,GACzC,GAAIA,IAAM+H,SAAU,CAAE,MAAO,GAC7B,GAAI/H,KAAO+H,SAAU,CAAE,OAAQ,EAC/B,GAAIlG,GAAI3D,KAAKmX,MAAMrV,EACnB,IAAI8B,GAAI5D,KAAKmX,OAAOrV,EACpB,IAAI6B,IAAMkG,SAAU,CAAE,MAAO,GAC7B,GAAIjG,IAAMiG,SAAU,CAAE,OAAQ,EAC9B,OAAQlG,EAAIC,IAAM5D,KAAK+W,IAAIjV,GAAK9B,KAAK+W,KAAKjV,KAG5CkW,MAAO,QAASA,OAAM/a,GACpB,GAAI6E,GAAIV,OAAOnE,EACf,OAAO6E,GAAI,GAAK1B,GAAQ0B,GAAK1B,EAAO0B,IAGtCmW,KAAM,QAASA,MAAKnW,EAAGyV,GAErB,GAAI5T,GAAIrB,EAAGc,SAAStB,EACpB,IAAI8B,GAAItB,EAAGc,SAASmU,EACpB,IAAIW,GAAMvU,IAAM,GAAM,KACtB,IAAIwU,GAAKxU,EAAI,KACb,IAAIyU,GAAMxU,IAAM,GAAM,KACtB,IAAIyU,GAAKzU,EAAI,KAGb,OAASuU,GAAKE,GAASH,EAAKG,EAAKF,EAAKC,GAAO,KAAQ,GAAK,GAG5DE,OAAQ,QAASA,QAAOxW,GACtB,GAAIyW,GAAInX,OAAOU,EACf,IAAIyW,IAAM,GAAKA,IAAM1O,UAAY0O,KAAO1O,UAAY1I,EAAYoX,GAAI,CAClE,MAAOA,GAET,GAAIV,GAAO7X,KAAK6X,KAAKU,EACrB,IAAIhY,GAAMD,EAAKiY,EACf,IAAIhY,EAAM8V,GAAqB,CAC7B,MAAOwB,GAAO5B,GAAgB1V,EAAM8V,GAAsBF,IAAqBE,GAAsBF,GAGvG,GAAIxS,IAAK,EAAIwS,GAAoB/U,OAAO+P,SAAW5Q,CACnD,IAAIqE,GAASjB,GAAKA,EAAIpD,EACtB,IAAIqE,EAASwR,IAAuBjV,EAAYyD,GAAS,CACvD,MAAOiT,GAAOhO,SAEhB,MAAOgO,GAAOjT,GAGlBtH,GAAiB0C,KAAMwW,GAEvBva,GAAe+D,KAAM,QAASwW,GAAUoB,MAAO5X,KAAK4X,OAAO,UAAY,MAEvE3b,GAAe+D,KAAM,QAASwW,GAAUG,MAAO3W,KAAK2W,OAAO,QAAU3W,KAAK2W,MAAM,KAEhF1a,GAAe+D,KAAM,OAAQwW,GAAUuB,KAAM/X,KAAK+X,MAAM,UAAY,MAEpE9b,GAAe+D,KAAM,QAASwW,GAAUC,MAAOzW,KAAKyW,MAAMrV,OAAOoX,aAAe3O,SAEhF5N,GAAe+D,KAAM,OAAQwW,GAAUK,KAAM7W,KAAKO,IAAI,EAAIP,KAAK6W,KAAK,QAAU,QAAUzV,OAAO+P,QAAU,EAEzGlV,GAAe+D,KAAM,OAAQwW,GAAUsB,KAAM9X,KAAK8X,MAAM,UAAY,MAEpE,IAAIW,IAAazY,KAAKmX,MAAM,GAC5Blb,GAAe+D,KAAM,QAASwW,GAAUW,MAAOsB,GAAa,oBAAsBA,GAAa,mBAE/F,IAAIC,IAAgB1Y,KAAK2Y,KAEzB,IAAIC,IAAiC5Y,KAAK2Y,MAAM,GAAMvX,OAAO+P,QAAU,KAAO,GAAKnR,KAAK2Y,OAAO,GAAMvX,OAAO+P,QAAU,QAAU,CAMhI,IAAI0H,IAAyC7C,GAAiB,CAC9D,IAAI8C,IAAwC,EAAI9C,GAAiB,CACjE,IAAI+C,KAAgCF,GAAwCC,IAAuCvJ,MAAM,SAAUyJ,GACjI,MAAOhZ,MAAK2Y,MAAMK,KAASA,GAE7B/c,GAAe+D,KAAM,QAAS,QAAS2Y,OAAM7W,GAC3C,GAAIzB,GAAQD,EAAO0B,EACnB,IAAImX,GAAO5Y,KAAW,GAAK,EAAIA,EAAQ,CACvC,OAAOyB,GAAIzB,EAAQ,GAAMA,EAAQ4Y,IAC/BL,KAAmCG,GACvCjb,GAAMkJ,iBAAiBhH,KAAK2Y,MAAOD,GAEnC,IAAIQ,IAAWlZ,KAAKiY,IACpB,IAAIjY,KAAKiY,KAAK,WAAY,MAAQ,EAAG,CAEnCjY,KAAKiY,KAAOzB,GAAUyB,IACtBna,GAAMkJ,iBAAiBhH,KAAKiY,KAAMiB,IAEpC,GAAIlZ,KAAKiY,KAAKvW,SAAW,EAAG,CAG1B+F,EAAezH,KAAM,OAAQ,QAASiY,MAAKnW,EAAGyV,GAC5C,MAAOzc,GAAOoe,GAAUlZ,KAAMtE,aAOlC,GAAIyd,IAAe,WACjB,GAAIC,GAAata,EAAQsa,UAEzB,UAAWA,KAAe,kBAAqBA,KAAe,SAAU,CAAE,OAE1E9W,EAAG+W,UAAY,SAAUC,GACvB,IAAKhX,EAAGS,aAAauW,GAAU,CAC7B,MAAO,OAET,SAAWA,GAAQC,WAAa,YAAa,CAC3C,MAAO,OAET,MAAO,MAKT,IAAIC,GAAoB,SAAUvb,GAChC,IAAKqE,EAAGW,cAAchF,GAAI,CACxB,KAAM,IAAI2E,WAAU,2BAEtB,GAAI6W,GAAa5e,IACjB,IAAI6e,GAAW,SAAUC,EAASC,GAChC,GAAIH,EAAWE,cAAiB,IAAKF,EAAWG,aAAgB,GAAG,CACjE,KAAM,IAAIhX,WAAU,+BAEtB6W,EAAWE,QAAUA,CACrBF,GAAWG,OAASA,EAEtBH,GAAWH,QAAU,GAAIrb,GAAEyb,EAC3B,MAAMpX,EAAGK,WAAW8W,EAAWE,UAAYrX,EAAGK,WAAW8W,EAAWG,SAAU,CAC5E,KAAM,IAAIhX,WAAU,4BAKxB,IAAIiX,EAEJ,UAAWlb,UAAW,aAAe2D,EAAGK,WAAWhE,OAAOmb,aAAc,CACtED,EAAkB,WAEhB,GAAIE,KACJ,IAAIC,GAAc,sBAClB,IAAIC,GAAiB,SAAUC,GAC7Bxa,EAAMqa,EAAUG,EAChBvb,QAAOmb,YAAYE,EAAa,KAElC,IAAIG,GAAgB,SAAUC,GAC5B,GAAIA,EAAMnT,SAAWtI,QAAUyb,EAAMC,OAASL,EAAa,CACzDI,EAAME,iBACN,IAAIP,EAASrY,SAAW,EAAG,CAAE,OAC7B,GAAIwY,GAAKra,EAAOka,EAChBG,MAGJvb,QAAO4b,iBAAiB,UAAWJ,EAAe,KAClD,OAAOF,IAGX,GAAIO,GAAkB,WAKpB,GAAIC,GAAI3b,EAAQ4b,OAChB,OAAOD,IAAKA,EAAEd,SAAW,SAAUgB,GACjC,MAAOF,GAAEd,UAAUiB,KAAKD,IAK5B,IAAIE,GAAUvY,EAAGK,WAAW7D,EAAQgc,cAClChc,EAAQgc,aAAa7f,KAAK6D,SACnBic,WAAY,UAAYA,QAAQC,SAAWD,QAAQC,SAC1DR,MACClY,EAAGK,WAAWkX,GAAmBA,IAClC,SAAUc,GAAQvB,EAAWuB,EAAM,IAIrC,IAAIM,GAAmB,CACvB,IAAIC,GAAkB,CACtB,IAAIC,GAAkB,CACtB,IAAIC,GAAoB,CACxB,IAAIC,GAAmB,CAEvB,IAAIC,GAAqB,SAAUC,EAAUC,GAC3C,GAAIC,GAAoBF,EAASG,YACjC,IAAIC,GAAUJ,EAASI,OACvB,IAAIC,GAAeC,EAAmB,MAAO3d,CAC7C,IAAIyd,IAAYV,EAAkB,CAChCW,EAAgBJ,MACX,IAAIG,IAAYT,EAAiB,CACtCU,EAAgBJ,CAChBK,GAAmB,SACd,CACL,IACED,EAAgBD,EAAQH,GACxB,MAAO5f,GACPggB,EAAgBhgB,CAChBigB,GAAmB,MAGvB3d,EAAI2d,EAAmBJ,EAAkB7B,OAAS6B,EAAkB9B,OACpEzb,GAAE0d,GAGJ,IAAIE,GAA0B,SAAUC,EAAWP,GACjDjf,EAASwf,EAAW,SAAUR,GAC5BV,EAAQ,WACNS,EAAmBC,EAAUC,OAKnC,IAAIQ,GAAiB,SAAU1C,EAASrc,GACtC,GAAIsc,GAAWD,EAAQC,QACvB,IAAIwC,GAAYxC,EAAS0C,gBACzB1C,GAAS3U,OAAS3H,CAClBsc,GAAS0C,qBAAwB,EACjC1C,GAAS2C,oBAAuB,EAChC3C,GAAS4C,MAAQf,CACjBU,GAAwBC,EAAW9e,GAGrC,IAAImf,GAAgB,SAAU9C,EAAS+C,GACrC,GAAI9C,GAAWD,EAAQC,QACvB,IAAIwC,GAAYxC,EAAS2C,eACzB3C,GAAS3U,OAASyX,CAClB9C,GAAS0C,qBAAwB,EACjC1C,GAAS2C,oBAAuB,EAChC3C,GAAS4C,MAAQd,CACjBS,GAAwBC,EAAWM,GAGrC,IAAIC,GAA2B,SAAUhD,GACvC,GAAIiD,GAAkB,KACtB,IAAI5C,GAAU,SAAU6C,GACtB,GAAI5B,EACJ,IAAI2B,EAAiB,CAAE,OACvBA,EAAkB,IAClB,IAAIC,IAAelD,EAAS,CAC1B,MAAO8C,GAAc9C,EAAS,GAAI1W,WAAU,oBAE9C,IAAKN,EAAGS,aAAayZ,GAAa,CAChC,MAAOR,GAAe1C,EAASkD,GAEjC,IACE5B,EAAO4B,EAAW5B,KAClB,MAAOhf,GACP,MAAOwgB,GAAc9C,EAAS1d,GAEhC,IAAK0G,EAAGK,WAAWiY,GAAO,CACxB,MAAOoB,GAAe1C,EAASkD,GAEjC3B,EAAQ,WACN4B,EAA0BnD,EAASkD,EAAY5B,KAGnD,IAAIhB,GAAS,SAAUyC,GACrB,GAAIE,EAAiB,CAAE,OACvBA,EAAkB,IAClB,OAAOH,GAAc9C,EAAS+C,GAEhC,QAAS1C,QAASA,EAASC,OAAQA,GAGrC,IAAI6C,GAA4B,SAAUnD,EAASoD,EAAU9B,GAC3D,GAAI+B,GAAqBL,EAAyBhD,EAClD,IAAIK,GAAUgD,EAAmBhD,OACjC,IAAIC,GAAS+C,EAAmB/C,MAChC,KACEze,EAAMyf,EAAM8B,EAAU/C,EAASC,GAC/B,MAAOhe,GACPge,EAAOhe,IAKX,IAAIghB,GAAoB,SAAU3e,GAChC,IAAKqE,EAAGS,aAAa9E,GAAI,CACvB,KAAM,IAAI2E,WAAU,yBAEtB,GAAI8C,GAAIzH,EAAEgD,EACV,IAAIyE,QAAW,IAAKA,IAAM,KAAM,CAC9B,MAAOA,GAET,MAAOzH,GAGT,IAAI4e,EACJ,IAAInC,GAAW,WACb,GAAIvB,GAAc,QAASuB,SAAQhB,GACjC,KAAM7e,eAAgBse,IAAc,CAClC,KAAM,IAAIvW,WAAU,sCAEtB,GAAI/H,MAAQA,KAAK0e,SAAU,CACzB,KAAM,IAAI3W,WAAU,oBAGtB,IAAKN,EAAGK,WAAW+W,GAAW,CAC5B,KAAM,IAAI9W,WAAU,wBAEtB,GAAI0W,GAAUvR,GAAoBlN,KAAMse,EAAa0D,GACnDtD,UACE3U,WAAa,GACbuX,MAAOhB,EACPc,oBACAC,qBAGJ,IAAIS,GAAqBL,EAAyBhD,EAClD,IAAIM,GAAS+C,EAAmB/C,MAChC,KACEF,EAASiD,EAAmBhD,QAASC,GACrC,MAAOhe,GACPge,EAAOhe,GAET,MAAO0d,GAET,OAAOH,KAET0D,GAAoBnC,EAAQle,SAE5B,IAAIsgB,GAAsB,SAAUC,EAAOzO,EAAQmL,EAAYuD,GAC7D,GAAIC,GAAgB,KACpB,OAAO,UAAUnb,GACf,GAAImb,EAAe,CAAE,OACrBA,EAAgB,IAChB3O,GAAOyO,GAASjb,CAChB,MAAOkb,EAAUnP,QAAW,EAAG,CAC7B,GAAI8L,GAAUF,EAAWE,OACzBA,GAAQrL,KAKd,IAAI4O,GAAoB,SAAUC,EAAgBlf,EAAGmf,GACnD,GAAIlZ,GAAKiZ,EAAehb,QACxB,IAAImM,MAAa0O,GAAcnP,MAAO,GAAKhJ,EAAM2H,CACjD,IAAIuQ,GAAQ,CACZ,OAAO,KAAM,CACX,IACElY,EAAOvC,EAAGwC,aAAaZ,EACvB,IAAIW,IAAS,MAAO,CAClBsY,EAAepY,KAAO,IACtB,OAEFyH,EAAY3H,EAAK5H,MACjB,MAAOrB,GACPuhB,EAAepY,KAAO,IACtB,MAAMnJ,GAER0S,EAAOyO,OAAc,EACrB,IAAIM,GAAcpf,EAAE0b,QAAQnN,EAC5B,IAAI8Q,GAAiBR,EACnBC,EAAOzO,EAAQ8O,EAAkBJ,EAEnCA,GAAUnP,OAAS,CACnBwP,GAAYzC,KAAK0C,EAAgBF,EAAiBxD,OAClDmD,IAAS,EAEX,KAAOC,EAAUnP,QAAW,EAAG,CAC7B,GAAI8L,GAAUyD,EAAiBzD,OAC/BA,GAAQrL,GAEV,MAAO8O,GAAiB9D,QAG1B,IAAIiE,GAAqB,SAAUJ,EAAgBlf,EAAGmf,GACpD,GAAIlZ,GAAKiZ,EAAehb,SAAU0C,EAAM2H,EAAW6Q,CACnD,OAAO,KAAM,CACX,IACExY,EAAOvC,EAAGwC,aAAaZ,EACvB,IAAIW,IAAS,MAAO,CAKlBsY,EAAepY,KAAO,IACtB,OAEFyH,EAAY3H,EAAK5H,MACjB,MAAOrB,GACPuhB,EAAepY,KAAO,IACtB,MAAMnJ,GAERyhB,EAAcpf,EAAE0b,QAAQnN,EACxB6Q,GAAYzC,KAAKwC,EAAiBzD,QAASyD,EAAiBxD,QAE9D,MAAOwD,GAAiB9D,QAG1Bhc,GAAiBod,GACf8C,IAAK,QAASA,KAAIC,GAChB,GAAIxf,GAAI2e,EAAkB/hB,KAC1B,IAAI4e,GAAa,GAAID,GAAkBvb,EACvC,IAAIkE,GAAUgb,CACd,KACEhb,EAAWG,EAAGyB,YAAY0Z,EAC1BN,IAAmBhb,SAAUA,EAAU4C,KAAM,MAC7C,OAAOmY,GAAkBC,EAAgBlf,EAAGwb,GAC5C,MAAO7d,GACP,GAAI8hB,GAAY9hB,CAChB,IAAIuhB,IAAmBA,EAAepY,KAAM,CAC1C,IACEzC,EAAGgC,cAAcnC,EAAU,MAC3B,MAAOwb,GACPD,EAAYC,GAGhB,GAAI/D,GAASH,EAAWG,MACxBA,GAAO8D,EACP,OAAOjE,GAAWH,UAItBsE,KAAM,QAASA,MAAKH,GAClB,GAAIxf,GAAI2e,EAAkB/hB,KAC1B,IAAI4e,GAAa,GAAID,GAAkBvb,EACvC,IAAIkE,GAAUgb,CACd,KACEhb,EAAWG,EAAGyB,YAAY0Z,EAC1BN,IAAmBhb,SAAUA,EAAU4C,KAAM,MAC7C,OAAOwY,GAAmBJ,EAAgBlf,EAAGwb,GAC7C,MAAO7d,GACP,GAAI8hB,GAAY9hB,CAChB,IAAIuhB,IAAmBA,EAAepY,KAAM,CAC1C,IACEzC,EAAGgC,cAAcnC,EAAU,MAC3B,MAAOwb,GACPD,EAAYC,GAGhB,GAAI/D,GAASH,EAAWG,MACxBA,GAAO8D,EACP,OAAOjE,GAAWH,UAItBM,OAAQ,QAASA,QAAOyC,GACtB,GAAIpe,GAAIpD,IACR,IAAI4e,GAAa,GAAID,GAAkBvb;AACvC,GAAI4f,GAAapE,EAAWG,MAC5BiE,GAAWxB,EACX,OAAO5C,GAAWH,SAGpBK,QAAS,QAASA,SAAQpB,GAExB,GAAIta,GAAIpD,IACR,IAAIyH,EAAG+W,UAAUd,GAAI,CACnB,GAAI/Z,GAAc+Z,EAAE/Z,WACpB,IAAIA,IAAgBP,EAAG,CAAE,MAAOsa,IAElC,GAAIkB,GAAa,GAAID,GAAkBvb,EACvC,IAAI6f,GAAcrE,EAAWE,OAC7BmE,GAAYvF,EACZ,OAAOkB,GAAWH,UAItBhc,GAAiBuf,GACfkB,QAAS,SAAUC,GACjB,MAAOnjB,MAAK+f,SAAU,GAAGoD,IAG3BpD,KAAM,QAASA,MAAKqD,EAAaD,GAC/B,GAAI1E,GAAUze,IACd,KAAKyH,EAAG+W,UAAUC,GAAU,CAAE,KAAM,IAAI1W,WAAU,iBAClD,GAAI3E,GAAIqE,EAAGiD,mBAAmB+T,EAASoB,EACvC,IAAI0C,GAAmB,GAAI5D,GAAkBvb,EAE7C,IAAIigB,IACFxC,aAAc0B,EACdzB,QAASrZ,EAAGK,WAAWsb,GAAeA,EAAchD,EAEtD,IAAIkD,IACFzC,aAAc0B,EACdzB,QAASrZ,EAAGK,WAAWqb,GAAcA,EAAa9C,EAEpD,IAAI3B,GAAWD,EAAQC,QACvB,IAAItc,EACJ,IAAIsc,EAAS4C,QAAUhB,EAAiB,CACtCzb,EAAM6Z,EAAS0C,iBAAkBiC,EACjCxe,GAAM6Z,EAAS2C,gBAAiBiC,OAC3B,IAAI5E,EAAS4C,QAAUf,EAAmB,CAC/Cne,EAAQsc,EAAS3U,MACjBiW,GAAQ,WACNS,EAAmB4C,EAAiBjhB,SAEjC,IAAIsc,EAAS4C,QAAUd,EAAkB,CAC9Cpe,EAAQsc,EAAS3U,MACjBiW,GAAQ,WACNS,EAAmB6C,EAAgBlhB,SAEhC,CACL,KAAM,IAAI2F,WAAU,4BAEtB,MAAOwa,GAAiB9D,UAI5B,OAAOoB,KAIT,IAAI5b,EAAQ4b,QAAS,OACZ5b,GAAQ4b,QAAQ0D,aAChBtf,GAAQ4b,QAAQ2D,YAChBvf,GAAQ4b,QAAQle,UAAU8hB,MAGnC,SAAWnF,MAAgB,WAAY,CAErC7b,EAAiBwB,GAAW4b,QAASvB,IAIrC,IAAIoF,IAA6BvgB,EAAoBc,EAAQ4b,QAAS,SAAUhV,GAC9E,MAAOA,GAAEiU,QAAQ,IAAIiB,KAAK,uBAA2BlV,IAEvD,IAAI8Y,KAA0C7iB,EAAY,WAAcmD,EAAQ4b,QAAQd,OAAO,IAAIgB,KAAK,KAAM,GAAGA,KAAK,KAAM7Z,IAC5H,IAAI0d,IAA+B9iB,EAAY,WAAcmD,EAAQ4b,QAAQ1f,KAAK,EAAG+F,IAMrF,IAAI2d,IAAwB,SAAUhE,GACpC,GAAIvW,GAAIuW,EAAQf,QAAQ,EACxBxV,GAAE3F,cACF,IAAIyH,GAAKyU,EAAQf,QAAQxV,EACzB,OAAQA,KAAM8B,GACdnH,EAAQ4b,QACV,KAAK6D,KAA+BC,KAC/BC,IAAgCC,GAAsB,CAGzDhE,QAAUvB,EAGV1R,GAAe3I,EAAS,UAAWqa,IAErC3R,EAAkBkT,SAMpB,GAAIiE,IAAY,SAAUhb,GACxB,GAAIC,GAAI5H,OAAOwB,KAAKd,EAAQiH,EAAG,SAAUpF,EAAGsO,GAC1CtO,EAAEsO,GAAK,IACP,OAAOtO,QAET,OAAOoF,GAAE+E,KAAK,OAAS9E,EAAE8E,KAAK,KAEhC,IAAIkW,IAA0BD,IAAW,IAAK,IAAK,MAEnD,IAAIE,IAAiCF,IAAW,IAAK,EAAG,IAAK,IAAK,GAElE,IAAIxiB,EAAqB,CAEvB,GAAI2iB,IAAU,QAASA,SAAQjhB,GAC7B,IAAK+gB,GAAyB,CAC5B,MAAO,MAET,GAAIG,SAAclhB,EAClB,IAAIkhB,IAAS,aAAelhB,IAAQ,KAAM,CACxC,MAAO,IAAMqB,OAAOrB,OACf,IAAIkhB,IAAS,SAAU,CAC5B,MAAO,IAAMlhB,MACR,IAAIkhB,IAAS,SAAU,CAE5B,IAAKF,GAAgC,CACnC,MAAO,IAAMhhB,EAEf,MAAOA,OACF,IAAIkhB,IAAS,UAAW,CAC7B,MAAO,IAAMlhB,EAEf,MAAO,MAGT,IAAImhB,IAAc,QAASA,eAEzB,MAAOhjB,QAAO0B,OAAS1B,OAAO0B,OAAO,SAGvC,IAAIuhB,IAAmB,QAASA,kBAAiBC,EAAgB3hB,EAAKkgB,GACpE,GAAIriB,EAAQqiB,IAAa7b,EAAKG,OAAO0b,GAAW,CAC9ClhB,EAASkhB,EAAU,SAAU0B,GAC3B5hB,EAAImJ,IAAIyY,EAAM,GAAIA,EAAM,UAErB,IAAI1B,YAAoByB,GAAgB,CAC7C/jB,EAAM+jB,EAAe1iB,UAAUC,QAASghB,EAAU,SAAUxgB,EAAOY,GACjEN,EAAImJ,IAAI7I,EAAKZ,SAEV,CACL,GAAImiB,GAAMC,CACV,IAAI5B,IAAa,YAAeA,KAAa,YAAa,CACxD4B,EAAQ9hB,EAAImJ,GACZ,KAAKpE,EAAGK,WAAW0c,GAAQ,CAAE,KAAM,IAAIzc,WAAU,WACjDwc,EAAO9c,EAAGyB,YAAY0Z,GAExB,SAAW2B,KAAS,YAAa,CAC/B,MAAO,KAAM,CACX,GAAIva,GAAOvC,EAAGwC,aAAasa,EAC3B,IAAIva,IAAS,MAAO,CAAE,MACtB,GAAIya,GAAWza,EAAK5H,KACpB,KACE,IAAKqF,EAAGS,aAAauc,GAAW,CAC9B,KAAM,IAAI1c,WAAU,8BAEtBzH,EAAMkkB,EAAO9hB,EAAK+hB,EAAS,GAAIA,EAAS,IACxC,MAAO1jB,GACP0G,EAAGgC,cAAc8a,EAAM,KACvB,MAAMxjB,OAMhB,IAAI2jB,IAAmB,QAASA,kBAAiBC,EAAgB9Y,EAAK+W,GACpE,GAAIriB,EAAQqiB,IAAa7b,EAAKG,OAAO0b,GAAW,CAC9ClhB,EAASkhB,EAAU,SAAUxgB,GAC3ByJ,EAAI+Y,IAAIxiB,SAEL,IAAIwgB,YAAoB+B,GAAgB,CAC7CrkB,EAAMqkB,EAAehjB,UAAUC,QAASghB,EAAU,SAAUxgB,GAC1DyJ,EAAI+Y,IAAIxiB,SAEL,CACL,GAAImiB,GAAMC,CACV,IAAI5B,IAAa,YAAeA,KAAa,YAAa,CACxD4B,EAAQ3Y,EAAI+Y,GACZ,KAAKnd,EAAGK,WAAW0c,GAAQ,CAAE,KAAM,IAAIzc,WAAU,WACjDwc,EAAO9c,EAAGyB,YAAY0Z,GAExB,SAAW2B,KAAS,YAAa,CAC/B,MAAO,KAAM,CACX,GAAIva,GAAOvC,EAAGwC,aAAasa,EAC3B,IAAIva,IAAS,MAAO,CAAE,MACtB,GAAI2H,GAAY3H,EAAK5H,KACrB,KACE9B,EAAMkkB,EAAO3Y,EAAK8F,GAClB,MAAO5Q,GACP0G,EAAGgC,cAAc8a,EAAM,KACvB,MAAMxjB,OAOhB,IAAI8jB,KACFC,IAAM,WAEJ,GAAIC,KAEJ,IAAIC,GAAW,QAASA,UAAShiB,EAAKZ,GACpCpC,KAAKgD,IAAMA,CACXhD,MAAKoC,MAAQA,CACbpC,MAAKgK,KAAO,IACZhK,MAAKilB,KAAO,KAGdD,GAASrjB,UAAUujB,UAAY,QAASA,aACtC,MAAOllB,MAAKgD,MAAQ+hB,EAGtB,IAAII,GAAQ,QAASA,OAAMziB,GACzB,QAASA,EAAI0iB,QAGf,IAAIC,GAAiB,QAASA,gBAAe3iB,EAAKE,GAChD,IAAK6E,EAAGS,aAAaxF,KAASyiB,EAAMziB,GAAM,CACxC,KAAM,IAAIqF,WAAU,wBAA0BnF,EAAS,oCAAsCyB,OAAO3B,KAIxG,IAAI4iB,GAAc,QAASA,aAAY5iB,EAAKyP,GAC1CkT,EAAe3iB,EAAK,kBACpB1C,MAAKulB,KAAO7iB,EAAI8iB,KAChBxlB,MAAK0N,EAAI1N,KAAKulB,IACdvlB,MAAKmS,KAAOA,EAGdmT,GAAY3jB,WACVqI,KAAM,QAASA,QACb,GAAI0D,GAAI1N,KAAK0N,EAAGyE,EAAOnS,KAAKmS,KAAMoT,EAAOvlB,KAAKulB,KAAMxb,CACpD,UAAW/J,MAAK0N,IAAM,YAAa,CACjC,OAAStL,UAAY,GAAG8H,KAAM,MAEhC,MAAOwD,EAAEwX,aAAexX,IAAM6X,EAAM,CAElC7X,EAAIA,EAAEuX,KAGR,MAAOvX,EAAE1D,OAASub,EAAM,CACtB7X,EAAIA,EAAE1D,IACN,KAAK0D,EAAEwX,YAAa,CAClB,GAAI/S,IAAS,MAAO,CAClBpI,EAAS2D,EAAE1K,QACN,IAAImP,IAAS,QAAS,CAC3BpI,EAAS2D,EAAEtL,UACN,CACL2H,GAAU2D,EAAE1K,IAAK0K,EAAEtL,OAErBpC,KAAK0N,EAAIA,CACT,QAAStL,MAAO2H,EAAQG,KAAM,QAIlClK,KAAK0N,MAAS,EACd,QAAStL,UAAY,GAAG8H,KAAM,OAGlC2C,GAAYyY,EAAY3jB,UAExB,IAAI8jB,EACJ,IAAIC,GAAU,QAASZ,OACrB,KAAM9kB,eAAgB8kB,MAAM,CAC1B,KAAM,IAAI/c,WAAU,kCAEtB,GAAI/H,MAAQA,KAAKolB,QAAS,CACxB,KAAM,IAAIrd,WAAU,oBAEtB,GAAIrF,GAAMwK,GAAoBlN,KAAM8kB,IAAKW,GACvCL,QAAS,KACTI,MAAO,KACPG,SAAUxB,KACVyB,MAAO,GAGT,IAAIL,GAAO,GAAIP,GAAS,KAAM,KAE9BO,GAAKvb,KAAOub,EAAKN,KAAOM,CACxB7iB,GAAI8iB,MAAQD,CAGZ,IAAI1kB,UAAUgG,OAAS,EAAG,CACxBud,GAAiBU,IAAKpiB,EAAK7B,UAAU,IAEvC,MAAO6B,GAET+iB,GAAgBC,EAAQ/jB,SAExBsB,GAAMqI,OAAOma,EAAe,OAAQ,WAClC,SAAWzlB,MAAK4lB,QAAU,YAAa,CACrC,KAAM,IAAI7d,WAAU,0CAEtB,MAAO/H,MAAK4lB,OAGdnjB,GAAiBgjB,GACfpkB,IAAK,QAASA,KAAI2B,GAChBqiB,EAAerlB,KAAM,MACrB,IAAI6lB,GAAO5B,GAAQjhB,EACnB,IAAI6iB,IAAS,KAAM,CAEjB,GAAIvB,GAAQtkB,KAAK2lB,SAASE,EAC1B,IAAIvB,EAAO,CACT,MAAOA,GAAMliB,UACR,CACL,QAGJ,GAAImjB,GAAOvlB,KAAKwlB,MAAO9X,EAAI6X,CAC3B,QAAQ7X,EAAIA,EAAE1D,QAAUub,EAAM,CAC5B,GAAI9d,EAAGuB,cAAc0E,EAAE1K,IAAKA,GAAM,CAChC,MAAO0K,GAAEtL,SAKf0jB,IAAK,QAASA,KAAI9iB,GAChBqiB,EAAerlB,KAAM,MACrB,IAAI6lB,GAAO5B,GAAQjhB,EACnB,IAAI6iB,IAAS,KAAM,CAEjB,aAAc7lB,MAAK2lB,SAASE,KAAU,YAExC,GAAIN,GAAOvlB,KAAKwlB,MAAO9X,EAAI6X,CAC3B,QAAQ7X,EAAIA,EAAE1D,QAAUub,EAAM,CAC5B,GAAI9d,EAAGuB,cAAc0E,EAAE1K,IAAKA,GAAM,CAChC,MAAO,OAGX,MAAO,QAGT6I,IAAK,QAASA,KAAI7I,EAAKZ,GACrBijB,EAAerlB,KAAM,MACrB,IAAIulB,GAAOvlB,KAAKwlB,MAAO9X,EAAI6X,EAAMjB,CACjC,IAAIuB,GAAO5B,GAAQjhB,EACnB,IAAI6iB,IAAS,KAAM,CAEjB,SAAW7lB,MAAK2lB,SAASE,KAAU,YAAa,CAC9C7lB,KAAK2lB,SAASE,GAAMzjB,MAAQA,CAC5B,OAAOpC,UACF,CACLskB,EAAQtkB,KAAK2lB,SAASE,GAAQ,GAAIb,GAAShiB,EAAKZ,EAChDsL,GAAI6X,EAAKN,MAIb,OAAQvX,EAAIA,EAAE1D,QAAUub,EAAM,CAC5B,GAAI9d,EAAGuB,cAAc0E,EAAE1K,IAAKA,GAAM,CAChC0K,EAAEtL,MAAQA,CACV,OAAOpC,OAGXskB,EAAQA,GAAS,GAAIU,GAAShiB,EAAKZ,EACnC,IAAIqF,EAAGoB,WAAW,EAAG7F,GAAM,CACzBshB,EAAMthB,KAAO,EAEfshB,EAAMta,KAAOhK,KAAKwlB,KAClBlB,GAAMW,KAAOjlB,KAAKwlB,MAAMP,IACxBX,GAAMW,KAAKjb,KAAOsa,CAClBA,GAAMta,KAAKib,KAAOX,CAClBtkB,MAAK4lB,OAAS,CACd,OAAO5lB,OAGT+lB,SAAU,SAAU/iB,GAClBqiB,EAAerlB,KAAM,SACrB,IAAIulB,GAAOvlB,KAAKwlB,MAAO9X,EAAI6X,CAC3B,IAAIM,GAAO5B,GAAQjhB,EACnB,IAAI6iB,IAAS,KAAM,CAEjB,SAAW7lB,MAAK2lB,SAASE,KAAU,YAAa,CAC9C,MAAO,OAETnY,EAAI1N,KAAK2lB,SAASE,GAAMZ,WACjBjlB,MAAK2lB,SAASE,GAGvB,OAAQnY,EAAIA,EAAE1D,QAAUub,EAAM,CAC5B,GAAI9d,EAAGuB,cAAc0E,EAAE1K,IAAKA,GAAM,CAChC0K,EAAE1K,IAAM0K,EAAEtL,MAAQ2iB,CAClBrX,GAAEuX,KAAKjb,KAAO0D,EAAE1D,IAChB0D,GAAE1D,KAAKib,KAAOvX,EAAEuX,IAChBjlB,MAAK4lB,OAAS,CACd,OAAO,OAGX,MAAO,QAGTI,MAAO,QAASA,SACdX,EAAerlB,KAAM,QACrBA,MAAK4lB,MAAQ,CACb5lB,MAAK2lB,SAAWxB,IAChB,IAAIoB,GAAOvlB,KAAKwlB,MAAO9X,EAAI6X,EAAMjc,EAAIoE,EAAE1D,IACvC,QAAQ0D,EAAIpE,KAAOic,EAAM,CACvB7X,EAAE1K,IAAM0K,EAAEtL,MAAQ2iB,CAClBzb,GAAIoE,EAAE1D,IACN0D,GAAE1D,KAAO0D,EAAEuX,KAAOM,EAEpBA,EAAKvb,KAAOub,EAAKN,KAAOM,GAG1B5iB,KAAM,QAASA,QACb0iB,EAAerlB,KAAM,OACrB,OAAO,IAAIslB,GAAYtlB,KAAM,QAG/ByT,OAAQ,QAASA,UACf4R,EAAerlB,KAAM,SACrB,OAAO,IAAIslB,GAAYtlB,KAAM,UAG/B0T,QAAS,QAASA,WAChB2R,EAAerlB,KAAM,UACrB,OAAO,IAAIslB,GAAYtlB,KAAM,cAG/B4B,QAAS,QAASA,SAAQqkB,GACxBZ,EAAerlB,KAAM,UACrB,IAAIkmB,GAAUrlB,UAAUgG,OAAS,EAAIhG,UAAU,GAAK,IACpD,IAAIwI,GAAKrJ,KAAK0T,SACd,KAAK,GAAI4Q,GAAQjb,EAAGW,QAASsa,EAAMpa,KAAMoa,EAAQjb,EAAGW,OAAQ,CAC1D,GAAIkc,EAAS,CACX5lB,EAAM2lB,EAAUC,EAAS5B,EAAMliB,MAAM,GAAIkiB,EAAMliB,MAAM,GAAIpC,UACpD,CACLimB,EAAS3B,EAAMliB,MAAM,GAAIkiB,EAAMliB,MAAM,GAAIpC,UAKjD6M,GAAY4Y,EAAeA,EAAc/R,QAEzC,OAAOgS,MAGTne,IAAM,WACJ,GAAI4e,GAAQ,QAASA,OAAMta,GACzB,MAAOA,GAAIua,eAAkBva,GAAI8Z,WAAa,YAEhD,IAAIU,GAAiB,QAASA,gBAAexa,EAAKjJ,GAChD,IAAK6E,EAAGS,aAAa2D,KAASsa,EAAMta,GAAM,CAExC,KAAM,IAAI9D,WAAU,iBAAmBnF,EAAS,oCAAsCyB,OAAOwH,KAQjG,IAAIya,EACJ,IAAIC,GAAU,QAAShf,OACrB,KAAMvH,eAAgBuH,MAAM,CAC1B,KAAM,IAAIQ,WAAU,kCAEtB,GAAI/H,MAAQA,KAAKomB,QAAS,CACxB,KAAM,IAAIre,WAAU,oBAEtB,GAAI8D,GAAMqB,GAAoBlN,KAAMuH,IAAK+e,GACvCF,QAAS,KACTI,cAAe,KACfb,SAAUxB,MAEZ,KAAKtY,EAAIua,QAAS,CAChB,KAAM,IAAIre,WAAU,WAItB,GAAIlH,UAAUgG,OAAS,EAAG,CACxB6d,GAAiBnd,IAAKsE,EAAKhL,UAAU,IAEvC,MAAOgL,GAETya,GAAgBC,EAAQ5kB,SAGxB,IAAI8kB,GAAY,QAASA,WAAU5a,GACjC,IAAKA,EAAI,eAAgB,CACvB,GAAI6a,GAAI7a,EAAI,eAAiB,GAAIgZ,IAAgBC,GACjDpjB,GAASP,OAAOwB,KAAKkJ,EAAI8Z,UAAW,SAAU3iB,GAC5C,GAAIgP,GAAIhP,CACR,IAAIgP,IAAM,QAAS,CACjBA,EAAI,SACC,IAAIA,IAAM,aAAc,CAC7BA,MAAS,OACJ,CACL,GAAI/B,GAAQ+B,EAAE2U,OAAO,EACrB,IAAI1W,IAAU,IAAK,CACjB+B,EAAIrN,EAAUqN,EAAG,OACZ,IAAI/B,IAAU,IAAK,CACxB+B,GAAKrN,EAAUqN,EAAG,OACb,IAAI/B,IAAU,IAAK,CACxB+B,EAAIA,IAAM,YACL,CACLA,GAAKA,GAGT0U,EAAE7a,IAAImG,EAAGA,IAEXnG,GAAI8Z,SAAW,MAInB1iB,GAAMqI,OAAOib,EAAQ5kB,UAAW,OAAQ,WACtC0kB,EAAermB,KAAM,OACrBymB,GAAUzmB,KACV,OAAOA,MAAK,eAAe4mB,MAG7BnkB,GAAiB8jB,EAAQ5kB,WACvBmkB,IAAK,QAASA,KAAI9iB,GAChBqjB,EAAermB,KAAM,MACrB,IAAI6lB,EACJ,IAAI7lB,KAAK2lB,WAAaE,EAAO5B,GAAQjhB,MAAU,KAAM,CACnD,QAAShD,KAAK2lB,SAASE,GAEzBY,EAAUzmB,KACV,OAAOA,MAAK,eAAe8lB,IAAI9iB,IAGjC4hB,IAAK,QAASA,KAAI5hB,GAChBqjB,EAAermB,KAAM,MACrB,IAAI6lB,EACJ,IAAI7lB,KAAK2lB,WAAaE,EAAO5B,GAAQjhB,MAAU,KAAM,CACnDhD,KAAK2lB,SAASE,GAAQ,IACtB,OAAO7lB,MAETymB,EAAUzmB,KACVA,MAAK,eAAe6L,IAAI7I,EAAKA,EAC7B,OAAOhD,OAGT+lB,SAAU,SAAU/iB,GAClBqjB,EAAermB,KAAM,SACrB,IAAI6lB,EACJ,IAAI7lB,KAAK2lB,WAAaE,EAAO5B,GAAQjhB,MAAU,KAAM,CACnD,GAAI6jB,GAAU9gB,EAAgB/F,KAAK2lB,SAAUE,EAC7C,cAAe7lB,MAAK2lB,SAASE,IAAUgB,EAEzCJ,EAAUzmB,KACV,OAAOA,MAAK,eAAe,UAAUgD,IAGvCgjB,MAAO,QAASA,SACdK,EAAermB,KAAM,QACrB,IAAIA,KAAK2lB,SAAU,CACjB3lB,KAAK2lB,SAAWxB,SACX,CACLnkB,KAAK,eAAegmB,UAIxBvS,OAAQ,QAASA,UACf4S,EAAermB,KAAM,SACrBymB,GAAUzmB,KACV,OAAOA,MAAK,eAAeyT,UAG7BC,QAAS,QAASA,WAChB2S,EAAermB,KAAM,UACrBymB,GAAUzmB,KACV,OAAOA,MAAK,eAAe0T,WAG7B9R,QAAS,QAASA,SAAQqkB,GACxBI,EAAermB,KAAM,UACrB,IAAIkmB,GAAUrlB,UAAUgG,OAAS,EAAIhG,UAAU,GAAK,IACpD,IAAIimB,GAAY9mB,IAChBymB,GAAUK,EACV9mB,MAAK,eAAe4B,QAAQ,SAAUQ,EAAOY,GAC3C,GAAIkjB,EAAS,CACX5lB,EAAM2lB,EAAUC,EAASljB,EAAKA,EAAK8jB,OAC9B,CACLb,EAASjjB,EAAKA,EAAK8jB,QAK3B1lB,GAAemlB,EAAQ5kB,UAAW,OAAQ4kB,EAAQ5kB,UAAU8R,OAAQ,KACpE5G,GAAY0Z,EAAQ5kB,UAAW4kB,EAAQ5kB,UAAU8R,OAEjD,OAAO8S,MAIX,IAAItiB,EAAQ6gB,KAAO7gB,EAAQsD,IAAK,CAE9B,GAAIwf,IAAsB/lB,EAAqB,WAAc,MAAO,IAAI8jB,OAAM,EAAG,KAAKzjB,IAAI,KAAO,GACjG,KAAK0lB,GAAqB,CACxB,GAAIC,IAAgB/iB,EAAQ6gB,GAC5B7gB,GAAQ6gB,IAAM,QAASA,OACrB,KAAM9kB,eAAgB8kB,MAAM,CAC1B,KAAM,IAAI/c,WAAU,kCAEtB,GAAI2e,GAAI,GAAIM,GACZ,IAAInmB,UAAUgG,OAAS,EAAG,CACxBud,GAAiBU,IAAK4B,EAAG7lB,UAAU,IAErCM,OAAOmC,eAAeojB,EAAGziB,EAAQ6gB,IAAInjB,UACrCP,GAAeslB,EAAG,cAAe5B,IAAK,KACtC,OAAO4B,GAETziB,GAAQ6gB,IAAInjB,UAAYkB,EAAOmkB,GAAcrlB,UAC7CsB,GAAMkJ,iBAAiBlI,EAAQ6gB,IAAKkC,IAEtC,GAAIC,IAAU,GAAInC,IAClB,IAAIoC,IAAwB,SAAUR,GACpCA,EAAE,UAAU,EACZA,GAAE,WAAW,EACbA,GAAE7a,IAAI,EAAG,EACT6a,GAAErlB,KAAK,EAAG,EACV,OAAOqlB,GAAErlB,IAAI,KAAO,GAAKqlB,EAAErlB,KAAK,KAAO,GACvC4lB,GACF,IAAIE,IAAsBF,GAAQpb,IAAI,EAAG,KAAOob,EAChD,KAAKC,KAAyBC,GAAqB,CACjD,GAAIC,IAAatC,IAAInjB,UAAUkK,GAC/Be,GAAekY,IAAInjB,UAAW,MAAO,QAASkK,KAAImG,EAAG0L,GACnDpd,EAAM8mB,GAAYpnB,KAAMgS,IAAM,EAAI,EAAIA,EAAG0L,EACzC,OAAO1d,QAGX,IAAKknB,GAAsB,CACzB,GAAIG,IAAavC,IAAInjB,UAAUN,GAC/B,IAAIimB,IAAaxC,IAAInjB,UAAUmkB,GAC/BrjB,GAAiBqiB,IAAInjB,WACnBN,IAAK,QAASA,KAAI2Q,GAChB,MAAO1R,GAAM+mB,GAAYrnB,KAAMgS,IAAM,EAAI,EAAIA,IAE/C8T,IAAK,QAASA,KAAI9T,GAChB,MAAO1R,GAAMgnB,GAAYtnB,KAAMgS,IAAM,EAAI,EAAIA,KAE9C,KACH/O,GAAMkJ,iBAAiB2Y,IAAInjB,UAAUN,IAAKgmB,GAC1CpkB,GAAMkJ,iBAAiB2Y,IAAInjB,UAAUmkB,IAAKwB,IAE5C,GAAIC,IAAU,GAAIhgB,IAClB,IAAIigB,IAAwB,SAAU5Y,GACpCA,EAAE,UAAU,EACZA,GAAEgW,KAAK,EACP,QAAQhW,EAAEkX,IAAI,IACdyB,GACF,IAAIE,IAAsBF,GAAQ3C,IAAI,KAAO2C,EAC7C,KAAKC,KAAyBC,GAAqB,CACjD,GAAIC,IAAangB,IAAI5F,UAAUijB,GAC/Brd,KAAI5F,UAAUijB,IAAM,QAASA,KAAIlH,GAC/Bpd,EAAMonB,GAAY1nB,KAAM0d,IAAM,EAAI,EAAIA,EACtC,OAAO1d,MAETiD,GAAMkJ,iBAAiB5E,IAAI5F,UAAUijB,IAAK8C,IAE5C,IAAKF,GAAsB,CACzB,GAAIG,IAAapgB,IAAI5F,UAAUmkB,GAC/Bve,KAAI5F,UAAUmkB,IAAM,QAASA,KAAIpI,GAC/B,MAAOpd,GAAMqnB,GAAY3nB,KAAM0d,IAAM,EAAI,EAAIA,GAE/Cza,GAAMkJ,iBAAiB5E,IAAI5F,UAAUmkB,IAAK6B,GAC1C,IAAIC,IAAargB,IAAI5F,UAAU,SAC/B4F,KAAI5F,UAAU,UAAY,QAASkmB,WAAUnK,GAC3C,MAAOpd,GAAMsnB,GAAY5nB,KAAM0d,IAAM,EAAI,EAAIA,GAE/Cza,GAAMkJ,iBAAiB5E,IAAI5F,UAAU,UAAWimB,IAElD,GAAIE,IAAyB3kB,EAAoBc,EAAQ6gB,IAAK,SAAUiD,GACtE,GAAIrB,GAAI,GAAIqB,MAGZrB,GAAE7a,IAAI,GAAI,GACV,OAAO6a,aAAaqB,IAEtB,IAAIC,IAA+B7mB,OAAOmC,iBAAmBwkB,EAC7D,IAAIG,IAAkB,WACpB,IACE,QAAShkB,EAAQ6gB,eAAiB7gB,GAAQ6gB,KAC1C,MAAO/jB,GACP,MAAOA,aAAagH,cAGxB,IAAI9D,EAAQ6gB,IAAIje,SAAW,GAAKmhB,KAAiCC,GAAgB,CAC/E,GAAIC,IAAUjkB,EAAQ6gB,GACtB7gB,GAAQ6gB,IAAM,QAASA,OACrB,KAAM9kB,eAAgB8kB,MAAM,CAC1B,KAAM,IAAI/c,WAAU,kCAEtB,GAAI2e,GAAI,GAAIwB,GACZ,IAAIrnB,UAAUgG,OAAS,EAAG,CACxBud,GAAiBU,IAAK4B,EAAG7lB,UAAU,IAErCM,OAAOmC,eAAeojB,EAAG5B,IAAInjB,UAC7BP,GAAeslB,EAAG,cAAe5B,IAAK,KACtC,OAAO4B,GAETziB,GAAQ6gB,IAAInjB,UAAYumB,GAAQvmB,SAChCsB,GAAMkJ,iBAAiBlI,EAAQ6gB,IAAKoD,IAEtC,GAAIC,IAAyBhlB,EAAoBc,EAAQsD,IAAK,SAAUsD,GACtE,GAAI+D,GAAI,GAAI/D,MACZ+D,GAAEgW,IAAI,GAAI,GACV,OAAOhW,aAAa/D,IAEtB,IAAIud,IAA+BjnB,OAAOmC,iBAAmB6kB,EAC7D,IAAIE,IAAkB,WACpB,IACE,QAASpkB,EAAQsD,eAAiBtD,GAAQsD,KAC1C,MAAOxG,GACP,MAAOA,aAAagH,cAGxB,IAAI9D,EAAQsD,IAAIV,SAAW,GAAKuhB,KAAiCC,GAAgB,CAC/E,GAAIC,IAAUrkB,EAAQsD,GACtBtD,GAAQsD,IAAM,QAASA,OACrB,KAAMvH,eAAgBuH,MAAM,CAC1B,KAAM,IAAIQ,WAAU,kCAEtB,GAAI6G,GAAI,GAAI0Z,GACZ,IAAIznB,UAAUgG,OAAS,EAAG,CACxB6d,GAAiBnd,IAAKqH,EAAG/N,UAAU,IAErCM,OAAOmC,eAAesL,EAAGrH,IAAI5F,UAC7BP,GAAewN,EAAG,cAAerH,IAAK,KACtC,OAAOqH,GAET3K,GAAQsD,IAAI5F,UAAY2mB,GAAQ3mB,SAChCsB,GAAMkJ,iBAAiBlI,EAAQsD,IAAK+gB,IAEtC,GAAIC,KAAkCvnB,EAAqB,WACzD,OAAO,GAAK8jB,MAAOniB,OAAOqH,OAAOE,MASnC,UACSjG,GAAQ6gB,IAAInjB,UAAUqkB,QAAU,aACvC,GAAI/hB,GAAQsD,KAAMqf,OAAS,IAC3B,GAAI3iB,GAAQ6gB,KAAM8B,OAAS,SACpB3iB,GAAQ6gB,IAAInjB,UAAUgB,OAAS,kBAC/BsB,GAAQsD,IAAI5F,UAAUgB,OAAS,kBAC/BsB,GAAQ6gB,IAAInjB,UAAUC,UAAY,kBAClCqC,GAAQsD,IAAI5F,UAAUC,UAAY,YACzCX,EAAqBgD,EAAQ6gB,MAC7B7jB,EAAqBgD,EAAQsD,aACrB,GAAItD,GAAQ6gB,KAAMniB,OAAW,OAAM,YAC3C4lB,KACCT,GACD,OACO7jB,GAAQ6gB,UACR7gB,GAAQsD,GACf9E,GAAiBwB,GACf6gB,IAAKD,GAAgBC,IACrBvd,IAAKsd,GAAgBtd,KACpB,MAGL,GAAItD,EAAQsD,IAAI5F,UAAUgB,OAASsB,EAAQsD,IAAI5F,UAAU8R,OAAQ,CAE/DrS,EAAe6C,EAAQsD,IAAI5F,UAAW,OAAQsC,EAAQsD,IAAI5F,UAAU8R,OAAQ,MAI9E5G,EAAY1L,OAAO0S,gBAAe,GAAK5P,GAAQ6gB,KAAOniB,QACtDkK,GAAY1L,OAAO0S,gBAAe,GAAK5P,GAAQsD,KAAO5E,QAEtD,IAAIpB,GAAsB0C,EAAQsD,IAAI5F,UAAUmkB,IAAIrkB,OAAS,MAAO,CAElE,GAAI+mB,IAAkBvkB,EAAQsD,IAAI5F,UAAUmkB,GAC5ClZ,GAAe3I,EAAQsD,IAAI5F,UAAW,MAAO,QAASmkB,KAAI9iB,GACxD,MAAO1C,GAAMkoB,GAAiBxoB,KAAMgD,MAI1CP,EAAiBwB,EAAS4gB,GAC1BlY,GAAkB1I,EAAQ6gB,IAC1BnY,GAAkB1I,EAAQsD,KAG5B,GAAIkhB,IAA4B,QAASA,2BAA0Bne,GACjE,IAAK7C,EAAGS,aAAaoC,GAAS,CAC5B,KAAM,IAAIvC,WAAU,6BAQxB,IAAI2gB,KAEFroB,MAAO,QAASA,SACd,MAAOJ,GAAOwH,EAAGC,KAAM,KAAM7G,YAI/B0J,UAAW,QAASA,WAAU5G,EAAakE,GACzC,IAAKJ,EAAGW,cAAczE,GAAc,CAClC,KAAM,IAAIoE,WAAU,yCAEtB,GAAIqC,GAAYvJ,UAAUgG,OAAS,EAAIlD,EAAc9C,UAAU,EAC/D,KAAK4G,EAAGW,cAAcgC,GAAY,CAChC,KAAM,IAAIrC,WAAU,qCAEtB,MAAON,GAAG0C,UAAUxG,EAAakE,EAAMuC,EAAW,aAOpDue,eAAgB,QAASA,gBAAere,EAAQtH,GAC9CylB,GAA0Bne,EAC1B,IAAIhJ,EAAqB,CACvB,GAAIyY,GAAO5Y,OAAOwK,yBAAyBrB,EAAQtH,EAEnD,IAAI+W,IAASA,EAAKzX,aAAc,CAC9B,MAAO,QAKX,aAAcgI,GAAOtH,IAGvB4lB,UAAW,QAASA,WAAUte,GAC5Bme,GAA0Bne,EAC1B,OAAO,IAAIgI,IAAehI,EAAQ,QAGpCwb,IAAK,QAASA,KAAIxb,EAAQtH,GACxBylB,GAA0Bne,EAC1B,OAAOtH,KAAOsH,IAIlB,IAAInJ,OAAOsL,oBAAqB,CAC9BtL,OAAOoW,OAAOmR,IAMZG,QAAS,QAASA,SAAQve,GACxBme,GAA0Bne,EAC1B,IAAI3H,GAAOxB,OAAOsL,oBAAoBnC,EAEtC,IAAI7C,EAAGK,WAAW3G,OAAOkW,uBAAwB,CAC/CtS,EAAWpC,EAAMxB,OAAOkW,sBAAsB/M,IAGhD,MAAO3H,MAKb,GAAImmB,IAAwB,QAASC,2BAA0BpoB,GAC7D,OAAQG,EAAYH,GAGtB,IAAIQ,OAAOuW,kBAAmB,CAC5BvW,OAAOoW,OAAOmR,IACZjP,aAAc,QAASA,cAAanP,GAClCme,GAA0Bne,EAC1B,OAAOnJ,QAAOsY,aAAanP,IAE7BoN,kBAAmB,QAASA,mBAAkBpN,GAC5Cme,GAA0Bne,EAC1B,OAAOwe,IAAsB,WAC3B3nB,OAAOuW,kBAAkBpN,QAMjC,GAAIhJ,EAAqB,CACvB,GAAI0nB,IAAc,QAAS3nB,KAAIiJ,EAAQtH,EAAKiT,GAC1C,GAAI8D,GAAO5Y,OAAOwK,yBAAyBrB,EAAQtH,EAEnD,KAAK+W,EAAM,CACT,GAAIkP,GAAS9nB,OAAO0S,eAAevJ,EAEnC,IAAI2e,IAAW,KAAM,CACnB,MAAOrX,WAGT,MAAOoX,IAAYC,EAAQjmB,EAAKiT,GAGlC,GAAI,SAAW8D,GAAM,CACnB,MAAOA,GAAK3X,MAGd,GAAI2X,EAAK1Y,IAAK,CACZ,MAAOf,GAAMyZ,EAAK1Y,IAAK4U,GAGzB,MAAOrE,WAGT,IAAIsX,IAAc,QAASrd,KAAIvB,EAAQtH,EAAKZ,EAAO6T,GACjD,GAAI8D,GAAO5Y,OAAOwK,yBAAyBrB,EAAQtH,EAEnD,KAAK+W,EAAM,CACT,GAAIkP,GAAS9nB,OAAO0S,eAAevJ,EAEnC,IAAI2e,IAAW,KAAM,CACnB,MAAOC,IAAYD,EAAQjmB,EAAKZ,EAAO6T,GAGzC8D,GACE3X,UAAY,GACZI,SAAU,KACVD,WAAY,KACZD,aAAc,MAIlB,GAAI,SAAWyX,GAAM,CACnB,IAAKA,EAAKvX,SAAU,CAClB,MAAO,OAGT,IAAKiF,EAAGS,aAAa+N,GAAW,CAC9B,MAAO,OAGT,GAAIkT,GAAehoB,OAAOwK,yBAAyBsK,EAAUjT,EAE7D,IAAImmB,EAAc,CAChB,MAAO3hB,GAAQpG,eAAe6U,EAAUjT,GACtCZ,MAAOA,QAEJ,CACL,MAAOoF,GAAQpG,eAAe6U,EAAUjT,GACtCZ,MAAOA,EACPI,SAAU,KACVD,WAAY,KACZD,aAAc,QAKpB,GAAIyX,EAAKlO,IAAK,CACZvL,EAAMyZ,EAAKlO,IAAKoK,EAAU7T,EAC1B,OAAO,MAGT,MAAO,OAGTjB,QAAOoW,OAAOmR,IACZtnB,eAAgB,QAASA,gBAAekJ,EAAQ8e,EAAaC,GAC3DZ,GAA0Bne,EAC1B,OAAOwe,IAAsB,WAC3B3nB,OAAOC,eAAekJ,EAAQ8e,EAAaC,MAI/C1d,yBAA0B,QAASA,0BAAyBrB,EAAQ8e,GAClEX,GAA0Bne,EAC1B,OAAOnJ,QAAOwK,yBAAyBrB,EAAQ8e,IAIjD/nB,IAAK,QAASA,KAAIiJ,EAAQtH,GACxBylB,GAA0Bne,EAC1B,IAAI2L,GAAWpV,UAAUgG,OAAS,EAAIhG,UAAU,GAAKyJ,CAErD,OAAO0e,IAAY1e,EAAQtH,EAAKiT,IAGlCpK,IAAK,QAASA,KAAIvB,EAAQtH,EAAKZ,GAC7BqmB,GAA0Bne,EAC1B,IAAI2L,GAAWpV,UAAUgG,OAAS,EAAIhG,UAAU,GAAKyJ,CAErD,OAAO4e,IAAY5e,EAAQtH,EAAKZ,EAAO6T,MAK7C,GAAI9U,OAAO0S,eAAgB,CACzB,GAAIyV,IAA0BnoB,OAAO0S,cACrC6U,IAAa7U,eAAiB,QAASA,gBAAevJ,GACpDme,GAA0Bne,EAC1B,OAAOgf,IAAwBhf,IAInC,GAAInJ,OAAOmC,gBAAkBolB,GAAa7U,eAAgB,CACxD,GAAI0V,IAA8B,SAAUpnB,EAAQqnB,GAClD,GAAIhf,GAAQgf,CACZ,OAAOhf,EAAO,CACZ,GAAIrI,IAAWqI,EAAO,CACpB,MAAO,MAETA,EAAQke,GAAa7U,eAAerJ,GAEtC,MAAO,OAGTrJ,QAAOoW,OAAOmR,IAGZplB,eAAgB,QAASA,gBAAenB,EAAQqI,GAC9Cie,GAA0BtmB,EAC1B,IAAIqI,IAAU,OAAS/C,EAAGS,aAAasC,GAAQ,CAC7C,KAAM,IAAIzC,WAAU,mCAItB,GAAIyC,IAAUhD,EAAQqM,eAAe1R,GAAS,CAC5C,MAAO,MAIT,GAAIqF,EAAQiS,eAAiBjS,EAAQiS,aAAatX,GAAS,CACzD,MAAO,OAIT,GAAIonB,GAA4BpnB,EAAQqI,GAAQ,CAC9C,MAAO,OAGTrJ,OAAOmC,eAAenB,EAAQqI,EAE9B,OAAO,SAIb,GAAIif,IAAkC,SAAUzmB,EAAK0mB,GACnD,IAAKjiB,EAAGK,WAAW7D,EAAQuD,QAAQxE,IAAO,CACxC5B,EAAe6C,EAAQuD,QAASxE,EAAK0mB,OAChC,CACL,GAAIC,GAAoB3oB,EAAqB,WAC3CiD,EAAQuD,QAAQxE,GAAK,EACrBiB,GAAQuD,QAAQxE,GAAKgT,IACrB/R,GAAQuD,QAAQxE,GAAK,KACrB,OAAO,OAET,IAAI2mB,EAAmB,CACrB/c,EAAe3I,EAAQuD,QAASxE,EAAK0mB,KAI3CvoB,QAAOwB,KAAK+lB,IAAc9mB,QAAQ,SAAUoB,GAC1CymB,GAAgCzmB,EAAK0lB,GAAa1lB,KAEpD,IAAIzB,GAAsB0C,EAAQuD,QAAQqM,eAAepS,OAAS,iBAAkB,CAClF,GAAImoB,IAA0B3lB,EAAQuD,QAAQqM,cAC9CjH,GAAe3I,EAAQuD,QAAS,iBAAkB,QAASqM,gBAAevJ,GACxE,MAAOhK,GAAMspB,GAAyB3lB,EAAQuD,QAAS8C,KAG3D,GAAIrG,EAAQuD,QAAQlE,eAAgB,CAClC,GAAItC,EAAqB,WACvBiD,EAAQuD,QAAQlE,eAAe,KAC/B,OAAO,QACL,CACFsJ,EAAe3I,EAAQuD,QAAS,iBAAkBkhB,GAAaplB,iBAGnE,GAAIW,EAAQuD,QAAQpG,eAAgB,CAClC,IAAKJ,EAAqB,WACxB,GAAI6oB,IAAS5lB,EAAQuD,QAAQpG,eAAe,EAAG,QAAUgB,MAAO,GAEhE,IAAI0nB,SAAoB3oB,QAAOuW,oBAAsB,aAAezT,EAAQuD,QAAQpG,eAAeD,OAAOuW,sBAAuB,UACjI,OAAOmS,IAASC,IACd,CACFld,EAAe3I,EAAQuD,QAAS,iBAAkBkhB,GAAatnB,iBAGnE,GAAI6C,EAAQuD,QAAQ+C,UAAW,CAC7B,IAAKvJ,EAAqB,WACxB,GAAI2G,GAAI,QAASA,MACjB,OAAO1D,GAAQuD,QAAQ+C,UAAU,gBAAoB5C,YAAcA,KACjE,CACFiF,EAAe3I,EAAQuD,QAAS,YAAakhB,GAAane,YAI9D,GAAIlG,OAAO,GAAI0lB,MAAK/T,QAAU,eAAgB,CAC5C,GAAIgU,IAAeD,KAAKpoB,UAAU6C,QAClC,IAAIylB,IAAsB,QAASzlB,YACjC,GAAIkR,IAAW1V,IACf,IAAI0V,IAAYA,EAAS,CACvB,MAAO,eAET,MAAOpV,GAAM0pB,GAAchqB,MAE7B4M,GAAemd,KAAKpoB,UAAW,WAAYsoB,IAK7C,GAAIC,KACFC,OAAQ,QAASA,QAAO1oB,GAAQ,MAAOgG,GAAGqD,WAAW9K,KAAM,IAAK,OAAQyB,IACxE2oB,IAAK,QAASA,OAAQ,MAAO3iB,GAAGqD,WAAW9K,KAAM,MAAO,GAAI,KAC5DqqB,MAAO,QAASA,SAAU,MAAO5iB,GAAGqD,WAAW9K,KAAM,QAAS,GAAI,KAClEsqB,KAAM,QAASA,QAAS,MAAO7iB,GAAGqD,WAAW9K,KAAM,IAAK,GAAI,KAC5DuqB,MAAO,QAASA,SAAU,MAAO9iB,GAAGqD,WAAW9K,KAAM,KAAM,GAAI,KAC/DwqB,UAAW,QAASA,WAAUC,GAAS,MAAOhjB,GAAGqD,WAAW9K,KAAM,OAAQ,QAASyqB,IACnFC,SAAU,QAASA,UAAS9D,GAAQ,MAAOnf,GAAGqD,WAAW9K,KAAM,OAAQ,OAAQ4mB,IAC/E+D,QAAS,QAASA,WAAY,MAAOljB,GAAGqD,WAAW9K,KAAM,IAAK,GAAI,KAClE4qB,KAAM,QAASA,MAAKC,GAAO,MAAOpjB,GAAGqD,WAAW9K,KAAM,IAAK,OAAQ6qB,IACnEC,MAAO,QAASA,SAAU,MAAOrjB,GAAGqD,WAAW9K,KAAM,QAAS,GAAI,KAClE+qB,OAAQ,QAASA,UAAW,MAAOtjB,GAAGqD,WAAW9K,KAAM,SAAU,GAAI,KACrEgrB,IAAK,QAASA,OAAQ,MAAOvjB,GAAGqD,WAAW9K,KAAM,MAAO,GAAI,KAC5DirB,IAAK,QAASD,OAAQ,MAAOvjB,GAAGqD,WAAW9K,KAAM,MAAO,GAAI,KAE9D0B,GAASP,OAAOwB,KAAKunB,IAAkB,SAAUlnB,GAC/C,GAAIJ,GAASyB,OAAO1C,UAAUqB,EAC9B,IAAIkoB,GAAkB,KACtB,IAAIzjB,EAAGK,WAAWlF,GAAS,CACzB,GAAIuoB,GAAS7qB,EAAMsC,EAAQ,GAAI,MAC/B,IAAIwoB,GAAc3mB,KAAY0mB,EAAOE,MAAM,OAAOxkB,MAClDqkB,GAAkBC,IAAWA,EAAOG,eAAiBF,EAAc,MAC9D,CACLF,EAAkB,KAEpB,GAAIA,EAAiB,CACnBte,EAAevI,OAAO1C,UAAWqB,EAAKknB,GAAgBlnB,MAI1D,IAAIuoB,IAA0B,WAE5B,IAAKxkB,EAAKK,OAAOjB,EAAOmB,UAAW,CAAE,MAAO,OAC5C,GAAIkkB,SAAmBC,QAAS,gBAAmBA,MAAKD,YAAc,WAAaC,KAAKD,UAAY,IACpG,KAAKA,EAAW,CAAE,MAAO,OACzB,SAAWA,GAAUrlB,OAAc,YAAa,CAAE,MAAO,MACzD,GAAIqlB,GAAWrlB,QAAe,SAAU,CAAE,MAAO,MACjD,GAAIsE,IAAQ3B,EAAG3C,IACfsE,GAAItE,KAAY,IAChB,IAAIqlB,EAAU/gB,KAAS,KAAM,CAAE,MAAO,MACtC,MAAO,SAET,IAAIihB,IAAmC1qB,EAAqB,WAE1D,IAAK+F,EAAKK,OAAOjB,EAAOmB,UAAW,CAAE,MAAO,MAC5C,MAAOmkB,MAAKD,UAAUrqB,OAAOgF,QAAe,MAAQslB,KAAKD,WAAWrqB,OAAOgF,SAAgB,QAE7F,IAAIolB,KAA2BG,GAAkC,CAC/D,GAAIC,IAAgBF,KAAKD,SACzB5e,GAAe6e,KAAM,YAAa,QAASD,WAAUppB,GACnD,SAAWA,KAAU,SAAU,CAAE,OACjC,GAAIwpB,EACJ,IAAI/qB,UAAUgG,OAAS,EAAG,CACxB+kB,EAAW/qB,UAAU,GAEvB,GAAIgH,IAAQzF,EACZ,KAAK7B,EAAQqrB,GAAW,CACtB,GAAIC,GAAYpkB,EAAGK,WAAW8jB,GAAYA,EAAW,IACrD,IAAIE,GAAkB,SAAU9oB,EAAKwV,GACnC,GAAIuT,GAAcH,EAAWtrB,EAAMsrB,EAAU5rB,KAAMgD,EAAKwV,GAAOA,CAC/D,UAAWuT,KAAgB,SAAU,CACnC,GAAIhlB,EAAKK,OAAO2kB,GAAc,CAC5B,MAAO9U,QAAa8U,OACf,CACL,MAAOA,KAIblkB,GAAK/C,KAAKgnB,OACL,CAELjkB,EAAK/C,KAAK8mB,GAEZ,GAAI/qB,UAAUgG,OAAS,EAAG,CACxBgB,EAAK/C,KAAKjE,UAAU,IAEtB,MAAO8qB,IAActrB,MAAML,KAAM6H,KAIrC,MAAO5D"} \ No newline at end of file diff --git a/js/vendor/es6-shim/es6-shim.min.js b/js/vendor/es6-shim/es6-shim.min.js index 77cded1a7..066eb435e 100644 --- a/js/vendor/es6-shim/es6-shim.min.js +++ b/js/vendor/es6-shim/es6-shim.min.js @@ -2,11 +2,11 @@ * https://github.com/paulmillr/es6-shim * @license es6-shim Copyright 2013-2015 by Paul Miller (http://paulmillr.com) * and contributors, MIT License - * es6-shim: v0.33.8 - * see https://github.com/paulmillr/es6-shim/blob/0.33.8/LICENSE + * es6-shim: v0.33.12 + * see https://github.com/paulmillr/es6-shim/blob/0.33.12/LICENSE * Details and documentation: * https://github.com/paulmillr/es6-shim/ */ -(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var o=function(e){try{e();return false}catch(t){return true}};var i=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var a=n(o);var u=function(){return!o(function(){Object.defineProperty({},"x",{get:function(){}})})};var f=!!Object.defineProperty&&u();var s=function foo(){}.name==="foo";var c=Function.call.bind(Array.prototype.forEach);var l=Function.call.bind(Array.prototype.reduce);var p=Function.call.bind(Array.prototype.filter);var v=Function.call.bind(Array.prototype.every);var y=function createDataProperty(e,t,r){if(f){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var h=function createDataPropertyOrThrow(e,t,r){y(e,t,r);if(!te.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var b=function(e,t,r,n){if(!n&&t in e){return}if(f){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var g=function(e,t){c(Object.keys(t),function(r){var n=t[r];b(e,r,n,false)})};var d=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var n=new r;if(typeof t!=="undefined"){Object.keys(t).forEach(function(e){W.defineByDescriptor(n,e,t[e])})}return n};var m=function(e,t){if(!Object.setPrototypeOf){return false}return i(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=d(e.prototype,{constructor:{value:r}});return t(r)})};var O=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var w=O();var j=w.isFinite;var S=function(){return this===null}.call(null);var T=Function.call.bind(String.prototype.indexOf);var I=Function.call.bind(Object.prototype.toString);var E=Function.call.bind(Array.prototype.concat);var M=Function.call.bind(String.prototype.slice);var P=Function.call.bind(Array.prototype.push);var x=Function.apply.bind(Array.prototype.push);var N=Function.call.bind(Array.prototype.shift);var C=Math.max;var A=Math.min;var k=Math.floor;var _=Math.abs;var R=Math.log;var F=Math.sqrt;var D=Function.call.bind(Object.prototype.hasOwnProperty);var z;var L=function(){};var q=w.Symbol||{};var G=q.species||"@@species";var W={getter:function(e,t,r){if(!f){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!f){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(f){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(f){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&te.IsCallable(t.toString)){b(e,"toString",t.toString.bind(t),true)}}};var H=function wrapConstructor(e,t,r){W.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(f){c(Object.getOwnPropertyNames(e),function(n){if(n in L||r[n]){return}W.proxy(e,n,t)})}else{c(Object.keys(e),function(n){if(n in L||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;W.redefine(e.prototype,"constructor",t)};var B=function(){return this};var V=function(e){if(f&&!D(e,G)){W.getter(e,G,B)}};var $={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},object:function(e){return e!==null&&typeof e==="object"},string:function(e){return I(e)==="[object String]"},regex:function(e){return I(e)==="[object RegExp]"},symbol:function(e){return typeof w.Symbol==="function"&&typeof e==="symbol"}};var J=Number.isNaN||function isNaN(e){return e!==e};var U=Number.isFinite||function isFinite(e){return typeof e==="number"&&j(e)};var K=function overrideNative(e,t,r){var n=e[t];b(e,t,r,true);W.preserveToString(e[t],n)};var X=$.symbol(q.iterator)?q.iterator:"_es6-shim iterator_";if(w.Set&&typeof(new w.Set)["@@iterator"]==="function"){X="@@iterator"}var Z=function(e,t){var r=t||function iterator(){return this};b(e,X,r);if(!e[X]&&$.symbol(X)){e[X]=r}};var Q=function isArguments(e){return I(e)==="[object Arguments]"};var Y=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&I(e)!=="[object Array]"&&I(e.callee)==="[object Function]"};var ee=Q(arguments)?Q:Y;var te={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!te.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}},TypeIsObject:function(e){return e!=null&&Object(e)===e},ToObject:function(e,t){te.RequireObjectCoercible(e,t);return Object(e)},IsCallable:function(e){return typeof e==="function"&&I(e)==="[object Function]"},IsConstructor:function(e){return te.IsCallable(e)},ToInt32:function(e){return te.ToNumber(e)>>0},ToUint32:function(e){return te.ToNumber(e)>>>0},ToNumber:function(e){if(I(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=te.ToNumber(e);if(J(t)){return 0}if(t===0||!U(t)){return t}return(t>0?1:-1)*k(_(t))},ToLength:function(e){var t=te.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return J(e)&&J(t)},SameValueZero:function(e,t){return e===t||J(e)&&J(t)},IsIterable:function(e){return te.TypeIsObject(e)&&(typeof e[X]!=="undefined"||ee(e))},GetIterator:function(e){if(ee(e)){return new z(e,"value")}var r=te.GetMethod(e,X);if(!te.IsCallable(r)){throw new TypeError("value is not an iterable")}var n=t(r,e);if(!te.TypeIsObject(n)){throw new TypeError("bad iterator")}return n},GetMethod:function(e,t){var r=te.ToObject(e)[t];if(r===void 0||r===null){return void 0}if(!te.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,r){var n=te.GetMethod(e,"return");if(n===void 0){return}var o,i;try{o=t(n,e)}catch(a){i=a}if(r){return}if(i){throw i}if(!te.TypeIsObject(o)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!te.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=te.IteratorNext(e);var r=te.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){if(r===void 0){r=e}if(!n){return gr.construct(e,t,r)}var o=r.prototype;if(!te.TypeIsObject(o)){o=Object.prototype}var i=d(o);var a=te.Call(e,i,t);return te.TypeIsObject(a)?a:i},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!te.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[G];if(n===void 0||n===null){return t}if(!te.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=String(e);var i="<"+t;if(r!==""){var a=String(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+""}};var re=function(e,t,r,n){if(!te.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!te.TypeIsObject(o)){o=r}e=d(o);for(var i in n){if(D(n,i)){var a=n[i];b(e,i,a,true)}}return e};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var ne=String.fromCodePoint;K(String,"fromCodePoint",function fromCodePoint(t){return e(ne,this,arguments)})}var oe={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){P(t,String.fromCharCode(r))}else{r-=65536;P(t,String.fromCharCode((r>>10)+55296));P(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=te.ToObject(e,"bad callSite");var r=te.ToObject(t.raw,"bad raw value");var n=r.length;var o=te.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a=o){break}f=a+1=ae){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return ie(t,r)},startsWith:function startsWith(e){te.RequireObjectCoercible(this);var t=String(this);if($.regex(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=String(e);var n=arguments.length>1?arguments[1]:void 0;var o=C(te.ToInteger(n),0);return M(t,o,o+r.length)===r},endsWith:function endsWith(e){te.RequireObjectCoercible(this);var t=String(this);if($.regex(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=String(e);var n=t.length;var o=arguments.length>1?arguments[1]:void 0;var i=typeof o==="undefined"?n:te.ToInteger(o);var a=A(C(i,0),n);return M(t,a-r.length,a)===r},includes:function includes(e){if($.regex(e)){throw new TypeError('"includes" does not accept a RegExp')}var t;if(arguments.length>1){t=arguments[1]}return T(this,e,t)!==-1},codePointAt:function codePointAt(e){te.RequireObjectCoercible(this);var t=String(this);var r=te.ToInteger(e);var n=t.length;if(r>=0&&r56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){K(String.prototype,"includes",ue.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var fe=o(function(){"/a/".startsWith(/a/)});var se="abc".startsWith("a",Infinity)===false;if(!fe||!se){K(String.prototype,"startsWith",ue.startsWith);K(String.prototype,"endsWith",ue.endsWith)}}g(String.prototype,ue);var ce="\x85".trim().length!==1;if(ce){delete String.prototype.trim;var le=[" \n \f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var pe=new RegExp("(^["+le+"]+)|(["+le+"]+$)","g");g(String.prototype,{trim:function trim(){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}return String(this).replace(pe,"")}})}var ve=function(e){te.RequireObjectCoercible(e);this._s=String(e);this._i=0};ve.prototype.next=function(){var e=this._s,t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return{value:void 0,done:true}}var r=e.charCodeAt(t),n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return{value:e.substr(t,o),done:false}};Z(ve.prototype);Z(String.prototype,function(){return new ve(this)});var ye={from:function from(e){var r=this;var n=arguments.length>1?arguments[1]:void 0;var o,i;if(n===void 0){o=false}else{if(!te.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}i=arguments.length>2?arguments[2]:void 0;o=true}var a=ee(e)||te.GetMethod(e,X);var u,f,s;if(a!==void 0){f=te.IsConstructor(r)?Object(new r):[];var c=te.GetIterator(e);var l,p;s=0;while(true){l=te.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=i!==undefined?t(n,i,p,s):n(p,s)}f[s]=p}catch(v){te.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=te.ToObject(e);u=te.ToLength(y.length);f=te.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s0){e=N(t);if(!(e in this.object)){continue}if(this.kind==="key"){return he(e)}else if(this.kind==="value"){return he(this.object[e])}else{return he([e,this.object[e]])}}return he()}});Z(be.prototype);var de=Array.of===ye.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!de){K(Array,"of",ye.of)}var me={copyWithin:function copyWithin(e,t){var r=arguments[2];var n=te.ToObject(this);var o=te.ToLength(n.length);var i=te.ToInteger(e);var a=te.ToInteger(t);var u=i<0?C(o+i,0):A(i,o);var f=a<0?C(o+a,0):A(a,o);r=typeof r==="undefined"?o:te.ToInteger(r);var s=r<0?C(o+r,0):A(r,o);var c=A(s-f,o-u);var l=1;if(f0){if(D(n,f)){n[u]=n[f]}else{delete n[f]}f+=l;u+=l;c-=1}return n},fill:function fill(e){var t=arguments.length>1?arguments[1]:void 0;var r=arguments.length>2?arguments[2]:void 0;var n=te.ToObject(this);var o=te.ToLength(n.length);t=te.ToInteger(typeof t==="undefined"?0:t);r=te.ToInteger(typeof r==="undefined"?o:r);var i=t<0?C(o+t,0):A(t,o);var a=r<0?o+r:r;for(var u=i;u1?arguments[1]:null;for(var i=0,a;i1?arguments[1]:null;for(var i=0;i0&&typeof arguments[1]!=="undefined"){return e(Te,this,arguments)}else{return t(Te,this,r)}})}var Ie=function(e,r){var n={length:-1};n[r?(-1>>>0)-1:0]=true;return i(function(){t(e,n,function(){throw new RangeError("should not reach here")},[])})};if(!Ie(Array.prototype.forEach)){var Ee=Array.prototype.forEach;K(Array.prototype,"forEach",function forEach(t){return e(Ee,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.map)){var Me=Array.prototype.map;K(Array.prototype,"map",function map(t){return e(Me,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.filter)){var Pe=Array.prototype.filter;K(Array.prototype,"filter",function filter(t){return e(Pe,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.some)){var xe=Array.prototype.some;K(Array.prototype,"some",function some(t){return e(xe,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.every)){var Ne=Array.prototype.every;K(Array.prototype,"every",function every(t){return e(Ne,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.reduce)){var Ce=Array.prototype.reduce;K(Array.prototype,"reduce",function reduce(t){return e(Ce,this.length>=0?this:[],arguments)},true)}if(!Ie(Array.prototype.reduceRight,true)){var Ae=Array.prototype.reduceRight;K(Array.prototype,"reduceRight",function reduceRight(t){return e(Ae,this.length>=0?this:[],arguments)},true)}if(Number("0o10")!==8||Number("0b10")!==2){var ke=Number;var _e=/^0b/i;var Re=/^0o/i;var Fe=_e.test.bind(_e);var De=Re.test.bind(Re);var ze=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if($.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if($.primitive(t)){return t}}throw new TypeError("No default value")};var Le=function(){return function Number(e){var t=$.primitive(e)?e:ze(e,"number");if(typeof t==="string"){if(Fe(t)){t=parseInt(M(t,2),2)}else if(De(t)){t=parseInt(M(t,2),8)}}var r=this;var n=i(function(){Number.prototype.valueOf.call(r);return true});if(r instanceof Number&&!n){return new ke(t)}return ke(t)}}();H(ke,Le,{});Number=Le;W.redefine(w,"Number",Le)}var qe=Math.pow(2,53)-1;g(Number,{MAX_SAFE_INTEGER:qe,MIN_SAFE_INTEGER:-qe,EPSILON:2.220446049250313e-16,parseInt:w.parseInt,parseFloat:w.parseFloat,isFinite:U,isInteger:function isInteger(e){return U(e)&&te.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&_(e)<=Number.MAX_SAFE_INTEGER},isNaN:J});b(Number,"parseInt",w.parseInt,Number.parseInt!==w.parseInt);if(![,1].find(function(e,t){return t===0})){K(Array.prototype,"find",me.find)}if([,1].findIndex(function(e,t){return t===0})!==0){K(Array.prototype,"findIndex",me.findIndex)}var Ge=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var We=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*R((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0,n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=Math.exp(R(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var r=Number(e);var n=te.ToUint32(r);if(n===0){return 32}return It?t(It,n):31-k(R(n+.5)*Math.LOG2E)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(Number.isNaN(t)){return NaN}if(!j(t)){return Infinity}if(t<0){t=-t}if(t>21){return Math.exp(t)/2}return(Math.exp(t)+Math.exp(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!j(t)||t===0){return t}if(_(t)>.5){return Math.exp(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o0?i/n*(i/n):i}}return n===Infinity?Infinity:n*F(r)},log2:function log2(e){return R(e)*Math.LOG2E},log10:function log10(e){return R(e)*Math.LOG10E},log1p:function log1p(e){var t=Number(e);if(t<-1||Number.isNaN(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(R(1+t)/(1+t-1))},sign:function sign(e){var t=Number(e);if(t===0){return t}if(Number.isNaN(t)){return t}return t<0?-1:1},sinh:function sinh(e){var t=Number(e);if(!j(t)||t===0){return t}if(_(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(Math.exp(t-1)-Math.exp(-t-1))*Math.E/2},tanh:function tanh(e){var t=Number(e);if(Number.isNaN(t)||t===0){return t}if(t===Infinity){return 1}if(t===-Infinity){return-1}var r=Math.expm1(t);var n=Math.expm1(-t);if(r===Infinity){return 1}if(n===Infinity){return-1}return(r-n)/(Math.exp(t)+Math.exp(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-k(-t):k(t)},imul:function imul(e,t){var r=te.ToUint32(e);var n=te.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||J(t)){return t}var r=Math.sign(t);var n=_(t);if(nSt||J(i)){return r*Infinity}return r*i}};g(Math,Et);b(Math,"log1p",Et.log1p,Math.log1p(-1e-17)!==-1e-17);b(Math,"asinh",Et.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));b(Math,"tanh",Et.tanh,Math.tanh(-2e-17)!==-2e-17);b(Math,"acosh",Et.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);b(Math,"cbrt",Et.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);b(Math,"sinh",Et.sinh,Math.sinh(-2e-17)!==-2e-17);var Mt=Math.expm1(10);b(Math,"expm1",Et.expm1,Mt>22025.465794806718||Mt<22025.465794806718);var Pt=Math.round;var xt=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Nt=Ot+1;var Ct=2*Ot-1;var At=[Nt,Ct].every(function(e){return Math.round(e)===e});b(Math,"round",function round(e){var t=k(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!xt||!At);W.preserveToString(Math.round,Pt);var kt=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=Et.imul;W.preserveToString(Math.imul,kt)}if(Math.imul.length!==2){K(Math,"imul",function imul(t,r){return e(kt,Math,arguments)})}var _t=function(){var e=w.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}te.IsPromise=function(e){if(!te.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!te.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.promise=new e(r);if(!(te.IsCallable(t.resolve)&&te.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&te.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){P(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=w.Promise;return e&&e.resolve&&function(t){return e.resolve().then(t)}};var i=te.IsCallable(w.setImmediate)?w.setImmediate.bind(w):typeof process==="object"&&process.nextTick?process.nextTick:o()||(te.IsCallable(n)?n():function(t){e(t,0)});var a=1;var u=2;var f=3;var s=4;var l=5;var p=function(e,t){var r=e.capabilities;var n=e.handler;var o,i=false,f;if(n===a){o=t}else if(n===u){o=t;i=true}else{try{o=n(t)}catch(s){o=s;i=true}}f=i?r.reject:r.resolve;f(o)};var v=function(e,t){c(e,function(e){i(function(){p(e,t)})})};var y=function(e,t){var r=e._promise;var n=r.fulfillReactions;r.result=t;r.fulfillReactions=void 0;r.rejectReactions=void 0;r.state=s;v(n,t)};var h=function(e,t){var r=e._promise;var n=r.rejectReactions;r.result=t;r.fulfillReactions=void 0;r.rejectReactions=void 0;r.state=l;v(n,t)};var b=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return h(e,new TypeError("Self resolution"))}if(!te.TypeIsObject(r)){return y(e,r)}try{n=r.then}catch(o){return h(e,o)}if(!te.IsCallable(n)){return y(e,r)}i(function(){d(e,r,n)})};var n=function(r){if(t){return}t=true;return h(e,r)};return{resolve:r,reject:n}};var d=function(e,r,n){var o=b(e);var i=o.resolve;var a=o.reject;try{t(n,r,i,a)}catch(u){a(u)}};var m=function(e){if(!te.TypeIsObject(e)){throw new TypeError("Promise is not object")}var t=e[G];if(t!==void 0&&t!==null){return t}return e};var O=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!te.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=re(this,e,j,{_promise:{result:void 0,state:f,fulfillReactions:[],rejectReactions:[]}});var n=b(r);var o=n.reject;try{t(n.resolve,o)}catch(i){o(i)}return r};return e}();var j=O.prototype;var S=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var T=function(e,t,r){var n=e.iterator;var o=[],i={count:1},a,u;var f=0;while(true){try{a=te.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(s){e.done=true;throw s}o[f]=void 0;var c=t.resolve(u);var l=S(f,o,r,i);i.count++;c.then(l,r.reject);f+=1}if(--i.count===0){var p=r.resolve;p(o)}return r.promise};var I=function(e,t,r){var n=e.iterator,o,i,a;while(true){try{o=te.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(u){e.done=true;throw u}a=t.resolve(i);a.then(r.resolve,r.reject)}return r.promise};g(O,{all:function all(e){var t=m(this);var n=new r(t);var o,i;try{o=te.GetIterator(e);i={iterator:o,done:false};return T(i,t,n)}catch(a){if(i&&!i.done){try{te.IteratorClose(o,true)}catch(u){a=u}}var f=n.reject;f(a);return n.promise}},race:function race(e){var t=m(this);var n=new r(t);var o,i;try{o=te.GetIterator(e);i={iterator:o,done:false};return I(i,t,n)}catch(a){if(i&&!i.done){try{te.IteratorClose(o,true)}catch(u){a=u}}var f=n.reject;f(a);return n.promise}},reject:function reject(e){var t=this;var n=new r(t);var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(te.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});g(j,{"catch":function(e){return this.then(void 0,e)},then:function then(e,t){var n=this;if(!te.IsPromise(n)){throw new TypeError("not a promise"); -}var o=te.SpeciesConstructor(n,O);var c=new r(o);if(!te.IsCallable(e)){e=a}if(!te.IsCallable(t)){t=u}var v={capabilities:c,handler:e};var y={capabilities:c,handler:t};var h=n._promise,b;if(h.state===f){P(h.fulfillReactions,v);P(h.rejectReactions,y)}else if(h.state===s){b=h.result;i(function(){p(v,b)})}else if(h.state===l){b=h.result;i(function(){p(y,b)})}else{throw new TypeError("unexpected Promise state")}return c.promise}});return O}();if(w.Promise){delete w.Promise.accept;delete w.Promise.defer;delete w.Promise.prototype.chain}if(typeof _t==="function"){g(w,{Promise:_t});var Rt=m(w.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var Ft=!o(function(){w.Promise.reject(42).then(null,5).then(null,L)});var Dt=o(function(){w.Promise.call(3,L)});var zt=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);return t===r}(w.Promise);if(!Rt||!Ft||!Dt||zt){Promise=_t;K(w,"Promise",_t)}V(Promise)}var Lt=function(e){var t=Object.keys(l(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var qt=Lt(["z","a","bb"]);var Gt=Lt(["z",1,"a","3",2]);if(f){var Wt=function fastkey(e){if(!qt){return null}var t=typeof e;if(t==="undefined"||e===null){return"^"+String(e)}else if(t==="string"){return"$"+e}else if(t==="number"){if(!Gt){return"n"+e}return e}else if(t==="boolean"){return"b"+e}return null};var Ht=function emptyObject(){return Object.create?Object.create(null):{}};var Bt=function addIterableToMap(e,n,o){if(r(o)||$.string(o)){c(o,function(e){n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!te.IsCallable(a)){throw new TypeError("bad map")}i=te.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=te.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!te.TypeIsObject(f)){throw new TypeError("expected iterable of pairs")}t(a,n,f[0],f[1])}catch(s){te.IteratorClose(i,true);throw s}}}}};var Vt=function addIterableToSet(e,n,o){if(r(o)||$.string(o)){c(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!te.IsCallable(a)){throw new TypeError("bad set")}i=te.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=te.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){te.IteratorClose(i,true);throw s}}}}};var $t={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!te.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+String(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i,t=this.kind,r=this.head,n;if(typeof this.i==="undefined"){return{value:void 0,done:true}}while(e.isRemoved()&&e!==r){e=e.prev}while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return{value:n,done:false}}}this.i=void 0;return{value:void 0,done:true}}};Z(i.prototype);var a=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=re(this,Map,u,{_es6map:true,_head:null,_storage:Ht(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Bt(Map,e,arguments[0])}return e};var u=a.prototype;W.getter(u,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});g(u,{get:function get(e){o(this,"get");var t=Wt(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head,i=n;while((i=i.next)!==n){if(te.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Wt(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head,n=r;while((n=n.next)!==r){if(te.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head,i=n,a;var u=Wt(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(te.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(te.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head,n=r;var i=Wt(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(te.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Ht();var t=this._head,r=t,n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});Z(u,u.entries);return a}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!te.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+String(t))}};var n=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=re(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Ht()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){Vt(Set,e,arguments[0])}return e};var o=n.prototype;var i=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new $t.Map;c(Object.keys(e._storage),function(e){if(e==="^null"){e=null}else if(e==="^undefined"){e=void 0}else{var r=e.charAt(0);if(r==="$"){e=M(e,1)}else if(r==="n"){e=+M(e,1)}else if(r==="b"){e=e==="btrue"}else{e=+e}}t.set(e,e)});e._storage=null}};W.getter(n.prototype,"size",function(){r(this,"size");i(this);return this["[[SetData]]"].size});g(n.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Wt(e))!==null){return!!this._storage[t]}i(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Wt(e))!==null){this._storage[t]=true;return this}i(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Wt(e))!==null){var n=D(this._storage,t);return delete this._storage[t]&&n}i(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Ht()}else{this["[[SetData]]"].clear()}},values:function values(){r(this,"values");i(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");i(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;i(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});b(n.prototype,"keys",n.prototype.values,true);Z(n.prototype,n.prototype.values);return n}()};if(w.Map||w.Set){var Jt=i(function(){return new Map([[1,2]]).get(1)===2});if(!Jt){var Ut=w.Map;w.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Ut;if(arguments.length>0){Bt(Map,e,arguments[0])}Object.setPrototypeOf(e,w.Map.prototype);b(e,"constructor",Map,true);return e};w.Map.prototype=d(Ut.prototype);W.preserveToString(w.Map,Ut)}var Kt=new Map;var Xt=function(e){e["delete"](0);e["delete"](-0);e.set(0,3);e.get(-0,4);return e.get(0)===3&&e.get(-0)===4}(Kt);var Zt=Kt.set(1,2)===Kt;if(!Xt||!Zt){var Qt=Map.prototype.set;K(Map.prototype,"set",function set(e,r){t(Qt,this,e===0?0:e,r);return this})}if(!Xt){var Yt=Map.prototype.get;var er=Map.prototype.has;g(Map.prototype,{get:function get(e){return t(Yt,this,e===0?0:e)},has:function has(e){return t(er,this,e===0?0:e)}},true);W.preserveToString(Map.prototype.get,Yt);W.preserveToString(Map.prototype.has,er)}var tr=new Set;var rr=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(tr);var nr=tr.add(1)===tr;if(!rr||!nr){var or=Set.prototype.add;Set.prototype.add=function add(e){t(or,this,e===0?0:e);return this};W.preserveToString(Set.prototype.add,or)}if(!rr){var ir=Set.prototype.has;Set.prototype.has=function has(e){return t(ir,this,e===0?0:e)};W.preserveToString(Set.prototype.has,ir);var ar=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(ar,this,e===0?0:e)};W.preserveToString(Set.prototype["delete"],ar)}var ur=m(w.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var fr=Object.setPrototypeOf&&!ur;var sr=function(){try{return!(w.Map()instanceof w.Map)}catch(e){return e instanceof TypeError}}();if(w.Map.length!==0||fr||!sr){var cr=w.Map;w.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new cr;if(arguments.length>0){Bt(Map,e,arguments[0])}Object.setPrototypeOf(e,Map.prototype);b(e,"constructor",Map,true);return e};w.Map.prototype=cr.prototype;W.preserveToString(w.Map,cr)}var lr=m(w.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var pr=Object.setPrototypeOf&&!lr;var vr=function(){try{return!(w.Set()instanceof w.Set)}catch(e){return e instanceof TypeError}}();if(w.Set.length!==0||pr||!vr){var yr=w.Set;w.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new yr;if(arguments.length>0){Vt(Set,e,arguments[0])}Object.setPrototypeOf(e,Set.prototype);b(e,"constructor",Set,true);return e};w.Set.prototype=yr.prototype;W.preserveToString(w.Set,yr)}var hr=!i(function(){return(new Map).keys().next().done});if(typeof w.Map.prototype.clear!=="function"||(new w.Set).size!==0||(new w.Map).size!==0||typeof w.Map.prototype.keys!=="function"||typeof w.Set.prototype.keys!=="function"||typeof w.Map.prototype.forEach!=="function"||typeof w.Set.prototype.forEach!=="function"||a(w.Map)||a(w.Set)||typeof(new w.Map).keys().next!=="function"||hr||!ur){delete w.Map;delete w.Set;g(w,{Map:$t.Map,Set:$t.Set},true)}if(w.Set.prototype.keys!==w.Set.prototype.values){b(w.Set.prototype,"keys",w.Set.prototype.values,true)}Z(Object.getPrototypeOf((new w.Map).keys()));Z(Object.getPrototypeOf((new w.Set).keys()));if(s&&w.Set.prototype.has.name!=="has"){var br=w.Set.prototype.has;K(w.Set.prototype,"has",function has(e){return t(br,this,e)})}}g(w,$t);V(w.Map);V(w.Set)}if(!w.Reflect){b(w,"Reflect",{})}var gr=w.Reflect;var dr=function throwUnlessTargetIsObject(e){if(!te.TypeIsObject(e)){throw new TypeError("target must be an object")}};var mr={apply:function apply(){return e(te.Call,null,arguments)},construct:function construct(e,t){if(!te.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length<3?e:arguments[2];if(!te.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return te.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){dr(e);if(f){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},enumerate:function enumerate(e){dr(e);return new be(e,"key")},has:function has(e,t){dr(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(mr,{ownKeys:function ownKeys(e){dr(e);var t=Object.getOwnPropertyNames(e);if(te.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var Or=function ConvertExceptionToBoolean(e){return!o(e)};if(Object.preventExtensions){Object.assign(mr,{isExtensible:function isExtensible(e){dr(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){dr(e);return Or(function(){Object.preventExtensions(e)})}})}if(f){var wr=function get(e,r,n){var o=Object.getOwnPropertyDescriptor(e,r);if(!o){var i=Object.getPrototypeOf(e);if(i===null){return undefined}return wr(i,r,n)}if("value"in o){return o.value}if(o.get){return t(o.get,n)}return undefined};var jr=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return jr(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!te.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return gr.defineProperty(o,r,{value:n})}else{return gr.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(mr,{defineProperty:function defineProperty(e,t,r){dr(e);return Or(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){dr(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){dr(e);var r=arguments.length>2?arguments[2]:e;return wr(e,t,r)},set:function set(e,t,r){dr(e);var n=arguments.length>3?arguments[3]:e;return jr(e,t,r,n)}})}if(Object.getPrototypeOf){var Sr=Object.getPrototypeOf;mr.getPrototypeOf=function getPrototypeOf(e){dr(e);return Sr(e)}}if(Object.setPrototypeOf&&mr.getPrototypeOf){var Tr=function(e,t){while(t){if(e===t){return true}t=mr.getPrototypeOf(t)}return false};Object.assign(mr,{setPrototypeOf:function setPrototypeOf(e,t){dr(e);if(t!==null&&!te.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===gr.getPrototypeOf(e)){return true}if(gr.isExtensible&&!gr.isExtensible(e)){return false}if(Tr(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Ir=function(e,t){if(!te.IsCallable(w.Reflect[e])){b(w.Reflect,e,t)}else{var r=i(function(){w.Reflect[e](1);w.Reflect[e](NaN);w.Reflect[e](true);return true});if(r){K(w.Reflect,e,t)}}};Object.keys(mr).forEach(function(e){Ir(e,mr[e])});if(s&&w.Reflect.getPrototypeOf.name!=="getPrototypeOf"){var Er=w.Reflect.getPrototypeOf;K(w.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Er,w.Reflect,e)})}if(w.Reflect.setPrototypeOf){if(i(function(){w.Reflect.setPrototypeOf(1,{});return true})){K(w.Reflect,"setPrototypeOf",mr.setPrototypeOf)}}if(w.Reflect.defineProperty){if(!i(function(){var e=!w.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!w.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){K(w.Reflect,"defineProperty",mr.defineProperty)}}if(w.Reflect.construct){if(!i(function(){var e=function F(){};return w.Reflect.construct(function(){},[],e)instanceof e})){K(w.Reflect,"construct",mr.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Mr=Date.prototype.toString;var Pr=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return t(Mr,this)};K(Date.prototype,"toString",Pr)}var xr={anchor:function anchor(e){return te.CreateHTML(this,"a","name",e)},big:function big(){return te.CreateHTML(this,"big","","")},blink:function blink(){return te.CreateHTML(this,"blink","","")},bold:function bold(){return te.CreateHTML(this,"b","","")},fixed:function fixed(){return te.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return te.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return te.CreateHTML(this,"font","size",e)},italics:function italics(){return te.CreateHTML(this,"i","","")},link:function link(e){return te.CreateHTML(this,"a","href",e)},small:function small(){return te.CreateHTML(this,"small","","")},strike:function strike(){return te.CreateHTML(this,"strike","","")},sub:function sub(){return te.CreateHTML(this,"sub","","")},sup:function sub(){return te.CreateHTML(this,"sup","","")}};c(Object.keys(xr),function(e){var r=String.prototype[e];var n=false;if(te.IsCallable(r)){var o=t(r,"",' " ');var i=E([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){K(String.prototype,e,xr[e])}});var Nr=function(){if(!$.symbol(q.iterator)){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(q())!=="undefined"){return true}if(e([q()])!=="[null]"){return true}var t={a:q()};t[q()]=true;if(e(t)!=="{}"){return true}return false}();var Cr=i(function(){if(!$.symbol(q.iterator)){return true}return JSON.stringify(Object(q()))==="{}"&&JSON.stringify([Object(q())])==="[{}]"});if(Nr||!Cr){var Ar=JSON.stringify;K(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=te.IsCallable(n)?n:null;var a=function(e,r){var o=n?t(n,this,e,r):r;if(typeof o!=="symbol"){if($.symbol(o)){return He({})(o)}else{return o}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return Ar.apply(this,o)})}return w}); +(function(e,t){if(typeof define==="function"&&define.amd){define(t)}else if(typeof exports==="object"){module.exports=t()}else{e.returnExports=t()}})(this,function(){"use strict";var e=Function.call.bind(Function.apply);var t=Function.call.bind(Function.call);var r=Array.isArray;var n=function notThunker(t){return function notThunk(){return!e(t,this,arguments)}};var o=function(e){try{e();return false}catch(t){return true}};var i=function valueOrFalseIfThrows(e){try{return e()}catch(t){return false}};var a=n(o);var u=function(){return!o(function(){Object.defineProperty({},"x",{get:function(){}})})};var s=!!Object.defineProperty&&u();var f=function foo(){}.name==="foo";var c=Function.call.bind(Array.prototype.forEach);var l=Function.call.bind(Array.prototype.reduce);var p=Function.call.bind(Array.prototype.filter);var v=Function.call.bind(Array.prototype.some);var y=function(e,t,r,n){if(!n&&t in e){return}if(s){Object.defineProperty(e,t,{configurable:true,enumerable:false,writable:true,value:r})}else{e[t]=r}};var h=function(e,t){c(Object.keys(t),function(r){var n=t[r];y(e,r,n,false)})};var g=Object.create||function(e,t){var r=function Prototype(){};r.prototype=e;var n=new r;if(typeof t!=="undefined"){Object.keys(t).forEach(function(e){U.defineByDescriptor(n,e,t[e])})}return n};var b=function(e,t){if(!Object.setPrototypeOf){return false}return i(function(){var r=function Subclass(t){var r=new e(t);Object.setPrototypeOf(r,Subclass.prototype);return r};Object.setPrototypeOf(r,e);r.prototype=g(e.prototype,{constructor:{value:r}});return t(r)})};var d=function(){if(typeof self!=="undefined"){return self}if(typeof window!=="undefined"){return window}if(typeof global!=="undefined"){return global}throw new Error("unable to locate global object")};var m=d();var O=m.isFinite;var w=Function.call.bind(String.prototype.indexOf);var j=Function.call.bind(Object.prototype.toString);var S=Function.call.bind(Array.prototype.concat);var T=Function.call.bind(String.prototype.slice);var I=Function.call.bind(Array.prototype.push);var E=Function.apply.bind(Array.prototype.push);var M=Function.call.bind(Array.prototype.shift);var P=Math.max;var x=Math.min;var N=Math.floor;var C=Math.abs;var A=Math.log;var k=Math.sqrt;var _=Function.call.bind(Object.prototype.hasOwnProperty);var R;var F=function(){};var D=m.Symbol||{};var z=D.species||"@@species";var L=Number.isNaN||function isNaN(e){return e!==e};var q=Number.isFinite||function isFinite(e){return typeof e==="number"&&O(e)};var G=function isArguments(e){return j(e)==="[object Arguments]"};var W=function isArguments(e){return e!==null&&typeof e==="object"&&typeof e.length==="number"&&e.length>=0&&j(e)!=="[object Array]"&&j(e.callee)==="[object Function]"};var H=G(arguments)?G:W;var $={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},object:function(e){return e!==null&&typeof e==="object"},string:function(e){return j(e)==="[object String]"},regex:function(e){return j(e)==="[object RegExp]"},symbol:function(e){return typeof m.Symbol==="function"&&typeof e==="symbol"}};var B=$.symbol(D.iterator)?D.iterator:"_es6-shim iterator_";if(m.Set&&typeof(new m.Set)["@@iterator"]==="function"){B="@@iterator"}if(!m.Reflect){y(m,"Reflect",{})}var V=m.Reflect;var J={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!J.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}},TypeIsObject:function(e){return e!=null&&Object(e)===e},ToObject:function(e,t){J.RequireObjectCoercible(e,t);return Object(e)},IsCallable:function(e){return typeof e==="function"&&j(e)==="[object Function]"},IsConstructor:function(e){return J.IsCallable(e)},ToInt32:function(e){return J.ToNumber(e)>>0},ToUint32:function(e){return J.ToNumber(e)>>>0},ToNumber:function(e){if(j(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=J.ToNumber(e);if(L(t)){return 0}if(t===0||!q(t)){return t}return(t>0?1:-1)*N(C(t))},ToLength:function(e){var t=J.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return L(e)&&L(t)},SameValueZero:function(e,t){return e===t||L(e)&&L(t)},IsIterable:function(e){return J.TypeIsObject(e)&&(typeof e[B]!=="undefined"||H(e))},GetIterator:function(e){if(H(e)){return new R(e,"value")}var r=J.GetMethod(e,B);if(!J.IsCallable(r)){throw new TypeError("value is not an iterable")}var n=t(r,e);if(!J.TypeIsObject(n)){throw new TypeError("bad iterator")}return n},GetMethod:function(e,t){var r=J.ToObject(e)[t];if(r===void 0||r===null){return void 0}if(!J.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,r){var n=J.GetMethod(e,"return");if(n===void 0){return}var o,i;try{o=t(n,e)}catch(a){i=a}if(r){return}if(i){throw i}if(!J.TypeIsObject(o)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!J.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=J.IteratorNext(e);var r=J.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n){return V.construct(e,t,o)}var i=o.prototype;if(!J.TypeIsObject(i)){i=Object.prototype}var a=g(i);var u=J.Call(e,a,t);return J.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!J.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[z];if(n===void 0||n===null){return t}if(!J.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=String(e);var i="<"+t;if(r!==""){var a=String(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var s=i+">";var f=s+o;return f+""}};var U={getter:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}Object.defineProperty(e,t,{configurable:true,enumerable:false,get:r})},proxy:function(e,t,r){if(!s){throw new TypeError("getters require true ES5 support")}var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,{configurable:n.configurable,enumerable:n.enumerable,get:function getKey(){return e[t]},set:function setKey(r){e[t]=r}})},redefine:function(e,t,r){if(s){var n=Object.getOwnPropertyDescriptor(e,t);n.value=r;Object.defineProperty(e,t,n)}else{e[t]=r}},defineByDescriptor:function(e,t,r){if(s){Object.defineProperty(e,t,r)}else if("value"in r){e[t]=r.value}},preserveToString:function(e,t){if(t&&J.IsCallable(t.toString)){y(e,"toString",t.toString.bind(t),true)}}};var K=function wrapConstructor(e,t,r){U.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){c(Object.getOwnPropertyNames(e),function(n){if(n in F||r[n]){return}U.proxy(e,n,t)})}else{c(Object.keys(e),function(n){if(n in F||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;U.redefine(e.prototype,"constructor",t)};var X=function(){return this};var Z=function(e){if(s&&!_(e,z)){U.getter(e,z,X)}};var Q=function overrideNative(e,t,r){var n=e[t];y(e,t,r,true);U.preserveToString(e[t],n)};var Y=function(e,t){var r=t||function iterator(){return this};y(e,B,r);if(!e[B]&&$.symbol(B)){e[B]=r}};var ee=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var te=function createDataPropertyOrThrow(e,t,r){ee(e,t,r);if(!J.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var re=function(e,t,r,n){if(!J.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!J.TypeIsObject(o)){o=r}var i=g(o);for(var a in n){if(_(n,a)){var u=n[a];y(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var ne=String.fromCodePoint;Q(String,"fromCodePoint",function fromCodePoint(t){return e(ne,this,arguments)})}var oe={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){I(t,String.fromCharCode(r))}else{r-=65536;I(t,String.fromCharCode((r>>10)+55296));I(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=J.ToObject(e,"bad callSite");var r=J.ToObject(t.raw,"bad raw value");var n=r.length;var o=J.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,s,f,c;while(a=o){break}s=a+1=ae){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return ie(t,r)},startsWith:function startsWith(e){J.RequireObjectCoercible(this);var t=String(this);if($.regex(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=String(e);var n=arguments.length>1?arguments[1]:void 0;var o=P(J.ToInteger(n),0);return T(t,o,o+r.length)===r},endsWith:function endsWith(e){J.RequireObjectCoercible(this);var t=String(this);if($.regex(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=String(e);var n=t.length;var o=arguments.length>1?arguments[1]:void 0;var i=typeof o==="undefined"?n:J.ToInteger(o);var a=x(P(i,0),n);return T(t,a-r.length,a)===r},includes:function includes(e){if($.regex(e)){throw new TypeError('"includes" does not accept a RegExp')}var t;if(arguments.length>1){t=arguments[1]}return w(this,e,t)!==-1},codePointAt:function codePointAt(e){J.RequireObjectCoercible(this);var t=String(this);var r=J.ToInteger(e);var n=t.length;if(r>=0&&r56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){Q(String.prototype,"includes",ue.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var se=o(function(){"/a/".startsWith(/a/)});var fe="abc".startsWith("a",Infinity)===false;if(!se||!fe){Q(String.prototype,"startsWith",ue.startsWith);Q(String.prototype,"endsWith",ue.endsWith)}}h(String.prototype,ue);var ce=[" \n \f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var le=new RegExp("(^["+ce+"]+)|(["+ce+"]+$)","g");var pe=function trim(){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}return String(this).replace(le,"")};var ve=["\x85","\u200b","\ufffe"].join("");var ye=new RegExp("["+ve+"]","g");var he=/^[\-+]0x[0-9a-f]+$/i;var ge=ve.trim().length!==ve.length;y(String.prototype,"trim",pe,ge);var be=function(e){J.RequireObjectCoercible(e);this._s=String(e);this._i=0};be.prototype.next=function(){var e=this._s,t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return{value:void 0,done:true}}var r=e.charCodeAt(t),n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return{value:e.substr(t,o),done:false}};Y(be.prototype);Y(String.prototype,function(){return new be(this)});var de={from:function from(e){var r=this;var n=arguments.length>1?arguments[1]:void 0;var o,i;if(n===void 0){o=false}else{if(!J.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}i=arguments.length>2?arguments[2]:void 0;o=true}var a=typeof(H(e)||J.GetMethod(e,B))!=="undefined";var u,s,f;if(a){s=J.IsConstructor(r)?Object(new r):[];var c=J.GetIterator(e);var l,p;f=0;while(true){l=J.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=i===undefined?n(p,f):t(n,i,p,f)}s[f]=p}catch(v){J.IteratorClose(c,true);throw v}f+=1}u=f}else{var y=J.ToObject(e);u=J.ToLength(y.length);s=J.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(f=0;f0){e=M(t);if(!(e in this.object)){continue}if(this.kind==="key"){return me(e)}else if(this.kind==="value"){return me(this.object[e])}else{return me([e,this.object[e]])}}return me()}});Y(we.prototype);var je=Array.of===de.of||function(){var e=function Foo(e){this.length=e};e.prototype=[];var t=Array.of.apply(e,[1,2]);return t instanceof e&&t.length===2}();if(!je){Q(Array,"of",de.of)}var Se={copyWithin:function copyWithin(e,t){var r=arguments[2];var n=J.ToObject(this);var o=J.ToLength(n.length);var i=J.ToInteger(e);var a=J.ToInteger(t);var u=i<0?P(o+i,0):x(i,o);var s=a<0?P(o+a,0):x(a,o);r=typeof r==="undefined"?o:J.ToInteger(r);var f=r<0?P(o+r,0):x(r,o);var c=x(f-s,o-u);var l=1;if(s0){if(_(n,s)){n[u]=n[s]}else{delete n[s]}s+=l;u+=l;c-=1}return n},fill:function fill(e){var t=arguments.length>1?arguments[1]:void 0;var r=arguments.length>2?arguments[2]:void 0;var n=J.ToObject(this);var o=J.ToLength(n.length);t=J.ToInteger(typeof t==="undefined"?0:t);r=J.ToInteger(typeof r==="undefined"?o:r);var i=t<0?P(o+t,0):x(t,o);var a=r<0?o+r:r;for(var u=i;u1?arguments[1]:null;for(var i=0,a;i1?arguments[1]:null;for(var i=0;i0&&typeof arguments[1]!=="undefined"){return e(Pe,this,arguments)}else{return t(Pe,this,r)}})}var xe=function(e,r){var n={length:-1};n[r?(-1>>>0)-1:0]=true;return i(function(){t(e,n,function(){throw new RangeError("should not reach here")},[])})};if(!xe(Array.prototype.forEach)){var Ne=Array.prototype.forEach;Q(Array.prototype,"forEach",function forEach(t){return e(Ne,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.map)){var Ce=Array.prototype.map;Q(Array.prototype,"map",function map(t){return e(Ce,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.filter)){var Ae=Array.prototype.filter;Q(Array.prototype,"filter",function filter(t){return e(Ae,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.some)){var ke=Array.prototype.some;Q(Array.prototype,"some",function some(t){return e(ke,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.every)){var _e=Array.prototype.every;Q(Array.prototype,"every",function every(t){return e(_e,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.reduce)){var Re=Array.prototype.reduce;Q(Array.prototype,"reduce",function reduce(t){return e(Re,this.length>=0?this:[],arguments)},true)}if(!xe(Array.prototype.reduceRight,true)){var Fe=Array.prototype.reduceRight;Q(Array.prototype,"reduceRight",function reduceRight(t){return e(Fe,this.length>=0?this:[],arguments)},true)}var De=Number("0o10")!==8;var ze=Number("0b10")!==2;var Le=v(ve,function(e){return Number(e+0+e)===0});if(De||ze||Le){var qe=Number;var Ge=/^0b[01]+$/i;var We=/^0o[0-7]+$/i;var He=Ge.test.bind(Ge);var $e=We.test.bind(We);var Be=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if($.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if($.primitive(t)){return t}}throw new TypeError("No default value")};var Ve=ye.test.bind(ye);var Je=he.test.bind(he);var Ue=function(){var e=function Number(r){var n=$.primitive(r)?r:Be(r,"number");if(typeof n==="string"){if(He(n)){n=parseInt(T(n,2),2)}else if($e(n)){n=parseInt(T(n,2),8)}else if(Ve(n)||Je(n)){n=NaN}else{n=t(pe,n)}}var o=this;var a=i(function(){qe.prototype.valueOf.call(o);return true});if(o instanceof e&&!a){return new qe(n)}return qe(n)};return e}();K(qe,Ue,{});Number=Ue;U.redefine(m,"Number",Ue)}var Ke=Math.pow(2,53)-1;h(Number,{MAX_SAFE_INTEGER:Ke,MIN_SAFE_INTEGER:-Ke,EPSILON:2.220446049250313e-16,parseInt:m.parseInt,parseFloat:m.parseFloat,isFinite:q,isInteger:function isInteger(e){return q(e)&&J.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&C(e)<=Number.MAX_SAFE_INTEGER},isNaN:L});y(Number,"parseInt",m.parseInt,Number.parseInt!==m.parseInt);if(![,1].find(function(e,t){return t===0})){Q(Array.prototype,"find",Se.find)}if([,1].findIndex(function(e,t){return t===0})!==0){Q(Array.prototype,"findIndex",Se.findIndex)}var Xe=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var Ze=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*A((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0,n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=Math.exp(A(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var r=Number(e);var n=J.ToUint32(r);if(n===0){return 32}return Rt?t(Rt,n):31-N(A(n+.5)*Math.LOG2E)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(Number.isNaN(t)){return NaN}if(!O(t)){return Infinity}if(t<0){t=-t}if(t>21){return Math.exp(t)/2}return(Math.exp(t)+Math.exp(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!O(t)||t===0){return t}if(C(t)>.5){return Math.exp(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o0?i/n*(i/n):i}}return n===Infinity?Infinity:n*k(r)},log2:function log2(e){return A(e)*Math.LOG2E},log10:function log10(e){return A(e)*Math.LOG10E},log1p:function log1p(e){var t=Number(e);if(t<-1||Number.isNaN(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(A(1+t)/(1+t-1))},sign:function sign(e){var t=Number(e);if(t===0){return t}if(Number.isNaN(t)){return t}return t<0?-1:1},sinh:function sinh(e){var t=Number(e);if(!O(t)||t===0){return t}if(C(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(Math.exp(t-1)-Math.exp(-t-1))*Math.E/2},tanh:function tanh(e){var t=Number(e);if(Number.isNaN(t)||t===0){return t}if(t===Infinity){return 1}if(t===-Infinity){return-1}var r=Math.expm1(t);var n=Math.expm1(-t);if(r===Infinity){return 1}if(n===Infinity){return-1}return(r-n)/(Math.exp(t)+Math.exp(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-N(-t):N(t)},imul:function imul(e,t){var r=J.ToUint32(e);var n=J.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||L(t)){return t}var r=Math.sign(t);var n=C(t);if(n<_t){return r*Ct(n/_t/At)*_t*At}var o=(1+At/Number.EPSILON)*n;var i=o-(o-n);if(i>kt||L(i)){return r*Infinity}return r*i}};h(Math,Ft);y(Math,"log1p",Ft.log1p,Math.log1p(-1e-17)!==-1e-17);y(Math,"asinh",Ft.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));y(Math,"tanh",Ft.tanh,Math.tanh(-2e-17)!==-2e-17);y(Math,"acosh",Ft.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);y(Math,"cbrt",Ft.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);y(Math,"sinh",Ft.sinh,Math.sinh(-2e-17)!==-2e-17);var Dt=Math.expm1(10);y(Math,"expm1",Ft.expm1,Dt>22025.465794806718||Dt<22025.465794806718);var zt=Math.round;var Lt=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var qt=Nt+1;var Gt=2*Nt-1;var Wt=[qt,Gt].every(function(e){return Math.round(e)===e});y(Math,"round",function round(e){var t=N(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Lt||!Wt);U.preserveToString(Math.round,zt);var Ht=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=Ft.imul;U.preserveToString(Math.imul,Ht)}if(Math.imul.length!==2){Q(Math,"imul",function imul(t,r){return e(Ht,Math,arguments)})}var $t=function(){var e=m.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}J.IsPromise=function(e){if(!J.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!J.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.promise=new e(r);if(!(J.IsCallable(t.resolve)&&J.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&J.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){I(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=M(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=m.Promise;return e&&e.resolve&&function(t){return e.resolve().then(t)}};var i=J.IsCallable(m.setImmediate)?m.setImmediate.bind(m):typeof process==="object"&&process.nextTick?process.nextTick:o()||(J.IsCallable(n)?n():function(t){e(t,0)});var a=1;var u=2;var s=3;var f=4;var l=5;var p=function(e,t){var r=e.capabilities;var n=e.handler;var o,i=false,s;if(n===a){o=t}else if(n===u){o=t;i=true}else{try{o=n(t)}catch(f){o=f;i=true}}s=i?r.reject:r.resolve;s(o)};var v=function(e,t){c(e,function(e){i(function(){p(e,t)})})};var y=function(e,t){var r=e._promise;var n=r.fulfillReactions;r.result=t;r.fulfillReactions=void 0;r.rejectReactions=void 0;r.state=f;v(n,t)};var g=function(e,t){var r=e._promise;var n=r.rejectReactions;r.result=t;r.fulfillReactions=void 0;r.rejectReactions=void 0;r.state=l;v(n,t)};var b=function(e){var t=false;var r=function(r){var n;if(t){return}t=true;if(r===e){return g(e,new TypeError("Self resolution"))}if(!J.TypeIsObject(r)){return y(e,r)}try{n=r.then}catch(o){return g(e,o)}if(!J.IsCallable(n)){return y(e,r)}i(function(){d(e,r,n)})};var n=function(r){if(t){return}t=true;return g(e,r)};return{resolve:r,reject:n}};var d=function(e,r,n){var o=b(e);var i=o.resolve;var a=o.reject;try{t(n,r,i,a)}catch(u){a(u)}};var O=function(e){if(!J.TypeIsObject(e)){throw new TypeError("Promise is not object")}var t=e[z];if(t!==void 0&&t!==null){return t}return e};var w;var j=function(){var e=function Promise(t){if(!(this instanceof e)){throw new TypeError('Constructor Promise requires "new"')}if(this&&this._promise){throw new TypeError("Bad construction")}if(!J.IsCallable(t)){throw new TypeError("not a valid resolver")}var r=re(this,e,w,{_promise:{result:void 0,state:s,fulfillReactions:[],rejectReactions:[]}});var n=b(r);var o=n.reject;try{t(n.resolve,o)}catch(i){o(i)}return r};return e}();w=j.prototype;var S=function(e,t,r,n){var o=false;return function(i){if(o){return}o=true;t[e]=i;if(--n.count===0){var a=r.resolve;a(t)}}};var T=function(e,t,r){var n=e.iterator;var o=[],i={count:1},a,u;var s=0;while(true){try{a=J.IteratorStep(n);if(a===false){e.done=true;break}u=a.value}catch(f){e.done=true;throw f}o[s]=void 0;var c=t.resolve(u);var l=S(s,o,r,i);i.count+=1;c.then(l,r.reject);s+=1}if(--i.count===0){var p=r.resolve;p(o)}return r.promise};var E=function(e,t,r){var n=e.iterator,o,i,a;while(true){try{o=J.IteratorStep(n);if(o===false){e.done=true;break}i=o.value}catch(u){e.done=true;throw u}a=t.resolve(i);a.then(r.resolve,r.reject)}return r.promise};h(j,{all:function all(e){var t=O(this);var n=new r(t);var o,i;try{o=J.GetIterator(e);i={iterator:o,done:false};return T(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{J.IteratorClose(o,true)}catch(s){u=s}}var f=n.reject;f(u);return n.promise}},race:function race(e){var t=O(this);var n=new r(t);var o,i;try{o=J.GetIterator(e);i={iterator:o,done:false};return E(i,t,n)}catch(a){var u=a;if(i&&!i.done){try{J.IteratorClose(o,true)}catch(s){u=s}}var f=n.reject;f(u);return n.promise}},reject:function reject(e){var t=this;var n=new r(t); +var o=n.reject;o(e);return n.promise},resolve:function resolve(e){var t=this;if(J.IsPromise(e)){var n=e.constructor;if(n===t){return e}}var o=new r(t);var i=o.resolve;i(e);return o.promise}});h(w,{"catch":function(e){return this.then(void 0,e)},then:function then(e,t){var n=this;if(!J.IsPromise(n)){throw new TypeError("not a promise")}var o=J.SpeciesConstructor(n,j);var c=new r(o);var v={capabilities:c,handler:J.IsCallable(e)?e:a};var y={capabilities:c,handler:J.IsCallable(t)?t:u};var h=n._promise;var g;if(h.state===s){I(h.fulfillReactions,v);I(h.rejectReactions,y)}else if(h.state===f){g=h.result;i(function(){p(v,g)})}else if(h.state===l){g=h.result;i(function(){p(y,g)})}else{throw new TypeError("unexpected Promise state")}return c.promise}});return j}();if(m.Promise){delete m.Promise.accept;delete m.Promise.defer;delete m.Promise.prototype.chain}if(typeof $t==="function"){h(m,{Promise:$t});var Bt=b(m.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var Vt=!o(function(){m.Promise.reject(42).then(null,5).then(null,F)});var Jt=o(function(){m.Promise.call(3,F)});var Ut=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);return t===r}(m.Promise);if(!Bt||!Vt||!Jt||Ut){Promise=$t;Q(m,"Promise",$t)}Z(Promise)}var Kt=function(e){var t=Object.keys(l(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Xt=Kt(["z","a","bb"]);var Zt=Kt(["z",1,"a","3",2]);if(s){var Qt=function fastkey(e){if(!Xt){return null}var t=typeof e;if(t==="undefined"||e===null){return"^"+String(e)}else if(t==="string"){return"$"+e}else if(t==="number"){if(!Zt){return"n"+e}return e}else if(t==="boolean"){return"b"+e}return null};var Yt=function emptyObject(){return Object.create?Object.create(null):{}};var er=function addIterableToMap(e,n,o){if(r(o)||$.string(o)){c(o,function(e){n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!J.IsCallable(a)){throw new TypeError("bad map")}i=J.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=J.IteratorStep(i);if(u===false){break}var s=u.value;try{if(!J.TypeIsObject(s)){throw new TypeError("expected iterable of pairs")}t(a,n,s[0],s[1])}catch(f){J.IteratorClose(i,true);throw f}}}}};var tr=function addIterableToSet(e,n,o){if(r(o)||$.string(o)){c(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!J.IsCallable(a)){throw new TypeError("bad set")}i=J.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=J.IteratorStep(i);if(u===false){break}var s=u.value;try{t(a,n,s)}catch(f){J.IteratorClose(i,true);throw f}}}}};var rr={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!J.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+String(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i,t=this.kind,r=this.head,n;if(typeof this.i==="undefined"){return{value:void 0,done:true}}while(e.isRemoved()&&e!==r){e=e.prev}while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return{value:n,done:false}}}this.i=void 0;return{value:void 0,done:true}}};Y(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=re(this,Map,a,{_es6map:true,_head:null,_storage:Yt(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){er(Map,e,arguments[0])}return e};a=u.prototype;U.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});h(a,{get:function get(e){o(this,"get");var t=Qt(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head,i=n;while((i=i.next)!==n){if(J.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Qt(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head,n=r;while((n=n.next)!==r){if(J.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head,i=n,a;var u=Qt(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(J.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(J.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head,n=r;var i=Qt(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(J.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Yt();var t=this._head,r=t,n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});Y(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!J.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+String(t))}};var n;var o=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=re(this,Set,n,{_es6set:true,"[[SetData]]":null,_storage:Yt()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){tr(Set,e,arguments[0])}return e};n=o.prototype;var i=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new rr.Map;c(Object.keys(e._storage),function(e){var r=e;if(r==="^null"){r=null}else if(r==="^undefined"){r=void 0}else{var n=r.charAt(0);if(n==="$"){r=T(r,1)}else if(n==="n"){r=+T(r,1)}else if(n==="b"){r=r==="btrue"}else{r=+r}}t.set(r,r)});e._storage=null}};U.getter(o.prototype,"size",function(){r(this,"size");i(this);return this["[[SetData]]"].size});h(o.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Qt(e))!==null){return!!this._storage[t]}i(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Qt(e))!==null){this._storage[t]=true;return this}i(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Qt(e))!==null){var n=_(this._storage,t);return delete this._storage[t]&&n}i(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Yt()}else{this["[[SetData]]"].clear()}},values:function values(){r(this,"values");i(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");i(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;i(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});y(o.prototype,"keys",o.prototype.values,true);Y(o.prototype,o.prototype.values);return o}()};if(m.Map||m.Set){var nr=i(function(){return new Map([[1,2]]).get(1)===2});if(!nr){var or=m.Map;m.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new or;if(arguments.length>0){er(Map,e,arguments[0])}Object.setPrototypeOf(e,m.Map.prototype);y(e,"constructor",Map,true);return e};m.Map.prototype=g(or.prototype);U.preserveToString(m.Map,or)}var ir=new Map;var ar=function(e){e["delete"](0);e["delete"](-0);e.set(0,3);e.get(-0,4);return e.get(0)===3&&e.get(-0)===4}(ir);var ur=ir.set(1,2)===ir;if(!ar||!ur){var sr=Map.prototype.set;Q(Map.prototype,"set",function set(e,r){t(sr,this,e===0?0:e,r);return this})}if(!ar){var fr=Map.prototype.get;var cr=Map.prototype.has;h(Map.prototype,{get:function get(e){return t(fr,this,e===0?0:e)},has:function has(e){return t(cr,this,e===0?0:e)}},true);U.preserveToString(Map.prototype.get,fr);U.preserveToString(Map.prototype.has,cr)}var lr=new Set;var pr=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(lr);var vr=lr.add(1)===lr;if(!pr||!vr){var yr=Set.prototype.add;Set.prototype.add=function add(e){t(yr,this,e===0?0:e);return this};U.preserveToString(Set.prototype.add,yr)}if(!pr){var hr=Set.prototype.has;Set.prototype.has=function has(e){return t(hr,this,e===0?0:e)};U.preserveToString(Set.prototype.has,hr);var gr=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(gr,this,e===0?0:e)};U.preserveToString(Set.prototype["delete"],gr)}var br=b(m.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var dr=Object.setPrototypeOf&&!br;var mr=function(){try{return!(m.Map()instanceof m.Map)}catch(e){return e instanceof TypeError}}();if(m.Map.length!==0||dr||!mr){var Or=m.Map;m.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Or;if(arguments.length>0){er(Map,e,arguments[0])}Object.setPrototypeOf(e,Map.prototype);y(e,"constructor",Map,true);return e};m.Map.prototype=Or.prototype;U.preserveToString(m.Map,Or)}var wr=b(m.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var jr=Object.setPrototypeOf&&!wr;var Sr=function(){try{return!(m.Set()instanceof m.Set)}catch(e){return e instanceof TypeError}}();if(m.Set.length!==0||jr||!Sr){var Tr=m.Set;m.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new Tr;if(arguments.length>0){tr(Set,e,arguments[0])}Object.setPrototypeOf(e,Set.prototype);y(e,"constructor",Set,true);return e};m.Set.prototype=Tr.prototype;U.preserveToString(m.Set,Tr)}var Ir=!i(function(){return(new Map).keys().next().done});if(typeof m.Map.prototype.clear!=="function"||(new m.Set).size!==0||(new m.Map).size!==0||typeof m.Map.prototype.keys!=="function"||typeof m.Set.prototype.keys!=="function"||typeof m.Map.prototype.forEach!=="function"||typeof m.Set.prototype.forEach!=="function"||a(m.Map)||a(m.Set)||typeof(new m.Map).keys().next!=="function"||Ir||!br){delete m.Map;delete m.Set;h(m,{Map:rr.Map,Set:rr.Set},true)}if(m.Set.prototype.keys!==m.Set.prototype.values){y(m.Set.prototype,"keys",m.Set.prototype.values,true)}Y(Object.getPrototypeOf((new m.Map).keys()));Y(Object.getPrototypeOf((new m.Set).keys()));if(f&&m.Set.prototype.has.name!=="has"){var Er=m.Set.prototype.has;Q(m.Set.prototype,"has",function has(e){return t(Er,this,e)})}}h(m,rr);Z(m.Map);Z(m.Set)}var Mr=function throwUnlessTargetIsObject(e){if(!J.TypeIsObject(e)){throw new TypeError("target must be an object")}};var Pr={apply:function apply(){return e(J.Call,null,arguments)},construct:function construct(e,t){if(!J.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length<3?e:arguments[2];if(!J.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return J.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){Mr(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},enumerate:function enumerate(e){Mr(e);return new we(e,"key")},has:function has(e,t){Mr(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(Pr,{ownKeys:function ownKeys(e){Mr(e);var t=Object.getOwnPropertyNames(e);if(J.IsCallable(Object.getOwnPropertySymbols)){E(t,Object.getOwnPropertySymbols(e))}return t}})}var xr=function ConvertExceptionToBoolean(e){return!o(e)};if(Object.preventExtensions){Object.assign(Pr,{isExtensible:function isExtensible(e){Mr(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){Mr(e);return xr(function(){Object.preventExtensions(e)})}})}if(s){var Nr=function get(e,r,n){var o=Object.getOwnPropertyDescriptor(e,r);if(!o){var i=Object.getPrototypeOf(e);if(i===null){return undefined}return Nr(i,r,n)}if("value"in o){return o.value}if(o.get){return t(o.get,n)}return undefined};var Cr=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Cr(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!J.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return V.defineProperty(o,r,{value:n})}else{return V.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(Pr,{defineProperty:function defineProperty(e,t,r){Mr(e);return xr(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){Mr(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){Mr(e);var r=arguments.length>2?arguments[2]:e;return Nr(e,t,r)},set:function set(e,t,r){Mr(e);var n=arguments.length>3?arguments[3]:e;return Cr(e,t,r,n)}})}if(Object.getPrototypeOf){var Ar=Object.getPrototypeOf;Pr.getPrototypeOf=function getPrototypeOf(e){Mr(e);return Ar(e)}}if(Object.setPrototypeOf&&Pr.getPrototypeOf){var kr=function(e,t){var r=t;while(r){if(e===r){return true}r=Pr.getPrototypeOf(r)}return false};Object.assign(Pr,{setPrototypeOf:function setPrototypeOf(e,t){Mr(e);if(t!==null&&!J.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===V.getPrototypeOf(e)){return true}if(V.isExtensible&&!V.isExtensible(e)){return false}if(kr(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var _r=function(e,t){if(!J.IsCallable(m.Reflect[e])){y(m.Reflect,e,t)}else{var r=i(function(){m.Reflect[e](1);m.Reflect[e](NaN);m.Reflect[e](true);return true});if(r){Q(m.Reflect,e,t)}}};Object.keys(Pr).forEach(function(e){_r(e,Pr[e])});if(f&&m.Reflect.getPrototypeOf.name!=="getPrototypeOf"){var Rr=m.Reflect.getPrototypeOf;Q(m.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Rr,m.Reflect,e)})}if(m.Reflect.setPrototypeOf){if(i(function(){m.Reflect.setPrototypeOf(1,{});return true})){Q(m.Reflect,"setPrototypeOf",Pr.setPrototypeOf)}}if(m.Reflect.defineProperty){if(!i(function(){var e=!m.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!m.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){Q(m.Reflect,"defineProperty",Pr.defineProperty)}}if(m.Reflect.construct){if(!i(function(){var e=function F(){};return m.Reflect.construct(function(){},[],e)instanceof e})){Q(m.Reflect,"construct",Pr.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Fr=Date.prototype.toString;var Dr=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return t(Fr,this)};Q(Date.prototype,"toString",Dr)}var zr={anchor:function anchor(e){return J.CreateHTML(this,"a","name",e)},big:function big(){return J.CreateHTML(this,"big","","")},blink:function blink(){return J.CreateHTML(this,"blink","","")},bold:function bold(){return J.CreateHTML(this,"b","","")},fixed:function fixed(){return J.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return J.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return J.CreateHTML(this,"font","size",e)},italics:function italics(){return J.CreateHTML(this,"i","","")},link:function link(e){return J.CreateHTML(this,"a","href",e)},small:function small(){return J.CreateHTML(this,"small","","")},strike:function strike(){return J.CreateHTML(this,"strike","","")},sub:function sub(){return J.CreateHTML(this,"sub","","")},sup:function sub(){return J.CreateHTML(this,"sup","","")}};c(Object.keys(zr),function(e){var r=String.prototype[e];var n=false;if(J.IsCallable(r)){var o=t(r,"",' " ');var i=S([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){Q(String.prototype,e,zr[e])}});var Lr=function(){if(!$.symbol(D.iterator)){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(D())!=="undefined"){return true}if(e([D()])!=="[null]"){return true}var t={a:D()};t[D()]=true;if(e(t)!=="{}"){return true}return false}();var qr=i(function(){if(!$.symbol(D.iterator)){return true}return JSON.stringify(Object(D()))==="{}"&&JSON.stringify([Object(D())])==="[{}]"});if(Lr||!qr){var Gr=JSON.stringify;Q(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=J.IsCallable(n)?n:null;var a=function(e,r){var o=n?t(n,this,e,r):r;if(typeof o!=="symbol"){if($.symbol(o)){return Qe({})(o)}else{return o}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return Gr.apply(this,o)})}return m}); //# sourceMappingURL=es6-shim.map diff --git a/js/vendor/es6-shim/package.json b/js/vendor/es6-shim/package.json index 135c0e758..2e7630d2f 100644 --- a/js/vendor/es6-shim/package.json +++ b/js/vendor/es6-shim/package.json @@ -1,6 +1,6 @@ { "name": "es6-shim", - "version": "0.33.8", + "version": "0.33.12", "author": "Paul Miller (http://paulmillr.com)", "description": "ECMAScript 6 (Harmony) compatibility shims for legacy JavaScript engines", "keywords": [ @@ -23,13 +23,17 @@ }, "main": "es6-shim", "scripts": { - "test": "npm run lint && evalmd *.md && npm run test-shim && npm run test-sham", + "test": "npm run lint && evalmd *.md && npm run tests-only", + "tests-only": "npm run test-shim && npm run test-sham", "test-shim": "mocha test/*.js test/*/*.js", "test-sham": "mocha test-sham/*.js", "test-native": "npm run jshint-shim && NO_ES6_SHIM=1 mocha test/*.js test/*/*.js", "lint": "npm run lint-shim && npm run lint-sham", - "lint-shim": "npm run jshint-shim && npm run jscs-shim", - "lint-sham": "npm run jshint-sham && npm run jscs-sham", + "lint-shim": "npm run jshint-shim && npm run jscs-shim && npm run eslint-shim", + "lint-sham": "npm run jshint-sham && npm run jscs-sham && npm run eslint-sham", + "eslint": "npm run eslint-shim && npm run eslint-sham", + "eslint-shim": "eslint es6-shim.js test/*.js test/*/*.js", + "eslint-sham": "eslint es6-sham.js test-sham/*.js", "jshint": "npm run jshint-shim && npm run jshint-sham", "jshint-shim": "jshint es6-shim.js test/*.js test/*/*.js", "jshint-sham": "jshint es6-sham.js test-sham/*.js", @@ -63,13 +67,15 @@ }, "dependencies": {}, "devDependencies": { - "chai": "^3.4.0", - "es5-shim": "^4.1.15", + "chai": "^3.4.1", + "es5-shim": "^4.3.1", + "eslint": "^1.9.0", + "@ljharb/eslint-config": "^1.6.0", "grunt": "^0.4.5", "grunt-contrib-connect": "^0.11.2", "grunt-contrib-watch": "^0.6.1", "grunt-saucelabs": "^8.6.1", - "jscs": "^2.3.5", + "jscs": "^2.5.1", "jshint": "^2.8.0", "mocha": "^2.3.3", "promises-aplus-tests": "^2.1.1", diff --git a/js/vendor/es6-shim/test-sham/set-prototype-of.js b/js/vendor/es6-shim/test-sham/set-prototype-of.js index 06683b492..80448b3ec 100644 --- a/js/vendor/es6-shim/test-sham/set-prototype-of.js +++ b/js/vendor/es6-shim/test-sham/set-prototype-of.js @@ -1,4 +1,5 @@ -/*global expect */ +/* global expect, describe, it */ + describe('Object.setPrototypeOf(o, p)', function () { 'use strict';