From 73e8527faff7f529c0870f7faa29cbe8a0320fb9 Mon Sep 17 00:00:00 2001 From: Euan Kemp Date: Tue, 6 Nov 2018 22:24:59 -0800 Subject: [PATCH] don't vendor xhook; update xhook This switches to using npm to manage xhook, which is about as good as vendoring now that we have lockfiles. This also updates some misc stuff int he lockfile, but notably updates xhook several versions forward. --- dist/xdomain.js | 672 ++++++++--- dist/xdomain.map | 2 +- dist/xdomain.min.js | 85 +- package-lock.json | 2684 +++++++++++++++++++++---------------------- package.json | 19 +- src/browser.js | 2 +- src/lib/master.js | 2 +- src/lib/slave.js | 2 +- src/lib/socket.js | 2 +- src/lib/util.js | 2 +- src/vendor/xhook.js | 632 ---------- 11 files changed, 1887 insertions(+), 2217 deletions(-) delete mode 100644 src/vendor/xhook.js diff --git a/dist/xdomain.js b/dist/xdomain.js index 334781b..a2d13a0 100644 --- a/dist/xdomain.js +++ b/dist/xdomain.js @@ -77,7 +77,7 @@ parcelRequire = (function (modules, cache, entry) { // Override the current require with this new one return newRequire; -})({31:[function(require,module,exports) { +})({25:[function(require,module,exports) { 'use strict'; var toStr = Object.prototype.toString; @@ -90,7 +90,7 @@ module.exports = function isArguments(value) { } return isArgs; }; -},{}],26:[function(require,module,exports) { +},{}],22:[function(require,module,exports) { 'use strict'; // modified from https://github.com/es-shims/es5-shim @@ -226,7 +226,7 @@ keysShim.shim = function shimObjectKeys() { }; module.exports = keysShim; -},{"./isArguments":31}],27:[function(require,module,exports) { +},{"./isArguments":25}],23:[function(require,module,exports) { var hasOwn = Object.prototype.hasOwnProperty; var toString = Object.prototype.toString; @@ -250,7 +250,7 @@ module.exports = function forEach (obj, fn, ctx) { }; -},{}],12:[function(require,module,exports) { +},{}],16:[function(require,module,exports) { 'use strict'; var keys = require('object-keys'); @@ -310,7 +310,7 @@ var defineProperties = function (object, map) { defineProperties.supportsDescriptors = !!supportsDescriptors; module.exports = defineProperties; -},{"object-keys":26,"foreach":27}],48:[function(require,module,exports) { +},{"object-keys":22,"foreach":23}],39:[function(require,module,exports) { 'use strict'; /* eslint no-invalid-this: 1 */ @@ -364,22 +364,22 @@ module.exports = function bind(that) { return bound; }; -},{}],42:[function(require,module,exports) { +},{}],36:[function(require,module,exports) { 'use strict'; var implementation = require('./implementation'); module.exports = Function.prototype.bind || implementation; -},{"./implementation":48}],41:[function(require,module,exports) { +},{"./implementation":39}],34:[function(require,module,exports) { var bind = require('function-bind'); module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); -},{"function-bind":42}],43:[function(require,module,exports) { +},{"function-bind":36}],40:[function(require,module,exports) { module.exports = function isPrimitive(value) { return value === null || typeof value !== 'function' && typeof value !== 'object'; }; -},{}],44:[function(require,module,exports) { +},{}],38:[function(require,module,exports) { 'use strict'; var fnToStr = Function.prototype.toString; @@ -429,7 +429,7 @@ module.exports = function isCallable(value) { var strClass = toStr.call(value); return strClass === fnClass || strClass === genClass; }; -},{}],46:[function(require,module,exports) { +},{}],41:[function(require,module,exports) { 'use strict'; var getDay = Date.prototype.getDay; @@ -452,7 +452,7 @@ module.exports = function isDateObject(value) { } return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; }; -},{}],45:[function(require,module,exports) { +},{}],42:[function(require,module,exports) { 'use strict'; var toStr = Object.prototype.toString; @@ -486,7 +486,7 @@ if (hasSymbols) { return false; }; } -},{}],40:[function(require,module,exports) { +},{}],35:[function(require,module,exports) { 'use strict'; var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; @@ -561,11 +561,11 @@ module.exports = function ToPrimitive(input, PreferredType) { } return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint); }; -},{"./helpers/isPrimitive":43,"is-callable":44,"is-date-object":46,"is-symbol":45}],33:[function(require,module,exports) { +},{"./helpers/isPrimitive":40,"is-callable":38,"is-date-object":41,"is-symbol":42}],27:[function(require,module,exports) { module.exports = Number.isNaN || function isNaN(a) { return a !== a; }; -},{}],34:[function(require,module,exports) { +},{}],28:[function(require,module,exports) { var $isNaN = Number.isNaN || function (a) { return a !== a; }; @@ -573,7 +573,7 @@ var $isNaN = Number.isNaN || function (a) { module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; -},{}],35:[function(require,module,exports) { +},{}],29:[function(require,module,exports) { var has = Object.prototype.hasOwnProperty; module.exports = function assign(target, source) { if (Object.assign) { @@ -586,16 +586,16 @@ module.exports = function assign(target, source) { } return target; }; -},{}],36:[function(require,module,exports) { +},{}],30:[function(require,module,exports) { module.exports = function sign(number) { return number >= 0 ? 1 : -1; }; -},{}],37:[function(require,module,exports) { +},{}],31:[function(require,module,exports) { module.exports = function mod(number, modulo) { var remain = number % modulo; return Math.floor(remain >= 0 ? remain : remain + modulo); }; -},{}],47:[function(require,module,exports) { +},{}],37:[function(require,module,exports) { 'use strict'; var toStr = Object.prototype.toString; @@ -633,7 +633,7 @@ module.exports = function ToPrimitive(input, PreferredType) { } return ES5internalSlots['[[DefaultValue]]'](input, PreferredType); }; -},{"./helpers/isPrimitive":43,"is-callable":44}],32:[function(require,module,exports) { +},{"./helpers/isPrimitive":40,"is-callable":38}],26:[function(require,module,exports) { 'use strict'; var $isNaN = require('./helpers/isNaN'); @@ -880,7 +880,7 @@ var ES5 = { }; module.exports = ES5; -},{"./helpers/isNaN":33,"./helpers/isFinite":34,"./helpers/sign":36,"./helpers/mod":37,"is-callable":44,"es-to-primitive/es5":47,"has":41}],39:[function(require,module,exports) { +},{"./helpers/isNaN":27,"./helpers/isFinite":28,"./helpers/sign":30,"./helpers/mod":31,"is-callable":38,"es-to-primitive/es5":37,"has":34}],33:[function(require,module,exports) { 'use strict'; var has = require('has'); @@ -920,7 +920,7 @@ module.exports = function isRegex(value) { return tryRegexExecCall(value); }; -},{"has":41}],30:[function(require,module,exports) { +},{"has":34}],24:[function(require,module,exports) { 'use strict'; var has = require('has'); @@ -1594,11 +1594,11 @@ var ES6 = assign(assign({}, ES5), { delete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible module.exports = ES6; -},{"has":41,"es-to-primitive/es6":40,"./helpers/isNaN":33,"./helpers/isFinite":34,"./helpers/assign":35,"./helpers/sign":36,"./helpers/mod":37,"./helpers/isPrimitive":43,"function-bind":42,"./es5":32,"is-regex":39}],25:[function(require,module,exports) { +},{"has":34,"es-to-primitive/es6":35,"./helpers/isNaN":27,"./helpers/isFinite":28,"./helpers/assign":29,"./helpers/sign":30,"./helpers/mod":31,"./helpers/isPrimitive":40,"function-bind":36,"./es5":26,"is-regex":33}],21:[function(require,module,exports) { 'use strict'; module.exports = require('./es2015'); -},{"./es2015":30}],9:[function(require,module,exports) { +},{"./es2015":24}],11:[function(require,module,exports) { 'use strict'; var ES = require('es-abstract/es6'); var supportsDescriptors = require('define-properties').supportsDescriptors; @@ -1648,7 +1648,7 @@ module.exports = function from(arrayLike) { return A; }; -},{"es-abstract/es6":25,"define-properties":12}],10:[function(require,module,exports) { +},{"es-abstract/es6":21,"define-properties":16}],12:[function(require,module,exports) { 'use strict'; var ES = require('es-abstract/es6'); @@ -1671,7 +1671,7 @@ module.exports = function getPolyfill() { return implemented ? Array.from : implementation; }; -},{"es-abstract/es6":25,"./implementation":9}],11:[function(require,module,exports) { +},{"es-abstract/es6":21,"./implementation":11}],13:[function(require,module,exports) { 'use strict'; var define = require('define-properties'); @@ -1689,7 +1689,7 @@ module.exports = function shimArrayFrom() { return polyfill; }; -},{"define-properties":12,"./polyfill":10}],5:[function(require,module,exports) { +},{"define-properties":16,"./polyfill":12}],4:[function(require,module,exports) { 'use strict'; var define = require('define-properties'); @@ -1712,73 +1712,245 @@ define(boundFromShim, { module.exports = boundFromShim; -},{"define-properties":12,"./implementation":9,"./polyfill":10,"./shim":11}],4:[function(require,module,exports) { -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; +},{"define-properties":16,"./implementation":11,"./polyfill":12,"./shim":13}],10:[function(require,module,exports) { -// XHook - v1.3.5 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2016 - -var AFTER, - BEFORE, - COMMON_EVENTS, - EventEmitter, - FIRE, - FormData, - NativeFormData, - NativeXMLHttp, - OFF, - ON, - READY_STATE, - UPLOAD_EVENTS, - XHookFormData, - XHookHttpRequest, - XMLHTTP, - convertHeaders, - depricatedProp, - document, - fakeEvent, - mergeObjects, - msie, - proxyEvents, - slice, - xhook, - _base, - __indexOf = [].indexOf || function (item) { - for (var i = 0, l = this.length; i < l; i++) { - if (i in this && this[i] === item) return i; - } - return -1; +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout() { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +})(); +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e) { + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e) { + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while (len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { + return []; +}; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); }; -document = window.document; +process.cwd = function () { + return '/'; +}; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function () { + return 0; +}; +},{}],5:[function(require,module,exports) { +var global = (1,eval)("this"); +var process = require("process"); +// XHook - v1.4.9 - https://github.com/jpillora/xhook +// Jaime Pillora - MIT Copyright 2018 +(function(undefined) { +var AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FETCH, FIRE, FormData, NativeFetch, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, WINDOW, XHookFetchRequest, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, nullify, proxyEvents, slice, useragent, xhook, _base, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + +WINDOW = null; + +if (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) { + WINDOW = self; +} else if (typeof global !== 'undefined') { + WINDOW = global; +} else { + WINDOW = window; +} + +document = WINDOW.document; -BEFORE = "before"; +BEFORE = 'before'; -AFTER = "after"; +AFTER = 'after'; -READY_STATE = "readyState"; +READY_STATE = 'readyState'; -ON = "addEventListener"; +ON = 'addEventListener'; -OFF = "removeEventListener"; +OFF = 'removeEventListener'; -FIRE = "dispatchEvent"; +FIRE = 'dispatchEvent'; -XMLHTTP = "XMLHttpRequest"; +XMLHTTP = 'XMLHttpRequest'; -FormData = "FormData"; +FETCH = 'fetch'; -UPLOAD_EVENTS = ["load", "loadend", "loadstart"]; +FormData = 'FormData'; -COMMON_EVENTS = ["progress", "abort", "error", "timeout"]; +UPLOAD_EVENTS = ['load', 'loadend', 'loadstart']; -msie = parseInt((/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); +COMMON_EVENTS = ['progress', 'abort', 'error', 'timeout']; + +useragent = typeof navigator !== 'undefined' && navigator['useragent'] ? navigator.userAgent : ''; + +msie = parseInt((/msie (\d+)/.exec(useragent.toLowerCase()) || [])[1]); if (isNaN(msie)) { - msie = parseInt((/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]); + msie = parseInt((/trident\/.*; rv:(\d+)/.exec(useragent.toLowerCase()) || [])[1]); } -(_base = Array.prototype).indexOf || (_base.indexOf = function (item) { +(_base = Array.prototype).indexOf || (_base.indexOf = function(item) { var i, x, _i, _len; for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { x = this[i]; @@ -1789,15 +1961,15 @@ if (isNaN(msie)) { return -1; }); -slice = function slice(o, n) { +slice = function(o, n) { return Array.prototype.slice.call(o, n); }; -depricatedProp = function depricatedProp(p) { +depricatedProp = function(p) { return p === "returnValue" || p === "totalSize" || p === "position"; }; -mergeObjects = function mergeObjects(src, dst) { +mergeObjects = function(src, dst) { var k, v; for (k in src) { v = src[k]; @@ -1811,10 +1983,17 @@ mergeObjects = function mergeObjects(src, dst) { return dst; }; -proxyEvents = function proxyEvents(events, src, dst) { +nullify = function(res) { + if (res === void 0) { + return null; + } + return res; +}; + +proxyEvents = function(events, src, dst) { var event, p, _i, _len; - p = function p(event) { - return function (e) { + p = function(event) { + return function(e) { var clone, k, val; clone = {}; for (k in e) { @@ -1835,9 +2014,9 @@ proxyEvents = function proxyEvents(events, src, dst) { } }; -fakeEvent = function fakeEvent(type) { +fakeEvent = function(type) { var msieEventObject; - if (document.createEventObject != null) { + if (document && (document.createEventObject != null)) { msieEventObject = document.createEventObject(); msieEventObject.type = type; return msieEventObject; @@ -1852,14 +2031,14 @@ fakeEvent = function fakeEvent(type) { } }; -EventEmitter = function EventEmitter(nodeStyle) { +EventEmitter = function(nodeStyle) { var emitter, events, listeners; events = {}; - listeners = function listeners(event) { + listeners = function(event) { return events[event] || []; }; emitter = {}; - emitter[ON] = function (event, callback, i) { + emitter[ON] = function(event, callback, i) { events[event] = listeners(event); if (events[event].indexOf(callback) >= 0) { return; @@ -1867,7 +2046,7 @@ EventEmitter = function EventEmitter(nodeStyle) { i = i === undefined ? events[event].length : i; events[event].splice(i, 0, callback); }; - emitter[OFF] = function (event, callback) { + emitter[OFF] = function(event, callback) { var i; if (event === undefined) { events = {}; @@ -1882,7 +2061,7 @@ EventEmitter = function EventEmitter(nodeStyle) { } listeners(event).splice(i, 1); }; - emitter[FIRE] = function () { + emitter[FIRE] = function() { var args, event, i, legacylistener, listener, _i, _len, _ref; args = slice(arguments); event = args.shift(); @@ -1899,25 +2078,25 @@ EventEmitter = function EventEmitter(nodeStyle) { listener.apply(emitter, args); } }; - emitter._has = function (event) { + emitter._has = function(event) { return !!(events[event] || emitter["on" + event]); }; if (nodeStyle) { - emitter.listeners = function (event) { + emitter.listeners = function(event) { return slice(listeners(event)); }; emitter.on = emitter[ON]; emitter.off = emitter[OFF]; emitter.fire = emitter[FIRE]; - emitter.once = function (e, fn) { - var _fire; - _fire = function fire() { - emitter.off(e, _fire); + emitter.once = function(e, fn) { + var fire; + fire = function() { + emitter.off(e, fire); return fn.apply(null, arguments); }; - return emitter.on(e, _fire); + return emitter.on(e, fire); }; - emitter.destroy = function () { + emitter.destroy = function() { return events = {}; }; } @@ -1928,40 +2107,44 @@ xhook = EventEmitter(true); xhook.EventEmitter = EventEmitter; -xhook[BEFORE] = function (handler, i) { +xhook[BEFORE] = function(handler, i) { if (handler.length < 1 || handler.length > 2) { throw "invalid hook"; } return xhook[ON](BEFORE, handler, i); }; -xhook[AFTER] = function (handler, i) { +xhook[AFTER] = function(handler, i) { if (handler.length < 2 || handler.length > 3) { throw "invalid hook"; } return xhook[ON](AFTER, handler, i); }; -xhook.enable = function () { - window[XMLHTTP] = XHookHttpRequest; +xhook.enable = function() { + WINDOW[XMLHTTP] = XHookHttpRequest; + if (typeof XHookFetchRequest === "function") { + WINDOW[FETCH] = XHookFetchRequest; + } if (NativeFormData) { - window[FormData] = XHookFormData; + WINDOW[FormData] = XHookFormData; } }; -xhook.disable = function () { - window[XMLHTTP] = xhook[XMLHTTP]; +xhook.disable = function() { + WINDOW[XMLHTTP] = xhook[XMLHTTP]; + WINDOW[FETCH] = xhook[FETCH]; if (NativeFormData) { - window[FormData] = NativeFormData; + WINDOW[FormData] = NativeFormData; } }; -convertHeaders = xhook.headers = function (h, dest) { +convertHeaders = xhook.headers = function(h, dest) { var header, headers, k, name, v, value, _i, _len, _ref; if (dest == null) { dest = {}; } - switch (typeof h === "undefined" ? "undefined" : _typeof(h)) { + switch (typeof h) { case "object": headers = []; for (k in h) { @@ -1969,9 +2152,9 @@ convertHeaders = xhook.headers = function (h, dest) { name = k.toLowerCase(); headers.push("" + name + ":\t" + v); } - return headers.join("\n"); + return headers.join('\n') + '\n'; case "string": - headers = h.split("\n"); + headers = h.split('\n'); for (_i = 0, _len = headers.length; _i < _len; _i++) { header = headers[_i]; if (/([^:]+):\s*(.+)/.test(header)) { @@ -1986,45 +2169,45 @@ convertHeaders = xhook.headers = function (h, dest) { } }; -NativeFormData = window[FormData]; +NativeFormData = WINDOW[FormData]; -XHookFormData = function XHookFormData(form) { +XHookFormData = function(form) { var entries; this.fd = form ? new NativeFormData(form) : new NativeFormData(); this.form = form; entries = []; - Object.defineProperty(this, "entries", { - get: function get() { + Object.defineProperty(this, 'entries', { + get: function() { var fentries; - fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function (e) { + fentries = !form ? [] : slice(form.querySelectorAll("input,select")).filter(function(e) { var _ref; - return (_ref = e.type) !== "checkbox" && _ref !== "radio" || e.checked; - }).map(function (e) { + return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked; + }).map(function(e) { return [e.name, e.type === "file" ? e.files : e.value]; }); return fentries.concat(entries); } }); - this.append = function (_this) { - return function () { + this.append = (function(_this) { + return function() { var args; args = slice(arguments); entries.push(args); return _this.fd.append.apply(_this.fd, args); }; - }(this); + })(this); }; if (NativeFormData) { xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; + WINDOW[FormData] = XHookFormData; } -NativeXMLHttp = window[XMLHTTP]; +NativeXMLHttp = WINDOW[XMLHTTP]; xhook[XMLHTTP] = NativeXMLHttp; -XHookHttpRequest = window[XMLHTTP] = function () { +XHookHttpRequest = WINDOW[XMLHTTP] = function() { var ABORTED, currentState, emitFinal, emitReadyState, event, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr, _i, _len, _ref; ABORTED = -1; xhr = new xhook[XMLHTTP](); @@ -2033,7 +2216,7 @@ XHookHttpRequest = window[XMLHTTP] = function () { hasError = void 0; transiting = void 0; response = void 0; - readHead = function readHead() { + readHead = function() { var key, name, val, _ref; response.status = status || xhr.status; if (!(status === ABORTED && msie < 10)) { @@ -2050,10 +2233,15 @@ XHookHttpRequest = window[XMLHTTP] = function () { } } }; - readBody = function readBody() { + readBody = function() { if (!xhr.responseType || xhr.responseType === "text") { response.text = xhr.responseText; response.data = xhr.responseText; + try { + response.xml = xhr.responseXML; + } catch (_error) { + + } } else if (xhr.responseType === "document") { response.xml = xhr.responseXML; response.data = xhr.responseXML; @@ -2064,25 +2252,25 @@ XHookHttpRequest = window[XMLHTTP] = function () { response.finalUrl = xhr.responseURL; } }; - writeHead = function writeHead() { + writeHead = function() { facade.status = response.status; facade.statusText = response.statusText; }; - writeBody = function writeBody() { - if ("text" in response) { + writeBody = function() { + if ('text' in response) { facade.responseText = response.text; } - if ("xml" in response) { + if ('xml' in response) { facade.responseXML = response.xml; } - if ("data" in response) { + if ('data' in response) { facade.response = response.data; } - if ("finalUrl" in response) { + if ('finalUrl' in response) { facade.responseURL = response.finalUrl; } }; - emitReadyState = function emitReadyState(n) { + emitReadyState = function(n) { while (n > currentState && currentState < 4) { facade[READY_STATE] = ++currentState; if (currentState === 1) { @@ -2097,11 +2285,15 @@ XHookHttpRequest = window[XMLHTTP] = function () { } facade[FIRE]("readystatechange", {}); if (currentState === 4) { - setTimeout(emitFinal, 0); + if (request.async === false) { + emitFinal(); + } else { + setTimeout(emitFinal, 0); + } } } }; - emitFinal = function emitFinal() { + emitFinal = function() { if (!hasError) { facade[FIRE]("load", {}); } @@ -2111,14 +2303,14 @@ XHookHttpRequest = window[XMLHTTP] = function () { } }; currentState = 0; - setReadyState = function setReadyState(n) { - var hooks, _process; + setReadyState = function(n) { + var hooks, process; if (n !== 4) { emitReadyState(n); return; } hooks = xhook.listeners(AFTER); - _process = function process() { + process = function() { var hook; if (!hooks.length) { return emitReadyState(4); @@ -2126,17 +2318,17 @@ XHookHttpRequest = window[XMLHTTP] = function () { hook = hooks.shift(); if (hook.length === 2) { hook(request, response); - return _process(); + return process(); } else if (hook.length === 3 && request.async) { - return hook(request, response, _process); + return hook(request, response, process); } else { - return _process(); + return process(); } }; - _process(); + process(); }; facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function (event) { + xhr.onreadystatechange = function(event) { try { if (xhr[READY_STATE] === 2) { readHead(); @@ -2149,20 +2341,20 @@ XHookHttpRequest = window[XMLHTTP] = function () { } setReadyState(xhr[READY_STATE]); }; - hasErrorHandler = function hasErrorHandler() { + hasErrorHandler = function() { hasError = true; }; - facade[ON]("error", hasErrorHandler); - facade[ON]("timeout", hasErrorHandler); - facade[ON]("abort", hasErrorHandler); - facade[ON]("progress", function () { + facade[ON]('error', hasErrorHandler); + facade[ON]('timeout', hasErrorHandler); + facade[ON]('abort', hasErrorHandler); + facade[ON]('progress', function() { if (currentState < 3) { setReadyState(3); } else { facade[FIRE]("readystatechange", {}); } }); - if ("withCredentials" in xhr || xhook.addWithCredentials) { + if ('withCredentials' in xhr || xhook.addWithCredentials) { facade.withCredentials = false; } facade.status = 0; @@ -2171,7 +2363,7 @@ XHookHttpRequest = window[XMLHTTP] = function () { event = _ref[_i]; facade["on" + event] = null; } - facade.open = function (method, url, async, user, pass) { + facade.open = function(method, url, async, user, pass) { currentState = 0; hasError = false; transiting = false; @@ -2187,9 +2379,9 @@ XHookHttpRequest = window[XMLHTTP] = function () { request.pass = pass; setReadyState(1); }; - facade.send = function (body) { - var hooks, k, modk, _process2, send, _j, _len1, _ref1; - _ref1 = ["type", "timeout", "withCredentials"]; + facade.send = function(body) { + var hooks, k, modk, process, send, _j, _len1, _ref1; + _ref1 = ['type', 'timeout', 'withCredentials']; for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { k = _ref1[_j]; modk = k === "type" ? "responseType" : k; @@ -2198,7 +2390,7 @@ XHookHttpRequest = window[XMLHTTP] = function () { } } request.body = body; - send = function send() { + send = function() { var header, value, _k, _len2, _ref2, _ref3; proxyEvents(COMMON_EVENTS, xhr, facade); if (facade.upload) { @@ -2206,7 +2398,7 @@ XHookHttpRequest = window[XMLHTTP] = function () { } transiting = true; xhr.open(request.method, request.url, request.async, request.user, request.pass); - _ref2 = ["type", "timeout", "withCredentials"]; + _ref2 = ['type', 'timeout', 'withCredentials']; for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { k = _ref2[_k]; modk = k === "type" ? "responseType" : k; @@ -2227,27 +2419,27 @@ XHookHttpRequest = window[XMLHTTP] = function () { xhr.send(request.body); }; hooks = xhook.listeners(BEFORE); - _process2 = function process() { + process = function() { var done, hook; if (!hooks.length) { return send(); } - done = function done(userResponse) { - if ((typeof userResponse === "undefined" ? "undefined" : _typeof(userResponse)) === "object" && (typeof userResponse.status === "number" || typeof response.status === "number")) { + done = function(userResponse) { + if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) { mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, "data") < 0) { + if (__indexOf.call(userResponse, 'data') < 0) { userResponse.data = userResponse.response || userResponse.text; } setReadyState(4); return; } - _process2(); + process(); }; - done.head = function (userResponse) { + done.head = function(userResponse) { mergeObjects(userResponse, response); return setReadyState(2); }; - done.progress = function (userResponse) { + done.progress = function(userResponse) { mergeObjects(userResponse, response); return setReadyState(3); }; @@ -2260,46 +2452,158 @@ XHookHttpRequest = window[XMLHTTP] = function () { return done(); } }; - _process2(); + process(); }; - facade.abort = function () { + facade.abort = function() { status = ABORTED; if (transiting) { xhr.abort(); } else { - facade[FIRE]("abort", {}); + facade[FIRE]('abort', {}); } }; - facade.setRequestHeader = function (header, value) { + facade.setRequestHeader = function(header, value) { var lName, name; lName = header != null ? header.toLowerCase() : void 0; name = request.headerNames[lName] = request.headerNames[lName] || header; if (request.headers[name]) { - value = request.headers[name] + ", " + value; + value = request.headers[name] + ', ' + value; } request.headers[name] = value; }; - facade.getResponseHeader = function (header) { + facade.getResponseHeader = function(header) { var name; name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; + return nullify(response.headers[name]); }; - facade.getAllResponseHeaders = function () { - return convertHeaders(response.headers); + facade.getAllResponseHeaders = function() { + return nullify(convertHeaders(response.headers)); }; if (xhr.overrideMimeType) { - facade.overrideMimeType = function () { + facade.overrideMimeType = function() { return xhr.overrideMimeType.apply(xhr, arguments); }; } if (xhr.upload) { facade.upload = request.upload = EventEmitter(); } + facade.UNSENT = 0; + facade.OPENED = 1; + facade.HEADERS_RECEIVED = 2; + facade.LOADING = 3; + facade.DONE = 4; + facade.response = ''; + facade.responseText = ''; + facade.responseXML = null; + facade.readyState = 0; + facade.statusText = ''; return facade; }; -module.exports = xhook; -},{}],19:[function(require,module,exports) { +if (typeof WINDOW[FETCH] === "function") { + NativeFetch = WINDOW[FETCH]; + xhook[FETCH] = NativeFetch; + XHookFetchRequest = WINDOW[FETCH] = function(url, options) { + var afterHooks, beforeHooks, request; + if (options == null) { + options = { + headers: {} + }; + } + options.url = url; + request = null; + beforeHooks = xhook.listeners(BEFORE); + afterHooks = xhook.listeners(AFTER); + return new Promise(function(resolve, reject) { + var done, getRequest, processAfter, processBefore, send; + getRequest = function() { + if (options.body instanceof XHookFormData) { + options.body = options.body.fd; + } + if (options.headers) { + options.headers = new Headers(options.headers); + } + if (!request) { + request = new Request(options.url, options); + } + return mergeObjects(options, request); + }; + processAfter = function(response) { + var hook; + if (!afterHooks.length) { + return resolve(response); + } + hook = afterHooks.shift(); + if (hook.length === 2) { + hook(getRequest(), response); + return processAfter(response); + } else if (hook.length === 3) { + return hook(getRequest(), response, processAfter); + } else { + return processAfter(response); + } + }; + done = function(userResponse) { + var response; + if (userResponse !== void 0) { + response = new Response(userResponse.body || userResponse.text, userResponse); + resolve(response); + processAfter(response); + return; + } + processBefore(); + }; + processBefore = function() { + var hook; + if (!beforeHooks.length) { + send(); + return; + } + hook = beforeHooks.shift(); + if (hook.length === 1) { + return done(hook(options)); + } else if (hook.length === 2) { + return hook(getRequest(), done); + } + }; + send = function() { + return NativeFetch(getRequest()).then(function(response) { + return processAfter(response); + })["catch"](function(err) { + processAfter(err); + return reject(err); + }); + }; + processBefore(); + }); + }; +} + +XHookHttpRequest.UNSENT = 0; + +XHookHttpRequest.OPENED = 1; + +XHookHttpRequest.HEADERS_RECEIVED = 2; + +XHookHttpRequest.LOADING = 3; + +XHookHttpRequest.DONE = 4; + +if (typeof define === "function" && define.amd) { + define("xhook", [], function() { + return xhook; + }); +} else if (typeof module === "object" && module.exports) { + module.exports = { + xhook: xhook + }; +} else if (WINDOW) { + WINDOW.xhook = xhook; +} + +}.call(this)); + +},{"process":10}],9:[function(require,module,exports) { var config = function config(o) { if (o) { if (o.masters) { @@ -2321,11 +2625,11 @@ config.cookies = { //extras are also attached to config module.exports = config; -},{}],16:[function(require,module,exports) { +},{}],6:[function(require,module,exports) { var global = (1,eval)("this"); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -var xhook = require("../vendor/xhook"); +var xhook = require("xhook").xhook; var config = require("./config"); @@ -2424,8 +2728,8 @@ exports.strip = function (src) { } return dst; }; -},{"../vendor/xhook":4,"./config":19}],28:[function(require,module,exports) { -var xhook = require("../vendor/xhook"); +},{"xhook":5,"./config":9}],18:[function(require,module,exports) { +var xhook = require("xhook").xhook; var config = require("./config"); var _require = require("./util"), @@ -2577,8 +2881,8 @@ exports.handleSocket = function (origin, socket) { }); log("slave listening for requests on socket: " + socket.id); }; -},{"../vendor/xhook":4,"./config":19,"./util":16}],17:[function(require,module,exports) { -var xhook = require("../vendor/xhook"); +},{"xhook":5,"./config":9,"./util":6}],7:[function(require,module,exports) { +var xhook = require("xhook").xhook; var config = require("./config"); @@ -2734,10 +3038,10 @@ exports.initialise = function () { return window.attachEvent("onmessage", handle); } }; -},{"../vendor/xhook":4,"./config":19,"./util":16,"./slave":28}],29:[function(require,module,exports) { +},{"xhook":5,"./config":9,"./util":6,"./slave":18}],17:[function(require,module,exports) { var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); -var xhook = require("../vendor/xhook"); +var xhook = require("xhook").xhook; var config = require("./config"); var _require = require("./util"), @@ -2931,7 +3235,7 @@ var handleRequest = function handleRequest(request, socket) { } send(); }; -},{"../vendor/xhook":4,"./config":19,"./util":16,"./socket":17}],18:[function(require,module,exports) { +},{"xhook":5,"./config":9,"./util":6,"./socket":7}],8:[function(require,module,exports) { var config = require("./config"); var _require = require("./util"), @@ -2996,7 +3300,7 @@ exports.initialise = function () { }); }); }; -},{"./config":19,"./util":16,"./master":29,"./slave":28}],3:[function(require,module,exports) { +},{"./config":9,"./util":6,"./master":17,"./slave":18}],3:[function(require,module,exports) { "use strict"; //feature detect @@ -3022,13 +3326,13 @@ script.initialise(); var initialise = require("./lib/config"); //config is also the primary intialise function module.exports = initialise; -},{"./lib/util":16,"./lib/socket":17,"./lib/script":18,"./lib/config":19}],1:[function(require,module,exports) { +},{"./lib/util":6,"./lib/socket":7,"./lib/script":8,"./lib/config":9}],1:[function(require,module,exports) { if (!Array.from) { Array.from = require("array.from").getPolyfill(); } -var xhook = require("./vendor/xhook"); +var xhook = require("xhook").xhook; window.xhook = xhook; var xdomain = require("./index"); window.xdomain = xdomain; -},{"array.from":5,"./vendor/xhook":4,"./index":3}]},{},[1]) +},{"array.from":4,"xhook":5,"./index":3}]},{},[1]) //# sourceMappingURL=xdomain.map \ No newline at end of file diff --git a/dist/xdomain.map b/dist/xdomain.map index 0c0f896..59ade21 100644 --- a/dist/xdomain.map +++ b/dist/xdomain.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/object-keys/isArguments.js","../node_modules/object-keys/index.js","../node_modules/foreach/index.js","../node_modules/define-properties/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/is-callable/index.js","../node_modules/is-date-object/index.js","../node_modules/is-symbol/index.js","../node_modules/es-to-primitive/es6.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/assign.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/helpers/mod.js","../node_modules/es-abstract/helpers/isPrimitive.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-abstract/es5.js","../node_modules/is-regex/index.js","../node_modules/es-abstract/es2015.js","../node_modules/es-abstract/es6.js","../node_modules/array.from/implementation.js","../node_modules/array.from/polyfill.js","../node_modules/array.from/shim.js","../node_modules/array.from/index.js","vendor/xhook.js","lib/config.js","lib/util.js","lib/slave.js","lib/socket.js","lib/master.js","lib/script.js","index.js","browser.js"],"names":["toStr","Object","prototype","toString","module","exports","isArguments","value","str","call","isArgs","length","callee","has","hasOwnProperty","slice","Array","require","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","constructor","excludedKeys","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","k","e","equalsConstructorPrototypeIfNotBuggy","keysShim","keys","object","isObject","isFunction","isString","theKeys","TypeError","skipProto","i","push","String","j","name","skipConstructor","shim","shimObjectKeys","keysWorksWithArguments","arguments","originalKeys","foreach","hasSymbols","Symbol","fn","arePropertyDescriptorsSupported","obj","defineProperty","enumerable","_","x","supportsDescriptors","predicate","configurable","writable","defineProperties","map","predicates","props","concat","getOwnPropertySymbols","bind","Function","isPrimitive","fnToStr","constructorRegex","isES6ClassFn","fnStr","singleStripped","replace","multiStripped","spaceStripped","test","tryFunctionObject","fnClass","genClass","hasToStringTag","toStringTag","isCallable","strClass","getDay","Date","tryDateObject","dateClass","isDateObject","symToStr","symStringRegex","isSymbolObject","valueOf","isSymbol","iterator","isDate","ordinaryToPrimitive","OrdinaryToPrimitive","O","hint","methodNames","method","result","GetMethod","P","func","ToPrimitive","input","PreferredType","Number","exoticToPrim","toPrimitive","isNaN","a","$isNaN","isFinite","Infinity","assign","target","source","key","sign","number","mod","modulo","remain","Math","floor","ES5internalSlots","actualHint","methods","$isFinite","IsCallable","ES5","ToBoolean","ToNumber","ToInteger","abs","ToInt32","ToUint32","ToUint16","posInt","ToString","ToObject","CheckObjectCoercible","optMessage","SameValue","y","Type","IsPropertyDescriptor","Desc","allowed","isData","IsAccessor","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","get","set","ToPropertyDescriptor","Obj","desc","getter","setter","regexExec","RegExp","exec","gOPD","getOwnPropertyDescriptor","tryRegexExecCall","tryRegexExec","lastIndex","regexClass","isRegex","descriptor","hasLastIndexDataProperty","SymbolIterator","MAX_SAFE_INTEGER","pow","parseInteger","parseInt","arraySlice","strSlice","isBinary","isOctal","nonWS","join","nonWSregex","hasNonWS","invalidHexLiteral","isInvalidHexLiteral","ws","trimRegex","trim","hasRegExpMatcher","ES6","Call","F","V","args","apply","argument","NaN","trimmed","ToInt16","int16bit","ToInt8","int8bit","ToUint8","ToUint8Clamp","f","RequireObjectCoercible","ToPropertyKey","ToLength","len","CanonicalNumericIndexString","n","IsArray","isArray","IsConstructor","IsExtensible","preventExtensions","isExtensible","IsInteger","IsPropertyKey","IsRegExp","isRegExp","match","SameValueZero","GetV","Get","SpeciesConstructor","defaultConstructor","C","S","species","CompletePropertyDescriptor","Set","Throw","HasOwnProperty","HasProperty","IsConcatSpreadable","isConcatSpreadable","spreadable","Invoke","argumentsList","GetIterator","SyntaxError","actualMethod","IteratorNext","IteratorComplete","iterResult","IteratorValue","IteratorStep","done","IteratorClose","completion","completionThunk","iteratorReturn","completionRecord","innerResult","CreateIterResultObject","RegExpExec","R","ArraySpeciesCreate","originalArray","CreateDataProperty","oldDesc","extensible","immutable","newDesc","CreateDataPropertyOrThrow","success","AdvanceStringIndex","index","unicode","RangeError","first","charCodeAt","second","AFTER","BEFORE","COMMON_EVENTS","EventEmitter","FIRE","FormData","NativeFormData","NativeXMLHttp","OFF","ON","READY_STATE","UPLOAD_EVENTS","XHookFormData","XHookHttpRequest","XMLHTTP","convertHeaders","depricatedProp","document","fakeEvent","mergeObjects","msie","proxyEvents","xhook","_base","__indexOf","indexOf","item","l","navigator","userAgent","toLowerCase","_i","_len","p","src","dst","v","_error","events","event","clone","val","_has","type","msieEventObject","createEventObject","Event","nodeStyle","emitter","listeners","callback","undefined","splice","legacylistener","listener","_ref","shift","on","off","fire","once","destroy","handler","enable","disable","headers","h","dest","header","split","$1","$2","form","entries","fd","fentries","querySelectorAll","filter","checked","files","append","_this","ABORTED","currentState","emitFinal","emitReadyState","facade","hasError","hasErrorHandler","readBody","readHead","request","response","setReadyState","status","transiting","writeBody","writeHead","xhr","statusText","getAllResponseHeaders","responseType","text","responseText","data","xml","responseXML","finalUrl","responseURL","setTimeout","hooks","process","hook","async","onreadystatechange","addWithCredentials","withCredentials","open","url","user","pass","headerNames","send","body","modk","_j","_len1","_ref1","_k","_len2","_ref2","_ref3","upload","setRequestHeader","userResponse","head","progress","abort","lName","getResponseHeader","overrideMimeType","config","masters","slaves","debug","timeout","cookies","master","slave","COMPAT_VERSION","location","currentOrigin","protocol","host","origin","globalEmitter","console","counter","guid","newLogger","msg","alert","log","warn","instOf","global","parseUrl","path","$3","toRegExp","strip","t","enabled","addMasters","parent","postMessage","handleSocket","socket","pathRegex","regex","masterRegex","error","req","close","XMLHttpRequest","addEventListener","emit","readyState","resp","error1","slaveCookie","cookie","from","forEach","blob","Blob","id","CHECK_STRING","CHECK_INTERVAL","sockets","jsonEncode","createSocket","frame","ready","pendingEmits","extra","unshift","JSON","stringify","checks","check","initialise","handle","d","parse","attachEvent","socketlib","addSlaves","before","beforeXHR","newSlaves","getFrame","handleRequest","frames","proxyPath","createElement","setAttribute","appendChild","contentWindow","convertToArrayBuffer","isBlob","isFile","reader","FileReader","onload","readAsArrayBuffer","convertFormData","file","c","newargs","dispatchEvent","attrs","s","m","getElementsByTagName","script","getAttribute","prefix","feature","getPolyfill","xdomain"],"mappings":"AiBAAI,OAAOC,OAAP,GAAiB,SAAS0F,WAAT,CAAqBxF,KAArB,EAA4B;AAC5C,QAAOA,UAAU,IAAV,IAAmB,OAAOA,KAAP,KAAiB,UAAjB,IAA+B,OAAOA,KAAP,KAAiB,QAA1E;AACA,CAFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AjBAA;;AAEA,IAAIP,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;;AAEAC,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAqBC,KAArB,EAA4B;AAC5C,KAAIC,MAAMR,MAAMS,IAAN,CAAWF,KAAX,CAAV;AACA,KAAIG,SAASF,QAAQ,oBAArB;AACA,KAAI,CAACE,MAAL,EAAa;AACZA,WAASF,QAAQ,gBAAR,IACRD,UAAU,IADF,IAER,OAAOA,KAAP,KAAiB,QAFT,IAGR,OAAOA,MAAMI,MAAb,KAAwB,QAHhB,IAIRJ,MAAMI,MAAN,IAAgB,CAJR,IAKRX,MAAMS,IAAN,CAAWF,MAAMK,MAAjB,MAA6B,mBAL9B;AAMA;AACD,QAAOF,MAAP;AACA,CAZD;;ACJA;;AAEA;;AACA,IAAIG,MAAMZ,OAAOC,SAAP,CAAiBY,cAA3B;AACA,IAAId,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIY,QAAQC,MAAMd,SAAN,CAAgBa,KAA5B;AACA,IAAIL,SAASO,QAAQ,eAAR,CAAb;AACA,IAAIC,eAAejB,OAAOC,SAAP,CAAiBiB,oBAApC;AACA,IAAIC,iBAAiB,CAACF,aAAaT,IAAb,CAAkB,EAAEN,UAAU,IAAZ,EAAlB,EAAsC,UAAtC,CAAtB;AACA,IAAIkB,kBAAkBH,aAAaT,IAAb,CAAkB,YAAY,CAAE,CAAhC,EAAkC,WAAlC,CAAtB;AACA,IAAIa,YAAY,CACf,UADe,EAEf,gBAFe,EAGf,SAHe,EAIf,gBAJe,EAKf,eALe,EAMf,sBANe,EAOf,aAPe,CAAhB;AASA,IAAIC,6BAA6B,UAAUC,CAAV,EAAa;AAC7C,KAAIC,OAAOD,EAAEE,WAAb;AACA,QAAOD,QAAQA,KAAKvB,SAAL,KAAmBsB,CAAlC;AACA,CAHD;AAIA,IAAIG,eAAe;AAClBC,WAAU,IADQ;AAElBC,YAAW,IAFO;AAGlBC,SAAQ,IAHU;AAIlBC,gBAAe,IAJG;AAKlBC,UAAS,IALS;AAMlBC,eAAc,IANI;AAOlBC,cAAa,IAPK;AAQlBC,eAAc,IARI;AASlBC,cAAa,IATK;AAUlBC,eAAc,IAVI;AAWlBC,eAAc,IAXI;AAYlBC,UAAS,IAZS;AAalBC,cAAa,IAbK;AAclBC,aAAY,IAdM;AAelBC,WAAU,IAfQ;AAgBlBC,WAAU,IAhBQ;AAiBlBC,QAAO,IAjBW;AAkBlBC,mBAAkB,IAlBA;AAmBlBC,qBAAoB,IAnBF;AAoBlBC,UAAS;AApBS,CAAnB;AAsBA,IAAIC,2BAA4B,YAAY;AAC3C;AACA,KAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AAAE,SAAO,KAAP;AAAe;AACpD,MAAK,IAAIC,CAAT,IAAcD,MAAd,EAAsB;AACrB,MAAI;AACH,OAAI,CAACtB,aAAa,MAAMuB,CAAnB,CAAD,IAA0BrC,IAAIJ,IAAJ,CAASwC,MAAT,EAAiBC,CAAjB,CAA1B,IAAiDD,OAAOC,CAAP,MAAc,IAA/D,IAAuE,OAAOD,OAAOC,CAAP,CAAP,KAAqB,QAAhG,EAA0G;AACzG,QAAI;AACH3B,gCAA2B0B,OAAOC,CAAP,CAA3B;AACA,KAFD,CAEE,OAAOC,CAAP,EAAU;AACX,YAAO,IAAP;AACA;AACD;AACD,GARD,CAQE,OAAOA,CAAP,EAAU;AACX,UAAO,IAAP;AACA;AACD;AACD,QAAO,KAAP;AACA,CAjB+B,EAAhC;AAkBA,IAAIC,uCAAuC,UAAU5B,CAAV,EAAa;AACvD;AACA,KAAI,OAAOyB,MAAP,KAAkB,WAAlB,IAAiC,CAACD,wBAAtC,EAAgE;AAC/D,SAAOzB,2BAA2BC,CAA3B,CAAP;AACA;AACD,KAAI;AACH,SAAOD,2BAA2BC,CAA3B,CAAP;AACA,EAFD,CAEE,OAAO2B,CAAP,EAAU;AACX,SAAO,KAAP;AACA;AACD,CAVD;;AAYA,IAAIE,WAAW,SAASC,IAAT,CAAcC,MAAd,EAAsB;AACpC,KAAIC,WAAWD,WAAW,IAAX,IAAmB,OAAOA,MAAP,KAAkB,QAApD;AACA,KAAIE,aAAazD,MAAMS,IAAN,CAAW8C,MAAX,MAAuB,mBAAxC;AACA,KAAIjD,cAAcI,OAAO6C,MAAP,CAAlB;AACA,KAAIG,WAAWF,YAAYxD,MAAMS,IAAN,CAAW8C,MAAX,MAAuB,iBAAlD;AACA,KAAII,UAAU,EAAd;;AAEA,KAAI,CAACH,QAAD,IAAa,CAACC,UAAd,IAA4B,CAACnD,WAAjC,EAA8C;AAC7C,QAAM,IAAIsD,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,KAAIC,YAAYxC,mBAAmBoC,UAAnC;AACA,KAAIC,YAAYH,OAAO5C,MAAP,GAAgB,CAA5B,IAAiC,CAACE,IAAIJ,IAAJ,CAAS8C,MAAT,EAAiB,CAAjB,CAAtC,EAA2D;AAC1D,OAAK,IAAIO,IAAI,CAAb,EAAgBA,IAAIP,OAAO5C,MAA3B,EAAmC,EAAEmD,CAArC,EAAwC;AACvCH,WAAQI,IAAR,CAAaC,OAAOF,CAAP,CAAb;AACA;AACD;;AAED,KAAIxD,eAAeiD,OAAO5C,MAAP,GAAgB,CAAnC,EAAsC;AACrC,OAAK,IAAIsD,IAAI,CAAb,EAAgBA,IAAIV,OAAO5C,MAA3B,EAAmC,EAAEsD,CAArC,EAAwC;AACvCN,WAAQI,IAAR,CAAaC,OAAOC,CAAP,CAAb;AACA;AACD,EAJD,MAIO;AACN,OAAK,IAAIC,IAAT,IAAiBX,MAAjB,EAAyB;AACxB,OAAI,EAAEM,aAAaK,SAAS,WAAxB,KAAwCrD,IAAIJ,IAAJ,CAAS8C,MAAT,EAAiBW,IAAjB,CAA5C,EAAoE;AACnEP,YAAQI,IAAR,CAAaC,OAAOE,IAAP,CAAb;AACA;AACD;AACD;;AAED,KAAI9C,cAAJ,EAAoB;AACnB,MAAI+C,kBAAkBf,qCAAqCG,MAArC,CAAtB;;AAEA,OAAK,IAAIL,IAAI,CAAb,EAAgBA,IAAI5B,UAAUX,MAA9B,EAAsC,EAAEuC,CAAxC,EAA2C;AAC1C,OAAI,EAAEiB,mBAAmB7C,UAAU4B,CAAV,MAAiB,aAAtC,KAAwDrC,IAAIJ,IAAJ,CAAS8C,MAAT,EAAiBjC,UAAU4B,CAAV,CAAjB,CAA5D,EAA4F;AAC3FS,YAAQI,IAAR,CAAazC,UAAU4B,CAAV,CAAb;AACA;AACD;AACD;AACD,QAAOS,OAAP;AACA,CAxCD;;AA0CAN,SAASe,IAAT,GAAgB,SAASC,cAAT,GAA0B;AACzC,KAAIpE,OAAOqD,IAAX,EAAiB;AAChB,MAAIgB,yBAA0B,YAAY;AACzC;AACA,UAAO,CAACrE,OAAOqD,IAAP,CAAYiB,SAAZ,KAA0B,EAA3B,EAA+B5D,MAA/B,KAA0C,CAAjD;AACA,GAH6B,CAG5B,CAH4B,EAGzB,CAHyB,CAA9B;AAIA,MAAI,CAAC2D,sBAAL,EAA6B;AAC5B,OAAIE,eAAevE,OAAOqD,IAA1B;AACArD,UAAOqD,IAAP,GAAc,SAASA,IAAT,CAAcC,MAAd,EAAsB;AACnC,QAAI7C,OAAO6C,MAAP,CAAJ,EAAoB;AACnB,YAAOiB,aAAazD,MAAMN,IAAN,CAAW8C,MAAX,CAAb,CAAP;AACA,KAFD,MAEO;AACN,YAAOiB,aAAajB,MAAb,CAAP;AACA;AACD,IAND;AAOA;AACD,EAfD,MAeO;AACNtD,SAAOqD,IAAP,GAAcD,QAAd;AACA;AACD,QAAOpD,OAAOqD,IAAP,IAAeD,QAAtB;AACA,CApBD;;AAsBAjD,OAAOC,OAAP,GAAiBgD,QAAjB;;AC3IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;;AAEA,IAAIC,OAAOrC,QAAQ,aAAR,CAAX;AACA,IAAIwD,UAAUxD,QAAQ,SAAR,CAAd;AACA,IAAIyD,aAAa,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,QAAP,KAAoB,QAArE;;AAEA,IAAI3E,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;;AAEA,IAAIsD,aAAa,UAAUmB,EAAV,EAAc;AAC9B,QAAO,OAAOA,EAAP,KAAc,UAAd,IAA4B5E,MAAMS,IAAN,CAAWmE,EAAX,MAAmB,mBAAtD;AACA,CAFD;;AAIA,IAAIC,kCAAkC,YAAY;AACjD,KAAIC,MAAM,EAAV;AACA,KAAI;AACH7E,SAAO8E,cAAP,CAAsBD,GAAtB,EAA2B,GAA3B,EAAgC,EAAEE,YAAY,KAAd,EAAqBzE,OAAOuE,GAA5B,EAAhC;AACM;AACA,OAAK,IAAIG,CAAT,IAAcH,GAAd,EAAmB;AAAE,UAAO,KAAP;AAAe;AACpC;AACN,SAAOA,IAAII,CAAJ,KAAUJ,GAAjB;AACA,EAND,CAME,OAAO3B,CAAP,EAAU;AAAE;AACb,SAAO,KAAP;AACA;AACD,CAXD;AAYA,IAAIgC,sBAAsBlF,OAAO8E,cAAP,IAAyBF,iCAAnD;;AAEA,IAAIE,iBAAiB,UAAUxB,MAAV,EAAkBW,IAAlB,EAAwB3D,KAAxB,EAA+B6E,SAA/B,EAA0C;AAC9D,KAAIlB,QAAQX,MAAR,KAAmB,CAACE,WAAW2B,SAAX,CAAD,IAA0B,CAACA,WAA9C,CAAJ,EAAgE;AAC/D;AACA;AACD,KAAID,mBAAJ,EAAyB;AACxBlF,SAAO8E,cAAP,CAAsBxB,MAAtB,EAA8BW,IAA9B,EAAoC;AACnCmB,iBAAc,IADqB;AAEnCL,eAAY,KAFuB;AAGnCzE,UAAOA,KAH4B;AAInC+E,aAAU;AAJyB,GAApC;AAMA,EAPD,MAOO;AACN/B,SAAOW,IAAP,IAAe3D,KAAf;AACA;AACD,CAdD;;AAgBA,IAAIgF,mBAAmB,UAAUhC,MAAV,EAAkBiC,GAAlB,EAAuB;AAC7C,KAAIC,aAAalB,UAAU5D,MAAV,GAAmB,CAAnB,GAAuB4D,UAAU,CAAV,CAAvB,GAAsC,EAAvD;AACA,KAAImB,QAAQpC,KAAKkC,GAAL,CAAZ;AACA,KAAId,UAAJ,EAAgB;AACfgB,UAAQA,MAAMC,MAAN,CAAa1F,OAAO2F,qBAAP,CAA6BJ,GAA7B,CAAb,CAAR;AACA;AACDf,SAAQiB,KAAR,EAAe,UAAUxB,IAAV,EAAgB;AAC9Ba,iBAAexB,MAAf,EAAuBW,IAAvB,EAA6BsB,IAAItB,IAAJ,CAA7B,EAAwCuB,WAAWvB,IAAX,CAAxC;AACA,EAFD;AAGA,CATD;;AAWAqB,iBAAiBJ,mBAAjB,GAAuC,CAAC,CAACA,mBAAzC;;AAEA/E,OAAOC,OAAP,GAAiBkF,gBAAjB;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpDA;AACA;AACA;AACA;AACA;AACA;;ACLA,IAAIM,OAAO5E,QAAQ,eAAR,CAAX;;AAEAb,OAAOC,OAAP,GAAiBwF,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyBR,OAAOC,SAAP,CAAiBY,cAA1C,CAAjB;;ACFAV,OAAOC,OAAP,GAAiB,SAAS0F,WAAT,CAAqBxF,KAArB,EAA4B;AAC5C,QAAOA,UAAU,IAAV,IAAmB,OAAOA,KAAP,KAAiB,UAAjB,IAA+B,OAAOA,KAAP,KAAiB,QAA1E;AACA,CAFD;;ACAA;;AAEA,IAAIyF,UAAUF,SAAS5F,SAAT,CAAmBC,QAAjC;;AAEA,IAAI8F,mBAAmB,YAAvB;AACA,IAAIC,eAAe,SAASA,YAAT,CAAsB3F,KAAtB,EAA6B;AAC/C,KAAI;AACH,MAAI4F,QAAQH,QAAQvF,IAAR,CAAaF,KAAb,CAAZ;AACA,MAAI6F,iBAAiBD,MAAME,OAAN,CAAc,WAAd,EAA2B,EAA3B,CAArB;AACA,MAAIC,gBAAgBF,eAAeC,OAAf,CAAuB,mBAAvB,EAA4C,EAA5C,CAApB;AACA,MAAIE,gBAAgBD,cAAcD,OAAd,CAAsB,MAAtB,EAA8B,GAA9B,EAAmCA,OAAnC,CAA2C,OAA3C,EAAoD,GAApD,CAApB;AACA,SAAOJ,iBAAiBO,IAAjB,CAAsBD,aAAtB,CAAP;AACA,EAND,CAME,OAAOpD,CAAP,EAAU;AACX,SAAO,KAAP,CADW,CACG;AACd;AACD,CAVD;;AAYA,IAAIsD,oBAAoB,SAASA,iBAAT,CAA2BlG,KAA3B,EAAkC;AACzD,KAAI;AACH,MAAI2F,aAAa3F,KAAb,CAAJ,EAAyB;AAAE,UAAO,KAAP;AAAe;AAC1CyF,UAAQvF,IAAR,CAAaF,KAAb;AACA,SAAO,IAAP;AACA,EAJD,CAIE,OAAO4C,CAAP,EAAU;AACX,SAAO,KAAP;AACA;AACD,CARD;AASA,IAAInD,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIuG,UAAU,mBAAd;AACA,IAAIC,WAAW,4BAAf;AACA,IAAIC,iBAAiB,OAAOjC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,OAAOkC,WAAd,KAA8B,QAAnF;;AAEAzG,OAAOC,OAAP,GAAiB,SAASyG,UAAT,CAAoBvG,KAApB,EAA2B;AAC3C,KAAI,CAACA,KAAL,EAAY;AAAE,SAAO,KAAP;AAAe;AAC7B,KAAI,OAAOA,KAAP,KAAiB,UAAjB,IAA+B,OAAOA,KAAP,KAAiB,QAApD,EAA8D;AAAE,SAAO,KAAP;AAAe;AAC/E,KAAIqG,cAAJ,EAAoB;AAAE,SAAOH,kBAAkBlG,KAAlB,CAAP;AAAkC;AACxD,KAAI2F,aAAa3F,KAAb,CAAJ,EAAyB;AAAE,SAAO,KAAP;AAAe;AAC1C,KAAIwG,WAAW/G,MAAMS,IAAN,CAAWF,KAAX,CAAf;AACA,QAAOwG,aAAaL,OAAb,IAAwBK,aAAaJ,QAA5C;AACA,CAPD;;AC/BA;;AAEA,IAAIK,SAASC,KAAK/G,SAAL,CAAe8G,MAA5B;AACA,IAAIE,gBAAgB,SAASA,aAAT,CAAuB3G,KAAvB,EAA8B;AACjD,KAAI;AACHyG,SAAOvG,IAAP,CAAYF,KAAZ;AACA,SAAO,IAAP;AACA,EAHD,CAGE,OAAO4C,CAAP,EAAU;AACX,SAAO,KAAP;AACA;AACD,CAPD;;AASA,IAAInD,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIgH,YAAY,eAAhB;AACA,IAAIP,iBAAiB,OAAOjC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,OAAOkC,WAAd,KAA8B,QAAnF;;AAEAzG,OAAOC,OAAP,GAAiB,SAAS+G,YAAT,CAAsB7G,KAAtB,EAA6B;AAC7C,KAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,UAAU,IAA3C,EAAiD;AAAE,SAAO,KAAP;AAAe;AAClE,QAAOqG,iBAAiBM,cAAc3G,KAAd,CAAjB,GAAwCP,MAAMS,IAAN,CAAWF,KAAX,MAAsB4G,SAArE;AACA,CAHD;;AChBA;;AAEA,IAAInH,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIuE,aAAa,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,QAAP,KAAoB,QAArE;;AAEA,IAAID,UAAJ,EAAgB;AACf,KAAI2C,WAAW1C,OAAOzE,SAAP,CAAiBC,QAAhC;AACA,KAAImH,iBAAiB,gBAArB;AACA,KAAIC,iBAAiB,SAASA,cAAT,CAAwBhH,KAAxB,EAA+B;AACnD,MAAI,OAAOA,MAAMiH,OAAN,EAAP,KAA2B,QAA/B,EAAyC;AAAE,UAAO,KAAP;AAAe;AAC1D,SAAOF,eAAed,IAAf,CAAoBa,SAAS5G,IAAT,CAAcF,KAAd,CAApB,CAAP;AACA,EAHD;AAIAH,QAAOC,OAAP,GAAiB,SAASoH,QAAT,CAAkBlH,KAAlB,EAAyB;AACzC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAAE,UAAO,IAAP;AAAc;AAC/C,MAAIP,MAAMS,IAAN,CAAWF,KAAX,MAAsB,iBAA1B,EAA6C;AAAE,UAAO,KAAP;AAAe;AAC9D,MAAI;AACH,UAAOgH,eAAehH,KAAf,CAAP;AACA,GAFD,CAEE,OAAO4C,CAAP,EAAU;AACX,UAAO,KAAP;AACA;AACD,EARD;AASA,CAhBD,MAgBO;AACN/C,QAAOC,OAAP,GAAiB,SAASoH,QAAT,CAAkBlH,KAAlB,EAAyB;AACzC;AACA,SAAO,KAAP;AACA,EAHD;AAIA;;AC1BD;;AAEA,IAAImE,aAAa,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,OAAO+C,QAAd,KAA2B,QAA5E;;AAEA,IAAI3B,cAAc9E,QAAQ,uBAAR,CAAlB;AACA,IAAI6F,aAAa7F,QAAQ,aAAR,CAAjB;AACA,IAAI0G,SAAS1G,QAAQ,gBAAR,CAAb;AACA,IAAIwG,WAAWxG,QAAQ,WAAR,CAAf;;AAEA,IAAI2G,sBAAsB,SAASC,mBAAT,CAA6BC,CAA7B,EAAgCC,IAAhC,EAAsC;AAC/D,KAAI,OAAOD,CAAP,KAAa,WAAb,IAA4BA,MAAM,IAAtC,EAA4C;AAC3C,QAAM,IAAIlE,SAAJ,CAAc,2BAA2BkE,CAAzC,CAAN;AACA;AACD,KAAI,OAAOC,IAAP,KAAgB,QAAhB,IAA6BA,SAAS,QAAT,IAAqBA,SAAS,QAA/D,EAA0E;AACzE,QAAM,IAAInE,SAAJ,CAAc,mCAAd,CAAN;AACA;AACD,KAAIoE,cAAcD,SAAS,QAAT,GAAoB,CAAC,UAAD,EAAa,SAAb,CAApB,GAA8C,CAAC,SAAD,EAAY,UAAZ,CAAhE;AACA,KAAIE,MAAJ,EAAYC,MAAZ,EAAoBpE,CAApB;AACA,MAAKA,IAAI,CAAT,EAAYA,IAAIkE,YAAYrH,MAA5B,EAAoC,EAAEmD,CAAtC,EAAyC;AACxCmE,WAASH,EAAEE,YAAYlE,CAAZ,CAAF,CAAT;AACA,MAAIgD,WAAWmB,MAAX,CAAJ,EAAwB;AACvBC,YAASD,OAAOxH,IAAP,CAAYqH,CAAZ,CAAT;AACA,OAAI/B,YAAYmC,MAAZ,CAAJ,EAAyB;AACxB,WAAOA,MAAP;AACA;AACD;AACD;AACD,OAAM,IAAItE,SAAJ,CAAc,kBAAd,CAAN;AACA,CAnBD;;AAqBA,IAAIuE,YAAY,SAASA,SAAT,CAAmBL,CAAnB,EAAsBM,CAAtB,EAAyB;AACxC,KAAIC,OAAOP,EAAEM,CAAF,CAAX;AACA,KAAIC,SAAS,IAAT,IAAiB,OAAOA,IAAP,KAAgB,WAArC,EAAkD;AACjD,MAAI,CAACvB,WAAWuB,IAAX,CAAL,EAAuB;AACtB,SAAM,IAAIzE,SAAJ,CAAcyE,OAAO,yBAAP,GAAmCD,CAAnC,GAAuC,aAAvC,GAAuDN,CAAvD,GAA2D,oBAAzE,CAAN;AACA;AACD,SAAOO,IAAP;AACA;AACD,CARD;;AAUA;AACAjI,OAAOC,OAAP,GAAiB,SAASiI,WAAT,CAAqBC,KAArB,EAA4BC,aAA5B,EAA2C;AAC3D,KAAIzC,YAAYwC,KAAZ,CAAJ,EAAwB;AACvB,SAAOA,KAAP;AACA;AACD,KAAIR,OAAO,SAAX;AACA,KAAIxD,UAAU5D,MAAV,GAAmB,CAAvB,EAA0B;AACzB,MAAI6H,kBAAkBxE,MAAtB,EAA8B;AAC7B+D,UAAO,QAAP;AACA,GAFD,MAEO,IAAIS,kBAAkBC,MAAtB,EAA8B;AACpCV,UAAO,QAAP;AACA;AACD;;AAED,KAAIW,YAAJ;AACA,KAAIhE,UAAJ,EAAgB;AACf,MAAIC,OAAOgE,WAAX,EAAwB;AACvBD,kBAAeP,UAAUI,KAAV,EAAiB5D,OAAOgE,WAAxB,CAAf;AACA,GAFD,MAEO,IAAIlB,SAASc,KAAT,CAAJ,EAAqB;AAC3BG,kBAAe/D,OAAOzE,SAAP,CAAiBsH,OAAhC;AACA;AACD;AACD,KAAI,OAAOkB,YAAP,KAAwB,WAA5B,EAAyC;AACxC,MAAIR,SAASQ,aAAajI,IAAb,CAAkB8H,KAAlB,EAAyBR,IAAzB,CAAb;AACA,MAAIhC,YAAYmC,MAAZ,CAAJ,EAAyB;AACxB,UAAOA,MAAP;AACA;AACD,QAAM,IAAItE,SAAJ,CAAc,8CAAd,CAAN;AACA;AACD,KAAImE,SAAS,SAAT,KAAuBJ,OAAOY,KAAP,KAAiBd,SAASc,KAAT,CAAxC,CAAJ,EAA8D;AAC7DR,SAAO,QAAP;AACA;AACD,QAAOH,oBAAoBW,KAApB,EAA2BR,SAAS,SAAT,GAAqB,QAArB,GAAgCA,IAA3D,CAAP;AACA,CAhCD;;ACzCA3H,OAAOC,OAAP,GAAiBoI,OAAOG,KAAP,IAAgB,SAASA,KAAT,CAAeC,CAAf,EAAkB;AAClD,QAAOA,MAAMA,CAAb;AACA,CAFD;;ACAA,IAAIC,SAASL,OAAOG,KAAP,IAAgB,UAAUC,CAAV,EAAa;AAAE,SAAOA,MAAMA,CAAb;AAAiB,CAA7D;;AAEAzI,OAAOC,OAAP,GAAiBoI,OAAOM,QAAP,IAAmB,UAAU7D,CAAV,EAAa;AAAE,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyB,CAAC4D,OAAO5D,CAAP,CAA1B,IAAuCA,MAAM8D,QAA7C,IAAyD9D,MAAM,CAAC8D,QAAvE;AAAkF,CAArI;;ACFA,IAAInI,MAAMZ,OAAOC,SAAP,CAAiBY,cAA3B;AACAV,OAAOC,OAAP,GAAiB,SAAS4I,MAAT,CAAgBC,MAAhB,EAAwBC,MAAxB,EAAgC;AAChD,KAAIlJ,OAAOgJ,MAAX,EAAmB;AAClB,SAAOhJ,OAAOgJ,MAAP,CAAcC,MAAd,EAAsBC,MAAtB,CAAP;AACA;AACD,MAAK,IAAIC,GAAT,IAAgBD,MAAhB,EAAwB;AACvB,MAAItI,IAAIJ,IAAJ,CAAS0I,MAAT,EAAiBC,GAAjB,CAAJ,EAA2B;AAC1BF,UAAOE,GAAP,IAAcD,OAAOC,GAAP,CAAd;AACA;AACD;AACD,QAAOF,MAAP;AACA,CAVD;;ACDA9I,OAAOC,OAAP,GAAiB,SAASgJ,IAAT,CAAcC,MAAd,EAAsB;AACtC,QAAOA,UAAU,CAAV,GAAc,CAAd,GAAkB,CAAC,CAA1B;AACA,CAFD;;ACAAlJ,OAAOC,OAAP,GAAiB,SAASkJ,GAAT,CAAaD,MAAb,EAAqBE,MAArB,EAA6B;AAC7C,KAAIC,SAASH,SAASE,MAAtB;AACA,QAAOE,KAAKC,KAAL,CAAWF,UAAU,CAAV,GAAcA,MAAd,GAAuBA,SAASD,MAA3C,CAAP;AACA,CAHD;;AEAA;;AAEA,IAAIxJ,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;;AAEA,IAAI4F,cAAc9E,QAAQ,uBAAR,CAAlB;;AAEA,IAAI6F,aAAa7F,QAAQ,aAAR,CAAjB;;AAEA;AACA,IAAI2I,mBAAmB;AACtB,qBAAoB,UAAU9B,CAAV,EAAaC,IAAb,EAAmB;AACtC,MAAI8B,aAAa9B,SAAS/H,MAAMS,IAAN,CAAWqH,CAAX,MAAkB,eAAlB,GAAoC9D,MAApC,GAA6CyE,MAAtD,CAAjB;;AAEA,MAAIoB,eAAe7F,MAAf,IAAyB6F,eAAepB,MAA5C,EAAoD;AACnD,OAAIqB,UAAUD,eAAe7F,MAAf,GAAwB,CAAC,UAAD,EAAa,SAAb,CAAxB,GAAkD,CAAC,SAAD,EAAY,UAAZ,CAAhE;AACA,OAAIzD,KAAJ,EAAWuD,CAAX;AACA,QAAKA,IAAI,CAAT,EAAYA,IAAIgG,QAAQnJ,MAAxB,EAAgC,EAAEmD,CAAlC,EAAqC;AACpC,QAAIgD,WAAWgB,EAAEgC,QAAQhG,CAAR,CAAF,CAAX,CAAJ,EAA+B;AAC9BvD,aAAQuH,EAAEgC,QAAQhG,CAAR,CAAF,GAAR;AACA,SAAIiC,YAAYxF,KAAZ,CAAJ,EAAwB;AACvB,aAAOA,KAAP;AACA;AACD;AACD;AACD,SAAM,IAAIqD,SAAJ,CAAc,kBAAd,CAAN;AACA;AACD,QAAM,IAAIA,SAAJ,CAAc,wCAAd,CAAN;AACA;AAlBqB,CAAvB;;AAqBA;AACAxD,OAAOC,OAAP,GAAiB,SAASiI,WAAT,CAAqBC,KAArB,EAA4BC,aAA5B,EAA2C;AAC3D,KAAIzC,YAAYwC,KAAZ,CAAJ,EAAwB;AACvB,SAAOA,KAAP;AACA;AACD,QAAOqB,iBAAiB,kBAAjB,EAAqCrB,KAArC,EAA4CC,aAA5C,CAAP;AACA,CALD;;AC/BA;;AAEA,IAAIM,SAAS7H,QAAQ,iBAAR,CAAb;AACA,IAAI8I,YAAY9I,QAAQ,oBAAR,CAAhB;;AAEA,IAAIoI,OAAOpI,QAAQ,gBAAR,CAAX;AACA,IAAIsI,MAAMtI,QAAQ,eAAR,CAAV;;AAEA,IAAI+I,aAAa/I,QAAQ,aAAR,CAAjB;AACA,IAAI0H,cAAc1H,QAAQ,qBAAR,CAAlB;;AAEA,IAAIJ,MAAMI,QAAQ,KAAR,CAAV;;AAEA;AACA,IAAIgJ,MAAM;AACT3B,cAAaK,WADJ;;AAGTuB,YAAW,SAASA,SAAT,CAAmB3J,KAAnB,EAA0B;AACpC,SAAO,CAAC,CAACA,KAAT;AACA,EALQ;AAMT4J,WAAU,SAASA,QAAT,CAAkB5J,KAAlB,EAAyB;AAClC,SAAOkI,OAAOlI,KAAP,CAAP;AACA,EARQ;AAST6J,YAAW,SAASA,SAAT,CAAmB7J,KAAnB,EAA0B;AACpC,MAAI+I,SAAS,KAAKa,QAAL,CAAc5J,KAAd,CAAb;AACA,MAAIuI,OAAOQ,MAAP,CAAJ,EAAoB;AAAE,UAAO,CAAP;AAAW;AACjC,MAAIA,WAAW,CAAX,IAAgB,CAACS,UAAUT,MAAV,CAArB,EAAwC;AAAE,UAAOA,MAAP;AAAgB;AAC1D,SAAOD,KAAKC,MAAL,IAAeI,KAAKC,KAAL,CAAWD,KAAKW,GAAL,CAASf,MAAT,CAAX,CAAtB;AACA,EAdQ;AAeTgB,UAAS,SAASA,OAAT,CAAiBpF,CAAjB,EAAoB;AAC5B,SAAO,KAAKiF,QAAL,CAAcjF,CAAd,KAAoB,CAA3B;AACA,EAjBQ;AAkBTqF,WAAU,SAASA,QAAT,CAAkBrF,CAAlB,EAAqB;AAC9B,SAAO,KAAKiF,QAAL,CAAcjF,CAAd,MAAqB,CAA5B;AACA,EApBQ;AAqBTsF,WAAU,SAASA,QAAT,CAAkBjK,KAAlB,EAAyB;AAClC,MAAI+I,SAAS,KAAKa,QAAL,CAAc5J,KAAd,CAAb;AACA,MAAIuI,OAAOQ,MAAP,KAAkBA,WAAW,CAA7B,IAAkC,CAACS,UAAUT,MAAV,CAAvC,EAA0D;AAAE,UAAO,CAAP;AAAW;AACvE,MAAImB,SAASpB,KAAKC,MAAL,IAAeI,KAAKC,KAAL,CAAWD,KAAKW,GAAL,CAASf,MAAT,CAAX,CAA5B;AACA,SAAOC,IAAIkB,MAAJ,EAAY,OAAZ,CAAP;AACA,EA1BQ;AA2BTC,WAAU,SAASA,QAAT,CAAkBnK,KAAlB,EAAyB;AAClC,SAAOyD,OAAOzD,KAAP,CAAP;AACA,EA7BQ;AA8BToK,WAAU,SAASA,QAAT,CAAkBpK,KAAlB,EAAyB;AAClC,OAAKqK,oBAAL,CAA0BrK,KAA1B;AACA,SAAON,OAAOM,KAAP,CAAP;AACA,EAjCQ;AAkCTqK,uBAAsB,SAASA,oBAAT,CAA8BrK,KAA9B,EAAqCsK,UAArC,EAAiD;AACtE;AACA,MAAItK,SAAS,IAAb,EAAmB;AAClB,SAAM,IAAIqD,SAAJ,CAAciH,cAAc,2BAA2BtK,KAAvD,CAAN;AACA;AACD,SAAOA,KAAP;AACA,EAxCQ;AAyCTyJ,aAAYA,UAzCH;AA0CTc,YAAW,SAASA,SAAT,CAAmB5F,CAAnB,EAAsB6F,CAAtB,EAAyB;AACnC,MAAI7F,MAAM6F,CAAV,EAAa;AAAE;AACd,OAAI7F,MAAM,CAAV,EAAa;AAAE,WAAO,IAAIA,CAAJ,KAAU,IAAI6F,CAArB;AAAyB;AACxC,UAAO,IAAP;AACA;AACD,SAAOjC,OAAO5D,CAAP,KAAa4D,OAAOiC,CAAP,CAApB;AACA,EAhDQ;;AAkDT;AACAC,OAAM,SAASA,IAAT,CAAc9F,CAAd,EAAiB;AACtB,MAAIA,MAAM,IAAV,EAAgB;AACf,UAAO,MAAP;AACA;AACD,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC7B,UAAO,WAAP;AACA;AACD,MAAI,OAAOA,CAAP,KAAa,UAAb,IAA2B,OAAOA,CAAP,KAAa,QAA5C,EAAsD;AACrD,UAAO,QAAP;AACA;AACD,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAC1B,UAAO,QAAP;AACA;AACD,MAAI,OAAOA,CAAP,KAAa,SAAjB,EAA4B;AAC3B,UAAO,SAAP;AACA;AACD,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAC1B,UAAO,QAAP;AACA;AACD,EAtEQ;;AAwET;AACA+F,uBAAsB,SAASA,oBAAT,CAA8BC,IAA9B,EAAoC;AACzD,MAAI,KAAKF,IAAL,CAAUE,IAAV,MAAoB,QAAxB,EAAkC;AACjC,UAAO,KAAP;AACA;AACD,MAAIC,UAAU;AACb,uBAAoB,IADP;AAEb,qBAAkB,IAFL;AAGb,cAAW,IAHE;AAIb,cAAW,IAJE;AAKb,gBAAa,IALA;AAMb,mBAAgB;AANH,GAAd;AAQA;AACA,OAAK,IAAI/B,GAAT,IAAgB8B,IAAhB,EAAsB;AAAE;AACvB,OAAIrK,IAAIqK,IAAJ,EAAU9B,GAAV,KAAkB,CAAC+B,QAAQ/B,GAAR,CAAvB,EAAqC;AACpC,WAAO,KAAP;AACA;AACD;AACD;AACA,MAAIgC,SAASvK,IAAIqK,IAAJ,EAAU,WAAV,CAAb;AACA,MAAIG,aAAaxK,IAAIqK,IAAJ,EAAU,SAAV,KAAwBrK,IAAIqK,IAAJ,EAAU,SAAV,CAAzC;AACA,MAAIE,UAAUC,UAAd,EAA0B;AACzB,SAAM,IAAIzH,SAAJ,CAAc,oEAAd,CAAN;AACA;AACD,SAAO,IAAP;AACA,EAlGQ;;AAoGT;AACA0H,uBAAsB,SAASA,oBAAT,CAA8BJ,IAA9B,EAAoC;AACzD,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAChC,UAAO,KAAP;AACA;;AAED,MAAI,CAAC,KAAKD,oBAAL,CAA0BC,IAA1B,CAAL,EAAsC;AACrC,SAAM,IAAItH,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,MAAI,CAAC/C,IAAIqK,IAAJ,EAAU,SAAV,CAAD,IAAyB,CAACrK,IAAIqK,IAAJ,EAAU,SAAV,CAA9B,EAAoD;AACnD,UAAO,KAAP;AACA;;AAED,SAAO,IAAP;AACA,EAnHQ;;AAqHT;AACAK,mBAAkB,SAASA,gBAAT,CAA0BL,IAA1B,EAAgC;AACjD,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAChC,UAAO,KAAP;AACA;;AAED,MAAI,CAAC,KAAKD,oBAAL,CAA0BC,IAA1B,CAAL,EAAsC;AACrC,SAAM,IAAItH,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,MAAI,CAAC/C,IAAIqK,IAAJ,EAAU,WAAV,CAAD,IAA2B,CAACrK,IAAIqK,IAAJ,EAAU,cAAV,CAAhC,EAA2D;AAC1D,UAAO,KAAP;AACA;;AAED,SAAO,IAAP;AACA,EApIQ;;AAsIT;AACAM,sBAAqB,SAASA,mBAAT,CAA6BN,IAA7B,EAAmC;AACvD,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAChC,UAAO,KAAP;AACA;;AAED,MAAI,CAAC,KAAKD,oBAAL,CAA0BC,IAA1B,CAAL,EAAsC;AACrC,SAAM,IAAItH,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,MAAI,CAAC,KAAK0H,oBAAL,CAA0BJ,IAA1B,CAAD,IAAoC,CAAC,KAAKK,gBAAL,CAAsBL,IAAtB,CAAzC,EAAsE;AACrE,UAAO,IAAP;AACA;;AAED,SAAO,KAAP;AACA,EArJQ;;AAuJT;AACAO,yBAAwB,SAASA,sBAAT,CAAgCP,IAAhC,EAAsC;AAC7D,MAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;AAChC,UAAOA,IAAP;AACA;;AAED,MAAI,CAAC,KAAKD,oBAAL,CAA0BC,IAA1B,CAAL,EAAsC;AACrC,SAAM,IAAItH,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,MAAI,KAAK2H,gBAAL,CAAsBL,IAAtB,CAAJ,EAAiC;AAChC,UAAO;AACN3K,WAAO2K,KAAK,WAAL,CADD;AAEN5F,cAAU,CAAC,CAAC4F,KAAK,cAAL,CAFN;AAGNlG,gBAAY,CAAC,CAACkG,KAAK,gBAAL,CAHR;AAIN7F,kBAAc,CAAC,CAAC6F,KAAK,kBAAL;AAJV,IAAP;AAMA,GAPD,MAOO,IAAI,KAAKI,oBAAL,CAA0BJ,IAA1B,CAAJ,EAAqC;AAC3C,UAAO;AACNQ,SAAKR,KAAK,SAAL,CADC;AAENS,SAAKT,KAAK,SAAL,CAFC;AAGNlG,gBAAY,CAAC,CAACkG,KAAK,gBAAL,CAHR;AAIN7F,kBAAc,CAAC,CAAC6F,KAAK,kBAAL;AAJV,IAAP;AAMA,GAPM,MAOA;AACN,SAAM,IAAItH,SAAJ,CAAc,kFAAd,CAAN;AACA;AACD,EAlLQ;;AAoLT;AACAgI,uBAAsB,SAASA,oBAAT,CAA8BC,GAA9B,EAAmC;AACxD,MAAI,KAAKb,IAAL,CAAUa,GAAV,MAAmB,QAAvB,EAAiC;AAChC,SAAM,IAAIjI,SAAJ,CAAc,yCAAd,CAAN;AACA;;AAED,MAAIkI,OAAO,EAAX;AACA,MAAIjL,IAAIgL,GAAJ,EAAS,YAAT,CAAJ,EAA4B;AAC3BC,QAAK,gBAAL,IAAyB,KAAK5B,SAAL,CAAe2B,IAAI7G,UAAnB,CAAzB;AACA;AACD,MAAInE,IAAIgL,GAAJ,EAAS,cAAT,CAAJ,EAA8B;AAC7BC,QAAK,kBAAL,IAA2B,KAAK5B,SAAL,CAAe2B,IAAIxG,YAAnB,CAA3B;AACA;AACD,MAAIxE,IAAIgL,GAAJ,EAAS,OAAT,CAAJ,EAAuB;AACtBC,QAAK,WAAL,IAAoBD,IAAItL,KAAxB;AACA;AACD,MAAIM,IAAIgL,GAAJ,EAAS,UAAT,CAAJ,EAA0B;AACzBC,QAAK,cAAL,IAAuB,KAAK5B,SAAL,CAAe2B,IAAIvG,QAAnB,CAAvB;AACA;AACD,MAAIzE,IAAIgL,GAAJ,EAAS,KAAT,CAAJ,EAAqB;AACpB,OAAIE,SAASF,IAAIH,GAAjB;AACA,OAAI,OAAOK,MAAP,KAAkB,WAAlB,IAAiC,CAAC,KAAK/B,UAAL,CAAgB+B,MAAhB,CAAtC,EAA+D;AAC9D,UAAM,IAAInI,SAAJ,CAAc,2BAAd,CAAN;AACA;AACDkI,QAAK,SAAL,IAAkBC,MAAlB;AACA;AACD,MAAIlL,IAAIgL,GAAJ,EAAS,KAAT,CAAJ,EAAqB;AACpB,OAAIG,SAASH,IAAIF,GAAjB;AACA,OAAI,OAAOK,MAAP,KAAkB,WAAlB,IAAiC,CAAC,KAAKhC,UAAL,CAAgBgC,MAAhB,CAAtC,EAA+D;AAC9D,UAAM,IAAIpI,SAAJ,CAAc,2BAAd,CAAN;AACA;AACDkI,QAAK,SAAL,IAAkBE,MAAlB;AACA;;AAED,MAAI,CAACnL,IAAIiL,IAAJ,EAAU,SAAV,KAAwBjL,IAAIiL,IAAJ,EAAU,SAAV,CAAzB,MAAmDjL,IAAIiL,IAAJ,EAAU,WAAV,KAA0BjL,IAAIiL,IAAJ,EAAU,cAAV,CAA7E,CAAJ,EAA6G;AAC5G,SAAM,IAAIlI,SAAJ,CAAc,8FAAd,CAAN;AACA;AACD,SAAOkI,IAAP;AACA;AA1NQ,CAAV;;AA6NA1L,OAAOC,OAAP,GAAiB4J,GAAjB;;AC3OA;;AAEA,IAAIpJ,MAAMI,QAAQ,KAAR,CAAV;AACA,IAAIgL,YAAYC,OAAOhM,SAAP,CAAiBiM,IAAjC;AACA,IAAIC,OAAOnM,OAAOoM,wBAAlB;;AAEA,IAAIC,mBAAmB,SAASC,YAAT,CAAsBhM,KAAtB,EAA6B;AACnD,KAAI;AACH,MAAIiM,YAAYjM,MAAMiM,SAAtB;AACAjM,QAAMiM,SAAN,GAAkB,CAAlB;;AAEAP,YAAUxL,IAAV,CAAeF,KAAf;AACA,SAAO,IAAP;AACA,EAND,CAME,OAAO4C,CAAP,EAAU;AACX,SAAO,KAAP;AACA,EARD,SAQU;AACT5C,QAAMiM,SAAN,GAAkBA,SAAlB;AACA;AACD,CAZD;AAaA,IAAIxM,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIsM,aAAa,iBAAjB;AACA,IAAI7F,iBAAiB,OAAOjC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,OAAOkC,WAAd,KAA8B,QAAnF;;AAEAzG,OAAOC,OAAP,GAAiB,SAASqM,OAAT,CAAiBnM,KAAjB,EAAwB;AACxC,KAAI,CAACA,KAAD,IAAU,OAAOA,KAAP,KAAiB,QAA/B,EAAyC;AACxC,SAAO,KAAP;AACA;AACD,KAAI,CAACqG,cAAL,EAAqB;AACpB,SAAO5G,MAAMS,IAAN,CAAWF,KAAX,MAAsBkM,UAA7B;AACA;;AAED,KAAIE,aAAaP,KAAK7L,KAAL,EAAY,WAAZ,CAAjB;AACA,KAAIqM,2BAA2BD,cAAc9L,IAAI8L,UAAJ,EAAgB,OAAhB,CAA7C;AACA,KAAI,CAACC,wBAAL,EAA+B;AAC9B,SAAO,KAAP;AACA;;AAED,QAAON,iBAAiB/L,KAAjB,CAAP;AACA,CAfD;;ACvBA;;AAEA,IAAIM,MAAMI,QAAQ,KAAR,CAAV;AACA,IAAI0H,cAAc1H,QAAQ,qBAAR,CAAlB;;AAEA,IAAIjB,QAAQC,OAAOC,SAAP,CAAiBC,QAA7B;AACA,IAAIuE,aAAa,OAAOC,MAAP,KAAkB,UAAlB,IAAgC,OAAOA,OAAO+C,QAAd,KAA2B,QAA5E;AACA,IAAImF,iBAAiBnI,aAAaC,OAAO+C,QAApB,GAA+B,IAApD;;AAEA,IAAIoB,SAAS7H,QAAQ,iBAAR,CAAb;AACA,IAAI8I,YAAY9I,QAAQ,oBAAR,CAAhB;AACA,IAAI6L,mBAAmBrE,OAAOqE,gBAAP,IAA2BpD,KAAKqD,GAAL,CAAS,CAAT,EAAY,EAAZ,IAAkB,CAApE;;AAEA,IAAI9D,SAAShI,QAAQ,kBAAR,CAAb;AACA,IAAIoI,OAAOpI,QAAQ,gBAAR,CAAX;AACA,IAAIsI,MAAMtI,QAAQ,eAAR,CAAV;AACA,IAAI8E,cAAc9E,QAAQ,uBAAR,CAAlB;AACA,IAAI+L,eAAeC,QAAnB;AACA,IAAIpH,OAAO5E,QAAQ,eAAR,CAAX;AACA,IAAIiM,aAAarH,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyBO,MAAMd,SAAN,CAAgBa,KAAzC,CAAjB;AACA,IAAIoM,WAAWtH,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyBuD,OAAO9D,SAAP,CAAiBa,KAA1C,CAAf;AACA,IAAIqM,WAAWvH,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyByL,OAAOhM,SAAP,CAAiBsG,IAA1C,EAAgD,YAAhD,CAAf;AACA,IAAI6G,UAAUxH,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyByL,OAAOhM,SAAP,CAAiBsG,IAA1C,EAAgD,aAAhD,CAAd;AACA,IAAIyF,YAAYpG,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyByL,OAAOhM,SAAP,CAAiBiM,IAA1C,CAAhB;AACA,IAAImB,QAAQ,CAAC,QAAD,EAAW,QAAX,EAAqB,QAArB,EAA+BC,IAA/B,CAAoC,EAApC,CAAZ;AACA,IAAIC,aAAa,IAAItB,MAAJ,CAAW,MAAMoB,KAAN,GAAc,GAAzB,EAA8B,GAA9B,CAAjB;AACA,IAAIG,WAAW5H,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyByL,OAAOhM,SAAP,CAAiBsG,IAA1C,EAAgDgH,UAAhD,CAAf;AACA,IAAIE,oBAAoB,oBAAxB;AACA,IAAIC,sBAAsB9H,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyByL,OAAOhM,SAAP,CAAiBsG,IAA1C,EAAgDkH,iBAAhD,CAA1B;;AAEA;AACA;AACA,IAAIE,KAAK,CACR,kEADQ,EAER,oEAFQ,EAGR,cAHQ,EAIPL,IAJO,CAIF,EAJE,CAAT;AAKA,IAAIM,YAAY,IAAI3B,MAAJ,CAAW,QAAQ0B,EAAR,GAAa,QAAb,GAAwBA,EAAxB,GAA6B,MAAxC,EAAgD,GAAhD,CAAhB;AACA,IAAIvH,UAAUR,KAAKpF,IAAL,CAAUqF,SAASrF,IAAnB,EAAyBuD,OAAO9D,SAAP,CAAiBmG,OAA1C,CAAd;AACA,IAAIyH,OAAO,UAAUvN,KAAV,EAAiB;AAC3B,QAAO8F,QAAQ9F,KAAR,EAAesN,SAAf,EAA0B,EAA1B,CAAP;AACA,CAFD;;AAIA,IAAI5D,MAAMhJ,QAAQ,OAAR,CAAV;;AAEA,IAAI8M,mBAAmB9M,QAAQ,UAAR,CAAvB;;AAEA;AACA,IAAI+M,MAAM/E,OAAOA,OAAO,EAAP,EAAWgB,GAAX,CAAP,EAAwB;;AAEjC;AACAgE,OAAM,SAASA,IAAT,CAAcC,CAAd,EAAiBC,CAAjB,EAAoB;AACzB,MAAIC,OAAO7J,UAAU5D,MAAV,GAAmB,CAAnB,GAAuB4D,UAAU,CAAV,CAAvB,GAAsC,EAAjD;AACA,MAAI,CAAC,KAAKyF,UAAL,CAAgBkE,CAAhB,CAAL,EAAyB;AACxB,SAAM,IAAItK,SAAJ,CAAcsK,IAAI,oBAAlB,CAAN;AACA;AACD,SAAOA,EAAEG,KAAF,CAAQF,CAAR,EAAWC,IAAX,CAAP;AACA,EATgC;;AAWjC;AACA9F,cAAaK,WAZoB;;AAcjC;AACA;;AAEA;AACAwB,WAAU,SAASA,QAAT,CAAkBmE,QAAlB,EAA4B;AACrC,MAAI/N,QAAQwF,YAAYuI,QAAZ,IAAwBA,QAAxB,GAAmC3F,YAAY2F,QAAZ,EAAsB7F,MAAtB,CAA/C;AACA,MAAI,OAAOlI,KAAP,KAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIqD,SAAJ,CAAc,2CAAd,CAAN;AACA;AACD,MAAI,OAAOrD,KAAP,KAAiB,QAArB,EAA+B;AAC9B,OAAI6M,SAAS7M,KAAT,CAAJ,EAAqB;AACpB,WAAO,KAAK4J,QAAL,CAAc6C,aAAaG,SAAS5M,KAAT,EAAgB,CAAhB,CAAb,EAAiC,CAAjC,CAAd,CAAP;AACA,IAFD,MAEO,IAAI8M,QAAQ9M,KAAR,CAAJ,EAAoB;AAC1B,WAAO,KAAK4J,QAAL,CAAc6C,aAAaG,SAAS5M,KAAT,EAAgB,CAAhB,CAAb,EAAiC,CAAjC,CAAd,CAAP;AACA,IAFM,MAEA,IAAIkN,SAASlN,KAAT,KAAmBoN,oBAAoBpN,KAApB,CAAvB,EAAmD;AACzD,WAAOgO,GAAP;AACA,IAFM,MAEA;AACN,QAAIC,UAAUV,KAAKvN,KAAL,CAAd;AACA,QAAIiO,YAAYjO,KAAhB,EAAuB;AACtB,YAAO,KAAK4J,QAAL,CAAcqE,OAAd,CAAP;AACA;AACD;AACD;AACD,SAAO/F,OAAOlI,KAAP,CAAP;AACA,EAtCgC;;AAwCjC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACAkO,UAAS,SAASA,OAAT,CAAiBH,QAAjB,EAA2B;AACnC,MAAII,WAAW,KAAKlE,QAAL,CAAc8D,QAAd,CAAf;AACA,SAAOI,YAAY,MAAZ,GAAqBA,WAAW,OAAhC,GAA0CA,QAAjD;AACA,EArDgC;;AAuDjC;AACA;;AAEA;AACAC,SAAQ,SAASA,MAAT,CAAgBL,QAAhB,EAA0B;AACjC,MAAIM,UAAU,KAAKC,OAAL,CAAaP,QAAb,CAAd;AACA,SAAOM,WAAW,IAAX,GAAkBA,UAAU,KAA5B,GAAoCA,OAA3C;AACA,EA9DgC;;AAgEjC;AACAC,UAAS,SAASA,OAAT,CAAiBP,QAAjB,EAA2B;AACnC,MAAIhF,SAAS,KAAKa,QAAL,CAAcmE,QAAd,CAAb;AACA,MAAIxF,OAAOQ,MAAP,KAAkBA,WAAW,CAA7B,IAAkC,CAACS,UAAUT,MAAV,CAAvC,EAA0D;AAAE,UAAO,CAAP;AAAW;AACvE,MAAImB,SAASpB,KAAKC,MAAL,IAAeI,KAAKC,KAAL,CAAWD,KAAKW,GAAL,CAASf,MAAT,CAAX,CAA5B;AACA,SAAOC,IAAIkB,MAAJ,EAAY,KAAZ,CAAP;AACA,EAtEgC;;AAwEjC;AACAqE,eAAc,SAASA,YAAT,CAAsBR,QAAtB,EAAgC;AAC7C,MAAIhF,SAAS,KAAKa,QAAL,CAAcmE,QAAd,CAAb;AACA,MAAIxF,OAAOQ,MAAP,KAAkBA,UAAU,CAAhC,EAAmC;AAAE,UAAO,CAAP;AAAW;AAChD,MAAIA,UAAU,IAAd,EAAoB;AAAE,UAAO,IAAP;AAAc;AACpC,MAAIyF,IAAIrF,KAAKC,KAAL,CAAW2E,QAAX,CAAR;AACA,MAAIS,IAAI,GAAJ,GAAUzF,MAAd,EAAsB;AAAE,UAAOyF,IAAI,CAAX;AAAe;AACvC,MAAIzF,SAASyF,IAAI,GAAjB,EAAsB;AAAE,UAAOA,CAAP;AAAW;AACnC,MAAIA,IAAI,CAAJ,KAAU,CAAd,EAAiB;AAAE,UAAOA,IAAI,CAAX;AAAe;AAClC,SAAOA,CAAP;AACA,EAlFgC;;AAoFjC;AACArE,WAAU,SAASA,QAAT,CAAkB4D,QAAlB,EAA4B;AACrC,MAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;AACjC,SAAM,IAAI1K,SAAJ,CAAc,2CAAd,CAAN;AACA;AACD,SAAOI,OAAOsK,QAAP,CAAP;AACA,EA1FgC;;AA4FjC;AACA3D,WAAU,SAASA,QAAT,CAAkBpK,KAAlB,EAAyB;AAClC,OAAKyO,sBAAL,CAA4BzO,KAA5B;AACA,SAAON,OAAOM,KAAP,CAAP;AACA,EAhGgC;;AAkGjC;AACA0O,gBAAe,SAASA,aAAT,CAAuBX,QAAvB,EAAiC;AAC/C,MAAIlF,MAAM,KAAKd,WAAL,CAAiBgG,QAAjB,EAA2BtK,MAA3B,CAAV;AACA,SAAO,OAAOoF,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgC,KAAKsB,QAAL,CAActB,GAAd,CAAvC;AACA,EAtGgC;;AAwGjC;AACA8F,WAAU,SAASA,QAAT,CAAkBZ,QAAlB,EAA4B;AACrC,MAAIa,MAAM,KAAK/E,SAAL,CAAekE,QAAf,CAAV;AACA,MAAIa,OAAO,CAAX,EAAc;AAAE,UAAO,CAAP;AAAW,GAFU,CAET;AAC5B,MAAIA,MAAMrC,gBAAV,EAA4B;AAAE,UAAOA,gBAAP;AAA0B;AACxD,SAAOqC,GAAP;AACA,EA9GgC;;AAgHjC;AACAC,8BAA6B,SAASA,2BAAT,CAAqCd,QAArC,EAA+C;AAC3E,MAAItO,MAAMS,IAAN,CAAW6N,QAAX,MAAyB,iBAA7B,EAAgD;AAC/C,SAAM,IAAI1K,SAAJ,CAAc,kBAAd,CAAN;AACA;AACD,MAAI0K,aAAa,IAAjB,EAAuB;AAAE,UAAO,CAAC,CAAR;AAAY;AACrC,MAAIe,IAAI,KAAKlF,QAAL,CAAcmE,QAAd,CAAR;AACA,MAAI,KAAKxD,SAAL,CAAe,KAAKJ,QAAL,CAAc2E,CAAd,CAAf,EAAiCf,QAAjC,CAAJ,EAAgD;AAAE,UAAOe,CAAP;AAAW;AAC7D,SAAO,KAAK,CAAZ;AACA,EAzHgC;;AA2HjC;AACAL,yBAAwB/E,IAAIW,oBA5HK;;AA8HjC;AACA0E,UAAStO,MAAMuO,OAAN,IAAiB,SAASD,OAAT,CAAiBhB,QAAjB,EAA2B;AACpD,SAAOtO,MAAMS,IAAN,CAAW6N,QAAX,MAAyB,gBAAhC;AACA,EAjIgC;;AAmIjC;AACA;;AAEA;AACAkB,gBAAe,SAASA,aAAT,CAAuBlB,QAAvB,EAAiC;AAC/C,SAAO,OAAOA,QAAP,KAAoB,UAApB,IAAkC,CAAC,CAACA,SAASpO,SAApD,CAD+C,CACgB;AAC/D,EAzIgC;;AA2IjC;AACAuP,eAAc,SAASA,YAAT,CAAsB3K,GAAtB,EAA2B;AACxC,MAAI,CAAC7E,OAAOyP,iBAAZ,EAA+B;AAAE,UAAO,IAAP;AAAc;AAC/C,MAAI3J,YAAYjB,GAAZ,CAAJ,EAAsB;AACrB,UAAO,KAAP;AACA;AACD,SAAO7E,OAAO0P,YAAP,CAAoB7K,GAApB,CAAP;AACA,EAlJgC;;AAoJjC;AACA8K,YAAW,SAASA,SAAT,CAAmBtB,QAAnB,EAA6B;AACvC,MAAI,OAAOA,QAAP,KAAoB,QAApB,IAAgCxF,OAAOwF,QAAP,CAAhC,IAAoD,CAACvE,UAAUuE,QAAV,CAAzD,EAA8E;AAC7E,UAAO,KAAP;AACA;AACD,MAAIjE,MAAMX,KAAKW,GAAL,CAASiE,QAAT,CAAV;AACA,SAAO5E,KAAKC,KAAL,CAAWU,GAAX,MAAoBA,GAA3B;AACA,EA3JgC;;AA6JjC;AACAwF,gBAAe,SAASA,aAAT,CAAuBvB,QAAvB,EAAiC;AAC/C,SAAO,OAAOA,QAAP,KAAoB,QAApB,IAAgC,OAAOA,QAAP,KAAoB,QAA3D;AACA,EAhKgC;;AAkKjC;AACAwB,WAAU,SAASA,QAAT,CAAkBxB,QAAlB,EAA4B;AACrC,MAAI,CAACA,QAAD,IAAa,OAAOA,QAAP,KAAoB,QAArC,EAA+C;AAC9C,UAAO,KAAP;AACA;AACD,MAAI5J,UAAJ,EAAgB;AACf,OAAIqL,WAAWzB,SAAS3J,OAAOqL,KAAhB,CAAf;AACA,OAAI,OAAOD,QAAP,KAAoB,WAAxB,EAAqC;AACpC,WAAO9F,IAAIC,SAAJ,CAAc6F,QAAd,CAAP;AACA;AACD;AACD,SAAOhC,iBAAiBO,QAAjB,CAAP;AACA,EA9KgC;;AAgLjC;AACA;;AAEA;AACA2B,gBAAe,SAASA,aAAT,CAAuB/K,CAAvB,EAA0B6F,CAA1B,EAA6B;AAC3C,SAAQ7F,MAAM6F,CAAP,IAAcjC,OAAO5D,CAAP,KAAa4D,OAAOiC,CAAP,CAAlC;AACA,EAtLgC;;AAwLjC;;;;;;;AAOAmF,OAAM,SAASA,IAAT,CAAc/B,CAAd,EAAiB/F,CAAjB,EAAoB;AACzB;AACA,MAAI,CAAC,KAAKyH,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,gDAAd,CAAN;AACA;;AAED;AACA,MAAIkE,IAAI,KAAK6C,QAAL,CAAcwD,CAAd,CAAR;;AAEA;AACA,SAAOrG,EAAEM,CAAF,CAAP;AACA,EA1MgC;;AA4MjC;;;;;;;;;AASAD,YAAW,SAASA,SAAT,CAAmBL,CAAnB,EAAsBM,CAAtB,EAAyB;AACnC;AACA,MAAI,CAAC,KAAKyH,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,gDAAd,CAAN;AACA;;AAED;AACA,MAAIyE,OAAO,KAAK6H,IAAL,CAAUpI,CAAV,EAAaM,CAAb,CAAX;;AAEA;AACA,MAAIC,QAAQ,IAAZ,EAAkB;AACjB,UAAO,KAAK,CAAZ;AACA;;AAED;AACA,MAAI,CAAC,KAAK2B,UAAL,CAAgB3B,IAAhB,CAAL,EAA4B;AAC3B,SAAM,IAAIzE,SAAJ,CAAcwE,IAAI,mBAAlB,CAAN;AACA;;AAED;AACA,SAAOC,IAAP;AACA,EA1OgC;;AA4OjC;;;;;;AAMA8H,MAAK,SAASA,GAAT,CAAarI,CAAb,EAAgBM,CAAhB,EAAmB;AACvB;AACA,MAAI,KAAK4C,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,yCAAd,CAAN;AACA;AACD;AACA,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,gDAAd,CAAN;AACA;AACD;AACA,SAAOkE,EAAEM,CAAF,CAAP;AACA,EA7PgC;;AA+PjC4C,OAAM,SAASA,IAAT,CAAc9F,CAAd,EAAiB;AACtB,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B;AAC1B,UAAO,QAAP;AACA;AACD,SAAO+E,IAAIe,IAAJ,CAAS9F,CAAT,CAAP;AACA,EApQgC;;AAsQjC;AACAkL,qBAAoB,SAASA,kBAAT,CAA4BtI,CAA5B,EAA+BuI,kBAA/B,EAAmD;AACtE,MAAI,KAAKrF,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,yCAAd,CAAN;AACA;AACD,MAAI0M,IAAIxI,EAAEpG,WAAV;AACA,MAAI,OAAO4O,CAAP,KAAa,WAAjB,EAA8B;AAC7B,UAAOD,kBAAP;AACA;AACD,MAAI,KAAKrF,IAAL,CAAUsF,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAI1M,SAAJ,CAAc,gCAAd,CAAN;AACA;AACD,MAAI2M,IAAI7L,cAAcC,OAAO6L,OAArB,GAA+BF,EAAE3L,OAAO6L,OAAT,CAA/B,GAAmD,KAAK,CAAhE;AACA,MAAID,KAAK,IAAT,EAAe;AACd,UAAOF,kBAAP;AACA;AACD,MAAI,KAAKb,aAAL,CAAmBe,CAAnB,CAAJ,EAA2B;AAC1B,UAAOA,CAAP;AACA;AACD,QAAM,IAAI3M,SAAJ,CAAc,sBAAd,CAAN;AACA,EA1RgC;;AA4RjC;AACA6M,6BAA4B,SAASA,0BAAT,CAAoCvF,IAApC,EAA0C;AACrE,MAAI,CAAC,KAAKD,oBAAL,CAA0BC,IAA1B,CAAL,EAAsC;AACrC,SAAM,IAAItH,SAAJ,CAAc,oCAAd,CAAN;AACA;;AAED,MAAI,KAAK4H,mBAAL,CAAyBN,IAAzB,KAAkC,KAAKK,gBAAL,CAAsBL,IAAtB,CAAtC,EAAmE;AAClE,OAAI,CAACrK,IAAIqK,IAAJ,EAAU,WAAV,CAAL,EAA6B;AAC5BA,SAAK,WAAL,IAAoB,KAAK,CAAzB;AACA;AACD,OAAI,CAACrK,IAAIqK,IAAJ,EAAU,cAAV,CAAL,EAAgC;AAC/BA,SAAK,cAAL,IAAuB,KAAvB;AACA;AACD,GAPD,MAOO;AACN,OAAI,CAACrK,IAAIqK,IAAJ,EAAU,SAAV,CAAL,EAA2B;AAC1BA,SAAK,SAAL,IAAkB,KAAK,CAAvB;AACA;AACD,OAAI,CAACrK,IAAIqK,IAAJ,EAAU,SAAV,CAAL,EAA2B;AAC1BA,SAAK,SAAL,IAAkB,KAAK,CAAvB;AACA;AACD;AACD,MAAI,CAACrK,IAAIqK,IAAJ,EAAU,gBAAV,CAAL,EAAkC;AACjCA,QAAK,gBAAL,IAAyB,KAAzB;AACA;AACD,MAAI,CAACrK,IAAIqK,IAAJ,EAAU,kBAAV,CAAL,EAAoC;AACnCA,QAAK,kBAAL,IAA2B,KAA3B;AACA;AACD,SAAOA,IAAP;AACA,EAxTgC;;AA0TjC;AACAwF,MAAK,SAASA,GAAT,CAAa5I,CAAb,EAAgBM,CAAhB,EAAmB+F,CAAnB,EAAsBwC,KAAtB,EAA6B;AACjC,MAAI,KAAK3F,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,qBAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,0BAAd,CAAN;AACA;AACD,MAAI,KAAKoH,IAAL,CAAU2F,KAAV,MAAqB,SAAzB,EAAoC;AACnC,SAAM,IAAI/M,SAAJ,CAAc,yBAAd,CAAN;AACA;AACD,MAAI+M,KAAJ,EAAW;AACV7I,KAAEM,CAAF,IAAO+F,CAAP;AACA,UAAO,IAAP;AACA,GAHD,MAGO;AACN,OAAI;AACHrG,MAAEM,CAAF,IAAO+F,CAAP;AACA,IAFD,CAEE,OAAOhL,CAAP,EAAU;AACX,WAAO,KAAP;AACA;AACD;AACD,EA/UgC;;AAiVjC;AACAyN,iBAAgB,SAASA,cAAT,CAAwB9I,CAAxB,EAA2BM,CAA3B,EAA8B;AAC7C,MAAI,KAAK4C,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,qBAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,0BAAd,CAAN;AACA;AACD,SAAO/C,IAAIiH,CAAJ,EAAOM,CAAP,CAAP;AACA,EA1VgC;;AA4VjC;AACAyI,cAAa,SAASA,WAAT,CAAqB/I,CAArB,EAAwBM,CAAxB,EAA2B;AACvC,MAAI,KAAK4C,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,qBAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,0BAAd,CAAN;AACA;AACD,SAAOwE,KAAKN,CAAZ;AACA,EArWgC;;AAuWjC;AACAgJ,qBAAoB,SAASA,kBAAT,CAA4BhJ,CAA5B,EAA+B;AAClD,MAAI,KAAKkD,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,UAAO,KAAP;AACA;AACD,MAAIpD,cAAc,OAAOC,OAAOoM,kBAAd,KAAqC,QAAvD,EAAiE;AAChE,OAAIC,aAAa,KAAKb,GAAL,CAASrI,CAAT,EAAYnD,OAAOoM,kBAAnB,CAAjB;AACA,OAAI,OAAOC,UAAP,KAAsB,WAA1B,EAAuC;AACtC,WAAO,KAAK9G,SAAL,CAAe8G,UAAf,CAAP;AACA;AACD;AACD,SAAO,KAAK1B,OAAL,CAAaxH,CAAb,CAAP;AACA,EAnXgC;;AAqXjC;AACAmJ,SAAQ,SAASA,MAAT,CAAgBnJ,CAAhB,EAAmBM,CAAnB,EAAsB;AAC7B,MAAI,CAAC,KAAKyH,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,0BAAd,CAAN;AACA;AACD,MAAIsN,gBAAgBhE,WAAW3I,SAAX,EAAsB,CAAtB,CAApB;AACA,MAAI8D,OAAO,KAAK6H,IAAL,CAAUpI,CAAV,EAAaM,CAAb,CAAX;AACA,SAAO,KAAK6F,IAAL,CAAU5F,IAAV,EAAgBP,CAAhB,EAAmBoJ,aAAnB,CAAP;AACA,EA7XgC;;AA+XjC;AACAC,cAAa,SAASA,WAAT,CAAqBrM,GAArB,EAA0BmD,MAA1B,EAAkC;AAC9C,MAAI,CAACvD,UAAL,EAAiB;AAChB,SAAM,IAAI0M,WAAJ,CAAgB,oDAAhB,CAAN;AACA;;AAED,MAAIC,eAAepJ,MAAnB;AACA,MAAI1D,UAAU5D,MAAV,GAAmB,CAAvB,EAA0B;AACzB0Q,kBAAe,KAAKlJ,SAAL,CAAerD,GAAf,EAAoB+H,cAApB,CAAf;AACA;AACD,MAAInF,WAAW,KAAKuG,IAAL,CAAUoD,YAAV,EAAwBvM,GAAxB,CAAf;AACA,MAAI,KAAKkG,IAAL,CAAUtD,QAAV,MAAwB,QAA5B,EAAsC;AACrC,SAAM,IAAI9D,SAAJ,CAAc,gCAAd,CAAN;AACA;;AAED,SAAO8D,QAAP;AACA,EA/YgC;;AAiZjC;AACA4J,eAAc,SAASA,YAAT,CAAsB5J,QAAtB,EAAgCnH,KAAhC,EAAuC;AACpD,MAAI2H,SAAS,KAAK+I,MAAL,CAAYvJ,QAAZ,EAAsB,MAAtB,EAA8BnD,UAAU5D,MAAV,GAAmB,CAAnB,GAAuB,EAAvB,GAA4B,CAACJ,KAAD,CAA1D,CAAb;AACA,MAAI,KAAKyK,IAAL,CAAU9C,MAAV,MAAsB,QAA1B,EAAoC;AACnC,SAAM,IAAItE,SAAJ,CAAc,qCAAd,CAAN;AACA;AACD,SAAOsE,MAAP;AACA,EAxZgC;;AA0ZjC;AACAqJ,mBAAkB,SAASA,gBAAT,CAA0BC,UAA1B,EAAsC;AACvD,MAAI,KAAKxG,IAAL,CAAUwG,UAAV,MAA0B,QAA9B,EAAwC;AACvC,SAAM,IAAI5N,SAAJ,CAAc,kDAAd,CAAN;AACA;AACD,SAAO,KAAKsG,SAAL,CAAe,KAAKiG,GAAL,CAASqB,UAAT,EAAqB,MAArB,CAAf,CAAP;AACA,EAhagC;;AAkajC;AACAC,gBAAe,SAASA,aAAT,CAAuBD,UAAvB,EAAmC;AACjD,MAAI,KAAKxG,IAAL,CAAUwG,UAAV,MAA0B,QAA9B,EAAwC;AACvC,SAAM,IAAI5N,SAAJ,CAAc,kDAAd,CAAN;AACA;AACD,SAAO,KAAKuM,GAAL,CAASqB,UAAT,EAAqB,OAArB,CAAP;AACA,EAxagC;;AA0ajC;AACAE,eAAc,SAASA,YAAT,CAAsBhK,QAAtB,EAAgC;AAC7C,MAAIQ,SAAS,KAAKoJ,YAAL,CAAkB5J,QAAlB,CAAb;AACA,MAAIiK,OAAO,KAAKJ,gBAAL,CAAsBrJ,MAAtB,CAAX;AACA,SAAOyJ,SAAS,IAAT,GAAgB,KAAhB,GAAwBzJ,MAA/B;AACA,EA/agC;;AAibjC;AACA0J,gBAAe,SAASA,aAAT,CAAuBlK,QAAvB,EAAiCmK,UAAjC,EAA6C;AAC3D,MAAI,KAAK7G,IAAL,CAAUtD,QAAV,MAAwB,QAA5B,EAAsC;AACrC,SAAM,IAAI9D,SAAJ,CAAc,gDAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKoG,UAAL,CAAgB6H,UAAhB,CAAL,EAAkC;AACjC,SAAM,IAAIjO,SAAJ,CAAc,qEAAd,CAAN;AACA;AACD,MAAIkO,kBAAkBD,UAAtB;;AAEA,MAAIE,iBAAiB,KAAK5J,SAAL,CAAeT,QAAf,EAAyB,QAAzB,CAArB;;AAEA,MAAI,OAAOqK,cAAP,KAA0B,WAA9B,EAA2C;AAC1C,UAAOD,iBAAP;AACA;;AAED,MAAIE,gBAAJ;AACA,MAAI;AACH,OAAIC,cAAc,KAAKhE,IAAL,CAAU8D,cAAV,EAA0BrK,QAA1B,EAAoC,EAApC,CAAlB;AACA,GAFD,CAEE,OAAOvE,CAAP,EAAU;AACX;;AAEA;AACA6O,sBAAmBF,iBAAnB;AACAA,qBAAkB,IAAlB,CALW,CAKa;;AAExB;AACA,SAAM3O,CAAN;AACA;AACD6O,qBAAmBF,iBAAnB,CA5B2D,CA4BrB;AACtCA,oBAAkB,IAAlB,CA7B2D,CA6BnC;;AAExB,MAAI,KAAK9G,IAAL,CAAUiH,WAAV,MAA2B,QAA/B,EAAyC;AACxC,SAAM,IAAIrO,SAAJ,CAAc,wCAAd,CAAN;AACA;;AAED,SAAOoO,gBAAP;AACA,EAtdgC;;AAwdjC;AACAE,yBAAwB,SAASA,sBAAT,CAAgC3R,KAAhC,EAAuCoR,IAAvC,EAA6C;AACpE,MAAI,KAAK3G,IAAL,CAAU2G,IAAV,MAAoB,SAAxB,EAAmC;AAClC,SAAM,IAAI/N,SAAJ,CAAc,6CAAd,CAAN;AACA;AACD,SAAO;AACNrD,UAAOA,KADD;AAENoR,SAAMA;AAFA,GAAP;AAIA,EAjegC;;AAmejC;AACAQ,aAAY,SAASA,UAAT,CAAoBC,CAApB,EAAuB7B,CAAvB,EAA0B;AACrC,MAAI,KAAKvF,IAAL,CAAUoH,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIxO,SAAJ,CAAc,qBAAd,CAAN;AACA;AACD,MAAI,KAAKoH,IAAL,CAAUuF,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAI3M,SAAJ,CAAc,oBAAd,CAAN;AACA;AACD,MAAIuI,OAAO,KAAKgE,GAAL,CAASiC,CAAT,EAAY,MAAZ,CAAX;AACA,MAAI,KAAKpI,UAAL,CAAgBmC,IAAhB,CAAJ,EAA2B;AAC1B,OAAIjE,SAAS,KAAK+F,IAAL,CAAU9B,IAAV,EAAgBiG,CAAhB,EAAmB,CAAC7B,CAAD,CAAnB,CAAb;AACA,OAAIrI,WAAW,IAAX,IAAmB,KAAK8C,IAAL,CAAU9C,MAAV,MAAsB,QAA7C,EAAuD;AACtD,WAAOA,MAAP;AACA;AACD,SAAM,IAAItE,SAAJ,CAAc,+CAAd,CAAN;AACA;AACD,SAAOqI,UAAUmG,CAAV,EAAa7B,CAAb,CAAP;AACA,EApfgC;;AAsfjC;AACA8B,qBAAoB,SAASA,kBAAT,CAA4BC,aAA5B,EAA2C3R,MAA3C,EAAmD;AACtE,MAAI,CAAC,KAAKiP,SAAL,CAAejP,MAAf,CAAD,IAA2BA,SAAS,CAAxC,EAA2C;AAC1C,SAAM,IAAIiD,SAAJ,CAAc,kDAAd,CAAN;AACA;AACD,MAAIuL,MAAMxO,WAAW,CAAX,GAAe,CAAf,GAAmBA,MAA7B;AACA,MAAI2P,CAAJ;AACA,MAAIf,UAAU,KAAKD,OAAL,CAAagD,aAAb,CAAd;AACA,MAAI/C,OAAJ,EAAa;AACZe,OAAI,KAAKH,GAAL,CAASmC,aAAT,EAAwB,aAAxB,CAAJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAI,KAAKtH,IAAL,CAAUsF,CAAV,MAAiB,QAAjB,IAA6B5L,UAA7B,IAA2CC,OAAO6L,OAAtD,EAA+D;AAC9DF,QAAI,KAAKH,GAAL,CAASG,CAAT,EAAY3L,OAAO6L,OAAnB,CAAJ;AACA,QAAIF,MAAM,IAAV,EAAgB;AACfA,SAAI,KAAK,CAAT;AACA;AACD;AACD;AACD,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC7B,UAAOtP,MAAMmO,GAAN,CAAP;AACA;AACD,MAAI,CAAC,KAAKK,aAAL,CAAmBc,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAI1M,SAAJ,CAAc,yBAAd,CAAN;AACA;AACD,SAAO,IAAI0M,CAAJ,CAAMnB,GAAN,CAAP,CA3BsE,CA2BnD;AACnB,EAnhBgC;;AAqhBjCoD,qBAAoB,SAASA,kBAAT,CAA4BzK,CAA5B,EAA+BM,CAA/B,EAAkC+F,CAAlC,EAAqC;AACxD,MAAI,KAAKnD,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,yCAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,gDAAd,CAAN;AACA;AACD,MAAI4O,UAAUvS,OAAOoM,wBAAP,CAAgCvE,CAAhC,EAAmCM,CAAnC,CAAd;AACA,MAAIqK,aAAaD,WAAY,OAAOvS,OAAO0P,YAAd,KAA+B,UAA/B,IAA6C1P,OAAO0P,YAAP,CAAoB7H,CAApB,CAA1E;AACA,MAAI4K,YAAYF,YAAY,CAACA,QAAQlN,QAAT,IAAqB,CAACkN,QAAQnN,YAA1C,CAAhB;AACA,MAAIqN,aAAa,CAACD,UAAlB,EAA8B;AAC7B,UAAO,KAAP;AACA;AACD,MAAIE,UAAU;AACbtN,iBAAc,IADD;AAEbL,eAAY,IAFC;AAGbzE,UAAO4N,CAHM;AAIb7I,aAAU;AAJG,GAAd;AAMArF,SAAO8E,cAAP,CAAsB+C,CAAtB,EAAyBM,CAAzB,EAA4BuK,OAA5B;AACA,SAAO,IAAP;AACA,EA1iBgC;;AA4iBjC;AACAC,4BAA2B,SAASA,yBAAT,CAAmC9K,CAAnC,EAAsCM,CAAtC,EAAyC+F,CAAzC,EAA4C;AACtE,MAAI,KAAKnD,IAAL,CAAUlD,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAIlE,SAAJ,CAAc,yCAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKiM,aAAL,CAAmBzH,CAAnB,CAAL,EAA4B;AAC3B,SAAM,IAAIxE,SAAJ,CAAc,gDAAd,CAAN;AACA;AACD,MAAIiP,UAAU,KAAKN,kBAAL,CAAwBzK,CAAxB,EAA2BM,CAA3B,EAA8B+F,CAA9B,CAAd;AACA,MAAI,CAAC0E,OAAL,EAAc;AACb,SAAM,IAAIjP,SAAJ,CAAc,gCAAd,CAAN;AACA;AACD,SAAOiP,OAAP;AACA,EAzjBgC;;AA2jBjC;AACAC,qBAAoB,SAASA,kBAAT,CAA4BvC,CAA5B,EAA+BwC,KAA/B,EAAsCC,OAAtC,EAA+C;AAClE,MAAI,KAAKhI,IAAL,CAAUuF,CAAV,MAAiB,QAArB,EAA+B;AAC9B,SAAM,IAAI3M,SAAJ,CAAc,yCAAd,CAAN;AACA;AACD,MAAI,CAAC,KAAKgM,SAAL,CAAemD,KAAf,CAAL,EAA4B;AAC3B,SAAM,IAAInP,SAAJ,CAAc,qEAAd,CAAN;AACA;AACD,MAAImP,QAAQ,CAAR,IAAaA,QAAQjG,gBAAzB,EAA2C;AAC1C,SAAM,IAAImG,UAAJ,CAAe,qEAAf,CAAN;AACA;AACD,MAAI,KAAKjI,IAAL,CAAUgI,OAAV,MAAuB,SAA3B,EAAsC;AACrC,SAAM,IAAIpP,SAAJ,CAAc,gDAAd,CAAN;AACA;AACD,MAAI,CAACoP,OAAL,EAAc;AACb,UAAOD,QAAQ,CAAf;AACA;AACD,MAAIpS,SAAS4P,EAAE5P,MAAf;AACA,MAAKoS,QAAQ,CAAT,IAAepS,MAAnB,EAA2B;AAC1B,UAAOoS,QAAQ,CAAf;AACA;AACD,MAAIG,QAAQ3C,EAAE4C,UAAF,CAAaJ,KAAb,CAAZ;AACA,MAAIG,QAAQ,MAAR,IAAkBA,QAAQ,MAA9B,EAAsC;AACrC,UAAOH,QAAQ,CAAf;AACA;AACD,MAAIK,SAAS7C,EAAE4C,UAAF,CAAaJ,QAAQ,CAArB,CAAb;AACA,MAAIK,SAAS,MAAT,IAAmBA,SAAS,MAAhC,EAAwC;AACvC,UAAOL,QAAQ,CAAf;AACA;AACD,SAAOA,QAAQ,CAAf;AACA;AAzlBgC,CAAxB,CAAV;;AA4lBA,OAAO/E,IAAIpD,oBAAX,EAAiC;;AAEjCxK,OAAOC,OAAP,GAAiB2N,GAAjB;;AC9oBA;;AAEA5N,OAAOC,OAAP,GAAiBY,QAAQ,UAAR,CAAjB;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACrBA;AACA;;AAEA,IAAIoS,KAAJ;AAAA,IACEC,MADF;AAAA,IAEEC,aAFF;AAAA,IAGEC,YAHF;AAAA,IAIEC,IAJF;AAAA,IAKEC,QALF;AAAA,IAMEC,cANF;AAAA,IAOEC,aAPF;AAAA,IAQEC,GARF;AAAA,IASEC,EATF;AAAA,IAUEC,WAVF;AAAA,IAWEC,aAXF;AAAA,IAYEC,aAZF;AAAA,IAaEC,gBAbF;AAAA,IAcEC,OAdF;AAAA,IAeEC,cAfF;AAAA,IAgBEC,cAhBF;AAAA,IAiBEC,QAjBF;AAAA,IAkBEC,SAlBF;AAAA,IAmBEC,YAnBF;AAAA,IAoBEC,IApBF;AAAA,IAqBEC,WArBF;AAAA,IAsBE3T,KAtBF;AAAA,IAuBE4T,KAvBF;AAAA,IAwBEC,KAxBF;AAAA,IAyBEC,YACE,GAAGC,OAAH,IACA,UAASC,IAAT,EAAe;AACb,OAAK,IAAIjR,IAAI,CAAR,EAAWkR,IAAI,KAAKrU,MAAzB,EAAiCmD,IAAIkR,CAArC,EAAwClR,GAAxC,EAA6C;AAC3C,QAAIA,KAAK,IAAL,IAAa,KAAKA,CAAL,MAAYiR,IAA7B,EAAmC,OAAOjR,CAAP;AACpC;AACD,SAAO,CAAC,CAAR;AACD,CAhCL;;AAkCAwQ,WAAWrR,OAAOqR,QAAlB;;AAEAhB,SAAS,QAAT;;AAEAD,QAAQ,OAAR;;AAEAU,cAAc,YAAd;;AAEAD,KAAK,kBAAL;;AAEAD,MAAM,qBAAN;;AAEAJ,OAAO,eAAP;;AAEAU,UAAU,gBAAV;;AAEAT,WAAW,UAAX;;AAEAM,gBAAgB,CAAC,MAAD,EAAS,SAAT,EAAoB,WAApB,CAAhB;;AAEAT,gBAAgB,CAAC,UAAD,EAAa,OAAb,EAAsB,OAAtB,EAA+B,SAA/B,CAAhB;;AAEAkB,OAAOxH,SACL,CAAC,aAAad,IAAb,CAAkB8I,UAAUC,SAAV,CAAoBC,WAApB,EAAlB,KAAwD,EAAzD,EAA6D,CAA7D,CADK,CAAP;;AAIA,IAAIvM,MAAM6L,IAAN,CAAJ,EAAiB;AACfA,SAAOxH,SACL,CAAC,wBAAwBd,IAAxB,CAA6B8I,UAAUC,SAAV,CAAoBC,WAApB,EAA7B,KAAmE,EAApE,EAAwE,CAAxE,CADK,CAAP;AAGD;;AAED,CAACP,QAAQ5T,MAAMd,SAAf,EAA0B4U,OAA1B,KACGF,MAAME,OAAN,GAAgB,UAASC,IAAT,EAAe;AAC9B,MAAIjR,CAAJ,EAAOoB,CAAP,EAAUkQ,EAAV,EAAcC,IAAd;AACA,OAAKvR,IAAIsR,KAAK,CAAT,EAAYC,OAAO,KAAK1U,MAA7B,EAAqCyU,KAAKC,IAA1C,EAAgDvR,IAAI,EAAEsR,EAAtD,EAA0D;AACxDlQ,QAAI,KAAKpB,CAAL,CAAJ;AACA,QAAIoB,MAAM6P,IAAV,EAAgB;AACd,aAAOjR,CAAP;AACD;AACF;AACD,SAAO,CAAC,CAAR;AACD,CAVH;;AAYA/C,QAAQ,eAASS,CAAT,EAAY6N,CAAZ,EAAe;AACrB,SAAOrO,MAAMd,SAAN,CAAgBa,KAAhB,CAAsBN,IAAtB,CAA2Be,CAA3B,EAA8B6N,CAA9B,CAAP;AACD,CAFD;;AAIAgF,iBAAiB,wBAASiB,CAAT,EAAY;AAC3B,SAAOA,MAAM,aAAN,IAAuBA,MAAM,WAA7B,IAA4CA,MAAM,UAAzD;AACD,CAFD;;AAIAd,eAAe,sBAASe,GAAT,EAAcC,GAAd,EAAmB;AAChC,MAAItS,CAAJ,EAAOuS,CAAP;AACA,OAAKvS,CAAL,IAAUqS,GAAV,EAAe;AACbE,QAAIF,IAAIrS,CAAJ,CAAJ;AACA,QAAImR,eAAenR,CAAf,CAAJ,EAAuB;AACrB;AACD;AACD,QAAI;AACFsS,UAAItS,CAAJ,IAASqS,IAAIrS,CAAJ,CAAT;AACD,KAFD,CAEE,OAAOwS,MAAP,EAAe,CAAE;AACpB;AACD,SAAOF,GAAP;AACD,CAZD;;AAcAd,cAAc,qBAASiB,MAAT,EAAiBJ,GAAjB,EAAsBC,GAAtB,EAA2B;AACvC,MAAII,KAAJ,EAAWN,CAAX,EAAcF,EAAd,EAAkBC,IAAlB;AACAC,MAAI,WAASM,KAAT,EAAgB;AAClB,WAAO,UAASzS,CAAT,EAAY;AACjB,UAAI0S,KAAJ,EAAW3S,CAAX,EAAc4S,GAAd;AACAD,cAAQ,EAAR;AACA,WAAK3S,CAAL,IAAUC,CAAV,EAAa;AACX,YAAIkR,eAAenR,CAAf,CAAJ,EAAuB;AACrB;AACD;AACD4S,cAAM3S,EAAED,CAAF,CAAN;AACA2S,cAAM3S,CAAN,IAAW4S,QAAQP,GAAR,GAAcC,GAAd,GAAoBM,GAA/B;AACD;AACD,aAAON,IAAI/B,IAAJ,EAAUmC,KAAV,EAAiBC,KAAjB,CAAP;AACD,KAXD;AAYD,GAbD;AAcA,OAAKT,KAAK,CAAL,EAAQC,OAAOM,OAAOhV,MAA3B,EAAmCyU,KAAKC,IAAxC,EAA8CD,IAA9C,EAAoD;AAClDQ,YAAQD,OAAOP,EAAP,CAAR;AACA,QAAII,IAAIO,IAAJ,CAASH,KAAT,CAAJ,EAAqB;AACnBL,UAAI,OAAOK,KAAX,IAAoBN,EAAEM,KAAF,CAApB;AACD;AACF;AACF,CAtBD;;AAwBArB,YAAY,mBAASyB,IAAT,EAAe;AACzB,MAAIC,eAAJ;AACA,MAAI3B,SAAS4B,iBAAT,IAA8B,IAAlC,EAAwC;AACtCD,sBAAkB3B,SAAS4B,iBAAT,EAAlB;AACAD,oBAAgBD,IAAhB,GAAuBA,IAAvB;AACA,WAAOC,eAAP;AACD,GAJD,MAIO;AACL,QAAI;AACF,aAAO,IAAIE,KAAJ,CAAUH,IAAV,CAAP;AACD,KAFD,CAEE,OAAON,MAAP,EAAe;AACf,aAAO;AACLM,cAAMA;AADD,OAAP;AAGD;AACF;AACF,CAfD;;AAiBAxC,eAAe,sBAAS4C,SAAT,EAAoB;AACjC,MAAIC,OAAJ,EAAaV,MAAb,EAAqBW,SAArB;AACAX,WAAS,EAAT;AACAW,cAAY,mBAASV,KAAT,EAAgB;AAC1B,WAAOD,OAAOC,KAAP,KAAiB,EAAxB;AACD,GAFD;AAGAS,YAAU,EAAV;AACAA,UAAQvC,EAAR,IAAc,UAAS8B,KAAT,EAAgBW,QAAhB,EAA0BzS,CAA1B,EAA6B;AACzC6R,WAAOC,KAAP,IAAgBU,UAAUV,KAAV,CAAhB;AACA,QAAID,OAAOC,KAAP,EAAcd,OAAd,CAAsByB,QAAtB,KAAmC,CAAvC,EAA0C;AACxC;AACD;AACDzS,QAAIA,MAAM0S,SAAN,GAAkBb,OAAOC,KAAP,EAAcjV,MAAhC,GAAyCmD,CAA7C;AACA6R,WAAOC,KAAP,EAAca,MAAd,CAAqB3S,CAArB,EAAwB,CAAxB,EAA2ByS,QAA3B;AACD,GAPD;AAQAF,UAAQxC,GAAR,IAAe,UAAS+B,KAAT,EAAgBW,QAAhB,EAA0B;AACvC,QAAIzS,CAAJ;AACA,QAAI8R,UAAUY,SAAd,EAAyB;AACvBb,eAAS,EAAT;AACA;AACD;AACD,QAAIY,aAAaC,SAAjB,EAA4B;AAC1Bb,aAAOC,KAAP,IAAgB,EAAhB;AACD;AACD9R,QAAIwS,UAAUV,KAAV,EAAiBd,OAAjB,CAAyByB,QAAzB,CAAJ;AACA,QAAIzS,MAAM,CAAC,CAAX,EAAc;AACZ;AACD;AACDwS,cAAUV,KAAV,EAAiBa,MAAjB,CAAwB3S,CAAxB,EAA2B,CAA3B;AACD,GAdD;AAeAuS,UAAQ5C,IAAR,IAAgB,YAAW;AACzB,QAAIrF,IAAJ,EAAUwH,KAAV,EAAiB9R,CAAjB,EAAoB4S,cAApB,EAAoCC,QAApC,EAA8CvB,EAA9C,EAAkDC,IAAlD,EAAwDuB,IAAxD;AACAxI,WAAOrN,MAAMwD,SAAN,CAAP;AACAqR,YAAQxH,KAAKyI,KAAL,EAAR;AACA,QAAI,CAACT,SAAL,EAAgB;AACdhI,WAAK,CAAL,IAAUoG,aAAapG,KAAK,CAAL,CAAb,EAAsBmG,UAAUqB,KAAV,CAAtB,CAAV;AACD;AACDc,qBAAiBL,QAAQ,OAAOT,KAAf,CAAjB;AACA,QAAIc,cAAJ,EAAoB;AAClBA,qBAAerI,KAAf,CAAqBgI,OAArB,EAA8BjI,IAA9B;AACD;AACDwI,WAAON,UAAUV,KAAV,EAAiBjQ,MAAjB,CAAwB2Q,UAAU,GAAV,CAAxB,CAAP;AACA,SAAKxS,IAAIsR,KAAK,CAAT,EAAYC,OAAOuB,KAAKjW,MAA7B,EAAqCyU,KAAKC,IAA1C,EAAgDvR,IAAI,EAAEsR,EAAtD,EAA0D;AACxDuB,iBAAWC,KAAK9S,CAAL,CAAX;AACA6S,eAAStI,KAAT,CAAegI,OAAf,EAAwBjI,IAAxB;AACD;AACF,GAhBD;AAiBAiI,UAAQN,IAAR,GAAe,UAASH,KAAT,EAAgB;AAC7B,WAAO,CAAC,EAAED,OAAOC,KAAP,KAAiBS,QAAQ,OAAOT,KAAf,CAAnB,CAAR;AACD,GAFD;AAGA,MAAIQ,SAAJ,EAAe;AACbC,YAAQC,SAAR,GAAoB,UAASV,KAAT,EAAgB;AAClC,aAAO7U,MAAMuV,UAAUV,KAAV,CAAN,CAAP;AACD,KAFD;AAGAS,YAAQS,EAAR,GAAaT,QAAQvC,EAAR,CAAb;AACAuC,YAAQU,GAAR,GAAcV,QAAQxC,GAAR,CAAd;AACAwC,YAAQW,IAAR,GAAeX,QAAQ5C,IAAR,CAAf;AACA4C,YAAQY,IAAR,GAAe,UAAS9T,CAAT,EAAYyB,EAAZ,EAAgB;AAC7B,UAAIoS,KAAJ;AACAA,cAAO,gBAAW;AAChBX,gBAAQU,GAAR,CAAY5T,CAAZ,EAAe6T,KAAf;AACA,eAAOpS,GAAGyJ,KAAH,CAAS,IAAT,EAAe9J,SAAf,CAAP;AACD,OAHD;AAIA,aAAO8R,QAAQS,EAAR,CAAW3T,CAAX,EAAc6T,KAAd,CAAP;AACD,KAPD;AAQAX,YAAQa,OAAR,GAAkB,YAAW;AAC3B,aAAQvB,SAAS,EAAjB;AACD,KAFD;AAGD;AACD,SAAOU,OAAP;AACD,CAtED;;AAwEA1B,QAAQnB,aAAa,IAAb,CAAR;;AAEAmB,MAAMnB,YAAN,GAAqBA,YAArB;;AAEAmB,MAAMrB,MAAN,IAAgB,UAAS6D,OAAT,EAAkBrT,CAAlB,EAAqB;AACnC,MAAIqT,QAAQxW,MAAR,GAAiB,CAAjB,IAAsBwW,QAAQxW,MAAR,GAAiB,CAA3C,EAA8C;AAC5C,UAAM,cAAN;AACD;AACD,SAAOgU,MAAMb,EAAN,EAAUR,MAAV,EAAkB6D,OAAlB,EAA2BrT,CAA3B,CAAP;AACD,CALD;;AAOA6Q,MAAMtB,KAAN,IAAe,UAAS8D,OAAT,EAAkBrT,CAAlB,EAAqB;AAClC,MAAIqT,QAAQxW,MAAR,GAAiB,CAAjB,IAAsBwW,QAAQxW,MAAR,GAAiB,CAA3C,EAA8C;AAC5C,UAAM,cAAN;AACD;AACD,SAAOgU,MAAMb,EAAN,EAAUT,KAAV,EAAiB8D,OAAjB,EAA0BrT,CAA1B,CAAP;AACD,CALD;;AAOA6Q,MAAMyC,MAAN,GAAe,YAAW;AACxBnU,SAAOkR,OAAP,IAAkBD,gBAAlB;AACA,MAAIP,cAAJ,EAAoB;AAClB1Q,WAAOyQ,QAAP,IAAmBO,aAAnB;AACD;AACF,CALD;;AAOAU,MAAM0C,OAAN,GAAgB,YAAW;AACzBpU,SAAOkR,OAAP,IAAkBQ,MAAMR,OAAN,CAAlB;AACA,MAAIR,cAAJ,EAAoB;AAClB1Q,WAAOyQ,QAAP,IAAmBC,cAAnB;AACD;AACF,CALD;;AAOAS,iBAAiBO,MAAM2C,OAAN,GAAgB,UAASC,CAAT,EAAYC,IAAZ,EAAkB;AACjD,MAAIC,MAAJ,EAAYH,OAAZ,EAAqBpU,CAArB,EAAwBgB,IAAxB,EAA8BuR,CAA9B,EAAiClV,KAAjC,EAAwC6U,EAAxC,EAA4CC,IAA5C,EAAkDuB,IAAlD;AACA,MAAIY,QAAQ,IAAZ,EAAkB;AAChBA,WAAO,EAAP;AACD;AACD,iBAAeD,CAAf,yCAAeA,CAAf;AACE,SAAK,QAAL;AACED,gBAAU,EAAV;AACA,WAAKpU,CAAL,IAAUqU,CAAV,EAAa;AACX9B,YAAI8B,EAAErU,CAAF,CAAJ;AACAgB,eAAOhB,EAAEiS,WAAF,EAAP;AACAmC,gBAAQvT,IAAR,CAAa,KAAKG,IAAL,GAAY,KAAZ,GAAoBuR,CAAjC;AACD;AACD,aAAO6B,QAAQ/J,IAAR,CAAa,IAAb,CAAP;AACF,SAAK,QAAL;AACE+J,gBAAUC,EAAEG,KAAF,CAAQ,IAAR,CAAV;AACA,WAAKtC,KAAK,CAAL,EAAQC,OAAOiC,QAAQ3W,MAA5B,EAAoCyU,KAAKC,IAAzC,EAA+CD,IAA/C,EAAqD;AACnDqC,iBAASH,QAAQlC,EAAR,CAAT;AACA,YAAI,kBAAkB5O,IAAlB,CAAuBiR,MAAvB,CAAJ,EAAoC;AAClCvT,iBAAO,CAAC0S,OAAO1K,OAAOyL,EAAf,KAAsB,IAAtB,GAA6Bf,KAAKzB,WAAL,EAA7B,GAAkD,KAAK,CAA9D;AACA5U,kBAAQ2L,OAAO0L,EAAf;AACA,cAAIJ,KAAKtT,IAAL,KAAc,IAAlB,EAAwB;AACtBsT,iBAAKtT,IAAL,IAAa3D,KAAb;AACD;AACF;AACF;AACD,aAAOiX,IAAP;AArBJ;AAuBD,CA5BD;;AA8BA7D,iBAAiB1Q,OAAOyQ,QAAP,CAAjB;;AAEAO,gBAAgB,uBAAS4D,IAAT,EAAe;AAC7B,MAAIC,OAAJ;AACA,OAAKC,EAAL,GAAUF,OAAO,IAAIlE,cAAJ,CAAmBkE,IAAnB,CAAP,GAAkC,IAAIlE,cAAJ,EAA5C;AACA,OAAKkE,IAAL,GAAYA,IAAZ;AACAC,YAAU,EAAV;AACA7X,SAAO8E,cAAP,CAAsB,IAAtB,EAA4B,SAA5B,EAAuC;AACrC2G,SAAK,eAAW;AACd,UAAIsM,QAAJ;AACAA,iBAAW,CAACH,IAAD,GACP,EADO,GAEP9W,MAAM8W,KAAKI,gBAAL,CAAsB,cAAtB,CAAN,EACGC,MADH,CACU,UAAS/U,CAAT,EAAY;AAClB,YAAIyT,IAAJ;AACA,eACG,CAACA,OAAOzT,EAAE6S,IAAV,MAAoB,UAApB,IAAkCY,SAAS,OAA5C,IACAzT,EAAEgV,OAFJ;AAID,OAPH,EAQG3S,GARH,CAQO,UAASrC,CAAT,EAAY;AACf,eAAO,CAACA,EAAEe,IAAH,EAASf,EAAE6S,IAAF,KAAW,MAAX,GAAoB7S,EAAEiV,KAAtB,GAA8BjV,EAAE5C,KAAzC,CAAP;AACD,OAVH,CAFJ;AAaA,aAAOyX,SAASrS,MAAT,CAAgBmS,OAAhB,CAAP;AACD;AAjBoC,GAAvC;AAmBA,OAAKO,MAAL,GAAe,UAASC,KAAT,EAAgB;AAC7B,WAAO,YAAW;AAChB,UAAIlK,IAAJ;AACAA,aAAOrN,MAAMwD,SAAN,CAAP;AACAuT,cAAQ/T,IAAR,CAAaqK,IAAb;AACA,aAAOkK,MAAMP,EAAN,CAASM,MAAT,CAAgBhK,KAAhB,CAAsBiK,MAAMP,EAA5B,EAAgC3J,IAAhC,CAAP;AACD,KALD;AAMD,GAPa,CAOX,IAPW,CAAd;AAQD,CAhCD;;AAkCA,IAAIuF,cAAJ,EAAoB;AAClBgB,QAAMjB,QAAN,IAAkBC,cAAlB;AACA1Q,SAAOyQ,QAAP,IAAmBO,aAAnB;AACD;;AAEDL,gBAAgB3Q,OAAOkR,OAAP,CAAhB;;AAEAQ,MAAMR,OAAN,IAAiBP,aAAjB;;AAEAM,mBAAmBjR,OAAOkR,OAAP,IAAkB,YAAW;AAC9C,MAAIoE,OAAJ,EACEC,YADF,EAEEC,SAFF,EAGEC,cAHF,EAIE9C,KAJF,EAKE+C,MALF,EAMEC,QANF,EAOEC,eAPF,EAQEC,QARF,EASEC,QATF,EAUEC,OAVF,EAWEC,QAXF,EAYEC,aAZF,EAaEC,MAbF,EAcEC,UAdF,EAeEC,SAfF,EAgBEC,SAhBF,EAiBEC,GAjBF,EAkBEnE,EAlBF,EAmBEC,IAnBF,EAoBEuB,IApBF;AAqBA2B,YAAU,CAAC,CAAX;AACAgB,QAAM,IAAI5E,MAAMR,OAAN,CAAJ,EAAN;AACA6E,YAAU,EAAV;AACAG,WAAS,IAAT;AACAP,aAAW,KAAK,CAAhB;AACAQ,eAAa,KAAK,CAAlB;AACAH,aAAW,KAAK,CAAhB;AACAF,aAAW,oBAAW;AACpB,QAAI3P,GAAJ,EAASlF,IAAT,EAAe4R,GAAf,EAAoBc,IAApB;AACAqC,aAASE,MAAT,GAAkBA,UAAUI,IAAIJ,MAAhC;AACA,QAAI,EAAEA,WAAWZ,OAAX,IAAsB9D,OAAO,EAA/B,CAAJ,EAAwC;AACtCwE,eAASO,UAAT,GAAsBD,IAAIC,UAA1B;AACD;AACD,QAAIL,WAAWZ,OAAf,EAAwB;AACtB3B,aAAOxC,eAAemF,IAAIE,qBAAJ,EAAf,CAAP;AACA,WAAKrQ,GAAL,IAAYwN,IAAZ,EAAkB;AAChBd,cAAMc,KAAKxN,GAAL,CAAN;AACA,YAAI,CAAC6P,SAAS3B,OAAT,CAAiBlO,GAAjB,CAAL,EAA4B;AAC1BlF,iBAAOkF,IAAI+L,WAAJ,EAAP;AACA8D,mBAAS3B,OAAT,CAAiBpT,IAAjB,IAAyB4R,GAAzB;AACD;AACF;AACF;AACF,GAhBD;AAiBAgD,aAAW,oBAAW;AACpB,QAAI,CAACS,IAAIG,YAAL,IAAqBH,IAAIG,YAAJ,KAAqB,MAA9C,EAAsD;AACpDT,eAASU,IAAT,GAAgBJ,IAAIK,YAApB;AACAX,eAASY,IAAT,GAAgBN,IAAIK,YAApB;AACD,KAHD,MAGO,IAAIL,IAAIG,YAAJ,KAAqB,UAAzB,EAAqC;AAC1CT,eAASa,GAAT,GAAeP,IAAIQ,WAAnB;AACAd,eAASY,IAAT,GAAgBN,IAAIQ,WAApB;AACD,KAHM,MAGA;AACLd,eAASY,IAAT,GAAgBN,IAAIN,QAApB;AACD;AACD,QAAI,iBAAiBM,GAArB,EAA0B;AACxBN,eAASe,QAAT,GAAoBT,IAAIU,WAAxB;AACD;AACF,GAbD;AAcAX,cAAY,qBAAW;AACrBX,WAAOQ,MAAP,GAAgBF,SAASE,MAAzB;AACAR,WAAOa,UAAP,GAAoBP,SAASO,UAA7B;AACD,GAHD;AAIAH,cAAY,qBAAW;AACrB,QAAI,UAAUJ,QAAd,EAAwB;AACtBN,aAAOiB,YAAP,GAAsBX,SAASU,IAA/B;AACD;AACD,QAAI,SAASV,QAAb,EAAuB;AACrBN,aAAOoB,WAAP,GAAqBd,SAASa,GAA9B;AACD;AACD,QAAI,UAAUb,QAAd,EAAwB;AACtBN,aAAOM,QAAP,GAAkBA,SAASY,IAA3B;AACD;AACD,QAAI,cAAcZ,QAAlB,EAA4B;AAC1BN,aAAOsB,WAAP,GAAqBhB,SAASe,QAA9B;AACD;AACF,GAbD;AAcAtB,mBAAiB,wBAASrJ,CAAT,EAAY;AAC3B,WAAOA,IAAImJ,YAAJ,IAAoBA,eAAe,CAA1C,EAA6C;AAC3CG,aAAO5E,WAAP,IAAsB,EAAEyE,YAAxB;AACA,UAAIA,iBAAiB,CAArB,EAAwB;AACtBG,eAAOlF,IAAP,EAAa,WAAb,EAA0B,EAA1B;AACD;AACD,UAAI+E,iBAAiB,CAArB,EAAwB;AACtBc;AACD;AACD,UAAId,iBAAiB,CAArB,EAAwB;AACtBc;AACAD;AACD;AACDV,aAAOlF,IAAP,EAAa,kBAAb,EAAiC,EAAjC;AACA,UAAI+E,iBAAiB,CAArB,EAAwB;AACtB0B,mBAAWzB,SAAX,EAAsB,CAAtB;AACD;AACF;AACF,GAlBD;AAmBAA,cAAY,qBAAW;AACrB,QAAI,CAACG,QAAL,EAAe;AACbD,aAAOlF,IAAP,EAAa,MAAb,EAAqB,EAArB;AACD;AACDkF,WAAOlF,IAAP,EAAa,SAAb,EAAwB,EAAxB;AACA,QAAImF,QAAJ,EAAc;AACZD,aAAO5E,WAAP,IAAsB,CAAtB;AACD;AACF,GARD;AASAyE,iBAAe,CAAf;AACAU,kBAAgB,uBAAS7J,CAAT,EAAY;AAC1B,QAAI8K,KAAJ,EAAWC,QAAX;AACA,QAAI/K,MAAM,CAAV,EAAa;AACXqJ,qBAAerJ,CAAf;AACA;AACD;AACD8K,YAAQxF,MAAM2B,SAAN,CAAgBjD,KAAhB,CAAR;AACA+G,eAAU,mBAAW;AACnB,UAAIC,IAAJ;AACA,UAAI,CAACF,MAAMxZ,MAAX,EAAmB;AACjB,eAAO+X,eAAe,CAAf,CAAP;AACD;AACD2B,aAAOF,MAAMtD,KAAN,EAAP;AACA,UAAIwD,KAAK1Z,MAAL,KAAgB,CAApB,EAAuB;AACrB0Z,aAAKrB,OAAL,EAAcC,QAAd;AACA,eAAOmB,UAAP;AACD,OAHD,MAGO,IAAIC,KAAK1Z,MAAL,KAAgB,CAAhB,IAAqBqY,QAAQsB,KAAjC,EAAwC;AAC7C,eAAOD,KAAKrB,OAAL,EAAcC,QAAd,EAAwBmB,QAAxB,CAAP;AACD,OAFM,MAEA;AACL,eAAOA,UAAP;AACD;AACF,KAdD;AAeAA;AACD,GAvBD;AAwBAzB,WAASK,QAAQO,GAAR,GAAc/F,cAAvB;AACA+F,MAAIgB,kBAAJ,GAAyB,UAAS3E,KAAT,EAAgB;AACvC,QAAI;AACF,UAAI2D,IAAIxF,WAAJ,MAAqB,CAAzB,EAA4B;AAC1BgF;AACD;AACF,KAJD,CAIE,OAAOrD,MAAP,EAAe,CAAE;AACnB,QAAI6D,IAAIxF,WAAJ,MAAqB,CAAzB,EAA4B;AAC1BqF,mBAAa,KAAb;AACAL;AACAD;AACD;AACDI,kBAAcK,IAAIxF,WAAJ,CAAd;AACD,GAZD;AAaA8E,oBAAkB,2BAAW;AAC3BD,eAAW,IAAX;AACD,GAFD;AAGAD,SAAO7E,EAAP,EAAW,OAAX,EAAoB+E,eAApB;AACAF,SAAO7E,EAAP,EAAW,SAAX,EAAsB+E,eAAtB;AACAF,SAAO7E,EAAP,EAAW,OAAX,EAAoB+E,eAApB;AACAF,SAAO7E,EAAP,EAAW,UAAX,EAAuB,YAAW;AAChC,QAAI0E,eAAe,CAAnB,EAAsB;AACpBU,oBAAc,CAAd;AACD,KAFD,MAEO;AACLP,aAAOlF,IAAP,EAAa,kBAAb,EAAiC,EAAjC;AACD;AACF,GAND;AAOA,MAAI,qBAAqB8F,GAArB,IAA4B5E,MAAM6F,kBAAtC,EAA0D;AACxD7B,WAAO8B,eAAP,GAAyB,KAAzB;AACD;AACD9B,SAAOQ,MAAP,GAAgB,CAAhB;AACAvC,SAAOrD,cAAc5N,MAAd,CAAqBqO,aAArB,CAAP;AACA,OAAKoB,KAAK,CAAL,EAAQC,OAAOuB,KAAKjW,MAAzB,EAAiCyU,KAAKC,IAAtC,EAA4CD,IAA5C,EAAkD;AAChDQ,YAAQgB,KAAKxB,EAAL,CAAR;AACAuD,WAAO,OAAO/C,KAAd,IAAuB,IAAvB;AACD;AACD+C,SAAO+B,IAAP,GAAc,UAASzS,MAAT,EAAiB0S,GAAjB,EAAsBL,KAAtB,EAA6BM,IAA7B,EAAmCC,IAAnC,EAAyC;AACrDrC,mBAAe,CAAf;AACAI,eAAW,KAAX;AACAQ,iBAAa,KAAb;AACAJ,YAAQ1B,OAAR,GAAkB,EAAlB;AACA0B,YAAQ8B,WAAR,GAAsB,EAAtB;AACA9B,YAAQG,MAAR,GAAiB,CAAjB;AACAF,eAAW,EAAX;AACAA,aAAS3B,OAAT,GAAmB,EAAnB;AACA0B,YAAQ/Q,MAAR,GAAiBA,MAAjB;AACA+Q,YAAQ2B,GAAR,GAAcA,GAAd;AACA3B,YAAQsB,KAAR,GAAgBA,UAAU,KAA1B;AACAtB,YAAQ4B,IAAR,GAAeA,IAAf;AACA5B,YAAQ6B,IAAR,GAAeA,IAAf;AACA3B,kBAAc,CAAd;AACD,GAfD;AAgBAP,SAAOoC,IAAP,GAAc,UAASC,IAAT,EAAe;AAC3B,QAAIb,KAAJ,EAAWjX,CAAX,EAAc+X,IAAd,EAAoBb,SAApB,EAA6BW,IAA7B,EAAmCG,EAAnC,EAAuCC,KAAvC,EAA8CC,KAA9C;AACAA,YAAQ,CAAC,MAAD,EAAS,SAAT,EAAoB,iBAApB,CAAR;AACA,SAAKF,KAAK,CAAL,EAAQC,QAAQC,MAAMza,MAA3B,EAAmCua,KAAKC,KAAxC,EAA+CD,IAA/C,EAAqD;AACnDhY,UAAIkY,MAAMF,EAAN,CAAJ;AACAD,aAAO/X,MAAM,MAAN,GAAe,cAAf,GAAgCA,CAAvC;AACA,UAAI+X,QAAQtC,MAAZ,EAAoB;AAClBK,gBAAQ9V,CAAR,IAAayV,OAAOsC,IAAP,CAAb;AACD;AACF;AACDjC,YAAQgC,IAAR,GAAeA,IAAf;AACAD,WAAO,gBAAW;AAChB,UAAItD,MAAJ,EAAYlX,KAAZ,EAAmB8a,EAAnB,EAAuBC,KAAvB,EAA8BC,KAA9B,EAAqCC,KAArC;AACA9G,kBAAYnB,aAAZ,EAA2BgG,GAA3B,EAAgCZ,MAAhC;AACA,UAAIA,OAAO8C,MAAX,EAAmB;AACjB/G,oBACEnB,cAAc5N,MAAd,CAAqBqO,aAArB,CADF,EAEEuF,IAAIkC,MAFN,EAGE9C,OAAO8C,MAHT;AAKD;AACDrC,mBAAa,IAAb;AACAG,UAAImB,IAAJ,CACE1B,QAAQ/Q,MADV,EAEE+Q,QAAQ2B,GAFV,EAGE3B,QAAQsB,KAHV,EAIEtB,QAAQ4B,IAJV,EAKE5B,QAAQ6B,IALV;AAOAU,cAAQ,CAAC,MAAD,EAAS,SAAT,EAAoB,iBAApB,CAAR;AACA,WAAKF,KAAK,CAAL,EAAQC,QAAQC,MAAM5a,MAA3B,EAAmC0a,KAAKC,KAAxC,EAA+CD,IAA/C,EAAqD;AACnDnY,YAAIqY,MAAMF,EAAN,CAAJ;AACAJ,eAAO/X,MAAM,MAAN,GAAe,cAAf,GAAgCA,CAAvC;AACA,YAAIA,KAAK8V,OAAT,EAAkB;AAChBO,cAAI0B,IAAJ,IAAYjC,QAAQ9V,CAAR,CAAZ;AACD;AACF;AACDsY,cAAQxC,QAAQ1B,OAAhB;AACA,WAAKG,MAAL,IAAe+D,KAAf,EAAsB;AACpBjb,gBAAQib,MAAM/D,MAAN,CAAR;AACA,YAAIA,MAAJ,EAAY;AACV8B,cAAImC,gBAAJ,CAAqBjE,MAArB,EAA6BlX,KAA7B;AACD;AACF;AACD,UAAIyY,QAAQgC,IAAR,YAAwB/G,aAA5B,EAA2C;AACzC+E,gBAAQgC,IAAR,GAAehC,QAAQgC,IAAR,CAAajD,EAA5B;AACD;AACDwB,UAAIwB,IAAJ,CAAS/B,QAAQgC,IAAjB;AACD,KArCD;AAsCAb,YAAQxF,MAAM2B,SAAN,CAAgBhD,MAAhB,CAAR;AACA8G,gBAAU,mBAAW;AACnB,UAAIzI,IAAJ,EAAU0I,IAAV;AACA,UAAI,CAACF,MAAMxZ,MAAX,EAAmB;AACjB,eAAOoa,MAAP;AACD;AACDpJ,aAAO,cAASgK,YAAT,EAAuB;AAC5B,YACE,QAAOA,YAAP,yCAAOA,YAAP,OAAwB,QAAxB,KACC,OAAOA,aAAaxC,MAApB,KAA+B,QAA/B,IACC,OAAOF,SAASE,MAAhB,KAA2B,QAF7B,CADF,EAIE;AACA3E,uBAAamH,YAAb,EAA2B1C,QAA3B;AACA,cAAIpE,UAAUpU,IAAV,CAAekb,YAAf,EAA6B,MAA7B,IAAuC,CAA3C,EAA8C;AAC5CA,yBAAa9B,IAAb,GAAoB8B,aAAa1C,QAAb,IAAyB0C,aAAahC,IAA1D;AACD;AACDT,wBAAc,CAAd;AACA;AACD;AACDkB;AACD,OAdD;AAeAzI,WAAKiK,IAAL,GAAY,UAASD,YAAT,EAAuB;AACjCnH,qBAAamH,YAAb,EAA2B1C,QAA3B;AACA,eAAOC,cAAc,CAAd,CAAP;AACD,OAHD;AAIAvH,WAAKkK,QAAL,GAAgB,UAASF,YAAT,EAAuB;AACrCnH,qBAAamH,YAAb,EAA2B1C,QAA3B;AACA,eAAOC,cAAc,CAAd,CAAP;AACD,OAHD;AAIAmB,aAAOF,MAAMtD,KAAN,EAAP;AACA,UAAIwD,KAAK1Z,MAAL,KAAgB,CAApB,EAAuB;AACrB,eAAOgR,KAAK0I,KAAKrB,OAAL,CAAL,CAAP;AACD,OAFD,MAEO,IAAIqB,KAAK1Z,MAAL,KAAgB,CAAhB,IAAqBqY,QAAQsB,KAAjC,EAAwC;AAC7C,eAAOD,KAAKrB,OAAL,EAAcrH,IAAd,CAAP;AACD,OAFM,MAEA;AACL,eAAOA,MAAP;AACD;AACF,KApCD;AAqCAyI;AACD,GAxFD;AAyFAzB,SAAOmD,KAAP,GAAe,YAAW;AACxB3C,aAASZ,OAAT;AACA,QAAIa,UAAJ,EAAgB;AACdG,UAAIuC,KAAJ;AACD,KAFD,MAEO;AACLnD,aAAOlF,IAAP,EAAa,OAAb,EAAsB,EAAtB;AACD;AACF,GAPD;AAQAkF,SAAO+C,gBAAP,GAA0B,UAASjE,MAAT,EAAiBlX,KAAjB,EAAwB;AAChD,QAAIwb,KAAJ,EAAW7X,IAAX;AACA6X,YAAQtE,UAAU,IAAV,GAAiBA,OAAOtC,WAAP,EAAjB,GAAwC,KAAK,CAArD;AACAjR,WAAO8U,QAAQ8B,WAAR,CAAoBiB,KAApB,IAA6B/C,QAAQ8B,WAAR,CAAoBiB,KAApB,KAA8BtE,MAAlE;AACA,QAAIuB,QAAQ1B,OAAR,CAAgBpT,IAAhB,CAAJ,EAA2B;AACzB3D,cAAQyY,QAAQ1B,OAAR,CAAgBpT,IAAhB,IAAwB,IAAxB,GAA+B3D,KAAvC;AACD;AACDyY,YAAQ1B,OAAR,CAAgBpT,IAAhB,IAAwB3D,KAAxB;AACD,GARD;AASAoY,SAAOqD,iBAAP,GAA2B,UAASvE,MAAT,EAAiB;AAC1C,QAAIvT,IAAJ;AACAA,WAAOuT,UAAU,IAAV,GAAiBA,OAAOtC,WAAP,EAAjB,GAAwC,KAAK,CAApD;AACA,WAAO8D,SAAS3B,OAAT,CAAiBpT,IAAjB,CAAP;AACD,GAJD;AAKAyU,SAAOc,qBAAP,GAA+B,YAAW;AACxC,WAAOrF,eAAe6E,SAAS3B,OAAxB,CAAP;AACD,GAFD;AAGA,MAAIiC,IAAI0C,gBAAR,EAA0B;AACxBtD,WAAOsD,gBAAP,GAA0B,YAAW;AACnC,aAAO1C,IAAI0C,gBAAJ,CAAqB5N,KAArB,CAA2BkL,GAA3B,EAAgChV,SAAhC,CAAP;AACD,KAFD;AAGD;AACD,MAAIgV,IAAIkC,MAAR,EAAgB;AACd9C,WAAO8C,MAAP,GAAgBzC,QAAQyC,MAAR,GAAiBjI,cAAjC;AACD;AACD,SAAOmF,MAAP;AACD,CAlTD;;AAoTAvY,OAAOC,OAAP,GAAiBsU,KAAjB;;ACvnBA,IAAMuH,SAAS,SAATA,MAAS,IAAK;AAClB,MAAI1a,CAAJ,EAAO;AACL,QAAIA,EAAE2a,OAAN,EAAe;AACbD,aAAOC,OAAP,CAAe3a,EAAE2a,OAAjB;AACD;AACD,QAAI3a,EAAE4a,MAAN,EAAc;AACZF,aAAOE,MAAP,CAAc5a,EAAE4a,MAAhB;AACD;AACF;AACF,CATD;;AAWA;AACAF,OAAOG,KAAP,GAAe,KAAf;AACAH,OAAOI,OAAP,GAAiB,IAAjB;AACAJ,OAAOK,OAAP,GAAiB;AACfC,UAAQ,eADO;AAEfC,SAAO;AAFQ,CAAjB;AAIA;;AAEArc,OAAOC,OAAP,GAAiB6b,MAAjB;;;;;ACpBA,IAAMvH,QAAQ1T,QAAQ,iBAAR,CAAd;;AAEA,IAAMib,SAASjb,QAAQ,UAAR,CAAf;;AAEAZ,QAAQqc,cAAR,GAAyB,IAAzB;;cAEqBzZ;IAAb0Z,mBAAAA;;AACRtc,QAAQuc,aAAR,GAAwBD,SAASE,QAAT,GAAoB,IAApB,GAA2BF,SAASG,IAA5D;AACAZ,OAAOa,MAAP,GAAgB1c,QAAQuc,aAAxB;;AAEA;AACAvc,QAAQ2c,aAAR,GAAwBrI,MAAMnB,YAAN,CAAmB,IAAnB,CAAxB;;AAEAnT,QAAQ4c,OAAR,GAAkBha,OAAOga,OAAP,IAAkB,EAApC;;AAEA,IAAIC,UAAU,CAAd;AACA7c,QAAQ8c,IAAR,GAAe,YAAM;AACnB,MAAID,WAAW,GAAf,EAAoBA,UAAU,CAAV;AACpB,MAAI7N,IAAIrL,OAAO,EAAEkZ,OAAT,CAAR;AACA,SAAO7N,EAAE1O,MAAF,GAAW,CAAlB;AAAqB0O,QAAI,MAAMA,CAAV;AAArB,GACA,oBAAkBA,CAAlB;AACD,CALD;;AAOAhP,QAAQU,KAAR,GAAgB,UAACS,CAAD,EAAI6N,CAAJ,EAAU;AACxB,SAAOrO,MAAMd,SAAN,CAAgBa,KAAhB,CAAsBN,IAAtB,CAA2Be,CAA3B,EAA8B6N,CAA9B,CAAP;AACD,CAFD;;AAIA;AACA,IAAM+N,YAAY,SAAZA,SAAY,OAAQ;AACxB,SAAO,eAAO;AACZC,wBAAkBhd,QAAQuc,aAA1B,WAA6CS,GAA7C;AACA;AACAhd,YAAQ2c,aAAR,CAAsBhG,IAAtB,CAA2BhB,IAA3B,EAAiCqH,GAAjC;AACA;AACA,QAAIrH,SAAS,KAAT,IAAkB,CAACkG,OAAOG,KAA9B,EAAqC;AACnC;AACD;AACD;AACA,QAAIrG,QAAQkG,MAAZ,EAAoB;AAClBA,aAAOlG,IAAP,EAAaqH,GAAb;AACA;AACD,KAHD,MAGO,IAAIrH,QAAQiH,OAAZ,EAAqB;AAC1BA,cAAQjH,IAAR,EAAcqH,GAAd;AACA;AACD,KAHM,MAGA,IAAIrH,SAAS,MAAb,EAAqB;AAC1BsH,YAAMD,GAAN;AACD;AACF,GAlBD;AAmBD,CApBD;;AAsBAhd,QAAQkd,GAAR,GAAcH,UAAU,KAAV,CAAd;AACA/c,QAAQmd,IAAR,GAAeJ,UAAU,MAAV,CAAf;;AAEA/c,QAAQod,MAAR,GAAiB,UAAC3Y,GAAD,EAAM4Y,MAAN,EAAiB;AAChC,SAAOA,UAAUza,MAAV,IAAoB6B,eAAe7B,OAAOya,MAAP,CAA1C;AACD,CAFD;;AAIA;AACArd,QAAQsd,QAAR,GAAmB,eAAO;AACxB,MAAI,mCAAmCnX,IAAnC,CAAwCmU,GAAxC,CAAJ,EAAkD;AAChD,WAAO;AACLoC,cAAQ,CAAC7Q,OAAO0L,EAAP,GAAY,EAAZ,GAAiB+E,SAASE,QAA3B,IAAuC3Q,OAAOyL,EADjD;AAELiG,YAAM1R,OAAO2R;AAFR,KAAP;AAID,GALD,MAKO;AACLxd,YAAQkd,GAAR,oCAA6C5C,GAA7C;AACA,WAAO,IAAP;AACD;AACF,CAVD;AAWAuB,OAAOyB,QAAP,GAAkBtd,QAAQsd,QAA1B;;AAEAtd,QAAQyd,QAAR,GAAmB,eAAO;AACxB,MAAIhZ,eAAeoH,MAAnB,EAA2B;AACzB,WAAOpH,GAAP;AACD;AACD,MAAMtE,MAAMsE,IACT3E,QADS,GAETkG,OAFS,CAED,KAFC,EAEM;AAAA,kBAAY7F,GAAZ;AAAA,GAFN,EAGT6F,OAHS,CAGD,OAHC,EAGQ,IAHR,CAAZ;AAIA,SAAO,IAAI6F,MAAJ,OAAe1L,GAAf,OAAP;AACD,CATD;;AAWA;AACAH,QAAQ0d,KAAR,GAAgB,eAAO;AACrB,MAAMvI,MAAM,EAAZ;AACA,OAAK,IAAItS,CAAT,IAAcqS,GAAd,EAAmB;AACjB,QAAIrS,MAAM,aAAV,EAAyB;AACvB;AACD;AACD,QAAMuS,IAAIF,IAAIrS,CAAJ,CAAV;AACA,QAAM8a,WAAWvI,CAAX,yCAAWA,CAAX,CAAN;AACA,QAAIuI,MAAM,UAAN,IAAoBA,MAAM,QAA9B,EAAwC;AACtCxI,UAAItS,CAAJ,IAASuS,CAAT;AACD;AACF;AACD,SAAOD,GAAP;AACD,CAbD;;ACnFA,IAAMb,QAAQ1T,QAAQ,iBAAR,CAAd;AACA,IAAMib,SAASjb,QAAQ,UAAR,CAAf;;eAQIA,QAAQ,QAAR;IANFsc,eAAAA;IACAC,gBAAAA;IACAM,oBAAAA;IACAC,iBAAAA;IACAJ,oBAAAA;IACAjB,0BAAAA;;AAGF;AACA;;AAEA,IAAIuB,UAAU,KAAd;AACA,IAAI9B,UAAU,EAAd;;AAEA9b,QAAQ6d,UAAR,GAAqB,kBAAU;AAC7B;AACA,MAAIjb,WAAWA,OAAOkb,MAAtB,EAA8B;AAC5BX,SAAK,6BAAL;AACA;AACD;AACD;AACA,MAAI,CAACS,OAAL,EAAc;AACZA,cAAU,IAAV;AACAV,QAAI,kCAAJ;AACAta,WAAOkb,MAAP,CAAcC,WAAd,aAAoC1B,cAApC,EAAsD,GAAtD;AACD;AACD;AACA,OAAK,IAAIK,MAAT,IAAmBb,MAAnB,EAA2B;AACzB,QAAI0B,OAAO1B,OAAOa,MAAP,CAAX;AACA,QAAIA,WAAW,SAAX,IAAwBa,SAAS,GAArC,EAA0C;AACxCJ;AACAI,aAAO,GAAP;AACD;AACDL,4BAAsBR,MAAtB;AACAZ,YAAQY,MAAR,IAAkBa,IAAlB;AACD;AACF,CAtBD;;AAwBA1B,OAAOC,OAAP,GAAiB9b,QAAQ6d,UAAzB;;AAEA7d,QAAQge,YAAR,GAAuB,UAACtB,MAAD,EAASuB,MAAT,EAAoB;AACzC,MAAI,CAACL,OAAL,EAAc;AACZ;AACD;AACD;AACA;AACA;AACA;AACA,MAAIlB,WAAW,MAAX,IAAqBA,WAAW,OAApC,EAA6C;AAC3CA,aAAS,SAAT;AACD;AACDQ,+BAA0BR,MAA1B;AACA,MAAIwB,YAAY,IAAhB;AACA,OAAK,IAAI/B,MAAT,IAAmBL,OAAnB,EAA4B;AAC1B,QAAMqC,QAAQrC,QAAQK,MAAR,CAAd;AACA,QAAI;AACF,UAAMiC,cAAcX,SAAStB,MAAT,CAApB;AACA,UAAIiC,YAAYjY,IAAZ,CAAiBuW,MAAjB,CAAJ,EAA8B;AAC5BwB,oBAAYT,SAASU,KAAT,CAAZ;AACA;AACD;AACF,KAND,CAME,OAAOE,KAAP,EAAc,CAAE;AACnB;AACD,MAAI,CAACH,SAAL,EAAgB;AACdf,qCAA+BT,MAA/B;AACA;AACD;AACDuB,SAAOrH,IAAP,CAAY,SAAZ,EAAuB,UAAS0H,GAAT,EAAc;AACnCpB,sBAAgBoB,IAAI1W,MAApB,SAA8B0W,IAAIhE,GAAlC;AACA,QAAMrF,IAAIqI,SAASgB,IAAIhE,GAAb,CAAV;AACA,QAAI,CAACrF,CAAD,IAAM,CAACiJ,UAAU/X,IAAV,CAAe8O,EAAEsI,IAAjB,CAAX,EAAmC;AACjCJ,0CAAkClI,EAAEsI,IAApC,oBAAuDW,SAAvD;AACAD,aAAOM,KAAP;AACA;AACD;AACD;AACA;AACA,QAAMrF,MAAM,IAAIsF,cAAJ,EAAZ;AACAtF,QAAImB,IAAJ,CAASiE,IAAI1W,MAAb,EAAqB0W,IAAIhE,GAAzB;AACApB,QAAIuF,gBAAJ,CAAqB,GAArB,EAA0B;AAAA,aAAKR,OAAOS,IAAP,CAAY,WAAZ,EAAyB5b,EAAE6S,IAA3B,EAAiC+H,MAAM5a,CAAN,CAAjC,CAAL;AAAA,KAA1B;AACA,QAAIoW,IAAIkC,MAAR,EAAgB;AACdlC,UAAIkC,MAAJ,CAAWqD,gBAAX,CAA4B,GAA5B,EAAiC;AAAA,eAC/BR,OAAOS,IAAP,CAAY,kBAAZ,EAAgC5b,EAAE6S,IAAlC,EAAwC+H,MAAM5a,CAAN,CAAxC,CAD+B;AAAA,OAAjC;AAGD;AACDoW,QAAIgB,kBAAJ,GAAyB,YAAW;AAClC,UAAIhB,IAAIyF,UAAJ,KAAmB,CAAvB,EAA0B;AACxB;AACD;AACD;AACA,UAAMC,OAAO;AACX9F,gBAAQI,IAAIJ,MADD;AAEXK,oBAAYD,IAAIC,UAFL;AAGXK,cAAMN,IAAIN,QAHC;AAIX3B,iBAAS3C,MAAM2C,OAAN,CAAciC,IAAIE,qBAAJ,EAAd;AAJE,OAAb;AAMA,UAAI;AACFwF,aAAKtF,IAAL,GAAYJ,IAAIK,YAAhB;AACD,OAFD,CAEE,OAAOsF,MAAP,EAAe,CAAE;AACnB;AACA;AACA,aAAOZ,OAAOS,IAAP,CAAY,UAAZ,EAAwBE,IAAxB,CAAP;AACD,KAjBD;AAkBA;AACAX,WAAOrH,IAAP,CAAY,OAAZ,EAAqB;AAAA,aAAMsC,IAAIuC,KAAJ,EAAN;AAAA,KAArB;AACA;AACA;AACA;AACA,QAAI6C,IAAIlE,eAAR,EAAyB;AACvBlB,UAAIkB,eAAJ,GAAsB,IAAtB;AACA,UAAIkE,IAAIQ,WAAR,EAAqB;AACnBR,YAAIrH,OAAJ,CAAYqH,IAAIQ,WAAhB,IAA+B7K,SAAS8K,MAAxC;AACD;AACF;AACD,QAAIT,IAAIrC,OAAR,EAAiB;AACf/C,UAAI+C,OAAJ,GAAcqC,IAAIrC,OAAlB;AACD;AACD,QAAIqC,IAAI3I,IAAR,EAAc;AACZuD,UAAIG,YAAJ,GAAmBiF,IAAI3I,IAAvB;AACD;AACD,SAAK,IAAI9S,CAAT,IAAcyb,IAAIrH,OAAlB,EAA2B;AACzB,UAAM7B,IAAIkJ,IAAIrH,OAAJ,CAAYpU,CAAZ,CAAV;AACAqW,UAAImC,gBAAJ,CAAqBxY,CAArB,EAAwBuS,CAAxB;AACD;AACD;AACA,QAAIkJ,IAAI3D,IAAJ,YAAoBha,KAApB,IAA6B2d,IAAI3D,IAAJ,CAAS,CAAT,MAAgB,OAAjD,EAA0D;AACxD,UAAMjD,KAAK,IAAIpD,MAAMjB,QAAV,EAAX;AACA,UAAMoE,UAAU6G,IAAI3D,IAAJ,CAAS,CAAT,CAAhB;AACAha,YAAMqe,IAAN,CAAWvH,OAAX,EAAoBwH,OAApB,CAA4B,eAAO;AACjC;AACA;AACA,YAAIlR,KAAK,CAAL,MAAY,SAAZ,IAAyBA,KAAKzN,MAAL,KAAgB,CAA7C,EAAgD;AAC9C,cAAM4e,OAAO,IAAIC,IAAJ,CAAS,CAACpR,KAAK,CAAL,CAAD,CAAT,EAAoB,EAAE4H,MAAM5H,KAAK,CAAL,CAAR,EAApB,CAAb;AACAA,iBAAOA,KAAK,CAAL,CAAP;AACAA,eAAK,CAAL,IAAUmR,IAAV;AACD;AACDxH,WAAGM,MAAH,CAAUhK,KAAV,CAAgB0J,EAAhB,EAAoB3J,IAApB;AACD,OATD;AAUAuQ,UAAI3D,IAAJ,GAAWjD,EAAX;AACD;AACD;AACAwB,QAAIwB,IAAJ,CAAS4D,IAAI3D,IAAJ,IAAY,IAArB;AACD,GA3ED;AA4EAuC,mDAA+Ce,OAAOmB,EAAtD;AACD,CAxGD;;AC3CA,IAAM9K,QAAQ1T,QAAQ,iBAAR,CAAd;;AAEA,IAAMib,SAASjb,QAAQ,UAAR,CAAf;;eACqDA,QAAQ,QAAR;IAA7C+b,yBAAAA;IAAeO,eAAAA;IAAKC,gBAAAA;IAAMd,0BAAAA;;gBACTzb,QAAQ,SAAR;IAAjBod,yBAAAA;;AAER;;;AACA,IAAMqB,eAAe,UAArB;AACA,IAAMC,iBAAiB,GAAvB;AACA;AACA,IAAMC,UAAU,EAAhB;AACA,IAAIC,aAAa,IAAjB;;AAEA;AACA;AACA;AACAxf,QAAQyf,YAAR,GAAuB,UAACL,EAAD,EAAKM,KAAL,EAAe;AACpC,MAAIC,QAAQ,KAAZ;AACA,MAAM1B,SAAS3J,MAAMnB,YAAN,CAAmB,IAAnB,CAAf;AACAoM,UAAQH,EAAR,IAAcnB,MAAd;AACAA,SAAOmB,EAAP,GAAYA,EAAZ;AACAnB,SAAOrH,IAAP,CAAY,OAAZ,EAAqB,YAAW;AAC9BqH,WAAOpH,OAAP;AACAoH,WAAOM,KAAP;AACD,GAHD;AAIA,MAAMqB,eAAe,EAArB;AACA3B,SAAOS,IAAP,GAAc,YAAkB;AAAA,sCAAN3Q,IAAM;AAANA,UAAM;AAAA;;AAC9B,QAAM8R,QAAQ,OAAO9R,KAAK,CAAL,CAAP,KAAmB,QAAnB,YAAqCA,KAAK,CAAL,CAArC,GAAiD,EAA/D;AACAmP,0BAAoBkC,EAApB,UAA2BrR,KAAK,CAAL,CAA3B,GAAqC8R,KAArC;AACA9R,SAAK+R,OAAL,CAAaV,EAAb;AACA,QAAIO,KAAJ,EAAW;AACTjB,WAAK3Q,IAAL;AACD,KAFD,MAEO;AACL6R,mBAAalc,IAAb,CAAkBqK,IAAlB;AACD;AACF,GATD;AAUA,MAAI2Q,OAAO,SAAPA,IAAO,CAAS3Q,IAAT,EAAe;AACxB;AACA,QAAIyR,UAAJ,EAAgB;AACdzR,aAAOgS,KAAKC,SAAL,CAAejS,IAAf,CAAP;AACD;AACD;AACA2R,UAAM3B,WAAN,CAAkBhQ,IAAlB,EAAwB,GAAxB;AACD,GAPD;;AASAkQ,SAAOM,KAAP,GAAe,YAAW;AACxBN,WAAOS,IAAP,CAAY,OAAZ;AACAxB,2BAAqBkC,EAArB;AACAG,YAAQH,EAAR,IAAc,IAAd;AACD,GAJD;;AAMAnB,SAAOrH,IAAP,CAAYyI,YAAZ,EAA0B,UAAS5a,GAAT,EAAc;AACtC+a,iBAAa,OAAO/a,GAAP,KAAe,QAA5B;AACAkb,YAAQ1B,OAAO0B,KAAP,GAAe,IAAvB;AACA1B,WAAOS,IAAP,CAAY,OAAZ;AACAxB,2BAAqBkC,EAArB,gBAAkCQ,aAAatf,MAA/C;AACA,WAAOsf,aAAatf,MAApB,EAA4B;AAC1Boe,WAAKkB,aAAapJ,KAAb,EAAL;AACD;AACF,GARD;;AAUA;AACA,MAAIyJ,SAAS,CAAb;AACA,MAAIC,QAAQ,SAARA,KAAQ,GAAM;AAChB;AACAR,UAAM3B,WAAN,CAAkB,CAACqB,EAAD,EAAKC,YAAL,EAAmB,EAAnB,CAAlB,EAA0C,GAA1C;AACA,QAAIM,KAAJ,EAAW;AACT;AACD;AACD,QAAIM,YAAYpE,OAAOI,OAAP,GAAiBqD,cAAjC,EAAiD;AAC/CnC,WAAK,kCAAL;AACAR,oBAAchG,IAAd,CAAmB,SAAnB;AACAsH,aAAOtH,IAAP,CAAY,OAAZ,EAH+C,CAGzB;AACvB,KAJD,MAIO;AACLuG,8BAAsBoC,cAAtB;AACAzF,iBAAWqG,KAAX,EAAkBZ,cAAlB;AACD;AACF,GAdD;AAeAzF,aAAWqG,KAAX;;AAEAhD,uBAAmBkC,EAAnB;AACA,SAAOnB,MAAP;AACD,CAlED;;AAoEA;AACA;AACA;AACA;AACAje,QAAQmgB,UAAR,GAAqB,YAAM;AACzB,MAAMC,SAAS,SAATA,MAAS,IAAK;AAClB,QAAIC,IAAIvd,EAAE0W,IAAV;AACA;AACA,QAAI,OAAO6G,CAAP,KAAa,QAAjB,EAA2B;AACzB;AACA,UAAI,qBAAqBla,IAArB,CAA0Bka,CAA1B,KAAgCxU,OAAO0L,EAAP,KAAc8E,cAAlD,EAAkE;AAChE,eAAOc,KACL,8EADK,CAAP;AAGA;AACD,OALD,MAKO,IAAI,YAAYhX,IAAZ,CAAiBka,CAAjB,CAAJ,EAAyB;AAC9BA,YAAIA,EAAEhJ,KAAF,CAAQ,GAAR,CAAJ;AACA;AACD,OAHM,MAGA,IAAImI,UAAJ,EAAgB;AACrB,YAAI;AACFa,cAAIN,KAAKO,KAAL,CAAWD,CAAX,CAAJ;AACD,SAFD,CAEE,OAAOhC,KAAP,EAAc;AACd;AACD;AACF;AACF;AACD;AACA,QAAI,EAAEgC,aAAa1f,KAAf,CAAJ,EAA2B;AACzB;AACD;AACD;AACA,QAAMye,KAAKiB,EAAE7J,KAAF,EAAX;AACA,QAAI,CAAC,YAAYrQ,IAAZ,CAAiBiZ,EAAjB,CAAL,EAA2B;AACzB;AACD;AACD;AACA,QAAInB,SAASsB,QAAQH,EAAR,CAAb;AACA;AACA,QAAInB,WAAW,IAAf,EAAqB;AACnB;AACD;AACD;AACA,QAAIA,WAAW9H,SAAf,EAA0B;AACxB;AACA,UAAI,CAAC6H,YAAL,EAAmB;AACjB;AACD;AACDC,eAASje,QAAQyf,YAAR,CAAqBL,EAArB,EAAyBtc,EAAEgG,MAA3B,CAAT;AACAkV,mBAAalb,EAAE4Z,MAAf,EAAuBuB,MAAvB;AACD;AACD,QAAM4B,QAAQ,OAAOQ,EAAE,CAAF,CAAP,KAAgB,QAAhB,YAAkCA,EAAE,CAAF,CAAlC,GAA2C,EAAzD;AACAnD,6BAAuBkC,EAAvB,UAA8BiB,EAAE,CAAF,CAA9B,GAAqCR,KAArC;AACA;AACA5B,WAAOtH,IAAP,CAAY3I,KAAZ,CAAkBiQ,MAAlB,EAA0BoC,CAA1B;AACD,GAjDD;AAkDA,MAAIpM,SAASwK,gBAAb,EAA+B;AAC7B,WAAO7b,OAAO6b,gBAAP,CAAwB,SAAxB,EAAmC2B,MAAnC,CAAP;AACD,GAFD,MAEO;AACL,WAAOxd,OAAO2d,WAAP,CAAmB,WAAnB,EAAgCH,MAAhC,CAAP;AACD;AACF,CAxDD;;;;ACxFA,IAAM9L,QAAQ1T,QAAQ,iBAAR,CAAd;AACA,IAAMib,SAASjb,QAAQ,UAAR,CAAf;;eASIA,QAAQ,QAAR;IAPF2b,yBAAAA;IACAW,eAAAA;IACAC,gBAAAA;IACAG,oBAAAA;IACAR,gBAAAA;IACAY,iBAAAA;IACAN,kBAAAA;;AAEF,IAAMoD,YAAY5f,QAAQ,UAAR,CAAlB;AACA,IAAM6e,eAAee,UAAUf,YAA/B;;AAEA;AACA;;AAEA,IAAI7B,UAAU,KAAd;AACA,IAAI7B,SAAS,EAAb;;AAEA/b,QAAQygB,SAAR,GAAoB,qBAAa;AAC/B;AACA,MAAI,CAAC7C,OAAL,EAAc;AACZA,cAAU,IAAV;AACA;AACA;AACA,QAAI,EAAE,wBAAwBtJ,KAA1B,CAAJ,EAAsC;AACpCA,YAAM6F,kBAAN,GAA2B,IAA3B;AACD;AACD;AACA7F,UAAMoM,MAAN,CAAaC,SAAb;AACD;AACD;AACA,OAAK,IAAIjE,MAAT,IAAmBkE,SAAnB,EAA8B;AAC5B,QAAMrD,OAAOqD,UAAUlE,MAAV,CAAb;AACAQ,2BAAqBR,MAArB;AACAX,WAAOW,MAAP,IAAiBa,IAAjB;AACD;AACF,CAlBD;;AAoBA1B,OAAOE,MAAP,GAAgB/b,QAAQygB,SAAxB;;AAEA,IAAME,YAAY,SAAZA,SAAY,CAAShI,OAAT,EAAkBzC,QAAlB,EAA4B;AAC5C;AACA,MAAMjB,IAAIqI,SAAS3E,QAAQ2B,GAAjB,CAAV;AACA,MAAI,CAACrF,CAAD,IAAMA,EAAEyH,MAAF,KAAaH,aAAvB,EAAsC;AACpCrG;AACA;AACD;AACD,MAAI,CAAC6F,OAAO9G,EAAEyH,MAAT,CAAL,EAAuB;AACrB,QAAIzH,CAAJ,EAAO;AACLiI,mCAA2BjI,EAAEyH,MAA7B;AACD;AACDxG;AACA;AACD;AACDgH,uCAAmCjI,EAAEyH,MAArC;AACA,MAAI/D,QAAQsB,KAAR,KAAkB,KAAtB,EAA6B;AAC3BkD,SAAK,iDAAL;AACAjH;AACA;AACD;AACD;AACA,MAAMwJ,QAAQmB,SAAS5L,EAAEyH,MAAX,EAAmBX,OAAO9G,EAAEyH,MAAT,CAAnB,CAAd;AACA;AACA,MAAMuB,SAASwB,aAAa3C,MAAb,EAAqB4C,KAArB,CAAf;AACA;AACAzB,SAAOxH,EAAP,CAAU,UAAV,EAAsB,UAASmI,IAAT,EAAe;AACnC1I,aAAS0I,IAAT;AACAX,WAAOM,KAAP;AACD,GAHD;AAIA;AACA5F,UAAQO,GAAR,CAAYuF,gBAAZ,CAA6B,OAA7B,EAAsC;AAAA,WAAMR,OAAOS,IAAP,CAAY,OAAZ,CAAN;AAAA,GAAtC;AACA;AACA,MAAIT,OAAO0B,KAAX,EAAkB;AAChBmB,kBAAcnI,OAAd,EAAuBsF,MAAvB;AACD,GAFD,MAEO;AACLA,WAAOrH,IAAP,CAAY,OAAZ,EAAqB;AAAA,aAAMkK,cAAcnI,OAAd,EAAuBsF,MAAvB,CAAN;AAAA,KAArB;AACD;AACF,CArCD;;AAuCA,IAAM8C,SAAS,EAAf;AACA,IAAMF,WAAW,SAAXA,QAAW,CAASnE,MAAT,EAAiBsE,SAAjB,EAA4B;AAC3C;AACA,MAAID,OAAOrE,MAAP,CAAJ,EAAoB;AAClB,WAAOqE,OAAOrE,MAAP,CAAP;AACD;AACD,MAAMgD,QAAQzL,SAASgN,aAAT,CAAuB,QAAvB,CAAd;AACAvB,QAAMN,EAAN,GAAWM,MAAM7b,IAAN,GAAaiZ,MAAxB;AACAI,2BAAuBwC,MAAMN,EAA7B;AACAM,QAAMxK,GAAN,QAAewH,MAAf,GAAwBsE,SAAxB;AACAtB,QAAMwB,YAAN,CAAmB,OAAnB,EAA4B,eAA5B;AACAjN,WAAS0G,IAAT,CAAcwG,WAAd,CAA0BzB,KAA1B;AACA,SAAQqB,OAAOrE,MAAP,IAAiBgD,MAAM0B,aAA/B;AACD,CAZD;;AAcA,IAAMC,uBAAuB,SAAvBA,oBAAuB,CAAStT,IAAT,EAAeuD,IAAf,EAAqB;AAAA,oBAC5B3Q,MAAMqe,IAAN,CAAWjR,IAAX,CAD4B;AAAA;AAAA,MACzClK,IADyC;AAAA,MACnCY,GADmC;;AAEhD,MAAM6c,SAASlE,OAAO3Y,GAAP,EAAY,MAAZ,CAAf;AACA,MAAM8c,SAASnE,OAAO3Y,GAAP,EAAY,MAAZ,CAAf;AACA,MAAI,CAAC6c,MAAD,IAAW,CAACC,MAAhB,EAAwB;AACtB,WAAO,CAAP;AACD;AACD,MAAMC,SAAS,IAAIC,UAAJ,EAAf;AACAD,SAAOE,MAAP,GAAgB,YAAW;AACzB;AACA3T,SAAK,CAAL,IAAU,IAAV;AACA;AACA,QAAIwT,MAAJ,EAAY;AACVxT,WAAK,CAAL,IAAUtJ,IAAIZ,IAAd;AACD;AACD,WAAOyN,KAAK,CAAC,SAAD,EAAYvD,IAAZ,EAAkB,KAAKlG,MAAvB,EAA+BpD,IAAIkR,IAAnC,CAAL,CAAP;AACD,GARD;AASA6L,SAAOG,iBAAP,CAAyBld,GAAzB;AACA,SAAO,CAAP;AACD,CAnBD;;AAqBA;AACA;AACA;AACA,IAAMmd,kBAAkB,SAAlBA,eAAkB,CAASnK,OAAT,EAAkBiD,IAAlB,EAAwB;AAC9C;AACAjD,UAAQwH,OAAR,CAAgB,UAASlR,IAAT,EAAetK,CAAf,EAAkB;AAAA,uBACV9C,MAAMqe,IAAN,CAAWjR,IAAX,CADU;AAAA;AAAA,QACzBlK,IADyB;AAAA,QACnB3D,KADmB;;AAEhC,QAAIkd,OAAOld,KAAP,EAAc,UAAd,CAAJ,EAA+B;AAC7BuX,cAAQrB,MAAR,CAAe3S,CAAf,EAAkB,CAAlB;AACA9C,YAAMqe,IAAN,CAAW9e,KAAX,EAAkB+e,OAAlB,CAA0B,gBAAQ;AAChCxH,gBAAQrB,MAAR,CAAe3S,CAAf,EAAkB,CAAlB,EAAqB,CAACI,IAAD,EAAOge,IAAP,CAArB;AACD,OAFD;AAGD;AACF,GARD;AASA;AACA,MAAIC,IAAI,CAAR;AACArK,UAAQwH,OAAR,CAAgB,UAASlR,IAAT,EAAetK,CAAf,EAAkB;AAChCqe,SAAKT,qBAAqBtT,IAArB,EAA2B,UAASgU,OAAT,EAAkB;AAChDtK,cAAQhU,CAAR,IAAase,OAAb;AACA,UAAI,EAAED,CAAF,KAAQ,CAAZ,EAAe;AACbpH;AACD;AACF,KALI,CAAL;AAMD,GAPD;AAQA,MAAIoH,MAAM,CAAV,EAAa;AACXpH;AACD;AACF,CAxBD;;AA0BA,IAAMoG,gBAAgB,SAAhBA,aAAgB,CAASnI,OAAT,EAAkBsF,MAAlB,EAA0B;AAC9CA,SAAOxH,EAAP,CAAU,WAAV,EAAuB,YAAW;AAChC,WAAOkC,QAAQO,GAAR,CAAY8I,aAAZ,CAA0BhU,KAA1B,CAAgC,IAAhC,EAAsC9J,SAAtC,CAAP;AACD,GAFD;AAGA+Z,SAAOxH,EAAP,CAAU,kBAAV,EAA8B,YAAW;AACvC,WAAOkC,QAAQO,GAAR,CAAYkC,MAAZ,CAAmB4G,aAAnB,CAAiChU,KAAjC,CAAuC,IAAvC,EAA6C9J,SAA7C,CAAP;AACD,GAFD;;AAIA,MAAMO,MAAMiZ,MAAM/E,OAAN,CAAZ;AACAlU,MAAIwS,OAAJ,GAAc0B,QAAQ1B,OAAtB;AACA;AACA,MAAI0B,QAAQyB,eAAZ,EAA6B;AAC3B,QAAIyB,OAAOK,OAAP,CAAeC,MAAnB,EAA2B;AACzB1X,UAAIwS,OAAJ,CAAY4E,OAAOK,OAAP,CAAeC,MAA3B,IAAqClI,SAAS8K,MAA9C;AACD;AACDta,QAAIqa,WAAJ,GAAkBjD,OAAOK,OAAP,CAAeE,KAAjC;AACD;;AAED,MAAM1B,OAAO,SAAPA,IAAO;AAAA,WAAMuD,OAAOS,IAAP,CAAY,SAAZ,EAAuBja,GAAvB,CAAN;AAAA,GAAb;;AAEA,MAAIkU,QAAQgC,IAAZ,EAAkB;AAChBlW,QAAIkW,IAAJ,GAAWhC,QAAQgC,IAAnB;AACA;AACA,QAAIyC,OAAO3Y,IAAIkW,IAAX,EAAiB,UAAjB,CAAJ,EAAkC;AAAA,UACxBlD,OADwB,GACZhT,IAAIkW,IADQ,CACxBlD,OADwB;;AAEhChT,UAAIkW,IAAJ,GAAW,CAAC,OAAD,EAAUlD,OAAV,CAAX;AACAmK,sBAAgBnK,OAAhB,EAAyBiD,IAAzB;AACA;AACD;AACF;AACDA;AACD,CA/BD;;AClJA,IAAMmB,SAASjb,QAAQ,UAAR,CAAf;;eACqBA,QAAQ,QAAR;IAAb0c,oBAAAA;;gBACc1c,QAAQ,UAAR;IAAd6f,sBAAAA;;gBACe7f,QAAQ,SAAR;IAAfid,uBAAAA;;cACajb;IAAbqR,mBAAAA;AACR;;AACAjU,QAAQmgB,UAAR,GAAqB,YAAW;AAC9B;AACA,MAAM8B,QAAQ;AACZjG,SADY,iBACN9b,KADM,EACC;AACX2b,aAAOG,KAAP,GAAe9b,UAAU,OAAzB;AACD,KAHW;AAIZkc,SAJY,iBAINlc,KAJM,EAIC;AACX,UAAM+U,IAAIqI,SAASpd,KAAT,CAAV;AACA,UAAI,CAAC+U,CAAL,EAAQ;AACN;AACD;AACD,UAAMiN,IAAI,EAAV;AACAA,QAAEjN,EAAEyH,MAAJ,IAAczH,EAAEsI,IAAhB;AACAkD,gBAAUyB,CAAV;AACD,KAZW;AAaZ/F,UAbY,kBAaLjc,KAbK,EAaE;AACZ,UAAI+U,UAAJ;AACA,UAAI/U,UAAU,GAAd,EAAmB;AACjB+U,YAAI,EAAEyH,QAAQ,GAAV,EAAea,MAAM,GAArB,EAAJ;AACD,OAFD,MAEO,IAAIrd,UAAU,UAAd,EAA0B;AAC/B+U,YAAI,EAAEyH,QAAQ,SAAV,EAAqBa,MAAM,GAA3B,EAAJ;AACD,OAFM,MAEA;AACLtI,YAAIqI,SAASpd,KAAT,CAAJ;AACD;AACD,UAAI,CAAC+U,CAAL,EAAQ;AACN;AACD;AACD,UAAMkN,IAAI,EAAV;AACAA,QAAElN,EAAEyH,MAAJ,IAAczH,EAAEsI,IAAF,CAAOvX,OAAP,CAAe,KAAf,EAAsB,EAAtB,IAA4BiP,EAAEsI,IAA9B,GAAqC,GAAnD;AACAM,iBAAWsE,CAAX;AACD;AA5BW,GAAd;AA8BA;AACA;AACAxhB,QAAMqe,IAAN,CAAW/K,SAASmO,oBAAT,CAA8B,QAA9B,CAAX,EAAoDnD,OAApD,CAA4D,kBAAU;AACpE,QAAI,CAAC,UAAU9Y,IAAV,CAAekc,OAAOnN,GAAtB,CAAL,EAAiC;AAC/B;AACD;AACD,KAAC,EAAD,EAAK,OAAL,EAAc+J,OAAd,CAAsB,kBAAU;AAC9B,WAAK,IAAIpc,CAAT,IAAcof,KAAd,EAAqB;AACnB,YAAM/hB,QAAQmiB,OAAOC,YAAP,CAAoBC,SAAS1f,CAA7B,CAAd;AACA,YAAI3C,KAAJ,EAAW;AACT,cAAMqE,KAAK0d,MAAMpf,CAAN,CAAX;AACA0B,aAAGrE,KAAH;AACD;AACF;AACF,KARD;AASD,GAbD;AAcD,CAhDD;;ACNA;;AAEA;;eACiBU,QAAQ,YAAR;IAATuc,gBAAAA;;AACR,CAAC,aAAD,EAAgB,MAAhB,EAAwB8B,OAAxB,CAAgC,mBAAW;AACzC,MAAI,CAACrc,OAAO4f,OAAP,CAAL,EAAsB;AACpBrF,wBAAkBqF,OAAlB;AACD;AACF,CAJD;;AAMA;AACA,IAAMvE,SAASrd,QAAQ,cAAR,CAAf;AACAqd,OAAOkC,UAAP;;AAEA;AACA,IAAMkC,SAASzhB,QAAQ,cAAR,CAAf;AACAyhB,OAAOlC,UAAP;;AAEA;AACA,IAAMA,aAAavf,QAAQ,cAAR,CAAnB;AACA;AACAb,OAAOC,OAAP,GAAiBmgB,UAAjB;;ACrBA,IAAI,CAACxf,MAAMqe,IAAX,EAAiB;AACfre,QAAMqe,IAAN,GAAape,QAAQ,YAAR,EAAsB6hB,WAAtB,EAAb;AACD;AACD,IAAMnO,QAAQ1T,QAAQ,gBAAR,CAAd;AACAgC,OAAO0R,KAAP,GAAeA,KAAf;AACA,IAAMoO,UAAU9hB,QAAQ,SAAR,CAAhB;AACAgC,OAAO8f,OAAP,GAAiBA,OAAjB","file":"xdomain.map","sourcesContent":["'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","var bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class /;\nvar isES6ClassFn = function isES6ClassFn(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\tvar singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n\t\tvar multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n\t\tvar spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n\t\treturn constructorRegex.test(spaceStripped);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionObject(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') { return false; }\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') { return true; }\n\t\tif (toStr.call(value) !== '[object Symbol]') { return false; }\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false;\n\t};\n}\n","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (PreferredType === String) {\n\t\t\thint = 'string';\n\t\t} else if (PreferredType === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n","var has = Object.prototype.hasOwnProperty;\nmodule.exports = function assign(target, source) {\n\tif (Object.assign) {\n\t\treturn Object.assign(target, source);\n\t}\n\tfor (var key in source) {\n\t\tif (has.call(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// https://es5.github.io/#x8.12\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O, hint) {\n\t\tvar actualHint = hint || (toStr.call(O) === '[object Date]' ? String : Number);\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// https://es5.github.io/#x9\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input, PreferredType);\n};\n","'use strict';\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn Number(value);\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\t\t// jscs:disable\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// jscs:enable\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\nvar SymbolIterator = hasSymbols ? Symbol.iterator : null;\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, Array.prototype.slice);\nvar strSlice = bind.call(Function.call, String.prototype.slice);\nvar isBinary = bind.call(Function.call, RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, RegExp.prototype.test, invalidHexLiteral);\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = Math.floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr.call(argument) !== '[object String]') {\n\t\t\tthrow new TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: Array.isArray || function IsArray(argument) {\n\t\treturn toStr.call(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: function IsExtensible(obj) {\n\t\tif (!Object.preventExtensions) { return true; }\n\t\tif (isPrimitive(obj)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Object.isExtensible(obj);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = Math.abs(argument);\n\t\treturn Math.floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - http://www.ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && Symbol.species ? C[Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new TypeError('no constructor found');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, SymbolIterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && Symbol.species) {\n\t\t\t\tC = this.Get(C, Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = Object.getOwnPropertyDescriptor(O, P);\n\t\tvar extensible = oldDesc || (typeof Object.isExtensible !== 'function' || Object.isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('Assertion failed: Type(S) is not String');\n\t\t}\n\t\tif (!this.IsInteger(index)) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new RangeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(unicode) is not Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar first = S.charCodeAt(index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar second = S.charCodeAt(index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\treturn index + 2;\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n","'use strict';\n\nmodule.exports = require('./es2015');\n","'use strict';\nvar ES = require('es-abstract/es6');\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\n/*! https://mths.be/array-from v0.2.0 by @mathias */\nmodule.exports = function from(arrayLike) {\n\tvar defineProperty = supportsDescriptors ? Object.defineProperty : function put(object, key, descriptor) {\n\t\tobject[key] = descriptor.value;\n\t};\n\tvar C = this;\n\tif (arrayLike === null || typeof arrayLike === 'undefined') {\n\t\tthrow new TypeError('`Array.from` requires an array-like object, not `null` or `undefined`');\n\t}\n\tvar items = ES.ToObject(arrayLike);\n\n\tvar mapFn, T;\n\tif (typeof arguments[1] !== 'undefined') {\n\t\tmapFn = arguments[1];\n\t\tif (!ES.IsCallable(mapFn)) {\n\t\t\tthrow new TypeError('When provided, the second argument to `Array.from` must be a function');\n\t\t}\n\t\tif (arguments.length > 2) {\n\t\t\tT = arguments[2];\n\t\t}\n\t}\n\n\tvar len = ES.ToLength(items.length);\n\tvar A = ES.IsCallable(C) ? ES.ToObject(new C(len)) : new Array(len);\n\tvar k = 0;\n\tvar kValue, mappedValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tmappedValue = typeof T === 'undefined' ? mapFn(kValue, k) : ES.Call(mapFn, T, [kValue, k]);\n\t\t} else {\n\t\t\tmappedValue = kValue;\n\t\t}\n\t\tdefineProperty(A, k, {\n\t\t\t'configurable': true,\n\t\t\t'enumerable': true,\n\t\t\t'value': mappedValue,\n\t\t\t'writable': true\n\t\t});\n\t\tk += 1;\n\t}\n\tA.length = len;\n\treturn A;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar implementation = require('./implementation');\n\nvar tryCall = function (fn) {\n\ttry {\n\t\tfn();\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\tvar implemented = ES.IsCallable(Array.from)\n\t\t&& tryCall(function () { Array.from({ 'length': -Infinity }); })\n\t\t&& !tryCall(function () { Array.from([], undefined); });\n\n\treturn implemented ? Array.from : implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayFrom() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array, { 'from': polyfill }, {\n\t\t'from': function () {\n\t\t\treturn Array.from !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\n// eslint-disable-next-line no-unused-vars\nvar boundFromShim = function from(array) {\n // eslint-disable-next-line no-invalid-this\n\treturn implementation.apply(this || Array, arguments);\n};\n\ndefine(boundFromShim, {\n\t'getPolyfill': getPolyfill,\n\t'implementation': implementation,\n\t'shim': shim\n});\n\nmodule.exports = boundFromShim;\n","// XHook - v1.3.5 - https://github.com/jpillora/xhook\n// Jaime Pillora - MIT Copyright 2016\n\nvar AFTER,\n BEFORE,\n COMMON_EVENTS,\n EventEmitter,\n FIRE,\n FormData,\n NativeFormData,\n NativeXMLHttp,\n OFF,\n ON,\n READY_STATE,\n UPLOAD_EVENTS,\n XHookFormData,\n XHookHttpRequest,\n XMLHTTP,\n convertHeaders,\n depricatedProp,\n document,\n fakeEvent,\n mergeObjects,\n msie,\n proxyEvents,\n slice,\n xhook,\n _base,\n __indexOf =\n [].indexOf ||\n function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (i in this && this[i] === item) return i;\n }\n return -1;\n };\n\ndocument = window.document;\n\nBEFORE = \"before\";\n\nAFTER = \"after\";\n\nREADY_STATE = \"readyState\";\n\nON = \"addEventListener\";\n\nOFF = \"removeEventListener\";\n\nFIRE = \"dispatchEvent\";\n\nXMLHTTP = \"XMLHttpRequest\";\n\nFormData = \"FormData\";\n\nUPLOAD_EVENTS = [\"load\", \"loadend\", \"loadstart\"];\n\nCOMMON_EVENTS = [\"progress\", \"abort\", \"error\", \"timeout\"];\n\nmsie = parseInt(\n (/msie (\\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]\n);\n\nif (isNaN(msie)) {\n msie = parseInt(\n (/trident\\/.*; rv:(\\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1]\n );\n}\n\n(_base = Array.prototype).indexOf ||\n (_base.indexOf = function(item) {\n var i, x, _i, _len;\n for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) {\n x = this[i];\n if (x === item) {\n return i;\n }\n }\n return -1;\n });\n\nslice = function(o, n) {\n return Array.prototype.slice.call(o, n);\n};\n\ndepricatedProp = function(p) {\n return p === \"returnValue\" || p === \"totalSize\" || p === \"position\";\n};\n\nmergeObjects = function(src, dst) {\n var k, v;\n for (k in src) {\n v = src[k];\n if (depricatedProp(k)) {\n continue;\n }\n try {\n dst[k] = src[k];\n } catch (_error) {}\n }\n return dst;\n};\n\nproxyEvents = function(events, src, dst) {\n var event, p, _i, _len;\n p = function(event) {\n return function(e) {\n var clone, k, val;\n clone = {};\n for (k in e) {\n if (depricatedProp(k)) {\n continue;\n }\n val = e[k];\n clone[k] = val === src ? dst : val;\n }\n return dst[FIRE](event, clone);\n };\n };\n for (_i = 0, _len = events.length; _i < _len; _i++) {\n event = events[_i];\n if (dst._has(event)) {\n src[\"on\" + event] = p(event);\n }\n }\n};\n\nfakeEvent = function(type) {\n var msieEventObject;\n if (document.createEventObject != null) {\n msieEventObject = document.createEventObject();\n msieEventObject.type = type;\n return msieEventObject;\n } else {\n try {\n return new Event(type);\n } catch (_error) {\n return {\n type: type\n };\n }\n }\n};\n\nEventEmitter = function(nodeStyle) {\n var emitter, events, listeners;\n events = {};\n listeners = function(event) {\n return events[event] || [];\n };\n emitter = {};\n emitter[ON] = function(event, callback, i) {\n events[event] = listeners(event);\n if (events[event].indexOf(callback) >= 0) {\n return;\n }\n i = i === undefined ? events[event].length : i;\n events[event].splice(i, 0, callback);\n };\n emitter[OFF] = function(event, callback) {\n var i;\n if (event === undefined) {\n events = {};\n return;\n }\n if (callback === undefined) {\n events[event] = [];\n }\n i = listeners(event).indexOf(callback);\n if (i === -1) {\n return;\n }\n listeners(event).splice(i, 1);\n };\n emitter[FIRE] = function() {\n var args, event, i, legacylistener, listener, _i, _len, _ref;\n args = slice(arguments);\n event = args.shift();\n if (!nodeStyle) {\n args[0] = mergeObjects(args[0], fakeEvent(event));\n }\n legacylistener = emitter[\"on\" + event];\n if (legacylistener) {\n legacylistener.apply(emitter, args);\n }\n _ref = listeners(event).concat(listeners(\"*\"));\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n listener = _ref[i];\n listener.apply(emitter, args);\n }\n };\n emitter._has = function(event) {\n return !!(events[event] || emitter[\"on\" + event]);\n };\n if (nodeStyle) {\n emitter.listeners = function(event) {\n return slice(listeners(event));\n };\n emitter.on = emitter[ON];\n emitter.off = emitter[OFF];\n emitter.fire = emitter[FIRE];\n emitter.once = function(e, fn) {\n var fire;\n fire = function() {\n emitter.off(e, fire);\n return fn.apply(null, arguments);\n };\n return emitter.on(e, fire);\n };\n emitter.destroy = function() {\n return (events = {});\n };\n }\n return emitter;\n};\n\nxhook = EventEmitter(true);\n\nxhook.EventEmitter = EventEmitter;\n\nxhook[BEFORE] = function(handler, i) {\n if (handler.length < 1 || handler.length > 2) {\n throw \"invalid hook\";\n }\n return xhook[ON](BEFORE, handler, i);\n};\n\nxhook[AFTER] = function(handler, i) {\n if (handler.length < 2 || handler.length > 3) {\n throw \"invalid hook\";\n }\n return xhook[ON](AFTER, handler, i);\n};\n\nxhook.enable = function() {\n window[XMLHTTP] = XHookHttpRequest;\n if (NativeFormData) {\n window[FormData] = XHookFormData;\n }\n};\n\nxhook.disable = function() {\n window[XMLHTTP] = xhook[XMLHTTP];\n if (NativeFormData) {\n window[FormData] = NativeFormData;\n }\n};\n\nconvertHeaders = xhook.headers = function(h, dest) {\n var header, headers, k, name, v, value, _i, _len, _ref;\n if (dest == null) {\n dest = {};\n }\n switch (typeof h) {\n case \"object\":\n headers = [];\n for (k in h) {\n v = h[k];\n name = k.toLowerCase();\n headers.push(\"\" + name + \":\\t\" + v);\n }\n return headers.join(\"\\n\");\n case \"string\":\n headers = h.split(\"\\n\");\n for (_i = 0, _len = headers.length; _i < _len; _i++) {\n header = headers[_i];\n if (/([^:]+):\\s*(.+)/.test(header)) {\n name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0;\n value = RegExp.$2;\n if (dest[name] == null) {\n dest[name] = value;\n }\n }\n }\n return dest;\n }\n};\n\nNativeFormData = window[FormData];\n\nXHookFormData = function(form) {\n var entries;\n this.fd = form ? new NativeFormData(form) : new NativeFormData();\n this.form = form;\n entries = [];\n Object.defineProperty(this, \"entries\", {\n get: function() {\n var fentries;\n fentries = !form\n ? []\n : slice(form.querySelectorAll(\"input,select\"))\n .filter(function(e) {\n var _ref;\n return (\n ((_ref = e.type) !== \"checkbox\" && _ref !== \"radio\") ||\n e.checked\n );\n })\n .map(function(e) {\n return [e.name, e.type === \"file\" ? e.files : e.value];\n });\n return fentries.concat(entries);\n }\n });\n this.append = (function(_this) {\n return function() {\n var args;\n args = slice(arguments);\n entries.push(args);\n return _this.fd.append.apply(_this.fd, args);\n };\n })(this);\n};\n\nif (NativeFormData) {\n xhook[FormData] = NativeFormData;\n window[FormData] = XHookFormData;\n}\n\nNativeXMLHttp = window[XMLHTTP];\n\nxhook[XMLHTTP] = NativeXMLHttp;\n\nXHookHttpRequest = window[XMLHTTP] = function() {\n var ABORTED,\n currentState,\n emitFinal,\n emitReadyState,\n event,\n facade,\n hasError,\n hasErrorHandler,\n readBody,\n readHead,\n request,\n response,\n setReadyState,\n status,\n transiting,\n writeBody,\n writeHead,\n xhr,\n _i,\n _len,\n _ref;\n ABORTED = -1;\n xhr = new xhook[XMLHTTP]();\n request = {};\n status = null;\n hasError = void 0;\n transiting = void 0;\n response = void 0;\n readHead = function() {\n var key, name, val, _ref;\n response.status = status || xhr.status;\n if (!(status === ABORTED && msie < 10)) {\n response.statusText = xhr.statusText;\n }\n if (status !== ABORTED) {\n _ref = convertHeaders(xhr.getAllResponseHeaders());\n for (key in _ref) {\n val = _ref[key];\n if (!response.headers[key]) {\n name = key.toLowerCase();\n response.headers[name] = val;\n }\n }\n }\n };\n readBody = function() {\n if (!xhr.responseType || xhr.responseType === \"text\") {\n response.text = xhr.responseText;\n response.data = xhr.responseText;\n } else if (xhr.responseType === \"document\") {\n response.xml = xhr.responseXML;\n response.data = xhr.responseXML;\n } else {\n response.data = xhr.response;\n }\n if (\"responseURL\" in xhr) {\n response.finalUrl = xhr.responseURL;\n }\n };\n writeHead = function() {\n facade.status = response.status;\n facade.statusText = response.statusText;\n };\n writeBody = function() {\n if (\"text\" in response) {\n facade.responseText = response.text;\n }\n if (\"xml\" in response) {\n facade.responseXML = response.xml;\n }\n if (\"data\" in response) {\n facade.response = response.data;\n }\n if (\"finalUrl\" in response) {\n facade.responseURL = response.finalUrl;\n }\n };\n emitReadyState = function(n) {\n while (n > currentState && currentState < 4) {\n facade[READY_STATE] = ++currentState;\n if (currentState === 1) {\n facade[FIRE](\"loadstart\", {});\n }\n if (currentState === 2) {\n writeHead();\n }\n if (currentState === 4) {\n writeHead();\n writeBody();\n }\n facade[FIRE](\"readystatechange\", {});\n if (currentState === 4) {\n setTimeout(emitFinal, 0);\n }\n }\n };\n emitFinal = function() {\n if (!hasError) {\n facade[FIRE](\"load\", {});\n }\n facade[FIRE](\"loadend\", {});\n if (hasError) {\n facade[READY_STATE] = 0;\n }\n };\n currentState = 0;\n setReadyState = function(n) {\n var hooks, process;\n if (n !== 4) {\n emitReadyState(n);\n return;\n }\n hooks = xhook.listeners(AFTER);\n process = function() {\n var hook;\n if (!hooks.length) {\n return emitReadyState(4);\n }\n hook = hooks.shift();\n if (hook.length === 2) {\n hook(request, response);\n return process();\n } else if (hook.length === 3 && request.async) {\n return hook(request, response, process);\n } else {\n return process();\n }\n };\n process();\n };\n facade = request.xhr = EventEmitter();\n xhr.onreadystatechange = function(event) {\n try {\n if (xhr[READY_STATE] === 2) {\n readHead();\n }\n } catch (_error) {}\n if (xhr[READY_STATE] === 4) {\n transiting = false;\n readHead();\n readBody();\n }\n setReadyState(xhr[READY_STATE]);\n };\n hasErrorHandler = function() {\n hasError = true;\n };\n facade[ON](\"error\", hasErrorHandler);\n facade[ON](\"timeout\", hasErrorHandler);\n facade[ON](\"abort\", hasErrorHandler);\n facade[ON](\"progress\", function() {\n if (currentState < 3) {\n setReadyState(3);\n } else {\n facade[FIRE](\"readystatechange\", {});\n }\n });\n if (\"withCredentials\" in xhr || xhook.addWithCredentials) {\n facade.withCredentials = false;\n }\n facade.status = 0;\n _ref = COMMON_EVENTS.concat(UPLOAD_EVENTS);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n event = _ref[_i];\n facade[\"on\" + event] = null;\n }\n facade.open = function(method, url, async, user, pass) {\n currentState = 0;\n hasError = false;\n transiting = false;\n request.headers = {};\n request.headerNames = {};\n request.status = 0;\n response = {};\n response.headers = {};\n request.method = method;\n request.url = url;\n request.async = async !== false;\n request.user = user;\n request.pass = pass;\n setReadyState(1);\n };\n facade.send = function(body) {\n var hooks, k, modk, process, send, _j, _len1, _ref1;\n _ref1 = [\"type\", \"timeout\", \"withCredentials\"];\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n k = _ref1[_j];\n modk = k === \"type\" ? \"responseType\" : k;\n if (modk in facade) {\n request[k] = facade[modk];\n }\n }\n request.body = body;\n send = function() {\n var header, value, _k, _len2, _ref2, _ref3;\n proxyEvents(COMMON_EVENTS, xhr, facade);\n if (facade.upload) {\n proxyEvents(\n COMMON_EVENTS.concat(UPLOAD_EVENTS),\n xhr.upload,\n facade.upload\n );\n }\n transiting = true;\n xhr.open(\n request.method,\n request.url,\n request.async,\n request.user,\n request.pass\n );\n _ref2 = [\"type\", \"timeout\", \"withCredentials\"];\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n k = _ref2[_k];\n modk = k === \"type\" ? \"responseType\" : k;\n if (k in request) {\n xhr[modk] = request[k];\n }\n }\n _ref3 = request.headers;\n for (header in _ref3) {\n value = _ref3[header];\n if (header) {\n xhr.setRequestHeader(header, value);\n }\n }\n if (request.body instanceof XHookFormData) {\n request.body = request.body.fd;\n }\n xhr.send(request.body);\n };\n hooks = xhook.listeners(BEFORE);\n process = function() {\n var done, hook;\n if (!hooks.length) {\n return send();\n }\n done = function(userResponse) {\n if (\n typeof userResponse === \"object\" &&\n (typeof userResponse.status === \"number\" ||\n typeof response.status === \"number\")\n ) {\n mergeObjects(userResponse, response);\n if (__indexOf.call(userResponse, \"data\") < 0) {\n userResponse.data = userResponse.response || userResponse.text;\n }\n setReadyState(4);\n return;\n }\n process();\n };\n done.head = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(2);\n };\n done.progress = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(3);\n };\n hook = hooks.shift();\n if (hook.length === 1) {\n return done(hook(request));\n } else if (hook.length === 2 && request.async) {\n return hook(request, done);\n } else {\n return done();\n }\n };\n process();\n };\n facade.abort = function() {\n status = ABORTED;\n if (transiting) {\n xhr.abort();\n } else {\n facade[FIRE](\"abort\", {});\n }\n };\n facade.setRequestHeader = function(header, value) {\n var lName, name;\n lName = header != null ? header.toLowerCase() : void 0;\n name = request.headerNames[lName] = request.headerNames[lName] || header;\n if (request.headers[name]) {\n value = request.headers[name] + \", \" + value;\n }\n request.headers[name] = value;\n };\n facade.getResponseHeader = function(header) {\n var name;\n name = header != null ? header.toLowerCase() : void 0;\n return response.headers[name];\n };\n facade.getAllResponseHeaders = function() {\n return convertHeaders(response.headers);\n };\n if (xhr.overrideMimeType) {\n facade.overrideMimeType = function() {\n return xhr.overrideMimeType.apply(xhr, arguments);\n };\n }\n if (xhr.upload) {\n facade.upload = request.upload = EventEmitter();\n }\n return facade;\n};\n\nmodule.exports = xhook;\n","const config = o => {\n if (o) {\n if (o.masters) {\n config.masters(o.masters);\n }\n if (o.slaves) {\n config.slaves(o.slaves);\n }\n }\n};\n\n//default config\nconfig.debug = false;\nconfig.timeout = 15e3;\nconfig.cookies = {\n master: \"Master-Cookie\",\n slave: \"Slave-Cookie\"\n};\n//extras are also attached to config\n\nmodule.exports = config;\n","const xhook = require(\"../vendor/xhook\");\n\nconst config = require(\"./config\");\n\nexports.COMPAT_VERSION = \"V1\";\n\nconst { location } = window;\nexports.currentOrigin = location.protocol + \"//\" + location.host;\nconfig.origin = exports.currentOrigin;\n\n//emits 'warn' 'log' and 'timeout' events\nexports.globalEmitter = xhook.EventEmitter(true);\n\nexports.console = window.console || {};\n\nlet counter = 0;\nexports.guid = () => {\n if (counter >= 1e6) counter = 0;\n let n = String(++counter);\n while (n.length < 6) n = \"0\" + n;\n return `xdomain-${n}`;\n};\n\nexports.slice = (o, n) => {\n return Array.prototype.slice.call(o, n);\n};\n\n//create a logger of type\nconst newLogger = type => {\n return msg => {\n msg = `xdomain (${exports.currentOrigin}): ${msg}`;\n //emit event\n exports.globalEmitter.fire(type, msg);\n //skip logs when debug isnt enabled\n if (type === \"log\" && !config.debug) {\n return;\n }\n //user provided log/warn functions\n if (type in config) {\n config[type](msg);\n //fallback console\n } else if (type in console) {\n console[type](msg);\n //fallbackback alert\n } else if (type === \"warn\") {\n alert(msg);\n }\n };\n};\n\nexports.log = newLogger(\"log\");\nexports.warn = newLogger(\"warn\");\n\nexports.instOf = (obj, global) => {\n return global in window && obj instanceof window[global];\n};\n\n//absolute url parser (relative urls aren't crossdomain)\nexports.parseUrl = url => {\n if (/^((https?:)?\\/\\/[^\\/\\?]+)(\\/.*)?/.test(url)) {\n return {\n origin: (RegExp.$2 ? \"\" : location.protocol) + RegExp.$1,\n path: RegExp.$3\n };\n } else {\n exports.log(`failed to parse absolute url: ${url}`);\n return null;\n }\n};\nconfig.parseUrl = exports.parseUrl;\n\nexports.toRegExp = obj => {\n if (obj instanceof RegExp) {\n return obj;\n }\n const str = obj\n .toString()\n .replace(/\\W/g, str => `\\\\${str}`)\n .replace(/\\\\\\*/g, \".*\");\n return new RegExp(`^${str}$`);\n};\n\n//strip functions and objects from an object\nexports.strip = src => {\n const dst = {};\n for (let k in src) {\n if (k === \"returnValue\") {\n continue;\n }\n const v = src[k];\n const t = typeof v;\n if (t !== \"function\" && t !== \"object\") {\n dst[k] = v;\n }\n }\n return dst;\n};\n","const xhook = require(\"../vendor/xhook\");\nconst config = require(\"./config\");\nconst {\n log,\n warn,\n toRegExp,\n strip,\n parseUrl,\n COMPAT_VERSION\n} = require(\"./util\");\n\n//when you add masters, this node\n//enables slave listeners\n\nlet enabled = false;\nlet masters = {};\n\nexports.addMasters = config => {\n //validate iframe\n if (window === window.parent) {\n warn(\"slaves must be in an iframe\");\n return;\n }\n //enable slave handler\n if (!enabled) {\n enabled = true;\n log(\"now handling incoming sockets...\");\n window.parent.postMessage(`XDPING_${COMPAT_VERSION}`, \"*\");\n }\n //white-list the provided set of masters\n for (let origin in config) {\n let path = config[origin];\n if (origin === \"file://\" && path !== \"*\") {\n warn(`file protocol only supports the * path`);\n path = \"*\";\n }\n log(`adding master: ${origin}`);\n masters[origin] = path;\n }\n};\n\nconfig.masters = exports.addMasters;\n\nexports.handleSocket = (origin, socket) => {\n if (!enabled) {\n return;\n }\n //null means no origin can be determined,\n //this is true for file:// and data:// URIs.\n //html data:// URI are now blocked, they can\n //only be copy-and-pasted into the URL bar.\n if (origin === \"null\" || origin === \"file:\") {\n origin = \"file://\";\n }\n log(`handle socket for \"${origin}\"`);\n let pathRegex = null;\n for (let master in masters) {\n const regex = masters[master];\n try {\n const masterRegex = toRegExp(master);\n if (masterRegex.test(origin)) {\n pathRegex = toRegExp(regex);\n break;\n }\n } catch (error) {}\n }\n if (!pathRegex) {\n warn(`blocked request from: '${origin}'`);\n return;\n }\n socket.once(\"request\", function(req) {\n log(`request: ${req.method} ${req.url}`);\n const p = parseUrl(req.url);\n if (!p || !pathRegex.test(p.path)) {\n warn(`blocked request to path: '${p.path}' by regex: ${pathRegex}`);\n socket.close();\n return;\n }\n //perform real XHR here!\n //pass results to the socket\n const xhr = new XMLHttpRequest();\n xhr.open(req.method, req.url);\n xhr.addEventListener(\"*\", e => socket.emit(\"xhr-event\", e.type, strip(e)));\n if (xhr.upload) {\n xhr.upload.addEventListener(\"*\", e =>\n socket.emit(\"xhr-upload-event\", e.type, strip(e))\n );\n }\n xhr.onreadystatechange = function() {\n if (xhr.readyState !== 4) {\n return;\n }\n //extract properties\n const resp = {\n status: xhr.status,\n statusText: xhr.statusText,\n data: xhr.response,\n headers: xhook.headers(xhr.getAllResponseHeaders())\n };\n try {\n resp.text = xhr.responseText;\n } catch (error1) {}\n // XML over postMessage not supported\n // try resp.xml = xhr.responseXML\n return socket.emit(\"response\", resp);\n };\n //allow aborts from the facade\n socket.once(\"abort\", () => xhr.abort());\n // document.cookie (Cookie header) can't be set inside an iframe\n // as many browsers have 3rd party cookies disabled. slaveCookie\n // contains the 'xdomain.cookie.slave' string set on the master.\n if (req.withCredentials) {\n xhr.withCredentials = true;\n if (req.slaveCookie) {\n req.headers[req.slaveCookie] = document.cookie;\n }\n }\n if (req.timeout) {\n xhr.timeout = req.timeout;\n }\n if (req.type) {\n xhr.responseType = req.type;\n }\n for (let k in req.headers) {\n const v = req.headers[k];\n xhr.setRequestHeader(k, v);\n }\n //deserialize FormData\n if (req.body instanceof Array && req.body[0] === \"XD_FD\") {\n const fd = new xhook.FormData();\n const entries = req.body[1];\n Array.from(entries).forEach(arg => {\n //deserialize blobs from arraybuffs\n //[0:marker, 1:real-args, 2:arraybuffer, 3:type]\n if (args[0] === \"XD_BLOB\" && args.length === 4) {\n const blob = new Blob([args[2]], { type: args[3] });\n args = args[1];\n args[1] = blob;\n }\n fd.append.apply(fd, args);\n });\n req.body = fd;\n }\n //fire off request\n xhr.send(req.body || null);\n });\n log(`slave listening for requests on socket: ${socket.id}`);\n};\n","const xhook = require(\"../vendor/xhook\");\n\nconst config = require(\"./config\");\nconst { globalEmitter, log, warn, COMPAT_VERSION } = require(\"./util\");\nconst { handleSocket } = require(\"./slave\");\n\n//constants\nconst CHECK_STRING = \"XD_CHECK\";\nconst CHECK_INTERVAL = 100;\n//state\nconst sockets = {};\nlet jsonEncode = true;\n\n//a 'sock' is a two-way event-emitter,\n//each side listens for messages with on()\n//and the other side sends messages with emit()\nexports.createSocket = (id, frame) => {\n let ready = false;\n const socket = xhook.EventEmitter(true);\n sockets[id] = socket;\n socket.id = id;\n socket.once(\"close\", function() {\n socket.destroy();\n socket.close();\n });\n const pendingEmits = [];\n socket.emit = function(...args) {\n const extra = typeof args[1] === \"string\" ? ` -> ${args[1]}` : \"\";\n log(`send socket: ${id}: ${args[0]}${extra}`);\n args.unshift(id);\n if (ready) {\n emit(args);\n } else {\n pendingEmits.push(args);\n }\n };\n var emit = function(args) {\n //convert to string when necessary\n if (jsonEncode) {\n args = JSON.stringify(args);\n }\n //send!\n frame.postMessage(args, \"*\");\n };\n\n socket.close = function() {\n socket.emit(\"close\");\n log(`close socket: ${id}`);\n sockets[id] = null;\n };\n\n socket.once(CHECK_STRING, function(obj) {\n jsonEncode = typeof obj === \"string\";\n ready = socket.ready = true;\n socket.emit(\"ready\");\n log(`ready socket: ${id} (emit #${pendingEmits.length} pending)`);\n while (pendingEmits.length) {\n emit(pendingEmits.shift());\n }\n });\n\n //start checking connectivitiy\n let checks = 0;\n var check = () => {\n // send test message NO ENCODING\n frame.postMessage([id, CHECK_STRING, {}], \"*\");\n if (ready) {\n return;\n }\n if (checks++ >= config.timeout / CHECK_INTERVAL) {\n warn(\"Timeout waiting on iframe socket\");\n globalEmitter.fire(\"timeout\");\n socket.fire(\"abort\"); //self-emit \"abort\"\n } else {\n log(`check again in ${CHECK_INTERVAL}ms...`);\n setTimeout(check, CHECK_INTERVAL);\n }\n };\n setTimeout(check);\n\n log(`new socket: ${id}`);\n return socket;\n};\n\n//ONE WINDOW LISTENER!\n//double purpose:\n// creates new sockets by passing incoming events to the 'handler'\n// passes events to existing sockets (created by connect or by the server)\nexports.initialise = () => {\n const handle = e => {\n let d = e.data;\n //return if not a json string\n if (typeof d === \"string\") {\n //only old versions of xdomain send XPINGs...\n if (/^XDPING(_(V\\d+))?$/.test(d) && RegExp.$2 !== COMPAT_VERSION) {\n return warn(\n \"your master is not compatible with your slave, check your xdomain.js version\"\n );\n //IE will \"toString()\" the array, this reverses that action\n } else if (/^xdomain-/.test(d)) {\n d = d.split(\",\");\n //this browser must json encode postmessages\n } else if (jsonEncode) {\n try {\n d = JSON.parse(d);\n } catch (error) {\n return;\n }\n }\n }\n //return if not an array\n if (!(d instanceof Array)) {\n return;\n }\n //return unless lead by an xdomain id\n const id = d.shift();\n if (!/^xdomain-/.test(id)) {\n return;\n }\n //finally, create/get socket\n let socket = sockets[id];\n //closed\n if (socket === null) {\n return;\n }\n //needs creation\n if (socket === undefined) {\n //send unsolicited requests to the listening server\n if (!handleSocket) {\n return;\n }\n socket = exports.createSocket(id, e.source);\n handleSocket(e.origin, socket);\n }\n const extra = typeof d[1] === \"string\" ? ` -> ${d[1]}` : \"\";\n log(`receive socket: ${id}: ${d[0]}${extra}`);\n //emit data\n socket.fire.apply(socket, d);\n };\n if (document.addEventListener) {\n return window.addEventListener(\"message\", handle);\n } else {\n return window.attachEvent(\"onmessage\", handle);\n }\n};\n","const xhook = require(\"../vendor/xhook\");\nconst config = require(\"./config\");\nconst {\n currentOrigin,\n log,\n warn,\n parseUrl,\n guid,\n strip,\n instOf\n} = require(\"./util\");\nconst socketlib = require(\"./socket\");\nconst createSocket = socketlib.createSocket;\n\n//when you add slaves, this node\n//enables master listeners\n\nlet enabled = false;\nlet slaves = {};\n\nexports.addSlaves = newSlaves => {\n //register master xhook handler\n if (!enabled) {\n enabled = true;\n //unless already set, add withCredentials to xhrs to trick jquery\n //in older browsers into thinking cors is allowed\n if (!(\"addWithCredentials\" in xhook)) {\n xhook.addWithCredentials = true;\n }\n //hook XHR calls\n xhook.before(beforeXHR);\n }\n //include the provided set of slave\n for (let origin in newSlaves) {\n const path = newSlaves[origin];\n log(`adding slave: ${origin}`);\n slaves[origin] = path;\n }\n};\n\nconfig.slaves = exports.addSlaves;\n\nconst beforeXHR = function(request, callback) {\n //allow unless we have a slave domain\n const p = parseUrl(request.url);\n if (!p || p.origin === currentOrigin) {\n callback();\n return;\n }\n if (!slaves[p.origin]) {\n if (p) {\n log(`no slave matching: '${p.origin}'`);\n }\n callback();\n return;\n }\n log(`proxying request to slave: '${p.origin}'`);\n if (request.async === false) {\n warn(\"sync not supported because postmessage is async\");\n callback();\n return;\n }\n //get or insert frame\n const frame = getFrame(p.origin, slaves[p.origin]);\n //connect to slave\n const socket = createSocket(guid(), frame);\n //queue callback\n socket.on(\"response\", function(resp) {\n callback(resp);\n socket.close();\n });\n //user wants to abort\n request.xhr.addEventListener(\"abort\", () => socket.emit(\"abort\"));\n //kick off\n if (socket.ready) {\n handleRequest(request, socket);\n } else {\n socket.once(\"ready\", () => handleRequest(request, socket));\n }\n};\n\nconst frames = {};\nconst getFrame = function(origin, proxyPath) {\n //cache origin\n if (frames[origin]) {\n return frames[origin];\n }\n const frame = document.createElement(\"iframe\");\n frame.id = frame.name = guid();\n log(`creating iframe ${frame.id}`);\n frame.src = `${origin}${proxyPath}`;\n frame.setAttribute(\"style\", \"display:none;\");\n document.body.appendChild(frame);\n return (frames[origin] = frame.contentWindow);\n};\n\nconst convertToArrayBuffer = function(args, done) {\n const [name, obj] = Array.from(args);\n const isBlob = instOf(obj, \"Blob\");\n const isFile = instOf(obj, \"File\");\n if (!isBlob && !isFile) {\n return 0;\n }\n const reader = new FileReader();\n reader.onload = function() {\n // clear value\n args[1] = null;\n // formdata.append(name, value, **filename**)\n if (isFile) {\n args[2] = obj.name;\n }\n return done([\"XD_BLOB\", args, this.result, obj.type]);\n };\n reader.readAsArrayBuffer(obj);\n return 1;\n};\n\n//this FormData is actually XHooks custom FormData `fd`,\n//which exposes all `entries` added, where each entry\n//is the arguments object\nconst convertFormData = function(entries, send) {\n //expand FileList -> [File, File, File]\n entries.forEach(function(args, i) {\n const [name, value] = Array.from(args);\n if (instOf(value, \"FileList\")) {\n entries.splice(i, 1);\n Array.from(value).forEach(file => {\n entries.splice(i, 0, [name, file]);\n });\n }\n });\n //basically: async.parallel([filter:files], send)\n let c = 0;\n entries.forEach(function(args, i) {\n c += convertToArrayBuffer(args, function(newargs) {\n entries[i] = newargs;\n if (--c === 0) {\n send();\n }\n });\n });\n if (c === 0) {\n send();\n }\n};\n\nconst handleRequest = function(request, socket) {\n socket.on(\"xhr-event\", function() {\n return request.xhr.dispatchEvent.apply(null, arguments);\n });\n socket.on(\"xhr-upload-event\", function() {\n return request.xhr.upload.dispatchEvent.apply(null, arguments);\n });\n\n const obj = strip(request);\n obj.headers = request.headers;\n //add master cookie\n if (request.withCredentials) {\n if (config.cookies.master) {\n obj.headers[config.cookies.master] = document.cookie;\n }\n obj.slaveCookie = config.cookies.slave;\n }\n\n const send = () => socket.emit(\"request\", obj);\n\n if (request.body) {\n obj.body = request.body;\n //async serialize formdata\n if (instOf(obj.body, \"FormData\")) {\n const { entries } = obj.body;\n obj.body = [\"XD_FD\", entries];\n convertFormData(entries, send);\n return;\n }\n }\n send();\n};\n","const config = require(\"./config\");\nconst { parseUrl } = require(\"./util\");\nconst { addSlaves } = require(\"./master\");\nconst { addMasters } = require(\"./slave\");\nconst { document } = window;\n//auto init using attributes\nexports.initialise = function() {\n //attribute handlers\n const attrs = {\n debug(value) {\n config.debug = value !== \"false\";\n },\n slave(value) {\n const p = parseUrl(value);\n if (!p) {\n return;\n }\n const s = {};\n s[p.origin] = p.path;\n addSlaves(s);\n },\n master(value) {\n let p;\n if (value === \"*\") {\n p = { origin: \"*\", path: \"*\" };\n } else if (value === \"file://*\") {\n p = { origin: \"file://\", path: \"*\" };\n } else {\n p = parseUrl(value);\n }\n if (!p) {\n return;\n }\n const m = {};\n m[p.origin] = p.path.replace(/^\\//, \"\") ? p.path : \"*\";\n addMasters(m);\n }\n };\n //find all script tags referencing 'xdomain' and then\n //find all attributes with handlers registered\n Array.from(document.getElementsByTagName(\"script\")).forEach(script => {\n if (!/xdomain/.test(script.src)) {\n return;\n }\n [\"\", \"data-\"].forEach(prefix => {\n for (let k in attrs) {\n const value = script.getAttribute(prefix + k);\n if (value) {\n const fn = attrs[k];\n fn(value);\n }\n }\n });\n });\n};\n","\"use strict\";\n\n//feature detect\nconst { warn } = require(\"./lib/util\");\n[\"postMessage\", \"JSON\"].forEach(feature => {\n if (!window[feature]) {\n warn(`requires '${feature}' and this browser does not support it`);\n }\n});\n\n//init socket (post message mini-library)\nconst socket = require(\"./lib/socket\");\nsocket.initialise();\n\n//initialise script (load config from script tag)\nconst script = require(\"./lib/script\");\nscript.initialise();\n\n//public api\nconst initialise = require(\"./lib/config\");\n//config is also the primary intialise function\nmodule.exports = initialise;\n","if (!Array.from) {\n Array.from = require(\"array.from\").getPolyfill();\n}\nconst xhook = require(\"./vendor/xhook\");\nwindow.xhook = xhook;\nconst xdomain = require(\"./index\");\nwindow.xdomain = xdomain;\n"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/object-keys/isArguments.js","../node_modules/object-keys/index.js","../node_modules/foreach/index.js","../node_modules/define-properties/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has/src/index.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/is-callable/index.js","../node_modules/is-date-object/index.js","../node_modules/is-symbol/index.js","../node_modules/es-to-primitive/es6.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/assign.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/helpers/mod.js","../node_modules/es-abstract/helpers/isPrimitive.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-abstract/es5.js","../node_modules/is-regex/index.js","../node_modules/es-abstract/es2015.js","../node_modules/es-abstract/es6.js","../node_modules/array.from/implementation.js","../node_modules/array.from/polyfill.js","../node_modules/array.from/shim.js","../node_modules/array.from/index.js","../node_modules/process/browser.js","../node_modules/xhook/dist/xhook.js","lib/config.js","lib/util.js","lib/slave.js","lib/socket.js","lib/master.js","lib/script.js","index.js","browser.js"],"names":["toStr","Object","prototype","toString","module","exports","isArguments","value","str","call","isArgs","length","callee","has","hasOwnProperty","slice","Array","require","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","constructor","excludedKeys","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","window","k","e","equalsConstructorPrototypeIfNotBuggy","keysShim","keys","object","isObject","isFunction","isString","theKeys","TypeError","skipProto","i","push","String","j","name","skipConstructor","shim","shimObjectKeys","keysWorksWithArguments","arguments","originalKeys","foreach","hasSymbols","Symbol","fn","arePropertyDescriptorsSupported","obj","defineProperty","enumerable","_","x","supportsDescriptors","predicate","configurable","writable","defineProperties","map","predicates","props","concat","getOwnPropertySymbols","bind","Function","isPrimitive","fnToStr","constructorRegex","isES6ClassFn","fnStr","singleStripped","replace","multiStripped","spaceStripped","test","tryFunctionObject","fnClass","genClass","hasToStringTag","toStringTag","isCallable","strClass","getDay","Date","tryDateObject","dateClass","isDateObject","symToStr","symStringRegex","isSymbolObject","valueOf","isSymbol","iterator","isDate","ordinaryToPrimitive","OrdinaryToPrimitive","O","hint","methodNames","method","result","GetMethod","P","func","ToPrimitive","input","PreferredType","Number","exoticToPrim","toPrimitive","isNaN","a","$isNaN","isFinite","Infinity","assign","target","source","key","sign","number","mod","modulo","remain","Math","floor","ES5internalSlots","actualHint","methods","$isFinite","IsCallable","ES5","ToBoolean","ToNumber","ToInteger","abs","ToInt32","ToUint32","ToUint16","posInt","ToString","ToObject","CheckObjectCoercible","optMessage","SameValue","y","Type","IsPropertyDescriptor","Desc","allowed","isData","IsAccessor","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","get","set","ToPropertyDescriptor","Obj","desc","getter","setter","regexExec","RegExp","exec","gOPD","getOwnPropertyDescriptor","tryRegexExecCall","tryRegexExec","lastIndex","regexClass","isRegex","descriptor","hasLastIndexDataProperty","SymbolIterator","MAX_SAFE_INTEGER","pow","parseInteger","parseInt","arraySlice","strSlice","isBinary","isOctal","nonWS","join","nonWSregex","hasNonWS","invalidHexLiteral","isInvalidHexLiteral","ws","trimRegex","trim","hasRegExpMatcher","ES6","Call","F","V","args","apply","argument","NaN","trimmed","ToInt16","int16bit","ToInt8","int8bit","ToUint8","ToUint8Clamp","f","RequireObjectCoercible","ToPropertyKey","ToLength","len","CanonicalNumericIndexString","n","IsArray","isArray","IsConstructor","IsExtensible","preventExtensions","isExtensible","IsInteger","IsPropertyKey","IsRegExp","isRegExp","match","SameValueZero","GetV","Get","SpeciesConstructor","defaultConstructor","C","S","species","CompletePropertyDescriptor","Set","Throw","HasOwnProperty","HasProperty","IsConcatSpreadable","isConcatSpreadable","spreadable","Invoke","argumentsList","GetIterator","SyntaxError","actualMethod","IteratorNext","IteratorComplete","iterResult","IteratorValue","IteratorStep","done","IteratorClose","completion","completionThunk","iteratorReturn","completionRecord","innerResult","CreateIterResultObject","RegExpExec","R","ArraySpeciesCreate","originalArray","CreateDataProperty","oldDesc","extensible","immutable","newDesc","CreateDataPropertyOrThrow","success","AdvanceStringIndex","index","unicode","RangeError","first","charCodeAt","second","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","setTimeout","clearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","nextTick","Item","array","title","browser","env","argv","version","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","config","masters","slaves","debug","cookies","master","slave","xhook","COMPAT_VERSION","location","currentOrigin","protocol","host","origin","globalEmitter","EventEmitter","console","counter","guid","newLogger","msg","fire","type","alert","log","warn","instOf","global","parseUrl","url","$2","$1","path","$3","toRegExp","strip","dst","src","v","t","enabled","addMasters","parent","postMessage","handleSocket","socket","pathRegex","regex","masterRegex","error","req","p","close","xhr","XMLHttpRequest","open","addEventListener","upload","onreadystatechange","readyState","resp","status","statusText","data","response","headers","getAllResponseHeaders","text","responseText","error1","abort","withCredentials","slaveCookie","document","cookie","responseType","setRequestHeader","body","fd","FormData","entries","from","forEach","blob","Blob","append","send","id","CHECK_STRING","CHECK_INTERVAL","sockets","jsonEncode","createSocket","frame","ready","destroy","pendingEmits","extra","unshift","JSON","stringify","shift","checks","check","initialise","handle","d","split","parse","undefined","attachEvent","socketlib","addSlaves","addWithCredentials","before","beforeXHR","newSlaves","request","callback","async","getFrame","handleRequest","frames","proxyPath","createElement","setAttribute","appendChild","contentWindow","convertToArrayBuffer","isBlob","isFile","reader","FileReader","onload","readAsArrayBuffer","convertFormData","splice","file","c","newargs","dispatchEvent","attrs","s","m","getElementsByTagName","script","getAttribute","prefix","feature","getPolyfill","xdomain"],"mappings":"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AQoC,IAAR,GAAeP,IAAf;AACA7B,QAAQqC,eAAR,GAA0BR,IAA1B;AACA7B,QAAQsC,mBAAR,GAA8BT,IAA9B;;AAEA7B,QAAQuC,SAAR,GAAoB,UAAU1R,IAAV,EAAgB;AAAE,WAAO,EAAP;AAAW,CAAjD;;AAEAmP,QAAQwC,OAAR,GAAkB,UAAU3R,IAAV,EAAgB;AAC9B,UAAM,IAAIuP,KAAJ,CAAU,kCAAV,CAAN;AACH,CAFD;;AAIAJ,QAAQyC,GAAR,GAAc,YAAY;AAAE,WAAO,GAAP;AAAY,CAAxC;AACAzC,QAAQ0C,KAAR,GAAgB,UAAUC,GAAV,EAAe;AAC3B,UAAM,IAAIvC,KAAJ,CAAU,gCAAV,CAAN;AACH,CAFD;AAGAJ,QAAQ4C,KAAR,GAAgB,YAAW;AAAE,WAAO,CAAP;AAAW,CAAxC;;;;ACvLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"xdomain.map","sourcesContent":["'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","var bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class /;\nvar isES6ClassFn = function isES6ClassFn(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\tvar singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n\t\tvar multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n\t\tvar spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n\t\treturn constructorRegex.test(spaceStripped);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionObject(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') { return false; }\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') { return true; }\n\t\tif (toStr.call(value) !== '[object Symbol]') { return false; }\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false;\n\t};\n}\n","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (PreferredType === String) {\n\t\t\thint = 'string';\n\t\t} else if (PreferredType === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n","var has = Object.prototype.hasOwnProperty;\nmodule.exports = function assign(target, source) {\n\tif (Object.assign) {\n\t\treturn Object.assign(target, source);\n\t}\n\tfor (var key in source) {\n\t\tif (has.call(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// https://es5.github.io/#x8.12\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O, hint) {\n\t\tvar actualHint = hint || (toStr.call(O) === '[object Date]' ? String : Number);\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// https://es5.github.io/#x9\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input, PreferredType);\n};\n","'use strict';\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn Number(value);\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\t\t// jscs:disable\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// jscs:enable\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\nvar SymbolIterator = hasSymbols ? Symbol.iterator : null;\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, Array.prototype.slice);\nvar strSlice = bind.call(Function.call, String.prototype.slice);\nvar isBinary = bind.call(Function.call, RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, RegExp.prototype.test, invalidHexLiteral);\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = Math.floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr.call(argument) !== '[object String]') {\n\t\t\tthrow new TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: Array.isArray || function IsArray(argument) {\n\t\treturn toStr.call(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: function IsExtensible(obj) {\n\t\tif (!Object.preventExtensions) { return true; }\n\t\tif (isPrimitive(obj)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Object.isExtensible(obj);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = Math.abs(argument);\n\t\treturn Math.floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - http://www.ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && Symbol.species ? C[Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new TypeError('no constructor found');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, SymbolIterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && Symbol.species) {\n\t\t\t\tC = this.Get(C, Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = Object.getOwnPropertyDescriptor(O, P);\n\t\tvar extensible = oldDesc || (typeof Object.isExtensible !== 'function' || Object.isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('Assertion failed: Type(S) is not String');\n\t\t}\n\t\tif (!this.IsInteger(index)) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new RangeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(unicode) is not Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar first = S.charCodeAt(index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar second = S.charCodeAt(index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\treturn index + 2;\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n","'use strict';\n\nmodule.exports = require('./es2015');\n","'use strict';\nvar ES = require('es-abstract/es6');\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\n\n/*! https://mths.be/array-from v0.2.0 by @mathias */\nmodule.exports = function from(arrayLike) {\n\tvar defineProperty = supportsDescriptors ? Object.defineProperty : function put(object, key, descriptor) {\n\t\tobject[key] = descriptor.value;\n\t};\n\tvar C = this;\n\tif (arrayLike === null || typeof arrayLike === 'undefined') {\n\t\tthrow new TypeError('`Array.from` requires an array-like object, not `null` or `undefined`');\n\t}\n\tvar items = ES.ToObject(arrayLike);\n\n\tvar mapFn, T;\n\tif (typeof arguments[1] !== 'undefined') {\n\t\tmapFn = arguments[1];\n\t\tif (!ES.IsCallable(mapFn)) {\n\t\t\tthrow new TypeError('When provided, the second argument to `Array.from` must be a function');\n\t\t}\n\t\tif (arguments.length > 2) {\n\t\t\tT = arguments[2];\n\t\t}\n\t}\n\n\tvar len = ES.ToLength(items.length);\n\tvar A = ES.IsCallable(C) ? ES.ToObject(new C(len)) : new Array(len);\n\tvar k = 0;\n\tvar kValue, mappedValue;\n\twhile (k < len) {\n\t\tkValue = items[k];\n\t\tif (mapFn) {\n\t\t\tmappedValue = typeof T === 'undefined' ? mapFn(kValue, k) : ES.Call(mapFn, T, [kValue, k]);\n\t\t} else {\n\t\t\tmappedValue = kValue;\n\t\t}\n\t\tdefineProperty(A, k, {\n\t\t\t'configurable': true,\n\t\t\t'enumerable': true,\n\t\t\t'value': mappedValue,\n\t\t\t'writable': true\n\t\t});\n\t\tk += 1;\n\t}\n\tA.length = len;\n\treturn A;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar implementation = require('./implementation');\n\nvar tryCall = function (fn) {\n\ttry {\n\t\tfn();\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\tvar implemented = ES.IsCallable(Array.from)\n\t\t&& tryCall(function () { Array.from({ 'length': -Infinity }); })\n\t\t&& !tryCall(function () { Array.from([], undefined); });\n\n\treturn implemented ? Array.from : implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayFrom() {\n\tvar polyfill = getPolyfill();\n\n\tdefine(Array, { 'from': polyfill }, {\n\t\t'from': function () {\n\t\t\treturn Array.from !== polyfill;\n\t\t}\n\t});\n\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\n// eslint-disable-next-line no-unused-vars\nvar boundFromShim = function from(array) {\n // eslint-disable-next-line no-invalid-this\n\treturn implementation.apply(this || Array, arguments);\n};\n\ndefine(boundFromShim, {\n\t'getPolyfill': getPolyfill,\n\t'implementation': implementation,\n\t'shim': shim\n});\n\nmodule.exports = boundFromShim;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// XHook - v1.4.9 - https://github.com/jpillora/xhook\n// Jaime Pillora - MIT Copyright 2018\n(function(undefined) {\nvar AFTER, BEFORE, COMMON_EVENTS, EventEmitter, FETCH, FIRE, FormData, NativeFetch, NativeFormData, NativeXMLHttp, OFF, ON, READY_STATE, UPLOAD_EVENTS, WINDOW, XHookFetchRequest, XHookFormData, XHookHttpRequest, XMLHTTP, convertHeaders, depricatedProp, document, fakeEvent, mergeObjects, msie, nullify, proxyEvents, slice, useragent, xhook, _base,\n __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\nWINDOW = null;\n\nif (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) {\n WINDOW = self;\n} else if (typeof global !== 'undefined') {\n WINDOW = global;\n} else {\n WINDOW = window;\n}\n\ndocument = WINDOW.document;\n\nBEFORE = 'before';\n\nAFTER = 'after';\n\nREADY_STATE = 'readyState';\n\nON = 'addEventListener';\n\nOFF = 'removeEventListener';\n\nFIRE = 'dispatchEvent';\n\nXMLHTTP = 'XMLHttpRequest';\n\nFETCH = 'fetch';\n\nFormData = 'FormData';\n\nUPLOAD_EVENTS = ['load', 'loadend', 'loadstart'];\n\nCOMMON_EVENTS = ['progress', 'abort', 'error', 'timeout'];\n\nuseragent = typeof navigator !== 'undefined' && navigator['useragent'] ? navigator.userAgent : '';\n\nmsie = parseInt((/msie (\\d+)/.exec(useragent.toLowerCase()) || [])[1]);\n\nif (isNaN(msie)) {\n msie = parseInt((/trident\\/.*; rv:(\\d+)/.exec(useragent.toLowerCase()) || [])[1]);\n}\n\n(_base = Array.prototype).indexOf || (_base.indexOf = function(item) {\n var i, x, _i, _len;\n for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) {\n x = this[i];\n if (x === item) {\n return i;\n }\n }\n return -1;\n});\n\nslice = function(o, n) {\n return Array.prototype.slice.call(o, n);\n};\n\ndepricatedProp = function(p) {\n return p === \"returnValue\" || p === \"totalSize\" || p === \"position\";\n};\n\nmergeObjects = function(src, dst) {\n var k, v;\n for (k in src) {\n v = src[k];\n if (depricatedProp(k)) {\n continue;\n }\n try {\n dst[k] = src[k];\n } catch (_error) {}\n }\n return dst;\n};\n\nnullify = function(res) {\n if (res === void 0) {\n return null;\n }\n return res;\n};\n\nproxyEvents = function(events, src, dst) {\n var event, p, _i, _len;\n p = function(event) {\n return function(e) {\n var clone, k, val;\n clone = {};\n for (k in e) {\n if (depricatedProp(k)) {\n continue;\n }\n val = e[k];\n clone[k] = val === src ? dst : val;\n }\n return dst[FIRE](event, clone);\n };\n };\n for (_i = 0, _len = events.length; _i < _len; _i++) {\n event = events[_i];\n if (dst._has(event)) {\n src[\"on\" + event] = p(event);\n }\n }\n};\n\nfakeEvent = function(type) {\n var msieEventObject;\n if (document && (document.createEventObject != null)) {\n msieEventObject = document.createEventObject();\n msieEventObject.type = type;\n return msieEventObject;\n } else {\n try {\n return new Event(type);\n } catch (_error) {\n return {\n type: type\n };\n }\n }\n};\n\nEventEmitter = function(nodeStyle) {\n var emitter, events, listeners;\n events = {};\n listeners = function(event) {\n return events[event] || [];\n };\n emitter = {};\n emitter[ON] = function(event, callback, i) {\n events[event] = listeners(event);\n if (events[event].indexOf(callback) >= 0) {\n return;\n }\n i = i === undefined ? events[event].length : i;\n events[event].splice(i, 0, callback);\n };\n emitter[OFF] = function(event, callback) {\n var i;\n if (event === undefined) {\n events = {};\n return;\n }\n if (callback === undefined) {\n events[event] = [];\n }\n i = listeners(event).indexOf(callback);\n if (i === -1) {\n return;\n }\n listeners(event).splice(i, 1);\n };\n emitter[FIRE] = function() {\n var args, event, i, legacylistener, listener, _i, _len, _ref;\n args = slice(arguments);\n event = args.shift();\n if (!nodeStyle) {\n args[0] = mergeObjects(args[0], fakeEvent(event));\n }\n legacylistener = emitter[\"on\" + event];\n if (legacylistener) {\n legacylistener.apply(emitter, args);\n }\n _ref = listeners(event).concat(listeners(\"*\"));\n for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {\n listener = _ref[i];\n listener.apply(emitter, args);\n }\n };\n emitter._has = function(event) {\n return !!(events[event] || emitter[\"on\" + event]);\n };\n if (nodeStyle) {\n emitter.listeners = function(event) {\n return slice(listeners(event));\n };\n emitter.on = emitter[ON];\n emitter.off = emitter[OFF];\n emitter.fire = emitter[FIRE];\n emitter.once = function(e, fn) {\n var fire;\n fire = function() {\n emitter.off(e, fire);\n return fn.apply(null, arguments);\n };\n return emitter.on(e, fire);\n };\n emitter.destroy = function() {\n return events = {};\n };\n }\n return emitter;\n};\n\nxhook = EventEmitter(true);\n\nxhook.EventEmitter = EventEmitter;\n\nxhook[BEFORE] = function(handler, i) {\n if (handler.length < 1 || handler.length > 2) {\n throw \"invalid hook\";\n }\n return xhook[ON](BEFORE, handler, i);\n};\n\nxhook[AFTER] = function(handler, i) {\n if (handler.length < 2 || handler.length > 3) {\n throw \"invalid hook\";\n }\n return xhook[ON](AFTER, handler, i);\n};\n\nxhook.enable = function() {\n WINDOW[XMLHTTP] = XHookHttpRequest;\n if (typeof XHookFetchRequest === \"function\") {\n WINDOW[FETCH] = XHookFetchRequest;\n }\n if (NativeFormData) {\n WINDOW[FormData] = XHookFormData;\n }\n};\n\nxhook.disable = function() {\n WINDOW[XMLHTTP] = xhook[XMLHTTP];\n WINDOW[FETCH] = xhook[FETCH];\n if (NativeFormData) {\n WINDOW[FormData] = NativeFormData;\n }\n};\n\nconvertHeaders = xhook.headers = function(h, dest) {\n var header, headers, k, name, v, value, _i, _len, _ref;\n if (dest == null) {\n dest = {};\n }\n switch (typeof h) {\n case \"object\":\n headers = [];\n for (k in h) {\n v = h[k];\n name = k.toLowerCase();\n headers.push(\"\" + name + \":\\t\" + v);\n }\n return headers.join('\\n') + '\\n';\n case \"string\":\n headers = h.split('\\n');\n for (_i = 0, _len = headers.length; _i < _len; _i++) {\n header = headers[_i];\n if (/([^:]+):\\s*(.+)/.test(header)) {\n name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0;\n value = RegExp.$2;\n if (dest[name] == null) {\n dest[name] = value;\n }\n }\n }\n return dest;\n }\n};\n\nNativeFormData = WINDOW[FormData];\n\nXHookFormData = function(form) {\n var entries;\n this.fd = form ? new NativeFormData(form) : new NativeFormData();\n this.form = form;\n entries = [];\n Object.defineProperty(this, 'entries', {\n get: function() {\n var fentries;\n fentries = !form ? [] : slice(form.querySelectorAll(\"input,select\")).filter(function(e) {\n var _ref;\n return ((_ref = e.type) !== 'checkbox' && _ref !== 'radio') || e.checked;\n }).map(function(e) {\n return [e.name, e.type === \"file\" ? e.files : e.value];\n });\n return fentries.concat(entries);\n }\n });\n this.append = (function(_this) {\n return function() {\n var args;\n args = slice(arguments);\n entries.push(args);\n return _this.fd.append.apply(_this.fd, args);\n };\n })(this);\n};\n\nif (NativeFormData) {\n xhook[FormData] = NativeFormData;\n WINDOW[FormData] = XHookFormData;\n}\n\nNativeXMLHttp = WINDOW[XMLHTTP];\n\nxhook[XMLHTTP] = NativeXMLHttp;\n\nXHookHttpRequest = WINDOW[XMLHTTP] = function() {\n var ABORTED, currentState, emitFinal, emitReadyState, event, facade, hasError, hasErrorHandler, readBody, readHead, request, response, setReadyState, status, transiting, writeBody, writeHead, xhr, _i, _len, _ref;\n ABORTED = -1;\n xhr = new xhook[XMLHTTP]();\n request = {};\n status = null;\n hasError = void 0;\n transiting = void 0;\n response = void 0;\n readHead = function() {\n var key, name, val, _ref;\n response.status = status || xhr.status;\n if (!(status === ABORTED && msie < 10)) {\n response.statusText = xhr.statusText;\n }\n if (status !== ABORTED) {\n _ref = convertHeaders(xhr.getAllResponseHeaders());\n for (key in _ref) {\n val = _ref[key];\n if (!response.headers[key]) {\n name = key.toLowerCase();\n response.headers[name] = val;\n }\n }\n }\n };\n readBody = function() {\n if (!xhr.responseType || xhr.responseType === \"text\") {\n response.text = xhr.responseText;\n response.data = xhr.responseText;\n try {\n response.xml = xhr.responseXML;\n } catch (_error) {\n\n }\n } else if (xhr.responseType === \"document\") {\n response.xml = xhr.responseXML;\n response.data = xhr.responseXML;\n } else {\n response.data = xhr.response;\n }\n if (\"responseURL\" in xhr) {\n response.finalUrl = xhr.responseURL;\n }\n };\n writeHead = function() {\n facade.status = response.status;\n facade.statusText = response.statusText;\n };\n writeBody = function() {\n if ('text' in response) {\n facade.responseText = response.text;\n }\n if ('xml' in response) {\n facade.responseXML = response.xml;\n }\n if ('data' in response) {\n facade.response = response.data;\n }\n if ('finalUrl' in response) {\n facade.responseURL = response.finalUrl;\n }\n };\n emitReadyState = function(n) {\n while (n > currentState && currentState < 4) {\n facade[READY_STATE] = ++currentState;\n if (currentState === 1) {\n facade[FIRE](\"loadstart\", {});\n }\n if (currentState === 2) {\n writeHead();\n }\n if (currentState === 4) {\n writeHead();\n writeBody();\n }\n facade[FIRE](\"readystatechange\", {});\n if (currentState === 4) {\n if (request.async === false) {\n emitFinal();\n } else {\n setTimeout(emitFinal, 0);\n }\n }\n }\n };\n emitFinal = function() {\n if (!hasError) {\n facade[FIRE](\"load\", {});\n }\n facade[FIRE](\"loadend\", {});\n if (hasError) {\n facade[READY_STATE] = 0;\n }\n };\n currentState = 0;\n setReadyState = function(n) {\n var hooks, process;\n if (n !== 4) {\n emitReadyState(n);\n return;\n }\n hooks = xhook.listeners(AFTER);\n process = function() {\n var hook;\n if (!hooks.length) {\n return emitReadyState(4);\n }\n hook = hooks.shift();\n if (hook.length === 2) {\n hook(request, response);\n return process();\n } else if (hook.length === 3 && request.async) {\n return hook(request, response, process);\n } else {\n return process();\n }\n };\n process();\n };\n facade = request.xhr = EventEmitter();\n xhr.onreadystatechange = function(event) {\n try {\n if (xhr[READY_STATE] === 2) {\n readHead();\n }\n } catch (_error) {}\n if (xhr[READY_STATE] === 4) {\n transiting = false;\n readHead();\n readBody();\n }\n setReadyState(xhr[READY_STATE]);\n };\n hasErrorHandler = function() {\n hasError = true;\n };\n facade[ON]('error', hasErrorHandler);\n facade[ON]('timeout', hasErrorHandler);\n facade[ON]('abort', hasErrorHandler);\n facade[ON]('progress', function() {\n if (currentState < 3) {\n setReadyState(3);\n } else {\n facade[FIRE](\"readystatechange\", {});\n }\n });\n if ('withCredentials' in xhr || xhook.addWithCredentials) {\n facade.withCredentials = false;\n }\n facade.status = 0;\n _ref = COMMON_EVENTS.concat(UPLOAD_EVENTS);\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n event = _ref[_i];\n facade[\"on\" + event] = null;\n }\n facade.open = function(method, url, async, user, pass) {\n currentState = 0;\n hasError = false;\n transiting = false;\n request.headers = {};\n request.headerNames = {};\n request.status = 0;\n response = {};\n response.headers = {};\n request.method = method;\n request.url = url;\n request.async = async !== false;\n request.user = user;\n request.pass = pass;\n setReadyState(1);\n };\n facade.send = function(body) {\n var hooks, k, modk, process, send, _j, _len1, _ref1;\n _ref1 = ['type', 'timeout', 'withCredentials'];\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n k = _ref1[_j];\n modk = k === \"type\" ? \"responseType\" : k;\n if (modk in facade) {\n request[k] = facade[modk];\n }\n }\n request.body = body;\n send = function() {\n var header, value, _k, _len2, _ref2, _ref3;\n proxyEvents(COMMON_EVENTS, xhr, facade);\n if (facade.upload) {\n proxyEvents(COMMON_EVENTS.concat(UPLOAD_EVENTS), xhr.upload, facade.upload);\n }\n transiting = true;\n xhr.open(request.method, request.url, request.async, request.user, request.pass);\n _ref2 = ['type', 'timeout', 'withCredentials'];\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n k = _ref2[_k];\n modk = k === \"type\" ? \"responseType\" : k;\n if (k in request) {\n xhr[modk] = request[k];\n }\n }\n _ref3 = request.headers;\n for (header in _ref3) {\n value = _ref3[header];\n if (header) {\n xhr.setRequestHeader(header, value);\n }\n }\n if (request.body instanceof XHookFormData) {\n request.body = request.body.fd;\n }\n xhr.send(request.body);\n };\n hooks = xhook.listeners(BEFORE);\n process = function() {\n var done, hook;\n if (!hooks.length) {\n return send();\n }\n done = function(userResponse) {\n if (typeof userResponse === 'object' && (typeof userResponse.status === 'number' || typeof response.status === 'number')) {\n mergeObjects(userResponse, response);\n if (__indexOf.call(userResponse, 'data') < 0) {\n userResponse.data = userResponse.response || userResponse.text;\n }\n setReadyState(4);\n return;\n }\n process();\n };\n done.head = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(2);\n };\n done.progress = function(userResponse) {\n mergeObjects(userResponse, response);\n return setReadyState(3);\n };\n hook = hooks.shift();\n if (hook.length === 1) {\n return done(hook(request));\n } else if (hook.length === 2 && request.async) {\n return hook(request, done);\n } else {\n return done();\n }\n };\n process();\n };\n facade.abort = function() {\n status = ABORTED;\n if (transiting) {\n xhr.abort();\n } else {\n facade[FIRE]('abort', {});\n }\n };\n facade.setRequestHeader = function(header, value) {\n var lName, name;\n lName = header != null ? header.toLowerCase() : void 0;\n name = request.headerNames[lName] = request.headerNames[lName] || header;\n if (request.headers[name]) {\n value = request.headers[name] + ', ' + value;\n }\n request.headers[name] = value;\n };\n facade.getResponseHeader = function(header) {\n var name;\n name = header != null ? header.toLowerCase() : void 0;\n return nullify(response.headers[name]);\n };\n facade.getAllResponseHeaders = function() {\n return nullify(convertHeaders(response.headers));\n };\n if (xhr.overrideMimeType) {\n facade.overrideMimeType = function() {\n return xhr.overrideMimeType.apply(xhr, arguments);\n };\n }\n if (xhr.upload) {\n facade.upload = request.upload = EventEmitter();\n }\n facade.UNSENT = 0;\n facade.OPENED = 1;\n facade.HEADERS_RECEIVED = 2;\n facade.LOADING = 3;\n facade.DONE = 4;\n facade.response = '';\n facade.responseText = '';\n facade.responseXML = null;\n facade.readyState = 0;\n facade.statusText = '';\n return facade;\n};\n\nif (typeof WINDOW[FETCH] === \"function\") {\n NativeFetch = WINDOW[FETCH];\n xhook[FETCH] = NativeFetch;\n XHookFetchRequest = WINDOW[FETCH] = function(url, options) {\n var afterHooks, beforeHooks, request;\n if (options == null) {\n options = {\n headers: {}\n };\n }\n options.url = url;\n request = null;\n beforeHooks = xhook.listeners(BEFORE);\n afterHooks = xhook.listeners(AFTER);\n return new Promise(function(resolve, reject) {\n var done, getRequest, processAfter, processBefore, send;\n getRequest = function() {\n if (options.body instanceof XHookFormData) {\n options.body = options.body.fd;\n }\n if (options.headers) {\n options.headers = new Headers(options.headers);\n }\n if (!request) {\n request = new Request(options.url, options);\n }\n return mergeObjects(options, request);\n };\n processAfter = function(response) {\n var hook;\n if (!afterHooks.length) {\n return resolve(response);\n }\n hook = afterHooks.shift();\n if (hook.length === 2) {\n hook(getRequest(), response);\n return processAfter(response);\n } else if (hook.length === 3) {\n return hook(getRequest(), response, processAfter);\n } else {\n return processAfter(response);\n }\n };\n done = function(userResponse) {\n var response;\n if (userResponse !== void 0) {\n response = new Response(userResponse.body || userResponse.text, userResponse);\n resolve(response);\n processAfter(response);\n return;\n }\n processBefore();\n };\n processBefore = function() {\n var hook;\n if (!beforeHooks.length) {\n send();\n return;\n }\n hook = beforeHooks.shift();\n if (hook.length === 1) {\n return done(hook(options));\n } else if (hook.length === 2) {\n return hook(getRequest(), done);\n }\n };\n send = function() {\n return NativeFetch(getRequest()).then(function(response) {\n return processAfter(response);\n })[\"catch\"](function(err) {\n processAfter(err);\n return reject(err);\n });\n };\n processBefore();\n });\n };\n}\n\nXHookHttpRequest.UNSENT = 0;\n\nXHookHttpRequest.OPENED = 1;\n\nXHookHttpRequest.HEADERS_RECEIVED = 2;\n\nXHookHttpRequest.LOADING = 3;\n\nXHookHttpRequest.DONE = 4;\n\nif (typeof define === \"function\" && define.amd) {\n define(\"xhook\", [], function() {\n return xhook;\n });\n} else if (typeof module === \"object\" && module.exports) {\n module.exports = {\n xhook: xhook\n };\n} else if (WINDOW) {\n WINDOW.xhook = xhook;\n}\n\n}.call(this));\n","const config = o => {\n if (o) {\n if (o.masters) {\n config.masters(o.masters);\n }\n if (o.slaves) {\n config.slaves(o.slaves);\n }\n }\n};\n\n//default config\nconfig.debug = false;\nconfig.timeout = 15e3;\nconfig.cookies = {\n master: \"Master-Cookie\",\n slave: \"Slave-Cookie\"\n};\n//extras are also attached to config\n\nmodule.exports = config;\n","const xhook = require(\"xhook\").xhook;\n\nconst config = require(\"./config\");\n\nexports.COMPAT_VERSION = \"V1\";\n\nconst { location } = window;\nexports.currentOrigin = location.protocol + \"//\" + location.host;\nconfig.origin = exports.currentOrigin;\n\n//emits 'warn' 'log' and 'timeout' events\nexports.globalEmitter = xhook.EventEmitter(true);\n\nexports.console = window.console || {};\n\nlet counter = 0;\nexports.guid = () => {\n if (counter >= 1e6) counter = 0;\n let n = String(++counter);\n while (n.length < 6) n = \"0\" + n;\n return `xdomain-${n}`;\n};\n\nexports.slice = (o, n) => {\n return Array.prototype.slice.call(o, n);\n};\n\n//create a logger of type\nconst newLogger = type => {\n return msg => {\n msg = `xdomain (${exports.currentOrigin}): ${msg}`;\n //emit event\n exports.globalEmitter.fire(type, msg);\n //skip logs when debug isnt enabled\n if (type === \"log\" && !config.debug) {\n return;\n }\n //user provided log/warn functions\n if (type in config) {\n config[type](msg);\n //fallback console\n } else if (type in console) {\n console[type](msg);\n //fallbackback alert\n } else if (type === \"warn\") {\n alert(msg);\n }\n };\n};\n\nexports.log = newLogger(\"log\");\nexports.warn = newLogger(\"warn\");\n\nexports.instOf = (obj, global) => {\n return global in window && obj instanceof window[global];\n};\n\n//absolute url parser (relative urls aren't crossdomain)\nexports.parseUrl = url => {\n if (/^((https?:)?\\/\\/[^\\/\\?]+)(\\/.*)?/.test(url)) {\n return {\n origin: (RegExp.$2 ? \"\" : location.protocol) + RegExp.$1,\n path: RegExp.$3\n };\n } else {\n exports.log(`failed to parse absolute url: ${url}`);\n return null;\n }\n};\nconfig.parseUrl = exports.parseUrl;\n\nexports.toRegExp = obj => {\n if (obj instanceof RegExp) {\n return obj;\n }\n const str = obj\n .toString()\n .replace(/\\W/g, str => `\\\\${str}`)\n .replace(/\\\\\\*/g, \".*\");\n return new RegExp(`^${str}$`);\n};\n\n//strip functions and objects from an object\nexports.strip = src => {\n const dst = {};\n for (let k in src) {\n if (k === \"returnValue\") {\n continue;\n }\n const v = src[k];\n const t = typeof v;\n if (t !== \"function\" && t !== \"object\") {\n dst[k] = v;\n }\n }\n return dst;\n};\n","const xhook = require(\"xhook\").xhook;\nconst config = require(\"./config\");\nconst {\n log,\n warn,\n toRegExp,\n strip,\n parseUrl,\n COMPAT_VERSION\n} = require(\"./util\");\n\n//when you add masters, this node\n//enables slave listeners\n\nlet enabled = false;\nlet masters = {};\n\nexports.addMasters = config => {\n //validate iframe\n if (window === window.parent) {\n warn(\"slaves must be in an iframe\");\n return;\n }\n //enable slave handler\n if (!enabled) {\n enabled = true;\n log(\"now handling incoming sockets...\");\n window.parent.postMessage(`XDPING_${COMPAT_VERSION}`, \"*\");\n }\n //white-list the provided set of masters\n for (let origin in config) {\n let path = config[origin];\n if (origin === \"file://\" && path !== \"*\") {\n warn(`file protocol only supports the * path`);\n path = \"*\";\n }\n log(`adding master: ${origin}`);\n masters[origin] = path;\n }\n};\n\nconfig.masters = exports.addMasters;\n\nexports.handleSocket = (origin, socket) => {\n if (!enabled) {\n return;\n }\n //null means no origin can be determined,\n //this is true for file:// and data:// URIs.\n //html data:// URI are now blocked, they can\n //only be copy-and-pasted into the URL bar.\n if (origin === \"null\" || origin === \"file:\") {\n origin = \"file://\";\n }\n log(`handle socket for \"${origin}\"`);\n let pathRegex = null;\n for (let master in masters) {\n const regex = masters[master];\n try {\n const masterRegex = toRegExp(master);\n if (masterRegex.test(origin)) {\n pathRegex = toRegExp(regex);\n break;\n }\n } catch (error) {}\n }\n if (!pathRegex) {\n warn(`blocked request from: '${origin}'`);\n return;\n }\n socket.once(\"request\", function(req) {\n log(`request: ${req.method} ${req.url}`);\n const p = parseUrl(req.url);\n if (!p || !pathRegex.test(p.path)) {\n warn(`blocked request to path: '${p.path}' by regex: ${pathRegex}`);\n socket.close();\n return;\n }\n //perform real XHR here!\n //pass results to the socket\n const xhr = new XMLHttpRequest();\n xhr.open(req.method, req.url);\n xhr.addEventListener(\"*\", e => socket.emit(\"xhr-event\", e.type, strip(e)));\n if (xhr.upload) {\n xhr.upload.addEventListener(\"*\", e =>\n socket.emit(\"xhr-upload-event\", e.type, strip(e))\n );\n }\n xhr.onreadystatechange = function() {\n if (xhr.readyState !== 4) {\n return;\n }\n //extract properties\n const resp = {\n status: xhr.status,\n statusText: xhr.statusText,\n data: xhr.response,\n headers: xhook.headers(xhr.getAllResponseHeaders())\n };\n try {\n resp.text = xhr.responseText;\n } catch (error1) {}\n // XML over postMessage not supported\n // try resp.xml = xhr.responseXML\n return socket.emit(\"response\", resp);\n };\n //allow aborts from the facade\n socket.once(\"abort\", () => xhr.abort());\n // document.cookie (Cookie header) can't be set inside an iframe\n // as many browsers have 3rd party cookies disabled. slaveCookie\n // contains the 'xdomain.cookie.slave' string set on the master.\n if (req.withCredentials) {\n xhr.withCredentials = true;\n if (req.slaveCookie) {\n req.headers[req.slaveCookie] = document.cookie;\n }\n }\n if (req.timeout) {\n xhr.timeout = req.timeout;\n }\n if (req.type) {\n xhr.responseType = req.type;\n }\n for (let k in req.headers) {\n const v = req.headers[k];\n xhr.setRequestHeader(k, v);\n }\n //deserialize FormData\n if (req.body instanceof Array && req.body[0] === \"XD_FD\") {\n const fd = new xhook.FormData();\n const entries = req.body[1];\n Array.from(entries).forEach(arg => {\n //deserialize blobs from arraybuffs\n //[0:marker, 1:real-args, 2:arraybuffer, 3:type]\n if (args[0] === \"XD_BLOB\" && args.length === 4) {\n const blob = new Blob([args[2]], { type: args[3] });\n args = args[1];\n args[1] = blob;\n }\n fd.append.apply(fd, args);\n });\n req.body = fd;\n }\n //fire off request\n xhr.send(req.body || null);\n });\n log(`slave listening for requests on socket: ${socket.id}`);\n};\n","const xhook = require(\"xhook\").xhook;\n\nconst config = require(\"./config\");\nconst { globalEmitter, log, warn, COMPAT_VERSION } = require(\"./util\");\nconst { handleSocket } = require(\"./slave\");\n\n//constants\nconst CHECK_STRING = \"XD_CHECK\";\nconst CHECK_INTERVAL = 100;\n//state\nconst sockets = {};\nlet jsonEncode = true;\n\n//a 'sock' is a two-way event-emitter,\n//each side listens for messages with on()\n//and the other side sends messages with emit()\nexports.createSocket = (id, frame) => {\n let ready = false;\n const socket = xhook.EventEmitter(true);\n sockets[id] = socket;\n socket.id = id;\n socket.once(\"close\", function() {\n socket.destroy();\n socket.close();\n });\n const pendingEmits = [];\n socket.emit = function(...args) {\n const extra = typeof args[1] === \"string\" ? ` -> ${args[1]}` : \"\";\n log(`send socket: ${id}: ${args[0]}${extra}`);\n args.unshift(id);\n if (ready) {\n emit(args);\n } else {\n pendingEmits.push(args);\n }\n };\n var emit = function(args) {\n //convert to string when necessary\n if (jsonEncode) {\n args = JSON.stringify(args);\n }\n //send!\n frame.postMessage(args, \"*\");\n };\n\n socket.close = function() {\n socket.emit(\"close\");\n log(`close socket: ${id}`);\n sockets[id] = null;\n };\n\n socket.once(CHECK_STRING, function(obj) {\n jsonEncode = typeof obj === \"string\";\n ready = socket.ready = true;\n socket.emit(\"ready\");\n log(`ready socket: ${id} (emit #${pendingEmits.length} pending)`);\n while (pendingEmits.length) {\n emit(pendingEmits.shift());\n }\n });\n\n //start checking connectivitiy\n let checks = 0;\n var check = () => {\n // send test message NO ENCODING\n frame.postMessage([id, CHECK_STRING, {}], \"*\");\n if (ready) {\n return;\n }\n if (checks++ >= config.timeout / CHECK_INTERVAL) {\n warn(\"Timeout waiting on iframe socket\");\n globalEmitter.fire(\"timeout\");\n socket.fire(\"abort\"); //self-emit \"abort\"\n } else {\n log(`check again in ${CHECK_INTERVAL}ms...`);\n setTimeout(check, CHECK_INTERVAL);\n }\n };\n setTimeout(check);\n\n log(`new socket: ${id}`);\n return socket;\n};\n\n//ONE WINDOW LISTENER!\n//double purpose:\n// creates new sockets by passing incoming events to the 'handler'\n// passes events to existing sockets (created by connect or by the server)\nexports.initialise = () => {\n const handle = e => {\n let d = e.data;\n //return if not a json string\n if (typeof d === \"string\") {\n //only old versions of xdomain send XPINGs...\n if (/^XDPING(_(V\\d+))?$/.test(d) && RegExp.$2 !== COMPAT_VERSION) {\n return warn(\n \"your master is not compatible with your slave, check your xdomain.js version\"\n );\n //IE will \"toString()\" the array, this reverses that action\n } else if (/^xdomain-/.test(d)) {\n d = d.split(\",\");\n //this browser must json encode postmessages\n } else if (jsonEncode) {\n try {\n d = JSON.parse(d);\n } catch (error) {\n return;\n }\n }\n }\n //return if not an array\n if (!(d instanceof Array)) {\n return;\n }\n //return unless lead by an xdomain id\n const id = d.shift();\n if (!/^xdomain-/.test(id)) {\n return;\n }\n //finally, create/get socket\n let socket = sockets[id];\n //closed\n if (socket === null) {\n return;\n }\n //needs creation\n if (socket === undefined) {\n //send unsolicited requests to the listening server\n if (!handleSocket) {\n return;\n }\n socket = exports.createSocket(id, e.source);\n handleSocket(e.origin, socket);\n }\n const extra = typeof d[1] === \"string\" ? ` -> ${d[1]}` : \"\";\n log(`receive socket: ${id}: ${d[0]}${extra}`);\n //emit data\n socket.fire.apply(socket, d);\n };\n if (document.addEventListener) {\n return window.addEventListener(\"message\", handle);\n } else {\n return window.attachEvent(\"onmessage\", handle);\n }\n};\n","const xhook = require(\"xhook\").xhook;\nconst config = require(\"./config\");\nconst {\n currentOrigin,\n log,\n warn,\n parseUrl,\n guid,\n strip,\n instOf\n} = require(\"./util\");\nconst socketlib = require(\"./socket\");\nconst createSocket = socketlib.createSocket;\n\n//when you add slaves, this node\n//enables master listeners\n\nlet enabled = false;\nlet slaves = {};\n\nexports.addSlaves = newSlaves => {\n //register master xhook handler\n if (!enabled) {\n enabled = true;\n //unless already set, add withCredentials to xhrs to trick jquery\n //in older browsers into thinking cors is allowed\n if (!(\"addWithCredentials\" in xhook)) {\n xhook.addWithCredentials = true;\n }\n //hook XHR calls\n xhook.before(beforeXHR);\n }\n //include the provided set of slave\n for (let origin in newSlaves) {\n const path = newSlaves[origin];\n log(`adding slave: ${origin}`);\n slaves[origin] = path;\n }\n};\n\nconfig.slaves = exports.addSlaves;\n\nconst beforeXHR = function(request, callback) {\n //allow unless we have a slave domain\n const p = parseUrl(request.url);\n if (!p || p.origin === currentOrigin) {\n callback();\n return;\n }\n if (!slaves[p.origin]) {\n if (p) {\n log(`no slave matching: '${p.origin}'`);\n }\n callback();\n return;\n }\n log(`proxying request to slave: '${p.origin}'`);\n if (request.async === false) {\n warn(\"sync not supported because postmessage is async\");\n callback();\n return;\n }\n //get or insert frame\n const frame = getFrame(p.origin, slaves[p.origin]);\n //connect to slave\n const socket = createSocket(guid(), frame);\n //queue callback\n socket.on(\"response\", function(resp) {\n callback(resp);\n socket.close();\n });\n //user wants to abort\n request.xhr.addEventListener(\"abort\", () => socket.emit(\"abort\"));\n //kick off\n if (socket.ready) {\n handleRequest(request, socket);\n } else {\n socket.once(\"ready\", () => handleRequest(request, socket));\n }\n};\n\nconst frames = {};\nconst getFrame = function(origin, proxyPath) {\n //cache origin\n if (frames[origin]) {\n return frames[origin];\n }\n const frame = document.createElement(\"iframe\");\n frame.id = frame.name = guid();\n log(`creating iframe ${frame.id}`);\n frame.src = `${origin}${proxyPath}`;\n frame.setAttribute(\"style\", \"display:none;\");\n document.body.appendChild(frame);\n return (frames[origin] = frame.contentWindow);\n};\n\nconst convertToArrayBuffer = function(args, done) {\n const [name, obj] = Array.from(args);\n const isBlob = instOf(obj, \"Blob\");\n const isFile = instOf(obj, \"File\");\n if (!isBlob && !isFile) {\n return 0;\n }\n const reader = new FileReader();\n reader.onload = function() {\n // clear value\n args[1] = null;\n // formdata.append(name, value, **filename**)\n if (isFile) {\n args[2] = obj.name;\n }\n return done([\"XD_BLOB\", args, this.result, obj.type]);\n };\n reader.readAsArrayBuffer(obj);\n return 1;\n};\n\n//this FormData is actually XHooks custom FormData `fd`,\n//which exposes all `entries` added, where each entry\n//is the arguments object\nconst convertFormData = function(entries, send) {\n //expand FileList -> [File, File, File]\n entries.forEach(function(args, i) {\n const [name, value] = Array.from(args);\n if (instOf(value, \"FileList\")) {\n entries.splice(i, 1);\n Array.from(value).forEach(file => {\n entries.splice(i, 0, [name, file]);\n });\n }\n });\n //basically: async.parallel([filter:files], send)\n let c = 0;\n entries.forEach(function(args, i) {\n c += convertToArrayBuffer(args, function(newargs) {\n entries[i] = newargs;\n if (--c === 0) {\n send();\n }\n });\n });\n if (c === 0) {\n send();\n }\n};\n\nconst handleRequest = function(request, socket) {\n socket.on(\"xhr-event\", function() {\n return request.xhr.dispatchEvent.apply(null, arguments);\n });\n socket.on(\"xhr-upload-event\", function() {\n return request.xhr.upload.dispatchEvent.apply(null, arguments);\n });\n\n const obj = strip(request);\n obj.headers = request.headers;\n //add master cookie\n if (request.withCredentials) {\n if (config.cookies.master) {\n obj.headers[config.cookies.master] = document.cookie;\n }\n obj.slaveCookie = config.cookies.slave;\n }\n\n const send = () => socket.emit(\"request\", obj);\n\n if (request.body) {\n obj.body = request.body;\n //async serialize formdata\n if (instOf(obj.body, \"FormData\")) {\n const { entries } = obj.body;\n obj.body = [\"XD_FD\", entries];\n convertFormData(entries, send);\n return;\n }\n }\n send();\n};\n","const config = require(\"./config\");\nconst { parseUrl } = require(\"./util\");\nconst { addSlaves } = require(\"./master\");\nconst { addMasters } = require(\"./slave\");\nconst { document } = window;\n//auto init using attributes\nexports.initialise = function() {\n //attribute handlers\n const attrs = {\n debug(value) {\n config.debug = value !== \"false\";\n },\n slave(value) {\n const p = parseUrl(value);\n if (!p) {\n return;\n }\n const s = {};\n s[p.origin] = p.path;\n addSlaves(s);\n },\n master(value) {\n let p;\n if (value === \"*\") {\n p = { origin: \"*\", path: \"*\" };\n } else if (value === \"file://*\") {\n p = { origin: \"file://\", path: \"*\" };\n } else {\n p = parseUrl(value);\n }\n if (!p) {\n return;\n }\n const m = {};\n m[p.origin] = p.path.replace(/^\\//, \"\") ? p.path : \"*\";\n addMasters(m);\n }\n };\n //find all script tags referencing 'xdomain' and then\n //find all attributes with handlers registered\n Array.from(document.getElementsByTagName(\"script\")).forEach(script => {\n if (!/xdomain/.test(script.src)) {\n return;\n }\n [\"\", \"data-\"].forEach(prefix => {\n for (let k in attrs) {\n const value = script.getAttribute(prefix + k);\n if (value) {\n const fn = attrs[k];\n fn(value);\n }\n }\n });\n });\n};\n","\"use strict\";\n\n//feature detect\nconst { warn } = require(\"./lib/util\");\n[\"postMessage\", \"JSON\"].forEach(feature => {\n if (!window[feature]) {\n warn(`requires '${feature}' and this browser does not support it`);\n }\n});\n\n//init socket (post message mini-library)\nconst socket = require(\"./lib/socket\");\nsocket.initialise();\n\n//initialise script (load config from script tag)\nconst script = require(\"./lib/script\");\nscript.initialise();\n\n//public api\nconst initialise = require(\"./lib/config\");\n//config is also the primary intialise function\nmodule.exports = initialise;\n","if (!Array.from) {\n Array.from = require(\"array.from\").getPolyfill();\n}\nconst xhook = require(\"xhook\").xhook;\nwindow.xhook = xhook;\nconst xdomain = require(\"./index\");\nwindow.xdomain = xdomain;\n"]} \ No newline at end of file diff --git a/dist/xdomain.min.js b/dist/xdomain.min.js index 71568dc..de32baf 100644 --- a/dist/xdomain.min.js +++ b/dist/xdomain.min.js @@ -1,72 +1,77 @@ -parcelRequire=function(e,r,n){var t="function"==typeof parcelRequire&&parcelRequire,i="function"==typeof require&&require;function u(n,o){if(!r[n]){if(!e[n]){var f="function"==typeof parcelRequire&&parcelRequire;if(!o&&f)return f(n,!0);if(t)return t(n,!0);if(i&&"string"==typeof n)return i(n);var c=new Error("Cannot find module '"+n+"'");throw c.code="MODULE_NOT_FOUND",c}a.resolve=function(r){return e[n][1][r]||r};var l=r[n]=new u.Module(n);e[n][0].call(l.exports,a,l,l.exports)}return r[n].exports;function a(e){return u(a.resolve(e))}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=r,u.parent=t;for(var o=0;o=0&&"[object Function]"===t.call(e.callee)),r}; },{}],22:[function(require,module,exports) { "use strict";var t=Object.prototype.hasOwnProperty,e=Object.prototype.toString,r=Array.prototype.slice,n=require("./isArguments"),o=Object.prototype.propertyIsEnumerable,c=!o.call({toString:null},"toString"),i=o.call(function(){},"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(t){var e=t.constructor;return e&&e.prototype===t},f={$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},a=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!f["$"+e]&&t.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),s=function(t){if("undefined"==typeof window||!a)return u(t);try{return u(t)}catch(t){return!1}},p=function(r){var o=null!==r&&"object"==typeof r,u="[object Function]"===e.call(r),f=n(r),a=o&&"[object String]"===e.call(r),p=[];if(!o&&!u&&!f)throw new TypeError("Object.keys called on a non-object");var y=i&&u;if(a&&r.length>0&&!t.call(r,0))for(var w=0;w0)for(var g=0;g2?arguments[2]:{},u=e(o);r&&(u=u.concat(Object.getOwnPropertySymbols(o))),t(u,function(e){i(n,e,o[e],c[e])})};f.supportsDescriptors=!!u,module.exports=f; },{"object-keys":22,"foreach":23}],39:[function(require,module,exports) { "use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,o=Object.prototype.toString,r="[object Function]";module.exports=function(e){var p=this;if("function"!=typeof p||o.call(p)!==r)throw new TypeError(t+p);for(var i,c=n.call(arguments,1),a=Math.max(0,p.length-c.length),l=[],u=0;u1&&(l===String?a="string":l===Number&&(a="number")),r&&(Symbol.toPrimitive?f=u(t,Symbol.toPrimitive):i(t)&&(f=Symbol.prototype.valueOf)),void 0!==f){var m=f.call(t,a);if(e(m))return m;throw new TypeError("unable to convert exotic object to primitive")}return"default"===a&&(o(t)||i(t))&&(a="string"),n(t,"default"===a?"number":a)}; -},{"./helpers/isPrimitive":42,"is-callable":41,"is-date-object":43,"is-symbol":44}],29:[function(require,module,exports) { +},{"./helpers/isPrimitive":40,"is-callable":38,"is-date-object":41,"is-symbol":42}],27:[function(require,module,exports) { module.exports=Number.isNaN||function(e){return e!=e}; -},{}],30:[function(require,module,exports) { +},{}],28:[function(require,module,exports) { var e=Number.isNaN||function(e){return e!=e};module.exports=Number.isFinite||function(r){return"number"==typeof r&&!e(r)&&r!==1/0&&r!==-1/0}; -},{}],31:[function(require,module,exports) { +},{}],29:[function(require,module,exports) { var r=Object.prototype.hasOwnProperty;module.exports=function(t,e){if(Object.assign)return Object.assign(t,e);for(var n in e)r.call(e,n)&&(t[n]=e[n]);return t}; -},{}],32:[function(require,module,exports) { +},{}],30:[function(require,module,exports) { module.exports=function(e){return e>=0?1:-1}; -},{}],33:[function(require,module,exports) { +},{}],31:[function(require,module,exports) { module.exports=function(o,r){var t=o%r;return Math.floor(t>=0?t:t+r)}; -},{}],40:[function(require,module,exports) { +},{}],37:[function(require,module,exports) { "use strict";var e=Object.prototype.toString,r=require("./helpers/isPrimitive"),t=require("is-callable"),i={"[[DefaultValue]]":function(i,u){var l=u||("[object Date]"===e.call(i)?String:Number);if(l===String||l===Number){var a,n,o=l===String?["toString","valueOf"]:["valueOf","toString"];for(n=0;n>0},ToUint32:function(r){return this.ToNumber(r)>>>0},ToUint16:function(i){var n=this.ToNumber(i);if(r(n)||0===n||!e(n))return 0;var s=t(n)*Math.floor(Math.abs(n));return o(s,65536)},ToString:function(r){return String(r)},ToObject:function(r){return this.CheckObjectCoercible(r),Object(r)},CheckObjectCoercible:function(r,e){if(null==r)throw new TypeError(e||"Cannot call method on "+r);return r},IsCallable:i,SameValue:function(e,t){return e===t?0!==e||1/e==1/t:r(e)&&r(t)},Type:function(r){return null===r?"Null":void 0===r?"Undefined":"function"==typeof r||"object"==typeof r?"Object":"number"==typeof r?"Number":"boolean"==typeof r?"Boolean":"string"==typeof r?"String":void 0},IsPropertyDescriptor:function(r){if("Object"!==this.Type(r))return!1;var e={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var t in r)if(s(r,t)&&!e[t])return!1;var o=s(r,"[[Value]]"),i=s(r,"[[Get]]")||s(r,"[[Set]]");if(o&&i)throw new TypeError("Property Descriptors may not be both accessor and data descriptors");return!0},IsAccessorDescriptor:function(r){if(void 0===r)return!1;if(!this.IsPropertyDescriptor(r))throw new TypeError("Desc must be a Property Descriptor");return!(!s(r,"[[Get]]")&&!s(r,"[[Set]]"))},IsDataDescriptor:function(r){if(void 0===r)return!1;if(!this.IsPropertyDescriptor(r))throw new TypeError("Desc must be a Property Descriptor");return!(!s(r,"[[Value]]")&&!s(r,"[[Writable]]"))},IsGenericDescriptor:function(r){if(void 0===r)return!1;if(!this.IsPropertyDescriptor(r))throw new TypeError("Desc must be a Property Descriptor");return!this.IsAccessorDescriptor(r)&&!this.IsDataDescriptor(r)},FromPropertyDescriptor:function(r){if(void 0===r)return r;if(!this.IsPropertyDescriptor(r))throw new TypeError("Desc must be a Property Descriptor");if(this.IsDataDescriptor(r))return{value:r["[[Value]]"],writable:!!r["[[Writable]]"],enumerable:!!r["[[Enumerable]]"],configurable:!!r["[[Configurable]]"]};if(this.IsAccessorDescriptor(r))return{get:r["[[Get]]"],set:r["[[Set]]"],enumerable:!!r["[[Enumerable]]"],configurable:!!r["[[Configurable]]"]};throw new TypeError("FromPropertyDescriptor must be called with a fully populated Property Descriptor")},ToPropertyDescriptor:function(r){if("Object"!==this.Type(r))throw new TypeError("ToPropertyDescriptor requires an object");var e={};if(s(r,"enumerable")&&(e["[[Enumerable]]"]=this.ToBoolean(r.enumerable)),s(r,"configurable")&&(e["[[Configurable]]"]=this.ToBoolean(r.configurable)),s(r,"value")&&(e["[[Value]]"]=r.value),s(r,"writable")&&(e["[[Writable]]"]=this.ToBoolean(r.writable)),s(r,"get")){var t=r.get;if(void 0!==t&&!this.IsCallable(t))throw new TypeError("getter must be a function");e["[[Get]]"]=t}if(s(r,"set")){var o=r.set;if(void 0!==o&&!this.IsCallable(o))throw new TypeError("setter must be a function");e["[[Set]]"]=o}if((s(e,"[[Get]]")||s(e,"[[Set]]"))&&(s(e,"[[Value]]")||s(e,"[[Writable]]")))throw new TypeError("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return e}};module.exports=u; -},{"./helpers/isNaN":29,"./helpers/isFinite":30,"./helpers/sign":32,"./helpers/mod":33,"is-callable":41,"es-to-primitive/es5":40,"has":36}],35:[function(require,module,exports) { +},{"./helpers/isNaN":27,"./helpers/isFinite":28,"./helpers/sign":30,"./helpers/mod":31,"is-callable":38,"es-to-primitive/es5":37,"has":34}],33:[function(require,module,exports) { "use strict";var t=require("has"),e=RegExp.prototype.exec,r=Object.getOwnPropertyDescriptor,o=function(t){try{var r=t.lastIndex;return t.lastIndex=0,e.call(t),!0}catch(t){return!1}finally{t.lastIndex=r}},n=Object.prototype.toString,l="[object RegExp]",a="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;module.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!a)return n.call(e)===l;var c=r(e,"lastIndex");return!(!c||!t(c,"value"))&&o(e)}; -},{"has":36}],27:[function(require,module,exports) { +},{"has":34}],24:[function(require,module,exports) { "use strict";var e=require("has"),r=require("es-to-primitive/es6"),t=Object.prototype.toString,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator,n=o?Symbol.iterator:null,i=require("./helpers/isNaN"),s=require("./helpers/isFinite"),a=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1,u=require("./helpers/assign"),p=require("./helpers/sign"),c=require("./helpers/mod"),l=require("./helpers/isPrimitive"),y=parseInt,f=require("function-bind"),h=f.call(Function.call,Array.prototype.slice),b=f.call(Function.call,String.prototype.slice),T=f.call(Function.call,RegExp.prototype.test,/^0b[01]+$/i),w=f.call(Function.call,RegExp.prototype.test,/^0o[0-7]+$/i),m=f.call(Function.call,RegExp.prototype.exec),E=["…","​","￾"].join(""),v=new RegExp("["+E+"]","g"),d=f.call(Function.call,RegExp.prototype.test,v),O=/^[-+]0x[0-9a-f]+$/i,I=f.call(Function.call,RegExp.prototype.test,O),g=["\t\n\v\f\r   ᠎    ","          \u2028","\u2029\ufeff"].join(""),j=new RegExp("(^["+g+"]+)|(["+g+"]+$)","g"),S=f.call(Function.call,String.prototype.replace),P=function(e){return S(e,j,"")},C=require("./es5"),A=require("is-regex"),x=u(u({},C),{Call:function(e,r){var t=arguments.length>2?arguments[2]:[];if(!this.IsCallable(e))throw new TypeError(e+" is not a function");return e.apply(r,t)},ToPrimitive:r,ToNumber:function(e){var t=l(e)?e:r(e,Number);if("symbol"==typeof t)throw new TypeError("Cannot convert a Symbol value to a number");if("string"==typeof t){if(T(t))return this.ToNumber(y(b(t,2),2));if(w(t))return this.ToNumber(y(b(t,2),8));if(d(t)||I(t))return NaN;var o=P(t);if(o!==t)return this.ToNumber(o)}return Number(t)},ToInt16:function(e){var r=this.ToUint16(e);return r>=32768?r-65536:r},ToInt8:function(e){var r=this.ToUint8(e);return r>=128?r-256:r},ToUint8:function(e){var r=this.ToNumber(e);if(i(r)||0===r||!s(r))return 0;var t=p(r)*Math.floor(Math.abs(r));return c(t,256)},ToUint8Clamp:function(e){var r=this.ToNumber(e);if(i(r)||r<=0)return 0;if(r>=255)return 255;var t=Math.floor(e);return t+.5a?a:r},CanonicalNumericIndexString:function(e){if("[object String]"!==t.call(e))throw new TypeError("must be a string");if("-0"===e)return-0;var r=this.ToNumber(e);return this.SameValue(this.ToString(r),e)?r:void 0},RequireObjectCoercible:C.CheckObjectCoercible,IsArray:Array.isArray||function(e){return"[object Array]"===t.call(e)},IsConstructor:function(e){return"function"==typeof e&&!!e.prototype},IsExtensible:function(e){return!Object.preventExtensions||!l(e)&&Object.isExtensible(e)},IsInteger:function(e){if("number"!=typeof e||i(e)||!s(e))return!1;var r=Math.abs(e);return Math.floor(r)===r},IsPropertyKey:function(e){return"string"==typeof e||"symbol"==typeof e},IsRegExp:function(e){if(!e||"object"!=typeof e)return!1;if(o){var r=e[Symbol.match];if(void 0!==r)return C.ToBoolean(r)}return A(e)},SameValueZero:function(e,r){return e===r||i(e)&&i(r)},GetV:function(e,r){if(!this.IsPropertyKey(r))throw new TypeError("Assertion failed: IsPropertyKey(P) is not true");return this.ToObject(e)[r]},GetMethod:function(e,r){if(!this.IsPropertyKey(r))throw new TypeError("Assertion failed: IsPropertyKey(P) is not true");var t=this.GetV(e,r);if(null!=t){if(!this.IsCallable(t))throw new TypeError(r+"is not a function");return t}},Get:function(e,r){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(O) is not Object");if(!this.IsPropertyKey(r))throw new TypeError("Assertion failed: IsPropertyKey(P) is not true");return e[r]},Type:function(e){return"symbol"==typeof e?"Symbol":C.Type(e)},SpeciesConstructor:function(e,r){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(O) is not Object");var t=e.constructor;if(void 0===t)return r;if("Object"!==this.Type(t))throw new TypeError("O.constructor is not an Object");var n=o&&Symbol.species?t[Symbol.species]:void 0;if(null==n)return r;if(this.IsConstructor(n))return n;throw new TypeError("no constructor found")},CompletePropertyDescriptor:function(r){if(!this.IsPropertyDescriptor(r))throw new TypeError("Desc must be a Property Descriptor");return this.IsGenericDescriptor(r)||this.IsDataDescriptor(r)?(e(r,"[[Value]]")||(r["[[Value]]"]=void 0),e(r,"[[Writable]]")||(r["[[Writable]]"]=!1)):(e(r,"[[Get]]")||(r["[[Get]]"]=void 0),e(r,"[[Set]]")||(r["[[Set]]"]=void 0)),e(r,"[[Enumerable]]")||(r["[[Enumerable]]"]=!1),e(r,"[[Configurable]]")||(r["[[Configurable]]"]=!1),r},Set:function(e,r,t,o){if("Object"!==this.Type(e))throw new TypeError("O must be an Object");if(!this.IsPropertyKey(r))throw new TypeError("P must be a Property Key");if("Boolean"!==this.Type(o))throw new TypeError("Throw must be a Boolean");if(o)return e[r]=t,!0;try{e[r]=t}catch(e){return!1}},HasOwnProperty:function(r,t){if("Object"!==this.Type(r))throw new TypeError("O must be an Object");if(!this.IsPropertyKey(t))throw new TypeError("P must be a Property Key");return e(r,t)},HasProperty:function(e,r){if("Object"!==this.Type(e))throw new TypeError("O must be an Object");if(!this.IsPropertyKey(r))throw new TypeError("P must be a Property Key");return r in e},IsConcatSpreadable:function(e){if("Object"!==this.Type(e))return!1;if(o&&"symbol"==typeof Symbol.isConcatSpreadable){var r=this.Get(e,Symbol.isConcatSpreadable);if(void 0!==r)return this.ToBoolean(r)}return this.IsArray(e)},Invoke:function(e,r){if(!this.IsPropertyKey(r))throw new TypeError("P must be a Property Key");var t=h(arguments,2),o=this.GetV(e,r);return this.Call(o,e,t)},GetIterator:function(e,r){if(!o)throw new SyntaxError("ES.GetIterator depends on native iterator support.");var t=r;arguments.length<2&&(t=this.GetMethod(e,n));var i=this.Call(t,e);if("Object"!==this.Type(i))throw new TypeError("iterator must return an object");return i},IteratorNext:function(e,r){var t=this.Invoke(e,"next",arguments.length<2?[]:[r]);if("Object"!==this.Type(t))throw new TypeError("iterator next must return an object");return t},IteratorComplete:function(e){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(iterResult) is not Object");return this.ToBoolean(this.Get(e,"done"))},IteratorValue:function(e){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(iterResult) is not Object");return this.Get(e,"value")},IteratorStep:function(e){var r=this.IteratorNext(e);return!0!==this.IteratorComplete(r)&&r},IteratorClose:function(e,r){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(iterator) is not Object");if(!this.IsCallable(r))throw new TypeError("Assertion failed: completion is not a thunk for a Completion Record");var t,o=r,n=this.GetMethod(e,"return");if(void 0===n)return o();try{var i=this.Call(n,e,[])}catch(e){throw t=o(),o=null,e}if(t=o(),o=null,"Object"!==this.Type(i))throw new TypeError("iterator .return must return an object");return t},CreateIterResultObject:function(e,r){if("Boolean"!==this.Type(r))throw new TypeError("Assertion failed: Type(done) is not Boolean");return{value:e,done:r}},RegExpExec:function(e,r){if("Object"!==this.Type(e))throw new TypeError("R must be an Object");if("String"!==this.Type(r))throw new TypeError("S must be a String");var t=this.Get(e,"exec");if(this.IsCallable(t)){var o=this.Call(t,e,[r]);if(null===o||"Object"===this.Type(o))return o;throw new TypeError('"exec" method must return `null` or an Object')}return m(e,r)},ArraySpeciesCreate:function(e,r){if(!this.IsInteger(r)||r<0)throw new TypeError("Assertion failed: length must be an integer >= 0");var t,n=0===r?0:r;if(this.IsArray(e)&&(t=this.Get(e,"constructor"),"Object"===this.Type(t)&&o&&Symbol.species&&null===(t=this.Get(t,Symbol.species))&&(t=void 0)),void 0===t)return Array(n);if(!this.IsConstructor(t))throw new TypeError("C must be a constructor");return new t(n)},CreateDataProperty:function(e,r,t){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(O) is not Object");if(!this.IsPropertyKey(r))throw new TypeError("Assertion failed: IsPropertyKey(P) is not true");var o=Object.getOwnPropertyDescriptor(e,r),n=o||"function"!=typeof Object.isExtensible||Object.isExtensible(e);if(o&&(!o.writable||!o.configurable)||!n)return!1;var i={configurable:!0,enumerable:!0,value:t,writable:!0};return Object.defineProperty(e,r,i),!0},CreateDataPropertyOrThrow:function(e,r,t){if("Object"!==this.Type(e))throw new TypeError("Assertion failed: Type(O) is not Object");if(!this.IsPropertyKey(r))throw new TypeError("Assertion failed: IsPropertyKey(P) is not true");var o=this.CreateDataProperty(e,r,t);if(!o)throw new TypeError("unable to create data property");return o},AdvanceStringIndex:function(e,r,t){if("String"!==this.Type(e))throw new TypeError("Assertion failed: Type(S) is not String");if(!this.IsInteger(r))throw new TypeError("Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)");if(r<0||r>a)throw new RangeError("Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)");if("Boolean"!==this.Type(t))throw new TypeError("Assertion failed: Type(unicode) is not Boolean");if(!t)return r+1;if(r+1>=e.length)return r+1;var o=e.charCodeAt(r);if(o<55296||o>56319)return r+1;var n=e.charCodeAt(r+1);return n<56320||n>57343?r+1:r+2}});delete x.CheckObjectCoercible,module.exports=x; -},{"has":36,"es-to-primitive/es6":37,"./helpers/isNaN":29,"./helpers/isFinite":30,"./helpers/assign":31,"./helpers/sign":32,"./helpers/mod":33,"./helpers/isPrimitive":42,"function-bind":38,"./es5":28,"is-regex":35}],21:[function(require,module,exports) { +},{"has":34,"es-to-primitive/es6":35,"./helpers/isNaN":27,"./helpers/isFinite":28,"./helpers/assign":29,"./helpers/sign":30,"./helpers/mod":31,"./helpers/isPrimitive":40,"function-bind":36,"./es5":26,"is-regex":33}],21:[function(require,module,exports) { "use strict";module.exports=require("./es2015"); -},{"./es2015":27}],9:[function(require,module,exports) { +},{"./es2015":24}],11:[function(require,module,exports) { "use strict";var e=require("es-abstract/es6"),r=require("define-properties").supportsDescriptors;module.exports=function(t){var o=r?Object.defineProperty:function(e,r,t){e[r]=t.value};if(null===t||void 0===t)throw new TypeError("`Array.from` requires an array-like object, not `null` or `undefined`");var n,a,i=e.ToObject(t);if(void 0!==arguments[1]){if(n=arguments[1],!e.IsCallable(n))throw new TypeError("When provided, the second argument to `Array.from` must be a function");arguments.length>2&&(a=arguments[2])}for(var l,u=e.ToLength(i.length),s=e.IsCallable(this)?e.ToObject(new this(u)):new Array(u),f=0;f=0||(o=void 0===o?n[e].length:o,n[e].splice(o,0,t))},t[u]=function(e,t){var o;void 0!==e?(void 0===t&&(n[e]=[]),-1!==(o=r(e).indexOf(t))&&r(e).splice(o,1)):n={}},t[o]=function(){var n,o,i,s,a,u,d;for(o=(n=L(arguments)).shift(),e||(n[0]=m(n[0],w(o))),(s=t["on"+o])&&s.apply(t,n),i=a=0,u=(d=r(o).concat(r("*"))).length;a2)throw"invalid hook";return T[d](t,e,n)},T[e]=function(t,n){if(t.length<2||t.length>3)throw"invalid hook";return T[d](e,t,n)},T.enable=function(){window[h]=p,s&&(window[i]=l)},T.disable=function(){window[h]=T[h],s&&(window[i]=s)},y=T.headers=function(e,t){var n,r,o,i,s,a,u,d,f;switch(null==t&&(t={}),void 0===e?"undefined":R(e)){case"object":for(o in r=[],e)s=e[o],i=o.toLowerCase(),r.push(i+":\t"+s);return r.join("\n");case"string":for(u=0,d=(r=e.split("\n")).length;ui&&i<4;)p[f]=++i,1===i&&p[o]("loadstart",{}),2===i&&H(),4===i&&(H(),j()),p[o]("readystatechange",{}),4===i&&setTimeout(s,0)},s=function(){v||p[o]("load",{}),p[o]("loadend",{}),v&&(p[f]=0)},i=0,S=function(t){var n,r;4===t?(n=T.listeners(e),(r=function(){var e;return n.length?2===(e=n.shift()).length?(e(C,O),r()):3===e.length&&C.async?e(C,O,r):r():a(4)})()):a(t)},p=(C={}).xhr=r(),U.onreadystatechange=function(e){try{2===U[f]&&L()}catch(e){}4===U[f]&&(M=!1,L(),w()),S(U[f])},g=function(){v=!0},p[d]("error",g),p[d]("timeout",g),p[d]("abort",g),p[d]("progress",function(){i<3?S(3):p[o]("readystatechange",{})}),("withCredentials"in U||T.addWithCredentials)&&(p.withCredentials=!1),p.status=0;for(N=0,k=(q=n.concat(c)).length;N1)for(var n=1;n=0||(o=o===t?r[e].length:o,r[e].splice(o,0,n))},n[u]=function(e,n){var o;e!==t?(n===t&&(r[e]=[]),-1!==(o=a(e).indexOf(n))&&a(e).splice(o,1)):r={}},n[o]=function(){var t,r,o,s,i,u,f;for(r=(t=T(arguments)).shift(),e||(t[0]=b(t[0],x(r))),(s=n["on"+r])&&s.apply(n,t),o=i=0,u=(f=a(r).concat(a("*"))).length;i2)throw"invalid hook";return D[f]("before",e,t)},D.after=function(e,t){if(e.length<2||e.length>3)throw"invalid hook";return D[f]("after",e,t)},D.enable=function(){l[y]=h,"function"==typeof d&&(l.fetch=d),s&&(l.FormData=p)},D.disable=function(){l[y]=D[y],l.fetch=D.fetch,s&&(l.FormData=s)},v=D.headers=function(e,t){var n,r,o,a,s,i,u,f,c;switch(null==t&&(t={}),typeof e){case"object":for(o in r=[],e)s=e[o],a=o.toLowerCase(),r.push(a+":\t"+s);return r.join("\n")+"\n";case"string":for(u=0,f=(r=e.split("\n")).length;ue&&e<4;)i.readyState=++e,1===e&&i[o]("loadstart",{}),2===e&&O(),4===e&&(O(),N()),i[o]("readystatechange",{}),4===e&&(!1===g.async?t():setTimeout(t,0))},t=function(){u||i[o]("load",{}),i[o]("loadend",{}),u&&(i.readyState=0)},e=0,x=function(e){var t,n;4===e?(t=D.listeners("after"),(n=function(){var e;return t.length?2===(e=t.shift()).length?(e(g,m),n()):3===e.length&&g.async?e(g,m,n):n():a(4)})()):a(e)},i=(g={}).xhr=r(),S.onreadystatechange=function(e){try{2===S.readyState&&h()}catch(e){}4===S.readyState&&(R=!1,h(),d()),x(S.readyState)},l=function(){u=!0},i[f]("error",l),i[f]("timeout",l),i[f]("abort",l),i[f]("progress",function(){e<3?x(3):i[o]("readystatechange",{})}),("withCredentials"in S||D.addWithCredentials)&&(i.withCredentials=!1),i.status=0;for(A=0,k=(H=n.concat(c)).length;A=1e6&&(p=0);for(var r=String(++p);r.length<6;)r="0"+r;return"xdomain-"+r},exports.slice=function(r,o){return Array.prototype.slice.call(r,o)};var l=function(r){return function(o){o="xdomain ("+exports.currentOrigin+"): "+o,exports.globalEmitter.fire(r,o),("log"!==r||e.debug)&&(r in e?e[r](o):r in console?console[r](o):"warn"===r&&alert(o))}};exports.log=l("log"),exports.warn=l("warn"),exports.instOf=function(r,o){return o in window&&r instanceof window[o]},exports.parseUrl=function(r){return/^((https?:)?\/\/[^\/\?]+)(\/.*)?/.test(r)?{origin:(RegExp.$2?"":i.protocol)+RegExp.$1,path:RegExp.$3}:(exports.log("failed to parse absolute url: "+r),null)},e.parseUrl=exports.parseUrl,exports.toRegExp=function(r){if(r instanceof RegExp)return r;var o=r.toString().replace(/\W/g,function(r){return"\\"+r}).replace(/\\\*/g,".*");return new RegExp("^"+o+"$")},exports.strip=function(r){var t={};for(var e in r)if("returnValue"!==e){var n=r[e],i=void 0===n?"undefined":o(n);"function"!==i&&"object"!==i&&(t[e]=n)}return t}; -},{"../vendor/xhook":4,"./config":20}],25:[function(require,module,exports) { -var e=require("../vendor/xhook"),t=require("./config"),r=require("./util"),a=r.log,o=r.warn,s=r.toRegExp,n=r.strip,i=r.parseUrl,d=r.COMPAT_VERSION,u=!1,l={};exports.addMasters=function(e){if(window!==window.parent)for(var t in u||(u=!0,a("now handling incoming sockets..."),window.parent.postMessage("XDPING_"+d,"*")),e){var r=e[t];"file://"===t&&"*"!==r&&(o("file protocol only supports the * path"),r="*"),a("adding master: "+t),l[t]=r}else o("slaves must be in an iframe")},t.masters=exports.addMasters,exports.handleSocket=function(t,r){if(u){"null"!==t&&"file:"!==t||(t="file://"),a('handle socket for "'+t+'"');var d=null;for(var p in l){var f=l[p];try{if(s(p).test(t)){d=s(f);break}}catch(e){}}d?(r.once("request",function(t){a("request: "+t.method+" "+t.url);var s=i(t.url);if(!s||!d.test(s.path))return o("blocked request to path: '"+s.path+"' by regex: "+d),void r.close();var u=new XMLHttpRequest;for(var l in u.open(t.method,t.url),u.addEventListener("*",function(e){return r.emit("xhr-event",e.type,n(e))}),u.upload&&u.upload.addEventListener("*",function(e){return r.emit("xhr-upload-event",e.type,n(e))}),u.onreadystatechange=function(){if(4===u.readyState){var t={status:u.status,statusText:u.statusText,data:u.response,headers:e.headers(u.getAllResponseHeaders())};try{t.text=u.responseText}catch(e){}return r.emit("response",t)}},r.once("abort",function(){return u.abort()}),t.withCredentials&&(u.withCredentials=!0,t.slaveCookie&&(t.headers[t.slaveCookie]=document.cookie)),t.timeout&&(u.timeout=t.timeout),t.type&&(u.responseType=t.type),t.headers){var p=t.headers[l];u.setRequestHeader(l,p)}if(t.body instanceof Array&&"XD_FD"===t.body[0]){var f=new e.FormData,c=t.body[1];Array.from(c).forEach(function(e){if("XD_BLOB"===args[0]&&4===args.length){var t=new Blob([args[2]],{type:args[3]});args=args[1],args[1]=t}f.append.apply(f,args)}),t.body=f}u.send(t.body||null)}),a("slave listening for requests on socket: "+r.id)):o("blocked request from: '"+t+"'")}}; -},{"../vendor/xhook":4,"./config":20,"./util":17}],18:[function(require,module,exports) { -var e=require("../vendor/xhook"),t=require("./config"),i=require("./util"),r=i.globalEmitter,n=i.log,o=i.warn,s=i.COMPAT_VERSION,a=require("./slave"),c=a.handleSocket,f="XD_CHECK",u=100,l={},d=!0;exports.createSocket=function(i,s){var a=!1,c=e.EventEmitter(!0);l[i]=c,c.id=i,c.once("close",function(){c.destroy(),c.close()});var v=[];c.emit=function(){for(var e=arguments.length,t=Array(e),r=0;r "+t[1]:"";n("send socket: "+i+": "+t[0]+o),t.unshift(i),a?m(t):v.push(t)};var m=function(e){d&&(e=JSON.stringify(e)),s.postMessage(e,"*")};c.close=function(){c.emit("close"),n("close socket: "+i),l[i]=null},c.once(f,function(e){for(d="string"==typeof e,a=c.ready=!0,c.emit("ready"),n("ready socket: "+i+" (emit #"+v.length+" pending)");v.length;)m(v.shift())});var g=0;return setTimeout(function e(){s.postMessage([i,f,{}],"*"),a||(g++>=t.timeout/u?(o("Timeout waiting on iframe socket"),r.fire("timeout"),c.fire("abort")):(n("check again in "+u+"ms..."),setTimeout(e,u)))}),n("new socket: "+i),c},exports.initialise=function(){var e=function(e){var t=e.data;if("string"==typeof t){if(/^XDPING(_(V\d+))?$/.test(t)&&RegExp.$2!==s)return o("your master is not compatible with your slave, check your xdomain.js version");if(/^xdomain-/.test(t))t=t.split(",");else if(d)try{t=JSON.parse(t)}catch(e){return}}if(t instanceof Array){var i=t.shift();if(/^xdomain-/.test(i)){var r=l[i];if(null!==r){if(void 0===r){if(!c)return;r=exports.createSocket(i,e.source),c(e.origin,r)}var a="string"==typeof t[1]?" -> "+t[1]:"";n("receive socket: "+i+": "+t[0]+a),r.fire.apply(r,t)}}}};return document.addEventListener?window.addEventListener("message",e):window.attachEvent("onmessage",e)}; -},{"../vendor/xhook":4,"./config":20,"./util":17,"./slave":25}],24:[function(require,module,exports) { -var r=function(){return function(r,e){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return function(r,e){var n=[],t=!0,i=!1,o=void 0;try{for(var a,u=r[Symbol.iterator]();!(t=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);t=!0);}catch(r){i=!0,o=r}finally{try{!t&&u.return&&u.return()}finally{if(i)throw o}}return n}(r,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e=require("../vendor/xhook"),n=require("./config"),t=require("./util"),i=t.currentOrigin,o=t.log,a=t.warn,u=t.parseUrl,s=t.guid,c=t.strip,d=t.instOf,l=require("./socket"),f=l.createSocket,v=!1,y={};exports.addSlaves=function(r){for(var n in v||(v=!0,"addWithCredentials"in e||(e.addWithCredentials=!0),e.before(p)),r){var t=r[n];o("adding slave: "+n),y[n]=t}},n.slaves=exports.addSlaves;var p=function(r,e){var n=u(r.url);if(n&&n.origin!==i){if(!y[n.origin])return n&&o("no slave matching: '"+n.origin+"'"),void e();if(o("proxying request to slave: '"+n.origin+"'"),!1===r.async)return a("sync not supported because postmessage is async"),void e();var t=m(n.origin,y[n.origin]),c=f(s(),t);c.on("response",function(r){e(r),c.close()}),r.xhr.addEventListener("abort",function(){return c.emit("abort")}),c.ready?x(r,c):c.once("ready",function(){return x(r,c)})}else e()},h={},m=function(r,e){if(h[r])return h[r];var n=document.createElement("iframe");return n.id=n.name=s(),o("creating iframe "+n.id),n.src=""+r+e,n.setAttribute("style","display:none;"),document.body.appendChild(n),h[r]=n.contentWindow},b=function(e,n){var t=Array.from(e),i=r(t,2),o=(i[0],i[1]),a=d(o,"Blob"),u=d(o,"File");if(!a&&!u)return 0;var s=new FileReader;return s.onload=function(){return e[1]=null,u&&(e[2]=o.name),n(["XD_BLOB",e,this.result,o.type])},s.readAsArrayBuffer(o),1},g=function(e,n){e.forEach(function(n,t){var i=Array.from(n),o=r(i,2),a=o[0],u=o[1];d(u,"FileList")&&(e.splice(t,1),Array.from(u).forEach(function(r){e.splice(t,0,[a,r])}))});var t=0;e.forEach(function(r,i){t+=b(r,function(r){e[i]=r,0==--t&&n()})}),0===t&&n()},x=function(r,e){e.on("xhr-event",function(){return r.xhr.dispatchEvent.apply(null,arguments)}),e.on("xhr-upload-event",function(){return r.xhr.upload.dispatchEvent.apply(null,arguments)});var t=c(r);t.headers=r.headers,r.withCredentials&&(n.cookies.master&&(t.headers[n.cookies.master]=document.cookie),t.slaveCookie=n.cookies.slave);var i=function(){return e.emit("request",t)};if(r.body&&(t.body=r.body,d(t.body,"FormData"))){var o=t.body.entries;return t.body=["XD_FD",o],void g(o,i)}i()}; -},{"../vendor/xhook":4,"./config":20,"./util":17,"./socket":18}],19:[function(require,module,exports) { +var r=(0,eval)("this"),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},t=require("xhook").xhook,e=require("./config");exports.COMPAT_VERSION="V1";var n=window,i=n.location;exports.currentOrigin=i.protocol+"//"+i.host,e.origin=exports.currentOrigin,exports.globalEmitter=t.EventEmitter(!0),exports.console=window.console||{};var p=0;exports.guid=function(){p>=1e6&&(p=0);for(var r=String(++p);r.length<6;)r="0"+r;return"xdomain-"+r},exports.slice=function(r,o){return Array.prototype.slice.call(r,o)};var l=function(r){return function(o){o="xdomain ("+exports.currentOrigin+"): "+o,exports.globalEmitter.fire(r,o),("log"!==r||e.debug)&&(r in e?e[r](o):r in console?console[r](o):"warn"===r&&alert(o))}};exports.log=l("log"),exports.warn=l("warn"),exports.instOf=function(r,o){return o in window&&r instanceof window[o]},exports.parseUrl=function(r){return/^((https?:)?\/\/[^\/\?]+)(\/.*)?/.test(r)?{origin:(RegExp.$2?"":i.protocol)+RegExp.$1,path:RegExp.$3}:(exports.log("failed to parse absolute url: "+r),null)},e.parseUrl=exports.parseUrl,exports.toRegExp=function(r){if(r instanceof RegExp)return r;var o=r.toString().replace(/\W/g,function(r){return"\\"+r}).replace(/\\\*/g,".*");return new RegExp("^"+o+"$")},exports.strip=function(r){var t={};for(var e in r)if("returnValue"!==e){var n=r[e],i=void 0===n?"undefined":o(n);"function"!==i&&"object"!==i&&(t[e]=n)}return t}; +},{"xhook":5,"./config":9}],18:[function(require,module,exports) { +var e=require("xhook").xhook,t=require("./config"),r=require("./util"),a=r.log,o=r.warn,s=r.toRegExp,n=r.strip,i=r.parseUrl,d=r.COMPAT_VERSION,u=!1,l={};exports.addMasters=function(e){if(window!==window.parent)for(var t in u||(u=!0,a("now handling incoming sockets..."),window.parent.postMessage("XDPING_"+d,"*")),e){var r=e[t];"file://"===t&&"*"!==r&&(o("file protocol only supports the * path"),r="*"),a("adding master: "+t),l[t]=r}else o("slaves must be in an iframe")},t.masters=exports.addMasters,exports.handleSocket=function(t,r){if(u){"null"!==t&&"file:"!==t||(t="file://"),a('handle socket for "'+t+'"');var d=null;for(var p in l){var f=l[p];try{if(s(p).test(t)){d=s(f);break}}catch(e){}}d?(r.once("request",function(t){a("request: "+t.method+" "+t.url);var s=i(t.url);if(!s||!d.test(s.path))return o("blocked request to path: '"+s.path+"' by regex: "+d),void r.close();var u=new XMLHttpRequest;for(var l in u.open(t.method,t.url),u.addEventListener("*",function(e){return r.emit("xhr-event",e.type,n(e))}),u.upload&&u.upload.addEventListener("*",function(e){return r.emit("xhr-upload-event",e.type,n(e))}),u.onreadystatechange=function(){if(4===u.readyState){var t={status:u.status,statusText:u.statusText,data:u.response,headers:e.headers(u.getAllResponseHeaders())};try{t.text=u.responseText}catch(e){}return r.emit("response",t)}},r.once("abort",function(){return u.abort()}),t.withCredentials&&(u.withCredentials=!0,t.slaveCookie&&(t.headers[t.slaveCookie]=document.cookie)),t.timeout&&(u.timeout=t.timeout),t.type&&(u.responseType=t.type),t.headers){var p=t.headers[l];u.setRequestHeader(l,p)}if(t.body instanceof Array&&"XD_FD"===t.body[0]){var f=new e.FormData,c=t.body[1];Array.from(c).forEach(function(e){if("XD_BLOB"===args[0]&&4===args.length){var t=new Blob([args[2]],{type:args[3]});args=args[1],args[1]=t}f.append.apply(f,args)}),t.body=f}u.send(t.body||null)}),a("slave listening for requests on socket: "+r.id)):o("blocked request from: '"+t+"'")}}; +},{"xhook":5,"./config":9,"./util":6}],7:[function(require,module,exports) { +var e=require("xhook").xhook,t=require("./config"),i=require("./util"),r=i.globalEmitter,o=i.log,n=i.warn,s=i.COMPAT_VERSION,a=require("./slave"),c=a.handleSocket,f="XD_CHECK",u=100,l={},d=!0;exports.createSocket=function(i,s){var a=!1,c=e.EventEmitter(!0);l[i]=c,c.id=i,c.once("close",function(){c.destroy(),c.close()});var m=[];c.emit=function(){for(var e=arguments.length,t=Array(e),r=0;r "+t[1]:"";o("send socket: "+i+": "+t[0]+n),t.unshift(i),a?v(t):m.push(t)};var v=function(e){d&&(e=JSON.stringify(e)),s.postMessage(e,"*")};c.close=function(){c.emit("close"),o("close socket: "+i),l[i]=null},c.once(f,function(e){for(d="string"==typeof e,a=c.ready=!0,c.emit("ready"),o("ready socket: "+i+" (emit #"+m.length+" pending)");m.length;)v(m.shift())});var g=0;return setTimeout(function e(){s.postMessage([i,f,{}],"*"),a||(g++>=t.timeout/u?(n("Timeout waiting on iframe socket"),r.fire("timeout"),c.fire("abort")):(o("check again in "+u+"ms..."),setTimeout(e,u)))}),o("new socket: "+i),c},exports.initialise=function(){var e=function(e){var t=e.data;if("string"==typeof t){if(/^XDPING(_(V\d+))?$/.test(t)&&RegExp.$2!==s)return n("your master is not compatible with your slave, check your xdomain.js version");if(/^xdomain-/.test(t))t=t.split(",");else if(d)try{t=JSON.parse(t)}catch(e){return}}if(t instanceof Array){var i=t.shift();if(/^xdomain-/.test(i)){var r=l[i];if(null!==r){if(void 0===r){if(!c)return;r=exports.createSocket(i,e.source),c(e.origin,r)}var a="string"==typeof t[1]?" -> "+t[1]:"";o("receive socket: "+i+": "+t[0]+a),r.fire.apply(r,t)}}}};return document.addEventListener?window.addEventListener("message",e):window.attachEvent("onmessage",e)}; +},{"xhook":5,"./config":9,"./util":6,"./slave":18}],17:[function(require,module,exports) { +var r=function(){return function(r,e){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return function(r,e){var n=[],t=!0,i=!1,o=void 0;try{for(var a,u=r[Symbol.iterator]();!(t=(a=u.next()).done)&&(n.push(a.value),!e||n.length!==e);t=!0);}catch(r){i=!0,o=r}finally{try{!t&&u.return&&u.return()}finally{if(i)throw o}}return n}(r,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),e=require("xhook").xhook,n=require("./config"),t=require("./util"),i=t.currentOrigin,o=t.log,a=t.warn,u=t.parseUrl,s=t.guid,c=t.strip,d=t.instOf,l=require("./socket"),f=l.createSocket,v=!1,y={};exports.addSlaves=function(r){for(var n in v||(v=!0,"addWithCredentials"in e||(e.addWithCredentials=!0),e.before(h)),r){var t=r[n];o("adding slave: "+n),y[n]=t}},n.slaves=exports.addSlaves;var h=function(r,e){var n=u(r.url);if(n&&n.origin!==i){if(!y[n.origin])return n&&o("no slave matching: '"+n.origin+"'"),void e();if(o("proxying request to slave: '"+n.origin+"'"),!1===r.async)return a("sync not supported because postmessage is async"),void e();var t=m(n.origin,y[n.origin]),c=f(s(),t);c.on("response",function(r){e(r),c.close()}),r.xhr.addEventListener("abort",function(){return c.emit("abort")}),c.ready?x(r,c):c.once("ready",function(){return x(r,c)})}else e()},p={},m=function(r,e){if(p[r])return p[r];var n=document.createElement("iframe");return n.id=n.name=s(),o("creating iframe "+n.id),n.src=""+r+e,n.setAttribute("style","display:none;"),document.body.appendChild(n),p[r]=n.contentWindow},b=function(e,n){var t=Array.from(e),i=r(t,2),o=(i[0],i[1]),a=d(o,"Blob"),u=d(o,"File");if(!a&&!u)return 0;var s=new FileReader;return s.onload=function(){return e[1]=null,u&&(e[2]=o.name),n(["XD_BLOB",e,this.result,o.type])},s.readAsArrayBuffer(o),1},g=function(e,n){e.forEach(function(n,t){var i=Array.from(n),o=r(i,2),a=o[0],u=o[1];d(u,"FileList")&&(e.splice(t,1),Array.from(u).forEach(function(r){e.splice(t,0,[a,r])}))});var t=0;e.forEach(function(r,i){t+=b(r,function(r){e[i]=r,0==--t&&n()})}),0===t&&n()},x=function(r,e){e.on("xhr-event",function(){return r.xhr.dispatchEvent.apply(null,arguments)}),e.on("xhr-upload-event",function(){return r.xhr.upload.dispatchEvent.apply(null,arguments)});var t=c(r);t.headers=r.headers,r.withCredentials&&(n.cookies.master&&(t.headers[n.cookies.master]=document.cookie),t.slaveCookie=n.cookies.slave);var i=function(){return e.emit("request",t)};if(r.body&&(t.body=r.body,d(t.body,"FormData"))){var o=t.body.entries;return t.body=["XD_FD",o],void g(o,i)}i()}; +},{"xhook":5,"./config":9,"./util":6,"./socket":7}],8:[function(require,module,exports) { var r=require("./config"),i=require("./util"),a=i.parseUrl,e=require("./master"),t=e.addSlaves,n=require("./slave"),o=n.addMasters,f=window,s=f.document;exports.initialise=function(){var i={debug:function(i){r.debug="false"!==i},slave:function(r){var i=a(r);if(i){var e={};e[i.origin]=i.path,t(e)}},master:function(r){var i=void 0;if(i="*"===r?{origin:"*",path:"*"}:"file://*"===r?{origin:"file://",path:"*"}:a(r)){var e={};e[i.origin]=i.path.replace(/^\//,"")?i.path:"*",o(e)}}};Array.from(s.getElementsByTagName("script")).forEach(function(r){/xdomain/.test(r.src)&&["","data-"].forEach(function(a){for(var e in i){var t=r.getAttribute(a+e);if(t)(0,i[e])(t)}})})}; -},{"./config":20,"./util":17,"./master":24,"./slave":25}],3:[function(require,module,exports) { +},{"./config":9,"./util":6,"./master":17,"./slave":18}],3:[function(require,module,exports) { "use strict";var i=require("./lib/util"),r=i.warn;["postMessage","JSON"].forEach(function(i){window[i]||r("requires '"+i+"' and this browser does not support it")});var e=require("./lib/socket");e.initialise();var s=require("./lib/script");s.initialise();var t=require("./lib/config");module.exports=t; -},{"./lib/util":17,"./lib/socket":18,"./lib/script":19,"./lib/config":20}],1:[function(require,module,exports) { -Array.from||(Array.from=require("array.from").getPolyfill());var r=require("./vendor/xhook");window.xhook=r;var o=require("./index");window.xdomain=o; -},{"array.from":5,"./vendor/xhook":4,"./index":3}]},{},[1]) \ No newline at end of file +},{"./lib/util":6,"./lib/socket":7,"./lib/script":8,"./lib/config":9}],1:[function(require,module,exports) { +Array.from||(Array.from=require("array.from").getPolyfill());var r=require("xhook").xhook;window.xhook=r;var o=require("./index");window.xdomain=o; +},{"array.from":4,"xhook":5,"./index":3}]},{},[1]) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 74c7c3f..7d71bfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "xdomain", - "version": "0.8.0", + "version": "0.8.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -40,8 +40,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "argparse": { @@ -50,7 +50,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -83,8 +83,8 @@ "integrity": "sha1-y1hqrZIGfzQSKfQeDtZDKB26Vrc=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1" } }, "asn1.js": { @@ -93,9 +93,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -137,12 +137,12 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000824", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "browserslist": { @@ -151,8 +151,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000824", - "electron-to-chromium": "1.3.42" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -161,11 +161,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -188,10 +188,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -206,7 +206,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -215,7 +215,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -226,9 +226,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -237,11 +237,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -250,7 +250,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -261,25 +261,25 @@ "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.5", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" }, "dependencies": { "source-map": { @@ -296,14 +296,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "source-map": { @@ -320,9 +320,9 @@ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { @@ -331,9 +331,9 @@ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { @@ -342,10 +342,10 @@ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -354,10 +354,10 @@ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -366,9 +366,9 @@ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -377,11 +377,11 @@ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -390,8 +390,8 @@ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -400,8 +400,8 @@ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -410,8 +410,8 @@ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -420,9 +420,9 @@ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -431,11 +431,11 @@ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -444,12 +444,12 @@ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -458,8 +458,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-messages": { @@ -468,7 +468,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -477,7 +477,7 @@ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-syntax-async-functions": { @@ -510,9 +510,9 @@ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -521,7 +521,7 @@ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -530,7 +530,7 @@ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -539,11 +539,11 @@ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -552,15 +552,15 @@ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -569,8 +569,8 @@ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -579,7 +579,7 @@ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -588,8 +588,8 @@ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -598,7 +598,7 @@ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -607,9 +607,9 @@ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -618,7 +618,7 @@ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -627,9 +627,9 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -638,10 +638,10 @@ "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -650,9 +650,9 @@ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -661,9 +661,9 @@ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -672,8 +672,8 @@ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -682,12 +682,12 @@ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -696,8 +696,8 @@ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -706,7 +706,7 @@ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -715,9 +715,9 @@ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -726,7 +726,7 @@ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -735,7 +735,7 @@ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -744,9 +744,9 @@ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -755,9 +755,9 @@ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { @@ -766,9 +766,9 @@ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", "dev": true, "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { @@ -777,7 +777,7 @@ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { @@ -786,8 +786,8 @@ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-preset-env": { @@ -796,36 +796,36 @@ "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.4", - "semver": "5.5.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-register": { @@ -834,13 +834,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.4", - "home-or-tmp": "2.0.0", - "lodash": "4.17.5", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -849,8 +849,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.4", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -859,11 +859,11 @@ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.5" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -872,15 +872,15 @@ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { @@ -889,10 +889,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -907,9 +907,9 @@ "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash.clone": "4.5.0" + "babel-runtime": "^6.11.6", + "babel-types": "^6.15.0", + "lodash.clone": "^4.5.0" } }, "balanced-match": { @@ -924,13 +924,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -939,7 +939,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } } } @@ -986,7 +986,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -996,18 +996,18 @@ "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "define-property": "1.0.0", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "kind-of": "6.0.2", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "kind-of": "^6.0.2", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1016,7 +1016,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1025,7 +1025,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1036,10 +1036,10 @@ "integrity": "sha512-PscWJn5IGjcK5g5lqEeRPYJ5efZk93YbopLu6UXZcb9dPZUfMN/UMyyT/tddpi7A9yIDM9TEdCOA3A4WGST1hg==", "dev": true, "requires": { - "quote-stream": "1.0.2", - "resolve": "1.7.0", - "static-module": "2.2.3", - "through2": "2.0.3" + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" } }, "brorand": { @@ -1054,12 +1054,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -1068,9 +1068,9 @@ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1079,9 +1079,9 @@ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1090,8 +1090,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1100,13 +1100,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -1115,7 +1115,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" }, "dependencies": { "pako": { @@ -1132,8 +1132,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000824", - "electron-to-chromium": "1.3.42" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { @@ -1142,9 +1142,9 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.2.3", - "ieee754": "1.1.11", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-equal": { @@ -1177,15 +1177,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "caniuse-api": { @@ -1194,10 +1194,10 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000824", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -1206,8 +1206,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000824", - "electron-to-chromium": "1.3.42" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -1224,23 +1224,15 @@ "integrity": "sha512-KcgeAvVkpzN05Mjiyz5vf0le5AWRwfRGqGkKXWWsdrLQd4EIBevReSy7mYCdwSq7MqKrmJ0lEQEkUQE2VspRRw==", "dev": true }, - "chainsaw": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", - "integrity": "sha1-EaBRAtHEx4W20EFdM21aOhYSkT4=", - "requires": { - "traverse": "0.3.9" - } - }, "chalk": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1249,7 +1241,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1258,7 +1250,7 @@ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1269,18 +1261,18 @@ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.1", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "cipher-base": { @@ -1289,8 +1281,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "clap": { @@ -1299,7 +1291,7 @@ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" }, "dependencies": { "chalk": { @@ -1308,11 +1300,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "strip-ansi": { @@ -1321,7 +1313,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -1332,10 +1324,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1344,7 +1336,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1353,7 +1345,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1362,7 +1354,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1373,7 +1365,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -1382,7 +1374,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -1393,9 +1385,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -1424,7 +1416,7 @@ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "collection-visit": { @@ -1433,8 +1425,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color": { @@ -1443,9 +1435,9 @@ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.4", - "color-convert": "1.9.1", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -1454,7 +1446,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -1469,7 +1461,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -1478,9 +1470,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.1" + "has": "^1.0.1" } }, "colors": { @@ -1519,10 +1511,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config-chain": { @@ -1531,8 +1523,8 @@ "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "dev": true, "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "console-browserify": { @@ -1541,7 +1533,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -1580,8 +1572,8 @@ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -1590,10 +1582,10 @@ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -1602,12 +1594,12 @@ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -1616,11 +1608,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.4", - "path-key": "2.0.1", - "semver": "5.5.0", - "shebang-command": "1.2.0", - "which": "1.3.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto-browserify": { @@ -1629,17 +1621,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.0", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "css-color-names": { @@ -1654,10 +1646,10 @@ "integrity": "sha1-b5MZaqrnN2ZuoQNqjLFKj8t6kjE=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "^1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "^1.0.1" }, "dependencies": { "domutils": { @@ -1666,8 +1658,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } } } @@ -1684,8 +1676,8 @@ "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", "dev": true, "requires": { - "mdn-data": "1.1.0", - "source-map": "0.5.7" + "mdn-data": "^1.0.0", + "source-map": "^0.5.3" }, "dependencies": { "source-map": { @@ -1714,38 +1706,38 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { "chalk": { @@ -1754,11 +1746,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -1781,10 +1773,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -1799,7 +1791,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -1808,7 +1800,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -1819,8 +1811,8 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" }, "dependencies": { "source-map": { @@ -1843,8 +1835,8 @@ "integrity": "sha512-gpacYo8FBZh3INBp2KOtrQp9kCO5faHvOmEZx3/cZTr3Mm8/kAYs7/Ws3E3OAH0ApBNK6Y6N+7+Dka2Zn2Fldw==", "dev": true, "requires": { - "bindings": "1.2.1", - "nan": "2.10.0" + "bindings": "~1.2.1", + "nan": "^2.0.7" } }, "debug": { @@ -1880,8 +1872,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -1890,8 +1882,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" } }, "defined": { @@ -1912,8 +1904,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -1928,7 +1920,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diffie-hellman": { @@ -1937,9 +1929,9 @@ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dom-serializer": { @@ -1948,8 +1940,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -1978,7 +1970,7 @@ "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -1987,8 +1979,8 @@ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dotenv": { @@ -2003,7 +1995,7 @@ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.2" } }, "editorconfig": { @@ -2012,11 +2004,11 @@ "integrity": "sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ==", "dev": true, "requires": { - "bluebird": "3.5.1", - "commander": "2.15.1", - "lru-cache": "3.2.0", - "semver": "5.5.0", - "sigmund": "1.0.1" + "bluebird": "^3.0.5", + "commander": "^2.9.0", + "lru-cache": "^3.2.0", + "semver": "^5.1.0", + "sigmund": "^1.0.1" } }, "ee-first": { @@ -2037,13 +2029,13 @@ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "encodeurl": { @@ -2064,7 +2056,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "es-abstract": { @@ -2073,11 +2065,11 @@ "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", "dev": true, "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -2086,9 +2078,9 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "escape-html": { @@ -2109,11 +2101,11 @@ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -2160,8 +2152,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "expand-brackets": { @@ -2170,13 +2162,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -2185,7 +2177,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -2194,7 +2186,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -2203,7 +2195,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2212,7 +2204,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2223,7 +2215,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2232,7 +2224,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2243,9 +2235,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -2262,8 +2254,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2272,7 +2264,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2283,14 +2275,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -2299,7 +2291,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -2308,7 +2300,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -2319,10 +2311,10 @@ "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", "dev": true, "requires": { - "acorn": "5.5.3", - "foreach": "2.0.5", + "acorn": "^5.0.0", + "foreach": "^2.0.5", "isarray": "0.0.1", - "object-keys": "1.0.11" + "object-keys": "^1.0.6" }, "dependencies": { "isarray": { @@ -2351,10 +2343,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -2363,7 +2355,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -2392,7 +2384,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -2414,8 +2406,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.3.0", + "node-pre-gyp": "^0.6.39" }, "dependencies": { "abbrev": { @@ -2516,6 +2508,7 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, + "optional": true, "requires": { "inherits": "2.0.3" } @@ -2543,7 +2536,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true + "dev": true, + "optional": true }, "caseless": { "version": "0.12.0", @@ -2563,13 +2557,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, + "optional": true, "requires": { "delayed-stream": "1.0.0" } @@ -2584,19 +2580,22 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "dev": true, + "optional": true }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, + "optional": true, "requires": { "boom": "2.10.1" } @@ -2641,7 +2640,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "dev": true, + "optional": true }, "delegates": { "version": "1.0.0", @@ -2678,7 +2678,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true + "dev": true, + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -2815,6 +2816,7 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, + "optional": true, "requires": { "boom": "2.10.1", "cryptiles": "2.0.5", @@ -2868,6 +2870,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -2883,7 +2886,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "dev": true, + "optional": true }, "isstream": { "version": "0.1.2", @@ -2966,13 +2970,15 @@ "version": "1.27.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true + "dev": true, + "optional": true }, "mime-types": { "version": "2.1.15", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, + "optional": true, "requires": { "mime-db": "1.27.0" } @@ -3056,7 +3062,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "oauth-sign": { "version": "0.8.2", @@ -3123,7 +3130,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true + "dev": true, + "optional": true }, "punycode": { "version": "1.4.1", @@ -3166,6 +3174,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, + "optional": true, "requires": { "buffer-shims": "1.0.0", "core-util-is": "1.0.2", @@ -3220,7 +3229,8 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true + "dev": true, + "optional": true }, "semver": { "version": "5.3.0", @@ -3248,6 +3258,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, + "optional": true, "requires": { "hoek": "2.16.3" } @@ -3284,6 +3295,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -3295,6 +3307,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, + "optional": true, "requires": { "safe-buffer": "5.0.1" } @@ -3327,6 +3340,7 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, + "optional": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -3388,7 +3402,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "dev": true, + "optional": true }, "uuid": { "version": "3.0.1", @@ -3449,12 +3464,12 @@ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -3463,8 +3478,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -3473,7 +3488,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -3496,8 +3511,8 @@ "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", "dev": true, "requires": { - "brfs": "1.5.0", - "unicode-trie": "0.3.1" + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" } }, "has": { @@ -3506,7 +3521,7 @@ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.0.2" } }, "has-ansi": { @@ -3515,7 +3530,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { @@ -3530,9 +3545,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -3541,8 +3556,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -3551,7 +3566,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3562,7 +3577,7 @@ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1" } }, "hash.js": { @@ -3571,16 +3586,8 @@ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" - } - }, - "hashish": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", - "integrity": "sha1-bWC8b/r3Ebav1g5CbQd5iAFOZVQ=", - "requires": { - "traverse": "0.3.9" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hmac-drbg": { @@ -3589,9 +3596,9 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "home-or-tmp": { @@ -3600,8 +3607,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "html-comment-regex": { @@ -3616,12 +3623,12 @@ "integrity": "sha512-t8Gy+r/loFP2VXAJl6ClaNIomGI609oyQcT7O3IoJE6VcDCLR6PYWXaSh+hfd/dnoZ6KPbpgPek/Crm3havqig==", "dev": true, "requires": { - "cssnano": "3.10.0", - "object-assign": "4.1.1", - "posthtml": "0.11.3", - "posthtml-render": "1.1.3", - "svgo": "1.0.5", - "uglify-js": "3.3.20" + "cssnano": "^3.4.0", + "object-assign": "^4.0.1", + "posthtml": "^0.11.3", + "posthtml-render": "^1.1.1", + "svgo": "^1.0.5", + "uglify-js": "^3.3.14" }, "dependencies": { "coa": { @@ -3630,7 +3637,7 @@ "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "csso": { @@ -3648,8 +3655,8 @@ "integrity": "sha512-BAYp9FyN4jLXjfvRpTDchBllDptqlK9I7OsagXCG9Am5C+5jc8eRZHgqb9x500W2OKS14MMlpQc/nmh/aA7TEQ==", "dev": true, "requires": { - "mdn-data": "1.1.0", - "source-map": "0.5.7" + "mdn-data": "^1.0.0", + "source-map": "^0.5.3" } } } @@ -3666,8 +3673,8 @@ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "source-map": { @@ -3682,20 +3689,20 @@ "integrity": "sha512-nYrifviB77aNKDNKKyuay3M9aYiK6Hv5gJVDdjj2ZXTQmI8WZc8+UPLR5IpVlktJfSu3co/4XcWgrgI6seGBPg==", "dev": true, "requires": { - "coa": "2.0.1", - "colors": "1.1.2", - "css-select": "1.3.0-rc0", - "css-select-base-adapter": "0.1.0", + "coa": "~2.0.1", + "colors": "~1.1.2", + "css-select": "~1.3.0-rc0", + "css-select-base-adapter": "~0.1.0", "css-tree": "1.0.0-alpha25", - "css-url-regex": "1.1.0", - "csso": "3.5.0", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "object.values": "1.0.4", - "sax": "1.2.4", - "stable": "0.1.6", - "unquote": "1.1.1", - "util.promisify": "1.0.0" + "css-url-regex": "^1.1.0", + "csso": "^3.5.0", + "js-yaml": "~3.10.0", + "mkdirp": "~0.5.1", + "object.values": "^1.0.4", + "sax": "~1.2.4", + "stable": "~0.1.6", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" } }, "uglify-js": { @@ -3704,8 +3711,8 @@ "integrity": "sha512-WpLkWCf9sGvGZnIvBV0PNID9BATQNT/IXKAmqegfKzIPcTmTV3FP8NQpoogQkt/Y402x2sOFdaHUmqFY9IZp+g==", "dev": true, "requires": { - "commander": "2.15.1", - "source-map": "0.6.1" + "commander": "~2.15.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -3724,12 +3731,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-errors": { @@ -3738,10 +3745,10 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "https-browserify": { @@ -3774,8 +3781,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -3796,7 +3803,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "is-absolute-url": { @@ -3811,7 +3818,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-binary-path": { @@ -3820,7 +3827,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -3841,7 +3848,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-date-object": { @@ -3856,9 +3863,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extendable": { @@ -3879,7 +3886,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -3888,7 +3895,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -3897,7 +3904,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -3906,7 +3913,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3917,7 +3924,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -3940,7 +3947,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-regex": { @@ -3949,7 +3956,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-svg": { @@ -3958,7 +3965,7 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -4015,10 +4022,10 @@ "integrity": "sha512-9OhfAqGOrD7hoQBLJMTA+BKuKmoEtTJXzZ7WDF/9gvjtey1koVLuZqIY6c51aPDjbNdNtIXAkiWKVhziawE9Og==", "dev": true, "requires": { - "config-chain": "1.1.11", - "editorconfig": "0.13.3", - "mkdirp": "0.5.1", - "nopt": "3.0.6" + "config-chain": "~1.1.5", + "editorconfig": "^0.13.2", + "mkdirp": "~0.5.0", + "nopt": "~3.0.1" } }, "js-tokens": { @@ -4033,8 +4040,8 @@ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "dependencies": { "esprima": { @@ -4069,8 +4076,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lodash": { @@ -4103,7 +4110,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { @@ -4112,7 +4119,7 @@ "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", "dev": true, "requires": { - "pseudomap": "1.0.2" + "pseudomap": "^1.0.1" } }, "macaddress": { @@ -4127,7 +4134,7 @@ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "dev": true, "requires": { - "vlq": "0.2.3" + "vlq": "^0.2.2" } }, "map-cache": { @@ -4142,7 +4149,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-expression-evaluator": { @@ -4157,8 +4164,8 @@ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" }, "dependencies": { "hash-base": { @@ -4167,8 +4174,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } } } @@ -4185,7 +4192,7 @@ "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" }, "dependencies": { "source-map": { @@ -4202,19 +4209,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.1", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "miller-rabin": { @@ -4223,8 +4230,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -4251,7 +4258,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -4266,8 +4273,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4276,7 +4283,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4308,18 +4315,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "nice-try": { @@ -4340,28 +4347,28 @@ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.1", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.6", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" } }, @@ -4371,7 +4378,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-path": { @@ -4380,7 +4387,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -4395,10 +4402,10 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" } }, "nth-check": { @@ -4407,7 +4414,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -4434,9 +4441,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -4445,7 +4452,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -4454,7 +4461,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-data-descriptor": { @@ -4463,7 +4470,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -4472,9 +4479,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -4491,7 +4498,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4514,7 +4521,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.getownpropertydescriptors": { @@ -4523,8 +4530,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.pick": { @@ -4533,7 +4540,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "object.values": { @@ -4542,10 +4549,10 @@ "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0", - "function-bind": "1.1.1", - "has": "1.0.1" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "on-finished": { @@ -4563,7 +4570,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "opn": { @@ -4572,7 +4579,7 @@ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optionator": { @@ -4581,12 +4588,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "os-browserify": { @@ -4619,57 +4626,57 @@ "integrity": "sha512-U3AeOJWVZXhzTCceuCUfKpKX3hGDOAhYArdJLMrTZGFjKhg+hJboWqy6Tw6ye36WpqLWZrBLeGx7kBpLHJBr3A==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-core": "6.26.0", - "babel-generator": "6.26.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-preset-env": "1.6.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "babylon-walk": "1.0.2", - "browserslist": "2.11.3", - "chalk": "2.3.2", - "chokidar": "2.0.3", - "command-exists": "1.2.2", - "commander": "2.15.1", - "cross-spawn": "6.0.5", - "cssnano": "3.10.0", - "deasync": "0.1.12", - "dotenv": "5.0.1", - "filesize": "3.6.1", - "get-port": "3.2.0", - "glob": "7.1.2", - "grapheme-breaker": "0.3.2", - "htmlnano": "0.1.7", - "is-url": "1.2.4", - "js-yaml": "3.11.0", - "json5": "0.5.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.1", - "node-forge": "0.7.5", - "node-libs-browser": "2.1.0", - "opn": "5.3.0", - "physical-cpu-count": "2.0.0", - "postcss": "6.0.21", - "postcss-value-parser": "3.3.0", - "posthtml": "0.11.3", - "posthtml-parser": "0.4.1", - "posthtml-render": "1.1.3", - "resolve": "1.7.0", - "semver": "5.5.0", - "serialize-to-js": "1.2.0", - "serve-static": "1.13.2", + "babel-code-frame": "^6.26.0", + "babel-core": "^6.25.0", + "babel-generator": "^6.25.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-preset-env": "^1.6.1", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.17.4", + "babylon-walk": "^1.0.2", + "browserslist": "^2.11.2", + "chalk": "^2.1.0", + "chokidar": "^2.0.1", + "command-exists": "^1.2.2", + "commander": "^2.11.0", + "cross-spawn": "^6.0.4", + "cssnano": "^3.10.0", + "deasync": "^0.1.12", + "dotenv": "^5.0.0", + "filesize": "^3.6.0", + "get-port": "^3.2.0", + "glob": "^7.1.2", + "grapheme-breaker": "^0.3.2", + "htmlnano": "^0.1.7", + "is-url": "^1.2.2", + "js-yaml": "^3.10.0", + "json5": "^0.5.1", + "micromatch": "^3.0.4", + "mkdirp": "^0.5.1", + "node-forge": "^0.7.1", + "node-libs-browser": "^2.0.0", + "opn": "^5.1.0", + "physical-cpu-count": "^2.0.0", + "postcss": "^6.0.19", + "postcss-value-parser": "^3.3.0", + "posthtml": "^0.11.2", + "posthtml-parser": "^0.4.0", + "posthtml-render": "^1.1.0", + "resolve": "^1.4.0", + "semver": "^5.4.1", + "serialize-to-js": "^1.1.1", + "serve-static": "^1.12.4", "source-map": "0.6.1", - "strip-ansi": "4.0.0", - "toml": "2.3.3", - "tomlify-j0.4": "3.0.0", - "uglify-es": "3.3.9", - "v8-compile-cache": "1.1.2", - "worker-farm": "1.6.0", - "ws": "4.1.0" + "strip-ansi": "^4.0.0", + "toml": "^2.3.3", + "tomlify-j0.4": "^3.0.0", + "uglify-es": "^3.2.1", + "v8-compile-cache": "^1.1.0", + "worker-farm": "^1.5.2", + "ws": "^4.0.0" } }, "parse-asn1": { @@ -4678,11 +4685,11 @@ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parseurl": { @@ -4733,11 +4740,11 @@ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "dev": true, "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "physical-cpu-count": { @@ -4758,9 +4765,9 @@ "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", "dev": true, "requires": { - "chalk": "2.3.2", - "source-map": "0.6.1", - "supports-color": "5.3.0" + "chalk": "^2.3.2", + "source-map": "^0.6.1", + "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { @@ -4769,7 +4776,7 @@ "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -4780,9 +4787,9 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" }, "dependencies": { "chalk": { @@ -4791,11 +4798,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4818,10 +4825,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -4836,7 +4843,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -4845,7 +4852,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4856,9 +4863,9 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "chalk": { @@ -4867,11 +4874,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4894,10 +4901,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -4912,7 +4919,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -4921,7 +4928,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4932,8 +4939,8 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" }, "dependencies": { "chalk": { @@ -4942,11 +4949,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -4969,10 +4976,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -4987,7 +4994,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -4996,7 +5003,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5007,7 +5014,7 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "chalk": { @@ -5016,11 +5023,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5043,10 +5050,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5061,7 +5068,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5070,7 +5077,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5081,7 +5088,7 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -5090,11 +5097,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5117,10 +5124,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5135,7 +5142,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5144,7 +5151,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5155,7 +5162,7 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "chalk": { @@ -5164,11 +5171,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5191,10 +5198,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5209,7 +5216,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5218,7 +5225,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5229,7 +5236,7 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" }, "dependencies": { "chalk": { @@ -5238,11 +5245,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5265,10 +5272,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5283,7 +5290,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5292,7 +5299,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5303,8 +5310,8 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -5313,11 +5320,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5340,10 +5347,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5358,7 +5365,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5367,7 +5374,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5378,8 +5385,8 @@ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "^5.0.4", + "uniqid": "^4.0.0" }, "dependencies": { "chalk": { @@ -5388,11 +5395,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5415,10 +5422,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5433,7 +5440,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5442,7 +5449,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5453,9 +5460,9 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" }, "dependencies": { "chalk": { @@ -5464,11 +5471,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5491,10 +5498,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5509,7 +5516,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5518,7 +5525,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5529,7 +5536,7 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -5538,11 +5545,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5565,10 +5572,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5583,7 +5590,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5592,7 +5599,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5603,11 +5610,11 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { "browserslist": { @@ -5616,8 +5623,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000824", - "electron-to-chromium": "1.3.42" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -5626,11 +5633,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5653,10 +5660,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5671,7 +5678,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5680,7 +5687,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5697,9 +5704,9 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "chalk": { @@ -5708,11 +5715,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5735,10 +5742,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5753,7 +5760,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5762,7 +5769,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5773,8 +5780,8 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" }, "dependencies": { "chalk": { @@ -5783,11 +5790,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5810,10 +5817,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5828,7 +5835,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5837,7 +5844,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5848,10 +5855,10 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -5860,11 +5867,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5887,10 +5894,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5905,7 +5912,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5914,7 +5921,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5925,10 +5932,10 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" }, "dependencies": { "chalk": { @@ -5937,11 +5944,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -5964,10 +5971,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -5982,7 +5989,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -5991,7 +5998,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6002,7 +6009,7 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" }, "dependencies": { "chalk": { @@ -6011,11 +6018,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6038,10 +6045,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6056,7 +6063,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6065,7 +6072,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6076,10 +6083,10 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "chalk": { @@ -6088,11 +6095,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6115,10 +6122,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6133,7 +6140,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6142,7 +6149,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6153,8 +6160,8 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "chalk": { @@ -6163,11 +6170,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6190,10 +6197,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6208,7 +6215,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6217,7 +6224,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6228,8 +6235,8 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "chalk": { @@ -6238,11 +6245,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6265,10 +6272,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6283,7 +6290,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6292,7 +6299,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6303,7 +6310,7 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -6312,11 +6319,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6339,10 +6346,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6357,7 +6364,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6366,7 +6373,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6377,9 +6384,9 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "chalk": { @@ -6388,11 +6395,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6415,10 +6422,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6433,7 +6440,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6442,7 +6449,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6453,9 +6460,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -6464,10 +6471,10 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" }, "dependencies": { "chalk": { @@ -6476,11 +6483,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6503,10 +6510,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6521,7 +6528,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6530,7 +6537,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6541,9 +6548,9 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -6552,11 +6559,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6579,10 +6586,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6597,7 +6604,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6606,7 +6613,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6623,9 +6630,9 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -6634,11 +6641,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "supports-color": { @@ -6661,10 +6668,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "source-map": { @@ -6679,7 +6686,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -6688,7 +6695,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6699,9 +6706,9 @@ "integrity": "sha512-quMHnDckt2DQ9lRi6bYLnuyBDnVzK+McHa8+ar4kTdYbWEo/92hREOu3h70ZirudOOp/my2b3r0m5YtxY52yrA==", "dev": true, "requires": { - "object-assign": "4.1.1", - "posthtml-parser": "0.3.3", - "posthtml-render": "1.1.3" + "object-assign": "^4.1.1", + "posthtml-parser": "^0.3.3", + "posthtml-render": "^1.1.0" }, "dependencies": { "isobject": { @@ -6719,9 +6726,9 @@ "integrity": "sha512-H/Z/yXGwl49A7hYQLV1iQ3h87NE0aZ/PMZhFwhw3lKeCAN+Ti4idrHvVvh4/GX10I7u77aQw+QB4vV5/Lzvv5A==", "dev": true, "requires": { - "htmlparser2": "3.9.2", - "isobject": "2.1.0", - "object-assign": "4.1.1" + "htmlparser2": "^3.9.2", + "isobject": "^2.1.0", + "object-assign": "^4.1.1" } } } @@ -6732,8 +6739,8 @@ "integrity": "sha512-h7vXIQ21Ikz2w5wPClPakNP6mJeJCK6BT0GpqnQrNNABdR7/TchNlFyryL1Bz6Ww53YWCKkr6tdZuHlxY1AVdQ==", "dev": true, "requires": { - "htmlparser2": "3.9.2", - "object-assign": "4.1.1" + "htmlparser2": "^3.9.2", + "object-assign": "^4.1.1" } }, "posthtml-render": { @@ -6796,11 +6803,11 @@ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -6821,8 +6828,8 @@ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -6844,8 +6851,8 @@ "dev": true, "requires": { "buffer-equal": "0.0.1", - "minimist": "1.2.0", - "through2": "2.0.3" + "minimist": "^1.1.3", + "through2": "^2.0.0" }, "dependencies": { "minimist": { @@ -6862,7 +6869,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -6871,8 +6878,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -6887,13 +6894,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -6902,10 +6909,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "reduce-css-calc": { @@ -6914,9 +6921,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -6933,7 +6940,7 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -6962,9 +6969,9 @@ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-not": { @@ -6973,8 +6980,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { @@ -6983,9 +6990,9 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -7000,7 +7007,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -7011,14 +7018,6 @@ } } }, - "remove": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/remove/-/remove-0.1.5.tgz", - "integrity": "sha1-CV/9gn1lyfQa2X0z5BanWBEHmVU=", - "requires": { - "seq": "0.3.5" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -7043,7 +7042,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "resolve": { @@ -7052,7 +7051,7 @@ "integrity": "sha512-QdgZ5bjR1WAlpLaO5yHepFvC+o3rCr6wpfE2tpJNMkXdulf2jKomQBdNRQITF3ZKHNlT71syG98yQP03gasgnA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-url": { @@ -7073,8 +7072,8 @@ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "dev": true, "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^2.0.0", + "inherits": "^2.0.1" } }, "safe-buffer": { @@ -7089,7 +7088,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-eval": { @@ -7098,7 +7097,7 @@ "integrity": "sha512-nDwXOhiheoaBT6op02n8wzsshjLXHhh4YAeqsDEoVmy1k2+lGv/ENLsGaWqkaKArUkUx48VO12/ZPa3sI/OEqQ==", "dev": true, "requires": { - "clones": "1.1.0" + "clones": "^1.1.0" } }, "sax": { @@ -7120,27 +7119,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - } - }, - "seq": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", - "integrity": "sha1-rgKvOkJHk9jMvyEtaRdODFTf/jg=", - "requires": { - "chainsaw": "0.0.9", - "hashish": "0.0.4" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" } }, "serialize-to-js": { @@ -7149,8 +7139,8 @@ "integrity": "sha512-BjvRI+63PY/I3OVBe4rCI0ENW+odR2V0PIyPndz22PbesNZNc2axReOPA4NrO0C7gEljUUvg0E/yZOJ1Ifs+5g==", "dev": true, "requires": { - "js-beautify": "1.7.5", - "safer-eval": "1.2.3" + "js-beautify": "^1.7.5", + "safer-eval": "^1.2.3" } }, "serve-static": { @@ -7159,9 +7149,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -7177,10 +7167,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -7189,7 +7179,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -7212,8 +7202,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-copy": { @@ -7228,7 +7218,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -7255,14 +7245,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -7271,7 +7261,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -7280,7 +7270,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7289,7 +7279,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7298,7 +7288,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7309,7 +7299,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7318,7 +7308,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7329,9 +7319,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -7354,9 +7344,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -7365,7 +7355,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } } } @@ -7376,7 +7366,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -7385,7 +7375,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7396,7 +7386,7 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-map": { @@ -7411,11 +7401,11 @@ "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", "dev": true, "requires": { - "atob": "2.1.0", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.0.0", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -7424,7 +7414,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" }, "dependencies": { "source-map": { @@ -7447,7 +7437,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -7468,7 +7458,7 @@ "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", "dev": true, "requires": { - "escodegen": "1.9.1" + "escodegen": "^1.8.1" } }, "static-extend": { @@ -7477,8 +7467,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -7487,7 +7477,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "is-accessor-descriptor": { @@ -7496,7 +7486,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7505,7 +7495,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7516,7 +7506,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7525,7 +7515,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7536,9 +7526,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -7555,20 +7545,20 @@ "integrity": "sha512-OdNOIoJGjYH2OW9KZoGg4RfiBmtKkGijUFTH8w9oCRe8Q+CfVUuY/nlPZmqdsCFWMz2Ho0euzaJA/a6pUpCmZA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "convert-source-map": "1.5.1", - "duplexer2": "0.1.4", - "escodegen": "1.9.1", - "falafel": "2.1.0", - "has": "1.0.1", - "magic-string": "0.22.5", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", "merge-source-map": "1.0.4", - "object-inspect": "1.4.1", - "quote-stream": "1.0.2", - "readable-stream": "2.3.6", - "shallow-copy": "0.0.1", - "static-eval": "2.0.0", - "through2": "2.0.3" + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" } }, "statuses": { @@ -7583,8 +7573,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-http": { @@ -7593,11 +7583,11 @@ "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "strict-uri-encode": { @@ -7612,7 +7602,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -7621,7 +7611,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { @@ -7644,13 +7634,13 @@ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.4", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" }, "dependencies": { "js-yaml": { @@ -7659,8 +7649,8 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } } } @@ -7671,8 +7661,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "timers-browserify": { @@ -7681,7 +7671,7 @@ "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tiny-inflate": { @@ -7708,7 +7698,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -7717,7 +7707,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -7728,10 +7718,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -7740,8 +7730,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toml": { @@ -7756,11 +7746,6 @@ "integrity": "sha512-2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==", "dev": true }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -7779,7 +7764,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "typedarray": { @@ -7794,8 +7779,8 @@ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.13.0", + "source-map": "~0.6.1" }, "dependencies": { "commander": { @@ -7812,8 +7797,8 @@ "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", "dev": true, "requires": { - "pako": "0.2.9", - "tiny-inflate": "1.0.2" + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" } }, "union-value": { @@ -7822,10 +7807,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -7834,7 +7819,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -7843,10 +7828,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -7863,7 +7848,7 @@ "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", "dev": true, "requires": { - "macaddress": "0.2.8" + "macaddress": "^0.2.8" } }, "uniqs": { @@ -7884,8 +7869,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -7894,9 +7879,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -7954,7 +7939,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" } }, "util": { @@ -7986,8 +7971,8 @@ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "dev": true, "requires": { - "define-properties": "1.1.2", - "object.getownpropertydescriptors": "2.0.3" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, "v8-compile-cache": { @@ -8029,7 +8014,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "wordwrap": { @@ -8044,7 +8029,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrappy": { @@ -8059,10 +8044,15 @@ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" } }, + "xhook": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/xhook/-/xhook-1.4.9.tgz", + "integrity": "sha512-7uGTRzCO1nMNtzClV0LHSo13vKlr7J9JE6njIMWHDSoub6MLOmam2OgZJESTvGjZpW68gnD69vlRipB6cjM0dg==" + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", diff --git a/package.json b/package.json index 6d917a6..da6a6f1 100644 --- a/package.json +++ b/package.json @@ -9,22 +9,25 @@ "type": "git", "url": "https://github.com/jpillora/xdomain" }, - "keywords": ["cors", "ie8", "polyfill"], + "keywords": [ + "cors", + "ie8", + "polyfill" + ], "author": { "name": "Jaime Pillora", "email": "dev@jpillora.com" }, "scripts": { - "dev": - "parcel watch --no-source-maps --public-url . src/browser.js -o xdomain", - "devfile": - "parcel watch --no-hmr --no-source-maps --public-url . src/browser.js -o xdomain", - "build": - "parcel build --public-url . src/browser.js --no-minify -o xdomain && parcel build src/browser.js --no-source-maps --detailed-report -o xdomain.min" + "dev": "parcel watch --no-source-maps --public-url . src/browser.js -o xdomain", + "devfile": "parcel watch --no-hmr --no-source-maps --public-url . src/browser.js -o xdomain", + "build": "parcel build --public-url . src/browser.js --no-minify -o xdomain && parcel build src/browser.js --no-source-maps --detailed-report -o xdomain.min" }, "devDependencies": { "array.from": "^1.0.3", "parcel-bundler": "^1.7.0" }, - "dependencies": {} + "dependencies": { + "xhook": "^1.4.9" + } } diff --git a/src/browser.js b/src/browser.js index 1658729..18381ec 100644 --- a/src/browser.js +++ b/src/browser.js @@ -1,7 +1,7 @@ if (!Array.from) { Array.from = require("array.from").getPolyfill(); } -const xhook = require("./vendor/xhook"); +const xhook = require("xhook").xhook; window.xhook = xhook; const xdomain = require("./index"); window.xdomain = xdomain; diff --git a/src/lib/master.js b/src/lib/master.js index 3118d4c..626b896 100644 --- a/src/lib/master.js +++ b/src/lib/master.js @@ -1,4 +1,4 @@ -const xhook = require("../vendor/xhook"); +const xhook = require("xhook").xhook; const config = require("./config"); const { currentOrigin, diff --git a/src/lib/slave.js b/src/lib/slave.js index 4f55043..d8e9f51 100644 --- a/src/lib/slave.js +++ b/src/lib/slave.js @@ -1,4 +1,4 @@ -const xhook = require("../vendor/xhook"); +const xhook = require("xhook").xhook; const config = require("./config"); const { log, diff --git a/src/lib/socket.js b/src/lib/socket.js index a3564fa..023eb60 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -1,4 +1,4 @@ -const xhook = require("../vendor/xhook"); +const xhook = require("xhook").xhook; const config = require("./config"); const { globalEmitter, log, warn, COMPAT_VERSION } = require("./util"); diff --git a/src/lib/util.js b/src/lib/util.js index 4bbed7d..2bef839 100644 --- a/src/lib/util.js +++ b/src/lib/util.js @@ -1,4 +1,4 @@ -const xhook = require("../vendor/xhook"); +const xhook = require("xhook").xhook; const config = require("./config"); diff --git a/src/vendor/xhook.js b/src/vendor/xhook.js deleted file mode 100644 index eaf7bf3..0000000 --- a/src/vendor/xhook.js +++ /dev/null @@ -1,632 +0,0 @@ -// XHook - v1.3.5 - https://github.com/jpillora/xhook -// Jaime Pillora - MIT Copyright 2016 - -var AFTER, - BEFORE, - COMMON_EVENTS, - EventEmitter, - FIRE, - FormData, - NativeFormData, - NativeXMLHttp, - OFF, - ON, - READY_STATE, - UPLOAD_EVENTS, - XHookFormData, - XHookHttpRequest, - XMLHTTP, - convertHeaders, - depricatedProp, - document, - fakeEvent, - mergeObjects, - msie, - proxyEvents, - slice, - xhook, - _base, - __indexOf = - [].indexOf || - function(item) { - for (var i = 0, l = this.length; i < l; i++) { - if (i in this && this[i] === item) return i; - } - return -1; - }; - -document = window.document; - -BEFORE = "before"; - -AFTER = "after"; - -READY_STATE = "readyState"; - -ON = "addEventListener"; - -OFF = "removeEventListener"; - -FIRE = "dispatchEvent"; - -XMLHTTP = "XMLHttpRequest"; - -FormData = "FormData"; - -UPLOAD_EVENTS = ["load", "loadend", "loadstart"]; - -COMMON_EVENTS = ["progress", "abort", "error", "timeout"]; - -msie = parseInt( - (/msie (\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1] -); - -if (isNaN(msie)) { - msie = parseInt( - (/trident\/.*; rv:(\d+)/.exec(navigator.userAgent.toLowerCase()) || [])[1] - ); -} - -(_base = Array.prototype).indexOf || - (_base.indexOf = function(item) { - var i, x, _i, _len; - for (i = _i = 0, _len = this.length; _i < _len; i = ++_i) { - x = this[i]; - if (x === item) { - return i; - } - } - return -1; - }); - -slice = function(o, n) { - return Array.prototype.slice.call(o, n); -}; - -depricatedProp = function(p) { - return p === "returnValue" || p === "totalSize" || p === "position"; -}; - -mergeObjects = function(src, dst) { - var k, v; - for (k in src) { - v = src[k]; - if (depricatedProp(k)) { - continue; - } - try { - dst[k] = src[k]; - } catch (_error) {} - } - return dst; -}; - -proxyEvents = function(events, src, dst) { - var event, p, _i, _len; - p = function(event) { - return function(e) { - var clone, k, val; - clone = {}; - for (k in e) { - if (depricatedProp(k)) { - continue; - } - val = e[k]; - clone[k] = val === src ? dst : val; - } - return dst[FIRE](event, clone); - }; - }; - for (_i = 0, _len = events.length; _i < _len; _i++) { - event = events[_i]; - if (dst._has(event)) { - src["on" + event] = p(event); - } - } -}; - -fakeEvent = function(type) { - var msieEventObject; - if (document.createEventObject != null) { - msieEventObject = document.createEventObject(); - msieEventObject.type = type; - return msieEventObject; - } else { - try { - return new Event(type); - } catch (_error) { - return { - type: type - }; - } - } -}; - -EventEmitter = function(nodeStyle) { - var emitter, events, listeners; - events = {}; - listeners = function(event) { - return events[event] || []; - }; - emitter = {}; - emitter[ON] = function(event, callback, i) { - events[event] = listeners(event); - if (events[event].indexOf(callback) >= 0) { - return; - } - i = i === undefined ? events[event].length : i; - events[event].splice(i, 0, callback); - }; - emitter[OFF] = function(event, callback) { - var i; - if (event === undefined) { - events = {}; - return; - } - if (callback === undefined) { - events[event] = []; - } - i = listeners(event).indexOf(callback); - if (i === -1) { - return; - } - listeners(event).splice(i, 1); - }; - emitter[FIRE] = function() { - var args, event, i, legacylistener, listener, _i, _len, _ref; - args = slice(arguments); - event = args.shift(); - if (!nodeStyle) { - args[0] = mergeObjects(args[0], fakeEvent(event)); - } - legacylistener = emitter["on" + event]; - if (legacylistener) { - legacylistener.apply(emitter, args); - } - _ref = listeners(event).concat(listeners("*")); - for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { - listener = _ref[i]; - listener.apply(emitter, args); - } - }; - emitter._has = function(event) { - return !!(events[event] || emitter["on" + event]); - }; - if (nodeStyle) { - emitter.listeners = function(event) { - return slice(listeners(event)); - }; - emitter.on = emitter[ON]; - emitter.off = emitter[OFF]; - emitter.fire = emitter[FIRE]; - emitter.once = function(e, fn) { - var fire; - fire = function() { - emitter.off(e, fire); - return fn.apply(null, arguments); - }; - return emitter.on(e, fire); - }; - emitter.destroy = function() { - return (events = {}); - }; - } - return emitter; -}; - -xhook = EventEmitter(true); - -xhook.EventEmitter = EventEmitter; - -xhook[BEFORE] = function(handler, i) { - if (handler.length < 1 || handler.length > 2) { - throw "invalid hook"; - } - return xhook[ON](BEFORE, handler, i); -}; - -xhook[AFTER] = function(handler, i) { - if (handler.length < 2 || handler.length > 3) { - throw "invalid hook"; - } - return xhook[ON](AFTER, handler, i); -}; - -xhook.enable = function() { - window[XMLHTTP] = XHookHttpRequest; - if (NativeFormData) { - window[FormData] = XHookFormData; - } -}; - -xhook.disable = function() { - window[XMLHTTP] = xhook[XMLHTTP]; - if (NativeFormData) { - window[FormData] = NativeFormData; - } -}; - -convertHeaders = xhook.headers = function(h, dest) { - var header, headers, k, name, v, value, _i, _len, _ref; - if (dest == null) { - dest = {}; - } - switch (typeof h) { - case "object": - headers = []; - for (k in h) { - v = h[k]; - name = k.toLowerCase(); - headers.push("" + name + ":\t" + v); - } - return headers.join("\n"); - case "string": - headers = h.split("\n"); - for (_i = 0, _len = headers.length; _i < _len; _i++) { - header = headers[_i]; - if (/([^:]+):\s*(.+)/.test(header)) { - name = (_ref = RegExp.$1) != null ? _ref.toLowerCase() : void 0; - value = RegExp.$2; - if (dest[name] == null) { - dest[name] = value; - } - } - } - return dest; - } -}; - -NativeFormData = window[FormData]; - -XHookFormData = function(form) { - var entries; - this.fd = form ? new NativeFormData(form) : new NativeFormData(); - this.form = form; - entries = []; - Object.defineProperty(this, "entries", { - get: function() { - var fentries; - fentries = !form - ? [] - : slice(form.querySelectorAll("input,select")) - .filter(function(e) { - var _ref; - return ( - ((_ref = e.type) !== "checkbox" && _ref !== "radio") || - e.checked - ); - }) - .map(function(e) { - return [e.name, e.type === "file" ? e.files : e.value]; - }); - return fentries.concat(entries); - } - }); - this.append = (function(_this) { - return function() { - var args; - args = slice(arguments); - entries.push(args); - return _this.fd.append.apply(_this.fd, args); - }; - })(this); -}; - -if (NativeFormData) { - xhook[FormData] = NativeFormData; - window[FormData] = XHookFormData; -} - -NativeXMLHttp = window[XMLHTTP]; - -xhook[XMLHTTP] = NativeXMLHttp; - -XHookHttpRequest = window[XMLHTTP] = function() { - var ABORTED, - currentState, - emitFinal, - emitReadyState, - event, - facade, - hasError, - hasErrorHandler, - readBody, - readHead, - request, - response, - setReadyState, - status, - transiting, - writeBody, - writeHead, - xhr, - _i, - _len, - _ref; - ABORTED = -1; - xhr = new xhook[XMLHTTP](); - request = {}; - status = null; - hasError = void 0; - transiting = void 0; - response = void 0; - readHead = function() { - var key, name, val, _ref; - response.status = status || xhr.status; - if (!(status === ABORTED && msie < 10)) { - response.statusText = xhr.statusText; - } - if (status !== ABORTED) { - _ref = convertHeaders(xhr.getAllResponseHeaders()); - for (key in _ref) { - val = _ref[key]; - if (!response.headers[key]) { - name = key.toLowerCase(); - response.headers[name] = val; - } - } - } - }; - readBody = function() { - if (!xhr.responseType || xhr.responseType === "text") { - response.text = xhr.responseText; - response.data = xhr.responseText; - } else if (xhr.responseType === "document") { - response.xml = xhr.responseXML; - response.data = xhr.responseXML; - } else { - response.data = xhr.response; - } - if ("responseURL" in xhr) { - response.finalUrl = xhr.responseURL; - } - }; - writeHead = function() { - facade.status = response.status; - facade.statusText = response.statusText; - }; - writeBody = function() { - if ("text" in response) { - facade.responseText = response.text; - } - if ("xml" in response) { - facade.responseXML = response.xml; - } - if ("data" in response) { - facade.response = response.data; - } - if ("finalUrl" in response) { - facade.responseURL = response.finalUrl; - } - }; - emitReadyState = function(n) { - while (n > currentState && currentState < 4) { - facade[READY_STATE] = ++currentState; - if (currentState === 1) { - facade[FIRE]("loadstart", {}); - } - if (currentState === 2) { - writeHead(); - } - if (currentState === 4) { - writeHead(); - writeBody(); - } - facade[FIRE]("readystatechange", {}); - if (currentState === 4) { - setTimeout(emitFinal, 0); - } - } - }; - emitFinal = function() { - if (!hasError) { - facade[FIRE]("load", {}); - } - facade[FIRE]("loadend", {}); - if (hasError) { - facade[READY_STATE] = 0; - } - }; - currentState = 0; - setReadyState = function(n) { - var hooks, process; - if (n !== 4) { - emitReadyState(n); - return; - } - hooks = xhook.listeners(AFTER); - process = function() { - var hook; - if (!hooks.length) { - return emitReadyState(4); - } - hook = hooks.shift(); - if (hook.length === 2) { - hook(request, response); - return process(); - } else if (hook.length === 3 && request.async) { - return hook(request, response, process); - } else { - return process(); - } - }; - process(); - }; - facade = request.xhr = EventEmitter(); - xhr.onreadystatechange = function(event) { - try { - if (xhr[READY_STATE] === 2) { - readHead(); - } - } catch (_error) {} - if (xhr[READY_STATE] === 4) { - transiting = false; - readHead(); - readBody(); - } - setReadyState(xhr[READY_STATE]); - }; - hasErrorHandler = function() { - hasError = true; - }; - facade[ON]("error", hasErrorHandler); - facade[ON]("timeout", hasErrorHandler); - facade[ON]("abort", hasErrorHandler); - facade[ON]("progress", function() { - if (currentState < 3) { - setReadyState(3); - } else { - facade[FIRE]("readystatechange", {}); - } - }); - if ("withCredentials" in xhr || xhook.addWithCredentials) { - facade.withCredentials = false; - } - facade.status = 0; - _ref = COMMON_EVENTS.concat(UPLOAD_EVENTS); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - event = _ref[_i]; - facade["on" + event] = null; - } - facade.open = function(method, url, async, user, pass) { - currentState = 0; - hasError = false; - transiting = false; - request.headers = {}; - request.headerNames = {}; - request.status = 0; - response = {}; - response.headers = {}; - request.method = method; - request.url = url; - request.async = async !== false; - request.user = user; - request.pass = pass; - setReadyState(1); - }; - facade.send = function(body) { - var hooks, k, modk, process, send, _j, _len1, _ref1; - _ref1 = ["type", "timeout", "withCredentials"]; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - k = _ref1[_j]; - modk = k === "type" ? "responseType" : k; - if (modk in facade) { - request[k] = facade[modk]; - } - } - request.body = body; - send = function() { - var header, value, _k, _len2, _ref2, _ref3; - proxyEvents(COMMON_EVENTS, xhr, facade); - if (facade.upload) { - proxyEvents( - COMMON_EVENTS.concat(UPLOAD_EVENTS), - xhr.upload, - facade.upload - ); - } - transiting = true; - xhr.open( - request.method, - request.url, - request.async, - request.user, - request.pass - ); - _ref2 = ["type", "timeout", "withCredentials"]; - for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { - k = _ref2[_k]; - modk = k === "type" ? "responseType" : k; - if (k in request) { - xhr[modk] = request[k]; - } - } - _ref3 = request.headers; - for (header in _ref3) { - value = _ref3[header]; - if (header) { - xhr.setRequestHeader(header, value); - } - } - if (request.body instanceof XHookFormData) { - request.body = request.body.fd; - } - xhr.send(request.body); - }; - hooks = xhook.listeners(BEFORE); - process = function() { - var done, hook; - if (!hooks.length) { - return send(); - } - done = function(userResponse) { - if ( - typeof userResponse === "object" && - (typeof userResponse.status === "number" || - typeof response.status === "number") - ) { - mergeObjects(userResponse, response); - if (__indexOf.call(userResponse, "data") < 0) { - userResponse.data = userResponse.response || userResponse.text; - } - setReadyState(4); - return; - } - process(); - }; - done.head = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(2); - }; - done.progress = function(userResponse) { - mergeObjects(userResponse, response); - return setReadyState(3); - }; - hook = hooks.shift(); - if (hook.length === 1) { - return done(hook(request)); - } else if (hook.length === 2 && request.async) { - return hook(request, done); - } else { - return done(); - } - }; - process(); - }; - facade.abort = function() { - status = ABORTED; - if (transiting) { - xhr.abort(); - } else { - facade[FIRE]("abort", {}); - } - }; - facade.setRequestHeader = function(header, value) { - var lName, name; - lName = header != null ? header.toLowerCase() : void 0; - name = request.headerNames[lName] = request.headerNames[lName] || header; - if (request.headers[name]) { - value = request.headers[name] + ", " + value; - } - request.headers[name] = value; - }; - facade.getResponseHeader = function(header) { - var name; - name = header != null ? header.toLowerCase() : void 0; - return response.headers[name]; - }; - facade.getAllResponseHeaders = function() { - return convertHeaders(response.headers); - }; - if (xhr.overrideMimeType) { - facade.overrideMimeType = function() { - return xhr.overrideMimeType.apply(xhr, arguments); - }; - } - if (xhr.upload) { - facade.upload = request.upload = EventEmitter(); - } - return facade; -}; - -module.exports = xhook;