{"version":3,"file":"@netless-CvftfyIX.js","sources":["../../node_modules/@netless/canvas-polyfill/dist/index.js","../../node_modules/@netless/xml-js/dist/index.es.js"],"sourcesContent":["\"use strict\";\nfunction canvasPolyfill() {\n if (CanvasRenderingContext2D.prototype.ellipse === undefined) {\n CanvasRenderingContext2D.prototype.ellipse = function (x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n this.save();\n this.translate(x, y);\n this.rotate(rotation);\n this.scale(radiusX, radiusY);\n this.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n this.restore();\n };\n }\n if (CanvasRenderingContext2D.prototype.resetTransform === undefined) {\n CanvasRenderingContext2D.prototype.resetTransform = function () {\n this.setTransform(1, 0, 0, 1, 0, 0);\n };\n }\n (function () {\n if (CanvasRenderingContext2D.prototype.getTransform !== undefined) {\n return;\n }\n CanvasRenderingContext2D.prototype.getTransform = function () {\n return function () {\n var polyfill = this._t2stack && this._t2stack[this._t2stack.length - 1] || { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };\n return polyfill;\n };\n }();\n CanvasRenderingContext2D.prototype.save = function () {\n var save = CanvasRenderingContext2D.prototype.save;\n return function () {\n if (!this._t2stack) {\n this._t2stack = [{ a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }];\n }\n var t = this._t2stack[this._t2stack.length - 1];\n this._t2stack.push(t && { a: t.a, b: t.b, c: t.c, d: t.d, e: t.e, f: t.f });\n save.call(this);\n };\n }();\n CanvasRenderingContext2D.prototype.restore = function () {\n var restore = CanvasRenderingContext2D.prototype.restore;\n return function () {\n if (this._t2stack)\n this._t2stack.pop();\n restore.call(this);\n };\n }();\n CanvasRenderingContext2D.prototype.transform = function () {\n var transform = CanvasRenderingContext2D.prototype.transform;\n return function (a, b, c, d, e, f) {\n if (!this._t2stack) {\n this._t2stack = [{ a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }];\n }\n var t = this._t2stack[this._t2stack.length - 1], q;\n var na = t.a * a + t.c * b;\n var nb = t.b * a + t.d * b;\n var nc = t.a * c + t.c * d;\n var nd = t.b * c + t.d * d;\n var ne = t.e + t.a * e + t.c * f;\n var nf = t.f + t.b * e + t.d * f;\n t.a = na;\n t.b = nb;\n t.c = nc;\n t.d = nd;\n t.e = ne;\n t.f = nf;\n transform.call(this, a, b, c, d, e, f);\n };\n }();\n CanvasRenderingContext2D.prototype.setTransform = function () {\n var setTransform = CanvasRenderingContext2D.prototype.setTransform;\n return function (a, b, c, d, e, f) {\n if (!this._t2stack) {\n this._t2stack = [{}];\n }\n if (typeof a === \"object\" || typeof a === \"undefined\") {\n var aa = a.a, b_1 = a.b, c_1 = a.c, d_1 = a.d, e_1 = a.e, f_1 = a.f;\n this._t2stack[this._t2stack.length - 1] = { a: aa, b: b_1, c: c_1, d: d_1, e: e_1, f: f_1 };\n setTransform.call(this, aa, b_1, c_1, d_1, e_1, f_1);\n }\n else {\n this._t2stack[this._t2stack.length - 1] = { a: a, b: b, c: c, d: d, e: e, f: f };\n setTransform.call(this, a, b, c, d, e, f);\n }\n };\n }();\n CanvasRenderingContext2D.prototype.resetTransform = function () {\n var resetTransform = CanvasRenderingContext2D.prototype.resetTransform;\n return function () {\n if (!this._t2stack) {\n this._t2stack = [{}];\n }\n this._t2stack[this._t2stack.length - 1] = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 };\n resetTransform && resetTransform.call(this);\n };\n }();\n CanvasRenderingContext2D.prototype.scale = function () {\n var scale = CanvasRenderingContext2D.prototype.scale;\n return function (sx, sy) {\n if (!this._t2stack) {\n this._t2stack = [{ a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }];\n }\n var t = this._t2stack[this._t2stack.length - 1];\n sx = sx || 1;\n sy = sy || sx;\n t.a *= sx;\n t.c *= sy;\n t.b *= sx;\n t.d *= sy;\n scale.call(this, sx, sy);\n };\n }();\n CanvasRenderingContext2D.prototype.rotate = function () {\n var rotate = CanvasRenderingContext2D.prototype.rotate;\n return function (w) {\n if (!this._t2stack) {\n this._t2stack = [{ a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }];\n }\n var t = this._t2stack[this._t2stack.length - 1];\n var cw = Math.cos(-w);\n var sw = Math.sin(-w);\n var a = t.a * cw - t.c * sw;\n var b = t.b * cw - t.d * sw;\n var c = t.c * cw + t.a * sw;\n var d = t.d * cw + t.b * sw;\n t.a = a;\n t.b = b;\n t.c = c;\n t.d = d;\n return rotate.call(this, w);\n };\n }();\n CanvasRenderingContext2D.prototype.translate = function () {\n var translate = CanvasRenderingContext2D.prototype.translate;\n return function (x, y) {\n if (!this._t2stack) {\n this._t2stack = [{ a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }];\n }\n var t = this._t2stack[this._t2stack.length - 1];\n t.e += x * t.a + y * t.c;\n t.f += x * t.b + y * t.d;\n return translate.call(this, x, y);\n };\n }();\n })();\n}\n;\ncanvasPolyfill();\n","function getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nvar global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray$4 = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer$1.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined\n ? global$1.TYPED_ARRAY_SUPPORT\n : true;\n\nfunction kMaxLength () {\n return Buffer$1.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer$1(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer$1 (arg, encodingOrOffset, length) {\n if (!Buffer$1.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer$1)) {\n return new Buffer$1(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer$1.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer$1._augment = function (arr) {\n arr.__proto__ = Buffer$1.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer$1.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer$1.TYPED_ARRAY_SUPPORT) {\n Buffer$1.prototype.__proto__ = Uint8Array.prototype;\n Buffer$1.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer$1.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer$1.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer$1.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer$1.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer$1.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray$4(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\nBuffer$1.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer$1.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer$1.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer$1.concat = function concat (list, length) {\n if (!isArray$4(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer$1.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer$1.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer$1.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer$1.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer$1.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer$1.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer$1.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer$1.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer$1.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer$1.compare(this, b) === 0\n};\n\nBuffer$1.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer$1.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer$1.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer$1.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer$1.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer$1.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer$1.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer$1.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer$1.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer$1.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer$1.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer$1(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer$1.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer$1.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer$1.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer$1.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer$1.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer$1.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer$1.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer$1.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer$1.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer$1.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer$1.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer$1.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer$1.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer$1.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer$1.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer$1.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer$1.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer$1.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer$1.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer$1.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer$1.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer$1.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer$1.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer$1.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer$1.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer$1.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer$1.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer$1.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer$1.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer$1.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer$1.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer$1(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nvar sax$1 = {};\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active ) ;\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\n}\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n for (var i = 0, key; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = new EventHandlers();\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount$1.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount$1;\nfunction listenerCount$1(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\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}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\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}\nfunction nextTick(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// 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};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar env = {};\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global$1.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar browser$1 = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nvar process = browser$1;\n\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}\nvar inherits$1 = inherits;\n\nvar formatRegExp = /%[sdj%]/g;\nfunction format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n}\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nfunction deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global$1.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\nvar debugs = {};\nvar debugEnviron;\nfunction debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n}\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray$3(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var length = output.reduce(function(prev, cur) {\n if (cur.indexOf('\\n') >= 0) ;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray$3(ar) {\n return Array.isArray(ar);\n}\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer$1.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer$1.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n};\n\n// Copyright Joyent, Inc. and other Node contributors.\nvar isBufferEncoding = Buffer$1.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n };\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nfunction StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer$1(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n}\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n\nvar stringDecoder = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tStringDecoder: StringDecoder\n});\n\nReadable.ReadableState = ReadableState;\n\nvar debug = debuglog('stream');\ninherits$1(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer$1.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer$1.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n// A bit simpler than readable streams.\nWritable.WritableState = WritableState;\ninherits$1(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\nfunction Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer$1.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer$1.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer$1.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n nextTick(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n\ninherits$1(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\n// a transform stream is a readable/writable stream where you do\ninherits$1(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n\ninherits$1(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\ninherits$1(Stream, EventEmitter);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EventEmitter.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EventEmitter.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n\nvar stream = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\t'default': Stream,\n\tReadable: Readable,\n\tWritable: Writable,\n\tDuplex: Duplex,\n\tTransform: Transform,\n\tPassThrough: PassThrough,\n\tStream: Stream\n});\n\nvar require$$0 = /*@__PURE__*/getAugmentedNamespace(stream);\n\nvar require$$1 = /*@__PURE__*/getAugmentedNamespace(stringDecoder);\n\n(function (exports) {\n(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) };\n sax.SAXParser = SAXParser;\n sax.SAXStream = SAXStream;\n sax.createStream = createStream;\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024;\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ];\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ];\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this;\n clearBuffers(parser);\n parser.q = parser.c = '';\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH;\n parser.opt = opt || {};\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags;\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase';\n parser.tags = [];\n parser.closed = parser.closedRoot = parser.sawRoot = false;\n parser.tag = parser.error = null;\n parser.strict = !!strict;\n parser.noscript = !!(strict || parser.opt.noscript);\n parser.state = S.BEGIN;\n parser.strictEntities = parser.opt.strictEntities;\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES);\n parser.attribList = [];\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS);\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false;\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0;\n }\n emit(parser, 'onready');\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o;\n var newf = new F();\n return newf\n };\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = [];\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i);\n return a\n };\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10);\n var maxActual = 0;\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length;\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser);\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata);\n parser.cdata = '';\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script);\n parser.script = '';\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i]);\n }\n }\n maxActual = Math.max(maxActual, len);\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual;\n parser.bufferCheckPosition = m + parser.position;\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = '';\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser);\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata);\n parser.cdata = '';\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script);\n parser.script = '';\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this); },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this); }\n };\n\n var Stream;\n try {\n Stream = require$$0.Stream;\n } catch (ex) {\n Stream = function () {};\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n });\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this);\n\n this._parser = new SAXParser(strict, opt);\n this.writable = true;\n this.readable = true;\n\n var me = this;\n\n this._parser.onend = function () {\n me.emit('end');\n };\n\n this._parser.onerror = function (er) {\n me.emit('error', er);\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null;\n };\n\n this._decoder = null;\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev);\n me._parser['on' + ev] = h;\n return h\n }\n me.on(ev, h);\n },\n enumerable: true,\n configurable: false\n });\n });\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n });\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer$1 === 'function' &&\n typeof Buffer$1.isBuffer === 'function' &&\n Buffer$1.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require$$1.StringDecoder;\n this._decoder = new SD('utf8');\n }\n data = this._decoder.write(data);\n }\n\n this._parser.write(data.toString());\n this.emit('data', data);\n return true\n };\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk);\n }\n this._parser.end();\n return true\n };\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this;\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments);\n args.splice(0, 0, ev);\n me.emit.apply(me, args);\n };\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n };\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA[';\n var DOCTYPE = 'DOCTYPE';\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/';\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE };\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n\n var nameBody = /[:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n var entityStart = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/;\n var entityBody = /[#:_A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u00B7\\u0300-\\u036F\\u203F-\\u2040.\\d-]/;\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0;\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n };\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n };\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n };\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key];\n var s = typeof e === 'number' ? String.fromCharCode(e) : e;\n sax.ENTITIES[key] = s;\n });\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s;\n }\n\n // shorthand\n S = sax.STATE;\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data);\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser);\n emit(parser, nodeType, data);\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode);\n if (parser.textNode) emit(parser, 'ontext', parser.textNode);\n parser.textNode = '';\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim();\n if (opt.normalize) text = text.replace(/\\s+/g, ' ');\n return text\n }\n\n function error (parser, er) {\n closeText(parser);\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c;\n }\n er = new Error(er);\n parser.error = er;\n emit(parser, 'onerror', er);\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag');\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end');\n }\n closeText(parser);\n parser.c = '';\n parser.closed = true;\n emit(parser, 'onend');\n SAXParser.call(parser, parser.strict, parser.opt);\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message);\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]();\n var parent = parser.tags[parser.tags.length - 1] || parser;\n var tag = parser.tag = { name: parser.tagName, attributes: {} };\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns;\n }\n parser.attribList.length = 0;\n emitNode(parser, 'onopentagstart', tag);\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':');\n var qualName = i < 0 ? [ '', name ] : name.split(':');\n var prefix = qualName[0];\n var local = qualName[1];\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns';\n local = '';\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]();\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = '';\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true);\n var prefix = qn.prefix;\n var local = qn.local;\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue);\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue);\n } else {\n var tag = parser.tag;\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns);\n }\n tag.ns[local] = parser.attribValue;\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue]);\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue;\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n });\n }\n\n parser.attribName = parser.attribValue = '';\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag;\n\n // add namespace info to tag\n var qn = qname(parser.tagName);\n tag.prefix = qn.prefix;\n tag.local = qn.local;\n tag.uri = tag.ns[qn.prefix] || '';\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName));\n tag.uri = qn.prefix;\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n });\n });\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i];\n var name = nv[0];\n var value = nv[1];\n var qualName = qname(name, true);\n var prefix = qualName.prefix;\n var local = qualName.local;\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '');\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n };\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix));\n a.uri = prefix;\n }\n parser.tag.attributes[name] = a;\n emitNode(parser, 'onattribute', a);\n }\n parser.attribList.length = 0;\n }\n\n parser.tag.isSelfClosing = !!selfClosing;\n\n // process the tag\n parser.sawRoot = true;\n parser.tags.push(parser.tag);\n emitNode(parser, 'onopentag', parser.tag);\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT;\n } else {\n parser.state = S.TEXT;\n }\n parser.tag = null;\n parser.tagName = '';\n }\n parser.attribName = parser.attribValue = '';\n parser.attribList.length = 0;\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.');\n parser.textNode += '</>';\n parser.state = S.TEXT;\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>';\n parser.tagName = '';\n parser.state = S.SCRIPT;\n return\n }\n emitNode(parser, 'onscript', parser.script);\n parser.script = '';\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length;\n var tagName = parser.tagName;\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]();\n }\n var closeTo = tagName;\n while (t--) {\n var close = parser.tags[t];\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag');\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName);\n parser.textNode += '</' + parser.tagName + '>';\n parser.state = S.TEXT;\n return\n }\n parser.tagName = tagName;\n var s = parser.tags.length;\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop();\n parser.tagName = parser.tag.name;\n emitNode(parser, 'onclosetag', parser.tagName);\n\n var x = {};\n for (var i in tag.ns) {\n x[i] = tag.ns[i];\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser;\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p];\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n });\n });\n }\n }\n if (t === 0) parser.closedRoot = true;\n parser.tagName = parser.attribValue = parser.attribName = '';\n parser.attribList.length = 0;\n parser.state = S.TEXT;\n }\n\n function parseEntity (parser) {\n var entity = parser.entity;\n var entityLC = entity.toLowerCase();\n var num;\n var numStr = '';\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC;\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2);\n num = parseInt(entity, 16);\n numStr = num.toString(16);\n } else {\n entity = entity.slice(1);\n num = parseInt(entity, 10);\n numStr = num.toString(10);\n }\n }\n entity = entity.replace(/^0+/, '');\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity');\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.');\n parser.textNode = c;\n parser.state = S.TEXT;\n }\n }\n\n function charAt (chunk, i) {\n var result = '';\n if (i < chunk.length) {\n result = chunk.charAt(i);\n }\n return result\n }\n\n function write (chunk) {\n var parser = this;\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString();\n }\n var i = 0;\n var c = '';\n while (true) {\n c = charAt(chunk, i++);\n parser.c = c;\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++;\n if (c === '\\n') {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE;\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c);\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c);\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1;\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++);\n if (c && parser.trackPosition) {\n parser.position++;\n if (c === '\\n') {\n parser.line++;\n parser.column = 0;\n } else {\n parser.column++;\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1);\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA;\n parser.startTagPosition = parser.position;\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.');\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY;\n } else {\n parser.textNode += c;\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING;\n } else {\n parser.script += c;\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG;\n } else {\n parser.script += '<' + c;\n parser.state = S.SCRIPT;\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL;\n parser.sgmlDecl = '';\n } else if (isWhitespace(c)) ; else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG;\n parser.tagName = c;\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG;\n parser.tagName = '';\n } else if (c === '?') {\n parser.state = S.PROC_INST;\n parser.procInstName = parser.procInstBody = '';\n } else {\n strictFail(parser, 'Unencoded <');\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition;\n c = new Array(pad).join(' ') + c;\n }\n parser.textNode += '<' + c;\n parser.state = S.TEXT;\n }\n continue\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata');\n parser.state = S.CDATA;\n parser.sgmlDecl = '';\n parser.cdata = '';\n } else if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT;\n parser.comment = '';\n parser.sgmlDecl = '';\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE;\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration');\n }\n parser.doctype = '';\n parser.sgmlDecl = '';\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl);\n parser.sgmlDecl = '';\n parser.state = S.TEXT;\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED;\n parser.sgmlDecl += c;\n } else {\n parser.sgmlDecl += c;\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL;\n parser.q = '';\n }\n parser.sgmlDecl += c;\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT;\n emitNode(parser, 'ondoctype', parser.doctype);\n parser.doctype = true; // just remember that we saw it.\n } else {\n parser.doctype += c;\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED;\n parser.q = c;\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.q = '';\n parser.state = S.DOCTYPE;\n }\n continue\n\n case S.DOCTYPE_DTD:\n parser.doctype += c;\n if (c === ']') {\n parser.state = S.DOCTYPE;\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED;\n parser.q = c;\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c;\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD;\n parser.q = '';\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING;\n } else {\n parser.comment += c;\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED;\n parser.comment = textopts(parser.opt, parser.comment);\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment);\n }\n parser.comment = '';\n } else {\n parser.comment += '-' + c;\n parser.state = S.COMMENT;\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment');\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c;\n parser.state = S.COMMENT;\n } else {\n parser.state = S.TEXT;\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING;\n } else {\n parser.cdata += c;\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2;\n } else {\n parser.cdata += ']' + c;\n parser.state = S.CDATA;\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata);\n }\n emitNode(parser, 'onclosecdata');\n parser.cdata = '';\n parser.state = S.TEXT;\n } else if (c === ']') {\n parser.cdata += ']';\n } else {\n parser.cdata += ']]' + c;\n parser.state = S.CDATA;\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING;\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY;\n } else {\n parser.procInstName += c;\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING;\n } else {\n parser.procInstBody += c;\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n });\n parser.procInstName = parser.procInstBody = '';\n parser.state = S.TEXT;\n } else {\n parser.procInstBody += '?' + c;\n parser.state = S.PROC_INST_BODY;\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else {\n newTag(parser);\n if (c === '>') {\n openTag(parser);\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name');\n }\n parser.state = S.ATTRIB;\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true);\n closeTag(parser);\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >');\n parser.state = S.ATTRIB;\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser);\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.attribValue = '';\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, 'Invalid attribute name');\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE;\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value');\n parser.attribValue = parser.attribName;\n attrib(parser);\n openTag(parser);\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE;\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c;\n } else {\n strictFail(parser, 'Invalid attribute name');\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE;\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value');\n parser.tag.attributes[parser.attribName] = '';\n parser.attribValue = '';\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n });\n parser.attribName = '';\n if (c === '>') {\n openTag(parser);\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c;\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, 'Invalid attribute name');\n parser.state = S.ATTRIB;\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c;\n parser.state = S.ATTRIB_VALUE_QUOTED;\n } else {\n strictFail(parser, 'Unquoted attribute value');\n parser.state = S.ATTRIB_VALUE_UNQUOTED;\n parser.attribValue = c;\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q;\n } else {\n parser.attribValue += c;\n }\n continue\n }\n attrib(parser);\n parser.q = '';\n parser.state = S.ATTRIB_VALUE_CLOSED;\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB;\n } else if (c === '>') {\n openTag(parser);\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH;\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes');\n parser.attribName = c;\n parser.attribValue = '';\n parser.state = S.ATTRIB_NAME;\n } else {\n strictFail(parser, 'Invalid attribute name');\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U;\n } else {\n parser.attribValue += c;\n }\n continue\n }\n attrib(parser);\n if (c === '>') {\n openTag(parser);\n } else {\n parser.state = S.ATTRIB;\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c;\n parser.state = S.SCRIPT;\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.');\n }\n } else {\n parser.tagName = c;\n }\n } else if (c === '>') {\n closeTag(parser);\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c;\n } else if (parser.script) {\n parser.script += '</' + parser.tagName;\n parser.tagName = '';\n parser.state = S.SCRIPT;\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag');\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE;\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser);\n } else {\n strictFail(parser, 'Invalid characters in closing tag');\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState;\n var buffer;\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT;\n buffer = 'textNode';\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED;\n buffer = 'attribValue';\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED;\n buffer = 'attribValue';\n break\n }\n\n if (c === ';') {\n parser[buffer] += parseEntity(parser);\n parser.entity = '';\n parser.state = returnState;\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c;\n } else {\n strictFail(parser, 'Invalid character in entity name');\n parser[buffer] += '&' + parser.entity + c;\n parser.entity = '';\n parser.state = returnState;\n }\n\n continue\n\n default:\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser);\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return ''\n }\n var result = '';\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint);\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xD800;\n lowSurrogate = (codePoint % 0x400) + 0xDC00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result\n };\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n });\n } else {\n String.fromCodePoint = fromCodePoint;\n }\n }());\n }\n})(exports);\n}(sax$1));\n\nvar arrayHelper = {\n\n isArray: function(value) {\n if (Array.isArray) {\n return Array.isArray(value);\n }\n // fallback for older browsers like IE 8\n return Object.prototype.toString.call( value ) === '[object Array]';\n }\n\n};\n\nvar isArray$2 = arrayHelper.isArray;\n\nvar optionsHelper = {\n\n copyOptions: function (options) {\n var key, copy = {};\n for (key in options) {\n if (options.hasOwnProperty(key)) {\n copy[key] = options[key];\n }\n }\n return copy;\n },\n\n ensureFlagExists: function (item, options) {\n if (!(item in options) || typeof options[item] !== 'boolean') {\n options[item] = false;\n }\n },\n\n ensureSpacesExists: function (options) {\n if (!('spaces' in options) || (typeof options.spaces !== 'number' && typeof options.spaces !== 'string')) {\n options.spaces = 0;\n }\n },\n\n ensureAlwaysArrayExists: function (options) {\n if (!('alwaysArray' in options) || (typeof options.alwaysArray !== 'boolean' && !isArray$2(options.alwaysArray))) {\n options.alwaysArray = false;\n }\n },\n\n ensureKeyExists: function (key, options) {\n if (!(key + 'Key' in options) || typeof options[key + 'Key'] !== 'string') {\n options[key + 'Key'] = options.compact ? '_' + key : key;\n }\n },\n\n checkFnExists: function (key, options) {\n return key + 'Fn' in options;\n }\n\n};\n\nvar sax = sax$1;\nvar helper$2 = optionsHelper;\nvar isArray$1 = arrayHelper.isArray;\n\nvar options;\nvar currentElement$1;\n\nfunction validateOptions$2(userOptions) {\n options = helper$2.copyOptions(userOptions);\n helper$2.ensureFlagExists('ignoreDeclaration', options);\n helper$2.ensureFlagExists('ignoreInstruction', options);\n helper$2.ensureFlagExists('ignoreAttributes', options);\n helper$2.ensureFlagExists('ignoreText', options);\n helper$2.ensureFlagExists('ignoreComment', options);\n helper$2.ensureFlagExists('ignoreCdata', options);\n helper$2.ensureFlagExists('ignoreDoctype', options);\n helper$2.ensureFlagExists('compact', options);\n helper$2.ensureFlagExists('alwaysChildren', options);\n helper$2.ensureFlagExists('addParent', options);\n helper$2.ensureFlagExists('trim', options);\n helper$2.ensureFlagExists('nativeType', options);\n helper$2.ensureFlagExists('nativeTypeAttributes', options);\n helper$2.ensureFlagExists('sanitize', options);\n helper$2.ensureFlagExists('instructionHasAttributes', options);\n helper$2.ensureFlagExists('captureSpacesBetweenElements', options);\n helper$2.ensureAlwaysArrayExists(options);\n helper$2.ensureKeyExists('declaration', options);\n helper$2.ensureKeyExists('instruction', options);\n helper$2.ensureKeyExists('attributes', options);\n helper$2.ensureKeyExists('text', options);\n helper$2.ensureKeyExists('comment', options);\n helper$2.ensureKeyExists('cdata', options);\n helper$2.ensureKeyExists('doctype', options);\n helper$2.ensureKeyExists('type', options);\n helper$2.ensureKeyExists('name', options);\n helper$2.ensureKeyExists('elements', options);\n helper$2.ensureKeyExists('parent', options);\n return options;\n}\n\nfunction nativeType(value) {\n var nValue = Number(value);\n if (!isNaN(nValue)) {\n return nValue;\n }\n var bValue = value.toLowerCase();\n if (bValue === 'true') {\n return true;\n } else if (bValue === 'false') {\n return false;\n }\n return value;\n}\n\nfunction addField(type, value) {\n var key;\n if (options.compact) {\n if (\n !currentElement$1[options[type + 'Key']] &&\n (isArray$1(options.alwaysArray) ? options.alwaysArray.indexOf(options[type + 'Key']) !== -1 : options.alwaysArray)\n ) {\n currentElement$1[options[type + 'Key']] = [];\n }\n if (currentElement$1[options[type + 'Key']] && !isArray$1(currentElement$1[options[type + 'Key']])) {\n currentElement$1[options[type + 'Key']] = [currentElement$1[options[type + 'Key']]];\n }\n if (type + 'Fn' in options && typeof value === 'string') {\n value = options[type + 'Fn'](value, currentElement$1);\n }\n if (type === 'instruction' && ('instructionFn' in options || 'instructionNameFn' in options)) {\n for (key in value) {\n if (value.hasOwnProperty(key)) {\n if ('instructionFn' in options) {\n value[key] = options.instructionFn(value[key], key, currentElement$1);\n } else {\n var temp = value[key];\n delete value[key];\n value[options.instructionNameFn(key, temp, currentElement$1)] = temp;\n }\n }\n }\n }\n if (isArray$1(currentElement$1[options[type + 'Key']])) {\n currentElement$1[options[type + 'Key']].push(value);\n } else {\n currentElement$1[options[type + 'Key']] = value;\n }\n } else {\n if (!currentElement$1[options.elementsKey]) {\n currentElement$1[options.elementsKey] = [];\n }\n var element = {};\n element[options.typeKey] = type;\n if (type === 'instruction') {\n for (key in value) {\n if (value.hasOwnProperty(key)) {\n break;\n }\n }\n element[options.nameKey] = 'instructionNameFn' in options ? options.instructionNameFn(key, value, currentElement$1) : key;\n if (options.instructionHasAttributes) {\n element[options.attributesKey] = value[key][options.attributesKey];\n if ('instructionFn' in options) {\n element[options.attributesKey] = options.instructionFn(element[options.attributesKey], key, currentElement$1);\n }\n } else {\n if ('instructionFn' in options) {\n value[key] = options.instructionFn(value[key], key, currentElement$1);\n }\n element[options.instructionKey] = value[key];\n }\n } else {\n if (type + 'Fn' in options) {\n value = options[type + 'Fn'](value, currentElement$1);\n }\n element[options[type + 'Key']] = value;\n }\n if (options.addParent) {\n element[options.parentKey] = currentElement$1;\n }\n currentElement$1[options.elementsKey].push(element);\n }\n}\n\nfunction manipulateAttributes(attributes) {\n if ('attributesFn' in options && attributes) {\n attributes = options.attributesFn(attributes, currentElement$1);\n }\n if ((options.trim || 'attributeValueFn' in options || 'attributeNameFn' in options || options.nativeTypeAttributes) && attributes) {\n var key;\n for (key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n if (options.trim) attributes[key] = attributes[key].trim();\n if (options.nativeTypeAttributes) {\n attributes[key] = nativeType(attributes[key]);\n }\n if ('attributeValueFn' in options) attributes[key] = options.attributeValueFn(attributes[key], key, currentElement$1);\n if ('attributeNameFn' in options) {\n var temp = attributes[key];\n delete attributes[key];\n attributes[options.attributeNameFn(key, attributes[key], currentElement$1)] = temp;\n }\n }\n }\n }\n return attributes;\n}\n\nfunction onInstruction(instruction) {\n var attributes = {};\n if (instruction.body && (instruction.name.toLowerCase() === 'xml' || options.instructionHasAttributes)) {\n var attrsRegExp = /([\\w:-]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|(\\w+))\\s*/g;\n var match;\n while ((match = attrsRegExp.exec(instruction.body)) !== null) {\n attributes[match[1]] = match[2] || match[3] || match[4];\n }\n attributes = manipulateAttributes(attributes);\n }\n if (instruction.name.toLowerCase() === 'xml') {\n if (options.ignoreDeclaration) {\n return;\n }\n currentElement$1[options.declarationKey] = {};\n if (Object.keys(attributes).length) {\n currentElement$1[options.declarationKey][options.attributesKey] = attributes;\n }\n if (options.addParent) {\n currentElement$1[options.declarationKey][options.parentKey] = currentElement$1;\n }\n } else {\n if (options.ignoreInstruction) {\n return;\n }\n if (options.trim) {\n instruction.body = instruction.body.trim();\n }\n var value = {};\n if (options.instructionHasAttributes && Object.keys(attributes).length) {\n value[instruction.name] = {};\n value[instruction.name][options.attributesKey] = attributes;\n } else {\n value[instruction.name] = instruction.body;\n }\n addField('instruction', value);\n }\n}\n\nfunction onStartElement(name, attributes) {\n var element;\n if (typeof name === 'object') {\n attributes = name.attributes;\n name = name.name;\n }\n attributes = manipulateAttributes(attributes);\n if ('elementNameFn' in options) {\n name = options.elementNameFn(name, currentElement$1);\n }\n if (options.compact) {\n element = {};\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\n element[options.attributesKey] = {};\n var key;\n for (key in attributes) {\n if (attributes.hasOwnProperty(key)) {\n element[options.attributesKey][key] = attributes[key];\n }\n }\n }\n if (\n !(name in currentElement$1) &&\n (isArray$1(options.alwaysArray) ? options.alwaysArray.indexOf(name) !== -1 : options.alwaysArray)\n ) {\n currentElement$1[name] = [];\n }\n if (currentElement$1[name] && !isArray$1(currentElement$1[name])) {\n currentElement$1[name] = [currentElement$1[name]];\n }\n if (isArray$1(currentElement$1[name])) {\n currentElement$1[name].push(element);\n } else {\n currentElement$1[name] = element;\n }\n } else {\n if (!currentElement$1[options.elementsKey]) {\n currentElement$1[options.elementsKey] = [];\n }\n element = {};\n element[options.typeKey] = 'element';\n element[options.nameKey] = name;\n if (!options.ignoreAttributes && attributes && Object.keys(attributes).length) {\n element[options.attributesKey] = attributes;\n }\n if (options.alwaysChildren) {\n element[options.elementsKey] = [];\n }\n currentElement$1[options.elementsKey].push(element);\n }\n element[options.parentKey] = currentElement$1; // will be deleted in onEndElement() if !options.addParent\n currentElement$1 = element;\n}\n\nfunction onText(text) {\n if (options.ignoreText) {\n return;\n }\n if (!text.trim() && !options.captureSpacesBetweenElements) {\n return;\n }\n if (options.trim) {\n text = text.trim();\n }\n if (options.nativeType) {\n text = nativeType(text);\n }\n if (options.sanitize) {\n text = text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n }\n addField('text', text);\n}\n\nfunction onComment(comment) {\n if (options.ignoreComment) {\n return;\n }\n if (options.trim) {\n comment = comment.trim();\n }\n addField('comment', comment);\n}\n\nfunction onEndElement(name) {\n var parentElement = currentElement$1[options.parentKey];\n if (!options.addParent) {\n delete currentElement$1[options.parentKey];\n }\n currentElement$1 = parentElement;\n}\n\nfunction onCdata(cdata) {\n if (options.ignoreCdata) {\n return;\n }\n if (options.trim) {\n cdata = cdata.trim();\n }\n addField('cdata', cdata);\n}\n\nfunction onDoctype(doctype) {\n if (options.ignoreDoctype) {\n return;\n }\n doctype = doctype.replace(/^ /, '');\n if (options.trim) {\n doctype = doctype.trim();\n }\n addField('doctype', doctype);\n}\n\nfunction onError(error) {\n error.note = error; //console.error(error);\n if ('onErrorFn' in options) options.onErrorFn(error);\n}\n\nvar xml2js$1 = function (xml, userOptions) {\n\n var parser = sax.parser(true, {}) ;\n var result = {};\n currentElement$1 = result;\n\n options = validateOptions$2(userOptions);\n\n {\n parser.opt = {strictEntities: true};\n parser.onopentag = onStartElement;\n parser.ontext = onText;\n parser.oncomment = onComment;\n parser.onclosetag = onEndElement;\n parser.onerror = onError;\n parser.oncdata = onCdata;\n parser.ondoctype = onDoctype;\n parser.onprocessinginstruction = onInstruction;\n }\n\n {\n try {\n parser.write(xml).close();\n } catch (e) {}\n }\n\n if (result[options.elementsKey]) {\n var temp = result[options.elementsKey];\n delete result[options.elementsKey];\n result[options.elementsKey] = temp;\n delete result.text;\n }\n\n return result;\n\n};\n\nvar helper$1 = optionsHelper;\nvar xml2js = xml2js$1;\n\nfunction validateOptions$1 (userOptions) {\n var options = helper$1.copyOptions(userOptions);\n helper$1.ensureSpacesExists(options);\n return options;\n}\n\nvar xml2json = function(xml, userOptions) {\n var options, js, json, parentKey;\n options = validateOptions$1(userOptions);\n js = xml2js(xml, options);\n parentKey = 'compact' in options && options.compact ? '_parent' : 'parent';\n // parentKey = ptions.compact ? '_parent' : 'parent'; // consider this\n if ('addParent' in options && options.addParent) {\n json = JSON.stringify(js, function (k, v) { return k === parentKey? '_' : v; }, options.spaces);\n } else {\n json = JSON.stringify(js, null, options.spaces);\n }\n return json.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n};\n\nvar helper = optionsHelper;\nvar isArray = arrayHelper.isArray;\n\nvar currentElement, currentElementName;\n\nfunction validateOptions(userOptions) {\n var options = helper.copyOptions(userOptions);\n helper.ensureFlagExists('ignoreDeclaration', options);\n helper.ensureFlagExists('ignoreInstruction', options);\n helper.ensureFlagExists('ignoreAttributes', options);\n helper.ensureFlagExists('ignoreText', options);\n helper.ensureFlagExists('ignoreComment', options);\n helper.ensureFlagExists('ignoreCdata', options);\n helper.ensureFlagExists('ignoreDoctype', options);\n helper.ensureFlagExists('compact', options);\n helper.ensureFlagExists('indentText', options);\n helper.ensureFlagExists('indentCdata', options);\n helper.ensureFlagExists('indentAttributes', options);\n helper.ensureFlagExists('indentInstruction', options);\n helper.ensureFlagExists('fullTagEmptyElement', options);\n helper.ensureFlagExists('noQuotesForNativeAttributes', options);\n helper.ensureSpacesExists(options);\n if (typeof options.spaces === 'number') {\n options.spaces = Array(options.spaces + 1).join(' ');\n }\n helper.ensureKeyExists('declaration', options);\n helper.ensureKeyExists('instruction', options);\n helper.ensureKeyExists('attributes', options);\n helper.ensureKeyExists('text', options);\n helper.ensureKeyExists('comment', options);\n helper.ensureKeyExists('cdata', options);\n helper.ensureKeyExists('doctype', options);\n helper.ensureKeyExists('type', options);\n helper.ensureKeyExists('name', options);\n helper.ensureKeyExists('elements', options);\n return options;\n}\n\nfunction writeIndentation(options, depth, firstLine) {\n return (!firstLine && options.spaces ? '\\n' : '') + Array(depth + 1).join(options.spaces);\n}\n\nfunction writeAttributes(attributes, options, depth) {\n if (options.ignoreAttributes) {\n return '';\n }\n if ('attributesFn' in options) {\n attributes = options.attributesFn(attributes, currentElementName, currentElement);\n }\n var key, attr, attrName, quote, result = [];\n for (key in attributes) {\n if (attributes.hasOwnProperty(key) && attributes[key] !== null && attributes[key] !== undefined) {\n quote = options.noQuotesForNativeAttributes && typeof attributes[key] !== 'string' ? '' : '\"';\n attr = '' + attributes[key]; // ensure number and boolean are converted to String\n attr = attr.replace(/&/g, '&').replace(/</g, '<').replace(/\"/g, '"');\n attrName = 'attributeNameFn' in options ? options.attributeNameFn(key, attr, currentElementName, currentElement) : key;\n result.push((options.spaces && options.indentAttributes? writeIndentation(options, depth+1, false) : ' '));\n result.push(attrName + '=' + quote + ('attributeValueFn' in options ? options.attributeValueFn(attr, key, currentElementName, currentElement) : attr) + quote);\n }\n }\n if (attributes && Object.keys(attributes).length && options.spaces && options.indentAttributes) {\n result.push(writeIndentation(options, depth, false));\n }\n return result.join('');\n}\n\nfunction writeDeclaration(declaration, options, depth) {\n currentElement = declaration;\n currentElementName = 'xml';\n return options.ignoreDeclaration ? '' : '<?' + 'xml' + writeAttributes(declaration[options.attributesKey], options, depth) + '?>';\n}\n\nfunction writeInstruction(instruction, options, depth) {\n if (options.ignoreInstruction) {\n return '';\n }\n var key;\n for (key in instruction) {\n if (instruction.hasOwnProperty(key)) {\n break;\n }\n }\n var instructionName = 'instructionNameFn' in options ? options.instructionNameFn(key, instruction[key], currentElementName, currentElement) : key;\n if (typeof instruction[key] === 'object') {\n currentElement = instruction;\n currentElementName = instructionName;\n return '<?' + instructionName + writeAttributes(instruction[key][options.attributesKey], options, depth) + '?>';\n } else {\n var instructionValue = instruction[key] ? instruction[key] : '';\n if ('instructionFn' in options) instructionValue = options.instructionFn(instructionValue, key, currentElementName, currentElement);\n return '<?' + instructionName + (instructionValue ? ' ' + instructionValue : '') + '?>';\n }\n}\n\nfunction writeComment(comment, options) {\n return options.ignoreComment ? '' : '<!--' + ('commentFn' in options ? options.commentFn(comment, currentElementName, currentElement) : comment) + '-->';\n}\n\nfunction writeCdata(cdata, options) {\n return options.ignoreCdata ? '' : '<![CDATA[' + ('cdataFn' in options ? options.cdataFn(cdata, currentElementName, currentElement) : cdata.replace(']]>', ']]]]><![CDATA[>')) + ']]>';\n}\n\nfunction writeDoctype(doctype, options) {\n return options.ignoreDoctype ? '' : '<!DOCTYPE ' + ('doctypeFn' in options ? options.doctypeFn(doctype, currentElementName, currentElement) : doctype) + '>';\n}\n\nfunction writeText(text, options) {\n if (options.ignoreText) return '';\n text = '' + text; // ensure Number and Boolean are converted to String\n text = text.replace(/&/g, '&'); // desanitize to avoid double sanitization\n text = text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n return 'textFn' in options ? options.textFn(text, currentElementName, currentElement) : text;\n}\n\nfunction hasContent(element, options) {\n var i;\n if (element.elements && element.elements.length) {\n for (i = 0; i < element.elements.length; ++i) {\n switch (element.elements[i][options.typeKey]) {\n case 'text':\n if (options.indentText) {\n return true;\n }\n break; // skip to next key\n case 'cdata':\n if (options.indentCdata) {\n return true;\n }\n break; // skip to next key\n case 'instruction':\n if (options.indentInstruction) {\n return true;\n }\n break; // skip to next key\n case 'doctype':\n case 'comment':\n case 'element':\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElement(element, options, depth) {\n currentElement = element;\n currentElementName = element.name;\n var xml = [], elementName = 'elementNameFn' in options ? options.elementNameFn(element.name, element) : element.name;\n xml.push('<' + elementName);\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = element[options.elementsKey] && element[options.elementsKey].length || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(element.name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n if (element[options.elementsKey] && element[options.elementsKey].length) {\n xml.push(writeElements(element[options.elementsKey], options, depth + 1));\n currentElement = element;\n currentElementName = element.name;\n }\n xml.push(options.spaces && hasContent(element, options) ? '\\n' + Array(depth + 1).join(options.spaces) : '');\n xml.push('</' + elementName + '>');\n } else {\n xml.push('/>');\n }\n return xml.join('');\n}\n\nfunction writeElements(elements, options, depth, firstLine) {\n return elements.reduce(function (xml, element) {\n var indent = writeIndentation(options, depth, firstLine && !xml);\n switch (element.type) {\n case 'element': return xml + indent + writeElement(element, options, depth);\n case 'comment': return xml + indent + writeComment(element[options.commentKey], options);\n case 'doctype': return xml + indent + writeDoctype(element[options.doctypeKey], options);\n case 'cdata': return xml + (options.indentCdata ? indent : '') + writeCdata(element[options.cdataKey], options);\n case 'text': return xml + (options.indentText ? indent : '') + writeText(element[options.textKey], options);\n case 'instruction':\n var instruction = {};\n instruction[element[options.nameKey]] = element[options.attributesKey] ? element : element[options.instructionKey];\n return xml + (options.indentInstruction ? indent : '') + writeInstruction(instruction, options, depth);\n }\n }, '');\n}\n\nfunction hasContentCompact(element, options, anyContent) {\n var key;\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n switch (key) {\n case options.parentKey:\n case options.attributesKey:\n break; // skip to next key\n case options.textKey:\n if (options.indentText || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.cdataKey:\n if (options.indentCdata || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.instructionKey:\n if (options.indentInstruction || anyContent) {\n return true;\n }\n break; // skip to next key\n case options.doctypeKey:\n case options.commentKey:\n return true;\n default:\n return true;\n }\n }\n }\n return false;\n}\n\nfunction writeElementCompact(element, name, options, depth, indent) {\n currentElement = element;\n currentElementName = name;\n var elementName = 'elementNameFn' in options ? options.elementNameFn(name, element) : name;\n if (typeof element === 'undefined' || element === null || element === '') {\n return 'fullTagEmptyElementFn' in options && options.fullTagEmptyElementFn(name, element) || options.fullTagEmptyElement ? '<' + elementName + '></' + elementName + '>' : '<' + elementName + '/>';\n }\n var xml = [];\n if (name) {\n xml.push('<' + elementName);\n if (typeof element !== 'object') {\n xml.push('>' + writeText(element,options) + '</' + elementName + '>');\n return xml.join('');\n }\n if (element[options.attributesKey]) {\n xml.push(writeAttributes(element[options.attributesKey], options, depth));\n }\n var withClosingTag = hasContentCompact(element, options, true) || element[options.attributesKey] && element[options.attributesKey]['xml:space'] === 'preserve';\n if (!withClosingTag) {\n if ('fullTagEmptyElementFn' in options) {\n withClosingTag = options.fullTagEmptyElementFn(name, element);\n } else {\n withClosingTag = options.fullTagEmptyElement;\n }\n }\n if (withClosingTag) {\n xml.push('>');\n } else {\n xml.push('/>');\n return xml.join('');\n }\n }\n xml.push(writeElementsCompact(element, options, depth + 1, false));\n currentElement = element;\n currentElementName = name;\n if (name) {\n xml.push((indent ? writeIndentation(options, depth, false) : '') + '</' + elementName + '>');\n }\n return xml.join('');\n}\n\nfunction writeElementsCompact(element, options, depth, firstLine) {\n var i, key, nodes, xml = [];\n for (key in element) {\n if (element.hasOwnProperty(key)) {\n nodes = isArray(element[key]) ? element[key] : [element[key]];\n for (i = 0; i < nodes.length; ++i) {\n switch (key) {\n case options.declarationKey: xml.push(writeDeclaration(nodes[i], options, depth)); break;\n case options.instructionKey: xml.push((options.indentInstruction ? writeIndentation(options, depth, firstLine) : '') + writeInstruction(nodes[i], options, depth)); break;\n case options.attributesKey: case options.parentKey: break; // skip\n case options.textKey: xml.push((options.indentText ? writeIndentation(options, depth, firstLine) : '') + writeText(nodes[i], options)); break;\n case options.cdataKey: xml.push((options.indentCdata ? writeIndentation(options, depth, firstLine) : '') + writeCdata(nodes[i], options)); break;\n case options.doctypeKey: xml.push(writeIndentation(options, depth, firstLine) + writeDoctype(nodes[i], options)); break;\n case options.commentKey: xml.push(writeIndentation(options, depth, firstLine) + writeComment(nodes[i], options)); break;\n default: xml.push(writeIndentation(options, depth, firstLine) + writeElementCompact(nodes[i], key, options, depth, hasContentCompact(nodes[i], options)));\n }\n firstLine = firstLine && !xml.length;\n }\n }\n }\n return xml.join('');\n}\n\nvar js2xml$1 = function (js, options) {\n options = validateOptions(options);\n var xml = [];\n currentElement = js;\n currentElementName = '_root_';\n if (options.compact) {\n xml.push(writeElementsCompact(js, options, 0, true));\n } else {\n if (js[options.declarationKey]) {\n xml.push(writeDeclaration(js[options.declarationKey], options, 0));\n }\n if (js[options.elementsKey] && js[options.elementsKey].length) {\n xml.push(writeElements(js[options.elementsKey], options, 0, !xml.length));\n }\n }\n return xml.join('');\n};\n\nvar js2xml = js2xml$1;\n\nvar json2xml = function (json, options) {\n if (json instanceof Buffer) {\n json = json.toString();\n }\n var js = null;\n if (typeof (json) === 'string') {\n try {\n js = JSON.parse(json);\n } catch (e) {\n throw new Error('The JSON structure is invalid');\n }\n } else {\n js = json;\n }\n return js2xml(js, options);\n};\n\nexport { js2xml$1 as js2xml, json2xml, xml2js$1 as xml2js, xml2json };\n"],"names":["canvasPolyfill","x","y","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","polyfill","save","t","restore","transform","a","b","c","d","e","f","na","nb","nc","nd","ne","nf","setTransform","aa","b_1","c_1","d_1","e_1","f_1","resetTransform","scale","sx","sy","rotate","w","cw","sw","translate","getAugmentedNamespace","n","k","global$1","lookup","revLookup","Arr","inited","init","code","i","len","toByteArray","b64","j","l","tmp","placeHolders","arr","L","tripletToBase64","num","encodeChunk","uint8","start","end","output","fromByteArray","extraBytes","parts","maxChunkLength","len2","read","buffer","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","s","write","value","rt","toString","isArray$4","INSPECT_MAX_BYTES","Buffer$1","kMaxLength","createBuffer","that","length","arg","encodingOrOffset","allocUnsafe","from","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","checked","string","byteLength","actual","fromArrayLike","array","byteOffset","obj","internalIsBuffer","isnan","isBuffer","list","pos","buf","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","toHex","bytes","newBuf","sliceLen","checkOffset","ext","noAssert","mul","checkInt","min","maxBytes","objectWriteUInt16","littleEndian","objectWriteUInt32","limit","sub","checkIEEE754","writeFloat","writeDouble","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","src","dst","isFastBuffer","isSlowBuffer","sax$1","domain","EventHandlers","EventEmitter","$getMaxListeners","emitNone","handler","isFn","self","listeners","arrayClone","emitOne","arg1","emitTwo","arg2","emitThree","arg3","emitMany","args","type","er","events","doError","err","_addListener","listener","prepend","existing","emitWarning","_onceWrap","fired","g","position","originalListener","spliceOne","keys","key","evlistener","unwrapListeners","emitter","listenerCount$1","index","copy","defaultSetTimout","defaultClearTimeout","cachedSetTimeout","cachedClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","nextTick","Item","env","performance","browser$1","process","inherits","ctor","superCtor","TempCtor","inherits$1","formatRegExp","format","isString","objects","inspect","isNull","isObject","deprecate","fn","msg","isUndefined","warned","deprecated","debugs","debugEnviron","debuglog","set","pid","opts","ctx","stylizeNoColor","isBoolean","_extend","stylizeWithColor","formatValue","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","isError","formatError","name","isRegExp","isDate","base","braces","isArray$3","formatArray","formatProperty","reduceToSingleString","simple","isNumber","hasOwnProperty","desc","line","prev","cur","ar","re","objectToString","o","origin","add","prop","BufferList","v","entry","p","isBufferEncoding","assertEncoding","StringDecoder","utf16DetectIncompleteChar","base64DetectIncompleteChar","passThroughWrite","charStr","available","charCode","cr","enc","stringDecoder","Readable","ReadableState","debug","prependListener","event","listenerCount","options","stream","Duplex","hwm","defaultHwm","chunk","state","readableAddChunk","addToFront","chunkInvalid","onEofChunk","_e","skipAdd","emitReadable","maybeReadMore","needMoreData","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","dest","pipeOpts","doEnd","endFn","onend","cleanup","onunpipe","readable","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","onerror","ondata","increasedAwaitDrain","indexOf","unpipe","dests","_i","ev","nReadingNextTick","resume","resume_","paused","method","forEach","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","endReadableNT","xs","Writable","WritableState","nop","WriteReq","cb","noDecode","onwrite","CorkedRequest","current","writeAfterEnd","validChunk","valid","writeOrBuffer","clearBuffer","decodeChunk","last","doWrite","writev","onwriteError","sync","onwriteStateUpdate","finished","needFinish","afterWrite","finishMaybe","onwriteDrain","holder","count","endWritable","prefinish","need","_this","onEndNT","Transform","TransformState","data","afterTransform","ts","rs","done","ws","PassThrough","Stream","source","didOnEnd","require$$0","require$$1","exports","sax","strict","opt","SAXParser","SAXStream","createStream","buffers","parser","clearBuffers","S","rootNS","emit","F","newf","checkBufferLength","maxAllowed","maxActual","closeText","emitNode","error","flushBuffers","streamWraps","me","h","SD","CDATA","DOCTYPE","XML_NAMESPACE","XMLNS_NAMESPACE","nameStart","nameBody","entityStart","entityBody","isWhitespace","isQuote","isAttribEnd","isMatch","regex","notMatch","nodeType","textopts","text","strictFail","message","newTag","parent","tag","qname","attribute","qualName","prefix","local","attrib","qn","openTag","selfClosing","nv","uri","closeTag","tagName","closeTo","close","parseEntity","entity","entityLC","numStr","beginWhiteSpace","charAt","result","starti","pad","returnState","stringFromCharCode","floor","fromCodePoint","MAX_SIZE","codeUnits","highSurrogate","lowSurrogate","arrayHelper","isArray$2","optionsHelper","item","helper$2","isArray$1","currentElement$1","validateOptions$2","userOptions","nativeType","nValue","bValue","addField","temp","element","manipulateAttributes","attributes","onInstruction","instruction","attrsRegExp","match","onStartElement","onText","onComment","comment","onEndElement","parentElement","onCdata","cdata","onDoctype","doctype","onError","xml2js$1","xml","helper$1","xml2js","validateOptions$1","xml2json","js","json","parentKey","helper","isArray","currentElement","currentElementName","validateOptions","writeIndentation","depth","firstLine","writeAttributes","attr","attrName","quote","writeDeclaration","declaration","writeInstruction","instructionName","instructionValue","writeComment","writeCdata","writeDoctype","writeText","hasContent","writeElement","elementName","withClosingTag","writeElements","elements","indent","hasContentCompact","anyContent","writeElementCompact","writeElementsCompact","nodes","js2xml$1","js2xml","json2xml"],"mappings":"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","x_google_ignoreList":[0,1]}