{"version":3,"file":"e08ceb17c9044cab7d1c455be0c7764604d71b60-541f34c8eb88bfcfb1c3.js","mappings":"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","sources":["webpack://kanha-shanthi-vanam/../sites-common/components/HtmlDiv.jsx","webpack://kanha-shanthi-vanam/../node_modules/base64-js/index.js","webpack://kanha-shanthi-vanam/../node_modules/buffer/index.js","webpack://kanha-shanthi-vanam/../node_modules/events/events.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/CollectingHandler.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/FeedHandler.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/Parser.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/ProxyHandler.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/Stream.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/Tokenizer.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/WritableStream.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/lib/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/node_modules/domelementtype/lib/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/encode.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities/lib/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domelementtype/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domhandler/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domhandler/lib/element.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domhandler/lib/node.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/index.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/helpers.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/legacy.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/querying.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/stringify.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/domutils/lib/traversal.js","webpack://kanha-shanthi-vanam/../node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","webpack://kanha-shanthi-vanam/../node_modules/ieee754/index.js","webpack://kanha-shanthi-vanam/../node_modules/inherits/inherits_browser.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/HtmlParser.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/convertNodeToElement.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/dom/attributes/BooleanAttributes.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/dom/attributes/ReactAttributes.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/dom/elements/VoidElements.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/elementTypes/StyleElementType.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/elementTypes/TagElementType.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/elementTypes/TextElementType.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/elementTypes/UnsupportedElementType.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/elementTypes/index.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/index.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/processNodes.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/utils/generatePropsFromAttributes.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/utils/htmlAttributesToReact.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/utils/inlineStyleToObject.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/utils/isEmptyTextNode.js","webpack://kanha-shanthi-vanam/../node_modules/react-html-parser/lib/utils/isValidTagOrAttributeName.js","webpack://kanha-shanthi-vanam/../node_modules/safe-buffer/index.js","webpack://kanha-shanthi-vanam/../node_modules/string_decoder/lib/string_decoder.js"],"sourcesContent":["import ReactHtmlParser from \"react-html-parser\";\n\nconst HtmlDiv = ({ htmlString = \"\" }) => ReactHtmlParser(htmlString);\n\nexport default HtmlDiv;\n","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\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 } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\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[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = 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\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\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 } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar customInspectSymbol = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' // eslint-disable-line dot-notation\n? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n: null;\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\nvar K_MAX_LENGTH = 0x7fffffff;\nexports.kMaxLength = K_MAX_LENGTH;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');\n}\n\nfunction typedArraySupport() {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1);\n var proto = {\n foo: function foo() {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.buffer;\n }\n});\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function get() {\n if (!Buffer.isBuffer(this)) return undefined;\n return this.byteOffset;\n }\n});\n\nfunction createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n } // Return an augmented `Uint8Array` instance\n\n\n var buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\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\n\nfunction Buffer(arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError('The \"string\" argument must be of type string. Received type number');\n }\n\n return allocUnsafe(arg);\n }\n\n return from(arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\nfunction from(value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset);\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n\n if (value == null) {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + typeof value);\n }\n\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n }\n\n var valueOf = value.valueOf && value.valueOf();\n\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length);\n }\n\n var b = fromObject(value);\n if (b) return b;\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length);\n }\n\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + typeof value);\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 **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n}; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\n\n\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\nObject.setPrototypeOf(Buffer, Uint8Array);\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number');\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n}\n\nfunction alloc(size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(size);\n }\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 interpreted as a start offset.\n return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n\n return createBuffer(size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding);\n};\n\nfunction allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size);\n};\n\nfunction fromString(string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n\n var length = byteLength(string, encoding) | 0;\n var buf = createBuffer(length);\n var actual = buf.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 buf = buf.slice(0, actual);\n }\n\n return buf;\n}\n\nfunction fromArrayLike(array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n var buf = createBuffer(length);\n\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n\n return buf;\n}\n\nfunction fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n\n return fromArrayLike(arrayView);\n}\n\nfunction fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n\n var buf;\n\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array);\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n } // Return an augmented `Uint8Array` instance\n\n\n Object.setPrototypeOf(buf, Buffer.prototype);\n return buf;\n}\n\nfunction fromObject(obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n var buf = createBuffer(len);\n\n if (buf.length === 0) {\n return buf;\n }\n\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n\n return fromArrayLike(obj);\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n}\n\nfunction checked(length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n};\n\nBuffer.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n }\n\n if (a === b) return 0;\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.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\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n } else {\n buf.copy(buffer, pos);\n }\n\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + typeof string);\n }\n\n var len = string.length;\n var mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n }\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\n\n\nBuffer.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.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n if (this.length > max) str += ' ... ';\n return '';\n};\n\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n}\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength);\n }\n\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + typeof target);\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\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\n if (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\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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.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\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n }\n\n var strLen = string.length;\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\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 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.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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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 case 'latin1':\n case 'binary':\n return asciiWrite(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.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 base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, 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\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\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = ''; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.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 var newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n Object.setPrototypeOf(newBuf, Buffer.prototype);\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\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.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\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.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\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.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(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.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\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\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength = byteLength >>> 0;\n\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\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUint8 = Buffer.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 this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeUint16LE = Buffer.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 this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n};\n\nBuffer.prototype.writeUint16BE = Buffer.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 this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n return offset + 2;\n};\n\nBuffer.prototype.writeUint32LE = Buffer.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 this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n return offset + 4;\n};\n\nBuffer.prototype.writeUint32BE = Buffer.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 this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.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 (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.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 this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n};\n\nBuffer.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 this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n return offset + 2;\n};\n\nBuffer.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 this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n};\n\nBuffer.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 this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\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 value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.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 value = +value;\n offset = offset >>> 0;\n\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer');\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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.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\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (encoding === 'utf8' && code < 128 || encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code;\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } else if (typeof val === 'boolean') {\n val = Number(val);\n } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n var len = bytes.length;\n\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n str = str.trim().replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\nfunction base64ToBytes(str) {\n return base64.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\n return i;\n} // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\n\n\nfunction isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n}\n\nfunction numberIsNaN(obj) {\n // For IE11 support\n return obj !== obj; // eslint-disable-line no-self-compare\n} // Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\n\n\nvar hexSliceLookupTable = function () {\n var alphabet = '0123456789abcdef';\n var table = new Array(256);\n\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16;\n\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n\n return table;\n}();","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\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 !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\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] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\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 = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\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 !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}","module.exports = CollectingHandler;\n\nfunction CollectingHandler(cbs) {\n this._cbs = cbs || {};\n this.events = [];\n}\n\nvar EVENTS = require(\"./\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function () {\n this.events.push([name]);\n if (this._cbs[name]) this._cbs[name]();\n };\n } else if (EVENTS[name] === 1) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function (a) {\n this.events.push([name, a]);\n if (this._cbs[name]) this._cbs[name](a);\n };\n } else if (EVENTS[name] === 2) {\n name = \"on\" + name;\n\n CollectingHandler.prototype[name] = function (a, b) {\n this.events.push([name, a, b]);\n if (this._cbs[name]) this._cbs[name](a, b);\n };\n } else {\n throw Error(\"wrong number of arguments\");\n }\n});\n\nCollectingHandler.prototype.onreset = function () {\n this.events = [];\n if (this._cbs.onreset) this._cbs.onreset();\n};\n\nCollectingHandler.prototype.restart = function () {\n if (this._cbs.onreset) this._cbs.onreset();\n\n for (var i = 0, len = this.events.length; i < len; i++) {\n if (this._cbs[this.events[i][0]]) {\n var num = this.events[i].length;\n\n if (num === 1) {\n this._cbs[this.events[i][0]]();\n } else if (num === 2) {\n this._cbs[this.events[i][0]](this.events[i][1]);\n } else {\n this._cbs[this.events[i][0]](this.events[i][1], this.events[i][2]);\n }\n }\n }\n};","var DomHandler = require(\"domhandler\");\n\nvar DomUtils = require(\"domutils\"); //TODO: make this a streamable handler\n\n\nfunction FeedHandler(callback, options) {\n this.init(callback, options);\n}\n\nrequire(\"inherits\")(FeedHandler, DomHandler);\n\nFeedHandler.prototype.init = DomHandler;\n\nfunction getElements(what, where) {\n return DomUtils.getElementsByTagName(what, where, true);\n}\n\nfunction getOneElement(what, where) {\n return DomUtils.getElementsByTagName(what, where, true, 1)[0];\n}\n\nfunction fetch(what, where, recurse) {\n return DomUtils.getText(DomUtils.getElementsByTagName(what, where, recurse, 1)).trim();\n}\n\nfunction addConditionally(obj, prop, what, where, recurse) {\n var tmp = fetch(what, where, recurse);\n if (tmp) obj[prop] = tmp;\n}\n\nvar isValidFeed = function isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n};\n\nFeedHandler.prototype.onend = function () {\n var feed = {},\n feedRoot = getOneElement(isValidFeed, this.dom),\n tmp,\n childs;\n\n if (feedRoot) {\n if (feedRoot.name === \"feed\") {\n childs = feedRoot.children;\n feed.type = \"atom\";\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n if ((tmp = getOneElement(\"link\", childs)) && (tmp = tmp.attribs) && (tmp = tmp.href)) feed.link = tmp;\n addConditionally(feed, \"description\", \"subtitle\", childs);\n if (tmp = fetch(\"updated\", childs)) feed.updated = new Date(tmp);\n addConditionally(feed, \"author\", \"email\", childs, true);\n feed.items = getElements(\"entry\", childs).map(function (item) {\n var entry = {},\n tmp;\n item = item.children;\n addConditionally(entry, \"id\", \"id\", item);\n addConditionally(entry, \"title\", \"title\", item);\n if ((tmp = getOneElement(\"link\", item)) && (tmp = tmp.attribs) && (tmp = tmp.href)) entry.link = tmp;\n if (tmp = fetch(\"summary\", item) || fetch(\"content\", item)) entry.description = tmp;\n if (tmp = fetch(\"updated\", item)) entry.pubDate = new Date(tmp);\n return entry;\n });\n } else {\n childs = getOneElement(\"channel\", feedRoot.children).children;\n feed.type = feedRoot.name.substr(0, 3);\n feed.id = \"\";\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n if (tmp = fetch(\"lastBuildDate\", childs)) feed.updated = new Date(tmp);\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n feed.items = getElements(\"item\", feedRoot.children).map(function (item) {\n var entry = {},\n tmp;\n item = item.children;\n addConditionally(entry, \"id\", \"guid\", item);\n addConditionally(entry, \"title\", \"title\", item);\n addConditionally(entry, \"link\", \"link\", item);\n addConditionally(entry, \"description\", \"description\", item);\n if (tmp = fetch(\"pubDate\", item)) entry.pubDate = new Date(tmp);\n return entry;\n });\n }\n }\n\n this.dom = feed;\n\n DomHandler.prototype._handleCallback.call(this, feedRoot ? null : Error(\"couldn't find root of feed\"));\n};\n\nmodule.exports = FeedHandler;","var Tokenizer = require(\"./Tokenizer.js\");\n/*\n\tOptions:\n\n\txmlMode: Disables the special behavior for script/style tags (false by default)\n\tlowerCaseAttributeNames: call .toLowerCase for each attribute name (true if xmlMode is `false`)\n\tlowerCaseTags: call .toLowerCase for each tag name (true if xmlMode is `false`)\n*/\n\n/*\n\tCallbacks:\n\n\toncdataend,\n\toncdatastart,\n\tonclosetag,\n\toncomment,\n\toncommentend,\n\tonerror,\n\tonopentag,\n\tonprocessinginstruction,\n\tonreset,\n\tontext\n*/\n\n\nvar formTags = {\n input: true,\n option: true,\n optgroup: true,\n select: true,\n button: true,\n datalist: true,\n textarea: true\n};\nvar openImpliesClose = {\n tr: {\n tr: true,\n th: true,\n td: true\n },\n th: {\n th: true\n },\n td: {\n thead: true,\n th: true,\n td: true\n },\n body: {\n head: true,\n link: true,\n script: true\n },\n li: {\n li: true\n },\n p: {\n p: true\n },\n h1: {\n p: true\n },\n h2: {\n p: true\n },\n h3: {\n p: true\n },\n h4: {\n p: true\n },\n h5: {\n p: true\n },\n h6: {\n p: true\n },\n select: formTags,\n input: formTags,\n output: formTags,\n button: formTags,\n datalist: formTags,\n textarea: formTags,\n option: {\n option: true\n },\n optgroup: {\n optgroup: true\n }\n};\nvar voidElements = {\n __proto__: null,\n area: true,\n base: true,\n basefont: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n frame: true,\n hr: true,\n img: true,\n input: true,\n isindex: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n};\nvar foreignContextElements = {\n __proto__: null,\n math: true,\n svg: true\n};\nvar htmlIntegrationElements = {\n __proto__: null,\n mi: true,\n mo: true,\n mn: true,\n ms: true,\n mtext: true,\n \"annotation-xml\": true,\n foreignObject: true,\n desc: true,\n title: true\n};\nvar re_nameEnd = /\\s|\\//;\n\nfunction Parser(cbs, options) {\n this._options = options || {};\n this._cbs = cbs || {};\n this._tagname = \"\";\n this._attribname = \"\";\n this._attribvalue = \"\";\n this._attribs = null;\n this._stack = [];\n this._foreignContext = [];\n this.startIndex = 0;\n this.endIndex = null;\n this._lowerCaseTagNames = \"lowerCaseTags\" in this._options ? !!this._options.lowerCaseTags : !this._options.xmlMode;\n this._lowerCaseAttributeNames = \"lowerCaseAttributeNames\" in this._options ? !!this._options.lowerCaseAttributeNames : !this._options.xmlMode;\n\n if (this._options.Tokenizer) {\n Tokenizer = this._options.Tokenizer;\n }\n\n this._tokenizer = new Tokenizer(this._options, this);\n if (this._cbs.onparserinit) this._cbs.onparserinit(this);\n}\n\nrequire(\"inherits\")(Parser, require(\"events\").EventEmitter);\n\nParser.prototype._updatePosition = function (initialOffset) {\n if (this.endIndex === null) {\n if (this._tokenizer._sectionStart <= initialOffset) {\n this.startIndex = 0;\n } else {\n this.startIndex = this._tokenizer._sectionStart - initialOffset;\n }\n } else this.startIndex = this.endIndex + 1;\n\n this.endIndex = this._tokenizer.getAbsoluteIndex();\n}; //Tokenizer event handlers\n\n\nParser.prototype.ontext = function (data) {\n this._updatePosition(1);\n\n this.endIndex--;\n if (this._cbs.ontext) this._cbs.ontext(data);\n};\n\nParser.prototype.onopentagname = function (name) {\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n this._tagname = name;\n\n if (!this._options.xmlMode && name in openImpliesClose) {\n for (var el; ((el = this._stack[this._stack.length - 1]) in openImpliesClose[name]); this.onclosetag(el)) {\n ;\n }\n }\n\n if (this._options.xmlMode || !(name in voidElements)) {\n this._stack.push(name);\n\n if (name in foreignContextElements) this._foreignContext.push(true);else if (name in htmlIntegrationElements) this._foreignContext.push(false);\n }\n\n if (this._cbs.onopentagname) this._cbs.onopentagname(name);\n if (this._cbs.onopentag) this._attribs = {};\n};\n\nParser.prototype.onopentagend = function () {\n this._updatePosition(1);\n\n if (this._attribs) {\n if (this._cbs.onopentag) this._cbs.onopentag(this._tagname, this._attribs);\n this._attribs = null;\n }\n\n if (!this._options.xmlMode && this._cbs.onclosetag && this._tagname in voidElements) {\n this._cbs.onclosetag(this._tagname);\n }\n\n this._tagname = \"\";\n};\n\nParser.prototype.onclosetag = function (name) {\n this._updatePosition(1);\n\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n if (name in foreignContextElements || name in htmlIntegrationElements) {\n this._foreignContext.pop();\n }\n\n if (this._stack.length && (!(name in voidElements) || this._options.xmlMode)) {\n var pos = this._stack.lastIndexOf(name);\n\n if (pos !== -1) {\n if (this._cbs.onclosetag) {\n pos = this._stack.length - pos;\n\n while (pos--) {\n this._cbs.onclosetag(this._stack.pop());\n }\n } else this._stack.length = pos;\n } else if (name === \"p\" && !this._options.xmlMode) {\n this.onopentagname(name);\n\n this._closeCurrentTag();\n }\n } else if (!this._options.xmlMode && (name === \"br\" || name === \"p\")) {\n this.onopentagname(name);\n\n this._closeCurrentTag();\n }\n};\n\nParser.prototype.onselfclosingtag = function () {\n if (this._options.xmlMode || this._options.recognizeSelfClosing || this._foreignContext[this._foreignContext.length - 1]) {\n this._closeCurrentTag();\n } else {\n this.onopentagend();\n }\n};\n\nParser.prototype._closeCurrentTag = function () {\n var name = this._tagname;\n this.onopentagend(); //self-closing tags will be on the top of the stack\n //(cheaper check than in onclosetag)\n\n if (this._stack[this._stack.length - 1] === name) {\n if (this._cbs.onclosetag) {\n this._cbs.onclosetag(name);\n }\n\n this._stack.pop();\n }\n};\n\nParser.prototype.onattribname = function (name) {\n if (this._lowerCaseAttributeNames) {\n name = name.toLowerCase();\n }\n\n this._attribname = name;\n};\n\nParser.prototype.onattribdata = function (value) {\n this._attribvalue += value;\n};\n\nParser.prototype.onattribend = function () {\n if (this._cbs.onattribute) this._cbs.onattribute(this._attribname, this._attribvalue);\n\n if (this._attribs && !Object.prototype.hasOwnProperty.call(this._attribs, this._attribname)) {\n this._attribs[this._attribname] = this._attribvalue;\n }\n\n this._attribname = \"\";\n this._attribvalue = \"\";\n};\n\nParser.prototype._getInstructionName = function (value) {\n var idx = value.search(re_nameEnd),\n name = idx < 0 ? value : value.substr(0, idx);\n\n if (this._lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n\n return name;\n};\n\nParser.prototype.ondeclaration = function (value) {\n if (this._cbs.onprocessinginstruction) {\n var name = this._getInstructionName(value);\n\n this._cbs.onprocessinginstruction(\"!\" + name, \"!\" + value);\n }\n};\n\nParser.prototype.onprocessinginstruction = function (value) {\n if (this._cbs.onprocessinginstruction) {\n var name = this._getInstructionName(value);\n\n this._cbs.onprocessinginstruction(\"?\" + name, \"?\" + value);\n }\n};\n\nParser.prototype.oncomment = function (value) {\n this._updatePosition(4);\n\n if (this._cbs.oncomment) this._cbs.oncomment(value);\n if (this._cbs.oncommentend) this._cbs.oncommentend();\n};\n\nParser.prototype.oncdata = function (value) {\n this._updatePosition(1);\n\n if (this._options.xmlMode || this._options.recognizeCDATA) {\n if (this._cbs.oncdatastart) this._cbs.oncdatastart();\n if (this._cbs.ontext) this._cbs.ontext(value);\n if (this._cbs.oncdataend) this._cbs.oncdataend();\n } else {\n this.oncomment(\"[CDATA[\" + value + \"]]\");\n }\n};\n\nParser.prototype.onerror = function (err) {\n if (this._cbs.onerror) this._cbs.onerror(err);\n};\n\nParser.prototype.onend = function () {\n if (this._cbs.onclosetag) {\n for (var i = this._stack.length; i > 0; this._cbs.onclosetag(this._stack[--i])) {\n ;\n }\n }\n\n if (this._cbs.onend) this._cbs.onend();\n}; //Resets the parser to a blank state, ready to parse a new HTML document\n\n\nParser.prototype.reset = function () {\n if (this._cbs.onreset) this._cbs.onreset();\n\n this._tokenizer.reset();\n\n this._tagname = \"\";\n this._attribname = \"\";\n this._attribs = null;\n this._stack = [];\n if (this._cbs.onparserinit) this._cbs.onparserinit(this);\n}; //Parses a complete HTML document and pushes it to the handler\n\n\nParser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n};\n\nParser.prototype.write = function (chunk) {\n this._tokenizer.write(chunk);\n};\n\nParser.prototype.end = function (chunk) {\n this._tokenizer.end(chunk);\n};\n\nParser.prototype.pause = function () {\n this._tokenizer.pause();\n};\n\nParser.prototype.resume = function () {\n this._tokenizer.resume();\n}; //alias for backwards compat\n\n\nParser.prototype.parseChunk = Parser.prototype.write;\nParser.prototype.done = Parser.prototype.end;\nmodule.exports = Parser;","module.exports = ProxyHandler;\n\nfunction ProxyHandler(cbs) {\n this._cbs = cbs || {};\n}\n\nvar EVENTS = require(\"./\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function () {\n if (this._cbs[name]) this._cbs[name]();\n };\n } else if (EVENTS[name] === 1) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function (a) {\n if (this._cbs[name]) this._cbs[name](a);\n };\n } else if (EVENTS[name] === 2) {\n name = \"on\" + name;\n\n ProxyHandler.prototype[name] = function (a, b) {\n if (this._cbs[name]) this._cbs[name](a, b);\n };\n } else {\n throw Error(\"wrong number of arguments\");\n }\n});","module.exports = Stream;\n\nvar Parser = require(\"./WritableStream.js\");\n\nfunction Stream(options) {\n Parser.call(this, new Cbs(this), options);\n}\n\nrequire(\"inherits\")(Stream, Parser);\n\nStream.prototype.readable = true;\n\nfunction Cbs(scope) {\n this.scope = scope;\n}\n\nvar EVENTS = require(\"../\").EVENTS;\n\nObject.keys(EVENTS).forEach(function (name) {\n if (EVENTS[name] === 0) {\n Cbs.prototype[\"on\" + name] = function () {\n this.scope.emit(name);\n };\n } else if (EVENTS[name] === 1) {\n Cbs.prototype[\"on\" + name] = function (a) {\n this.scope.emit(name, a);\n };\n } else if (EVENTS[name] === 2) {\n Cbs.prototype[\"on\" + name] = function (a, b) {\n this.scope.emit(name, a, b);\n };\n } else {\n throw Error(\"wrong number of arguments!\");\n }\n});","module.exports = Tokenizer;\n\nvar decodeCodePoint = require(\"entities/lib/decode_codepoint.js\");\n\nvar entityMap = require(\"entities/maps/entities.json\");\n\nvar legacyMap = require(\"entities/maps/legacy.json\");\n\nvar xmlMap = require(\"entities/maps/xml.json\");\n\nvar i = 0;\nvar TEXT = i++;\nvar BEFORE_TAG_NAME = i++; //after <\n\nvar IN_TAG_NAME = i++;\nvar IN_SELF_CLOSING_TAG = i++;\nvar BEFORE_CLOSING_TAG_NAME = i++;\nvar IN_CLOSING_TAG_NAME = i++;\nvar AFTER_CLOSING_TAG_NAME = i++; //attributes\n\nvar BEFORE_ATTRIBUTE_NAME = i++;\nvar IN_ATTRIBUTE_NAME = i++;\nvar AFTER_ATTRIBUTE_NAME = i++;\nvar BEFORE_ATTRIBUTE_VALUE = i++;\nvar IN_ATTRIBUTE_VALUE_DQ = i++; // \"\n\nvar IN_ATTRIBUTE_VALUE_SQ = i++; // '\n\nvar IN_ATTRIBUTE_VALUE_NQ = i++; //declarations\n\nvar BEFORE_DECLARATION = i++; // !\n\nvar IN_DECLARATION = i++; //processing instructions\n\nvar IN_PROCESSING_INSTRUCTION = i++; // ?\n//comments\n\nvar BEFORE_COMMENT = i++;\nvar IN_COMMENT = i++;\nvar AFTER_COMMENT_1 = i++;\nvar AFTER_COMMENT_2 = i++; //cdata\n\nvar BEFORE_CDATA_1 = i++; // [\n\nvar BEFORE_CDATA_2 = i++; // C\n\nvar BEFORE_CDATA_3 = i++; // D\n\nvar BEFORE_CDATA_4 = i++; // A\n\nvar BEFORE_CDATA_5 = i++; // T\n\nvar BEFORE_CDATA_6 = i++; // A\n\nvar IN_CDATA = i++; // [\n\nvar AFTER_CDATA_1 = i++; // ]\n\nvar AFTER_CDATA_2 = i++; // ]\n//special tags\n\nvar BEFORE_SPECIAL = i++; //S\n\nvar BEFORE_SPECIAL_END = i++; //S\n\nvar BEFORE_SCRIPT_1 = i++; //C\n\nvar BEFORE_SCRIPT_2 = i++; //R\n\nvar BEFORE_SCRIPT_3 = i++; //I\n\nvar BEFORE_SCRIPT_4 = i++; //P\n\nvar BEFORE_SCRIPT_5 = i++; //T\n\nvar AFTER_SCRIPT_1 = i++; //C\n\nvar AFTER_SCRIPT_2 = i++; //R\n\nvar AFTER_SCRIPT_3 = i++; //I\n\nvar AFTER_SCRIPT_4 = i++; //P\n\nvar AFTER_SCRIPT_5 = i++; //T\n\nvar BEFORE_STYLE_1 = i++; //T\n\nvar BEFORE_STYLE_2 = i++; //Y\n\nvar BEFORE_STYLE_3 = i++; //L\n\nvar BEFORE_STYLE_4 = i++; //E\n\nvar AFTER_STYLE_1 = i++; //T\n\nvar AFTER_STYLE_2 = i++; //Y\n\nvar AFTER_STYLE_3 = i++; //L\n\nvar AFTER_STYLE_4 = i++; //E\n\nvar BEFORE_ENTITY = i++; //&\n\nvar BEFORE_NUMERIC_ENTITY = i++; //#\n\nvar IN_NAMED_ENTITY = i++;\nvar IN_NUMERIC_ENTITY = i++;\nvar IN_HEX_ENTITY = i++; //X\n\nvar j = 0;\nvar SPECIAL_NONE = j++;\nvar SPECIAL_SCRIPT = j++;\nvar SPECIAL_STYLE = j++;\n\nfunction whitespace(c) {\n return c === \" \" || c === \"\\n\" || c === \"\\t\" || c === \"\\f\" || c === \"\\r\";\n}\n\nfunction ifElseState(upper, SUCCESS, FAILURE) {\n var lower = upper.toLowerCase();\n\n if (upper === lower) {\n return function (c) {\n if (c === lower) {\n this._state = SUCCESS;\n } else {\n this._state = FAILURE;\n this._index--;\n }\n };\n } else {\n return function (c) {\n if (c === lower || c === upper) {\n this._state = SUCCESS;\n } else {\n this._state = FAILURE;\n this._index--;\n }\n };\n }\n}\n\nfunction consumeSpecialNameChar(upper, NEXT_STATE) {\n var lower = upper.toLowerCase();\n return function (c) {\n if (c === lower || c === upper) {\n this._state = NEXT_STATE;\n } else {\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n }\n };\n}\n\nfunction Tokenizer(options, cbs) {\n this._state = TEXT;\n this._buffer = \"\";\n this._sectionStart = 0;\n this._index = 0;\n this._bufferOffset = 0; //chars removed from _buffer\n\n this._baseState = TEXT;\n this._special = SPECIAL_NONE;\n this._cbs = cbs;\n this._running = true;\n this._ended = false;\n this._xmlMode = !!(options && options.xmlMode);\n this._decodeEntities = !!(options && options.decodeEntities);\n}\n\nTokenizer.prototype._stateText = function (c) {\n if (c === \"<\") {\n if (this._index > this._sectionStart) {\n this._cbs.ontext(this._getSection());\n }\n\n this._state = BEFORE_TAG_NAME;\n this._sectionStart = this._index;\n } else if (this._decodeEntities && this._special === SPECIAL_NONE && c === \"&\") {\n if (this._index > this._sectionStart) {\n this._cbs.ontext(this._getSection());\n }\n\n this._baseState = TEXT;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeTagName = function (c) {\n if (c === \"/\") {\n this._state = BEFORE_CLOSING_TAG_NAME;\n } else if (c === \"<\") {\n this._cbs.ontext(this._getSection());\n\n this._sectionStart = this._index;\n } else if (c === \">\" || this._special !== SPECIAL_NONE || whitespace(c)) {\n this._state = TEXT;\n } else if (c === \"!\") {\n this._state = BEFORE_DECLARATION;\n this._sectionStart = this._index + 1;\n } else if (c === \"?\") {\n this._state = IN_PROCESSING_INSTRUCTION;\n this._sectionStart = this._index + 1;\n } else {\n this._state = !this._xmlMode && (c === \"s\" || c === \"S\") ? BEFORE_SPECIAL : IN_TAG_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInTagName = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._emitToken(\"onopentagname\");\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateBeforeCloseingTagName = function (c) {\n if (whitespace(c)) ;else if (c === \">\") {\n this._state = TEXT;\n } else if (this._special !== SPECIAL_NONE) {\n if (c === \"s\" || c === \"S\") {\n this._state = BEFORE_SPECIAL_END;\n } else {\n this._state = TEXT;\n this._index--;\n }\n } else {\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInCloseingTagName = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._emitToken(\"onclosetag\");\n\n this._state = AFTER_CLOSING_TAG_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateAfterCloseingTagName = function (c) {\n //skip everything until \">\"\n if (c === \">\") {\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateBeforeAttributeName = function (c) {\n if (c === \">\") {\n this._cbs.onopentagend();\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c === \"/\") {\n this._state = IN_SELF_CLOSING_TAG;\n } else if (!whitespace(c)) {\n this._state = IN_ATTRIBUTE_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInSelfClosingTag = function (c) {\n if (c === \">\") {\n this._cbs.onselfclosingtag();\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (!whitespace(c)) {\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInAttributeName = function (c) {\n if (c === \"=\" || c === \"/\" || c === \">\" || whitespace(c)) {\n this._cbs.onattribname(this._getSection());\n\n this._sectionStart = -1;\n this._state = AFTER_ATTRIBUTE_NAME;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateAfterAttributeName = function (c) {\n if (c === \"=\") {\n this._state = BEFORE_ATTRIBUTE_VALUE;\n } else if (c === \"/\" || c === \">\") {\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n } else if (!whitespace(c)) {\n this._cbs.onattribend();\n\n this._state = IN_ATTRIBUTE_NAME;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeAttributeValue = function (c) {\n if (c === '\"') {\n this._state = IN_ATTRIBUTE_VALUE_DQ;\n this._sectionStart = this._index + 1;\n } else if (c === \"'\") {\n this._state = IN_ATTRIBUTE_VALUE_SQ;\n this._sectionStart = this._index + 1;\n } else if (!whitespace(c)) {\n this._state = IN_ATTRIBUTE_VALUE_NQ;\n this._sectionStart = this._index;\n this._index--; //reconsume token\n }\n};\n\nTokenizer.prototype._stateInAttributeValueDoubleQuotes = function (c) {\n if (c === '\"') {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInAttributeValueSingleQuotes = function (c) {\n if (c === \"'\") {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateInAttributeValueNoQuotes = function (c) {\n if (whitespace(c) || c === \">\") {\n this._emitToken(\"onattribdata\");\n\n this._cbs.onattribend();\n\n this._state = BEFORE_ATTRIBUTE_NAME;\n this._index--;\n } else if (this._decodeEntities && c === \"&\") {\n this._emitToken(\"onattribdata\");\n\n this._baseState = this._state;\n this._state = BEFORE_ENTITY;\n this._sectionStart = this._index;\n }\n};\n\nTokenizer.prototype._stateBeforeDeclaration = function (c) {\n this._state = c === \"[\" ? BEFORE_CDATA_1 : c === \"-\" ? BEFORE_COMMENT : IN_DECLARATION;\n};\n\nTokenizer.prototype._stateInDeclaration = function (c) {\n if (c === \">\") {\n this._cbs.ondeclaration(this._getSection());\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateInProcessingInstruction = function (c) {\n if (c === \">\") {\n this._cbs.onprocessinginstruction(this._getSection());\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n }\n};\n\nTokenizer.prototype._stateBeforeComment = function (c) {\n if (c === \"-\") {\n this._state = IN_COMMENT;\n this._sectionStart = this._index + 1;\n } else {\n this._state = IN_DECLARATION;\n }\n};\n\nTokenizer.prototype._stateInComment = function (c) {\n if (c === \"-\") this._state = AFTER_COMMENT_1;\n};\n\nTokenizer.prototype._stateAfterComment1 = function (c) {\n if (c === \"-\") {\n this._state = AFTER_COMMENT_2;\n } else {\n this._state = IN_COMMENT;\n }\n};\n\nTokenizer.prototype._stateAfterComment2 = function (c) {\n if (c === \">\") {\n //remove 2 trailing chars\n this._cbs.oncomment(this._buffer.substring(this._sectionStart, this._index - 2));\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c !== \"-\") {\n this._state = IN_COMMENT;\n } // else: stay in AFTER_COMMENT_2 (`--->`)\n\n};\n\nTokenizer.prototype._stateBeforeCdata1 = ifElseState(\"C\", BEFORE_CDATA_2, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata2 = ifElseState(\"D\", BEFORE_CDATA_3, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata3 = ifElseState(\"A\", BEFORE_CDATA_4, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata4 = ifElseState(\"T\", BEFORE_CDATA_5, IN_DECLARATION);\nTokenizer.prototype._stateBeforeCdata5 = ifElseState(\"A\", BEFORE_CDATA_6, IN_DECLARATION);\n\nTokenizer.prototype._stateBeforeCdata6 = function (c) {\n if (c === \"[\") {\n this._state = IN_CDATA;\n this._sectionStart = this._index + 1;\n } else {\n this._state = IN_DECLARATION;\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInCdata = function (c) {\n if (c === \"]\") this._state = AFTER_CDATA_1;\n};\n\nTokenizer.prototype._stateAfterCdata1 = function (c) {\n if (c === \"]\") this._state = AFTER_CDATA_2;else this._state = IN_CDATA;\n};\n\nTokenizer.prototype._stateAfterCdata2 = function (c) {\n if (c === \">\") {\n //remove 2 trailing chars\n this._cbs.oncdata(this._buffer.substring(this._sectionStart, this._index - 2));\n\n this._state = TEXT;\n this._sectionStart = this._index + 1;\n } else if (c !== \"]\") {\n this._state = IN_CDATA;\n } //else: stay in AFTER_CDATA_2 (`]]]>`)\n\n};\n\nTokenizer.prototype._stateBeforeSpecial = function (c) {\n if (c === \"c\" || c === \"C\") {\n this._state = BEFORE_SCRIPT_1;\n } else if (c === \"t\" || c === \"T\") {\n this._state = BEFORE_STYLE_1;\n } else {\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n }\n};\n\nTokenizer.prototype._stateBeforeSpecialEnd = function (c) {\n if (this._special === SPECIAL_SCRIPT && (c === \"c\" || c === \"C\")) {\n this._state = AFTER_SCRIPT_1;\n } else if (this._special === SPECIAL_STYLE && (c === \"t\" || c === \"T\")) {\n this._state = AFTER_STYLE_1;\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeScript1 = consumeSpecialNameChar(\"R\", BEFORE_SCRIPT_2);\nTokenizer.prototype._stateBeforeScript2 = consumeSpecialNameChar(\"I\", BEFORE_SCRIPT_3);\nTokenizer.prototype._stateBeforeScript3 = consumeSpecialNameChar(\"P\", BEFORE_SCRIPT_4);\nTokenizer.prototype._stateBeforeScript4 = consumeSpecialNameChar(\"T\", BEFORE_SCRIPT_5);\n\nTokenizer.prototype._stateBeforeScript5 = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._special = SPECIAL_SCRIPT;\n }\n\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n};\n\nTokenizer.prototype._stateAfterScript1 = ifElseState(\"R\", AFTER_SCRIPT_2, TEXT);\nTokenizer.prototype._stateAfterScript2 = ifElseState(\"I\", AFTER_SCRIPT_3, TEXT);\nTokenizer.prototype._stateAfterScript3 = ifElseState(\"P\", AFTER_SCRIPT_4, TEXT);\nTokenizer.prototype._stateAfterScript4 = ifElseState(\"T\", AFTER_SCRIPT_5, TEXT);\n\nTokenizer.prototype._stateAfterScript5 = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._special = SPECIAL_NONE;\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index - 6;\n this._index--; //reconsume the token\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeStyle1 = consumeSpecialNameChar(\"Y\", BEFORE_STYLE_2);\nTokenizer.prototype._stateBeforeStyle2 = consumeSpecialNameChar(\"L\", BEFORE_STYLE_3);\nTokenizer.prototype._stateBeforeStyle3 = consumeSpecialNameChar(\"E\", BEFORE_STYLE_4);\n\nTokenizer.prototype._stateBeforeStyle4 = function (c) {\n if (c === \"/\" || c === \">\" || whitespace(c)) {\n this._special = SPECIAL_STYLE;\n }\n\n this._state = IN_TAG_NAME;\n this._index--; //consume the token again\n};\n\nTokenizer.prototype._stateAfterStyle1 = ifElseState(\"Y\", AFTER_STYLE_2, TEXT);\nTokenizer.prototype._stateAfterStyle2 = ifElseState(\"L\", AFTER_STYLE_3, TEXT);\nTokenizer.prototype._stateAfterStyle3 = ifElseState(\"E\", AFTER_STYLE_4, TEXT);\n\nTokenizer.prototype._stateAfterStyle4 = function (c) {\n if (c === \">\" || whitespace(c)) {\n this._special = SPECIAL_NONE;\n this._state = IN_CLOSING_TAG_NAME;\n this._sectionStart = this._index - 5;\n this._index--; //reconsume the token\n } else this._state = TEXT;\n};\n\nTokenizer.prototype._stateBeforeEntity = ifElseState(\"#\", BEFORE_NUMERIC_ENTITY, IN_NAMED_ENTITY);\nTokenizer.prototype._stateBeforeNumericEntity = ifElseState(\"X\", IN_HEX_ENTITY, IN_NUMERIC_ENTITY); //for entities terminated with a semicolon\n\nTokenizer.prototype._parseNamedEntityStrict = function () {\n //offset = 1\n if (this._sectionStart + 1 < this._index) {\n var entity = this._buffer.substring(this._sectionStart + 1, this._index),\n map = this._xmlMode ? xmlMap : entityMap;\n\n if (map.hasOwnProperty(entity)) {\n this._emitPartial(map[entity]);\n\n this._sectionStart = this._index + 1;\n }\n }\n}; //parses legacy entities (without trailing semicolon)\n\n\nTokenizer.prototype._parseLegacyEntity = function () {\n var start = this._sectionStart + 1,\n limit = this._index - start;\n if (limit > 6) limit = 6; //the max length of legacy entities is 6\n\n while (limit >= 2) {\n //the min length of legacy entities is 2\n var entity = this._buffer.substr(start, limit);\n\n if (legacyMap.hasOwnProperty(entity)) {\n this._emitPartial(legacyMap[entity]);\n\n this._sectionStart += limit + 1;\n return;\n } else {\n limit--;\n }\n }\n};\n\nTokenizer.prototype._stateInNamedEntity = function (c) {\n if (c === \";\") {\n this._parseNamedEntityStrict();\n\n if (this._sectionStart + 1 < this._index && !this._xmlMode) {\n this._parseLegacyEntity();\n }\n\n this._state = this._baseState;\n } else if ((c < \"a\" || c > \"z\") && (c < \"A\" || c > \"Z\") && (c < \"0\" || c > \"9\")) {\n if (this._xmlMode) ;else if (this._sectionStart + 1 === this._index) ;else if (this._baseState !== TEXT) {\n if (c !== \"=\") {\n this._parseNamedEntityStrict();\n }\n } else {\n this._parseLegacyEntity();\n }\n this._state = this._baseState;\n this._index--;\n }\n};\n\nTokenizer.prototype._decodeNumericEntity = function (offset, base) {\n var sectionStart = this._sectionStart + offset;\n\n if (sectionStart !== this._index) {\n //parse entity\n var entity = this._buffer.substring(sectionStart, this._index);\n\n var parsed = parseInt(entity, base);\n\n this._emitPartial(decodeCodePoint(parsed));\n\n this._sectionStart = this._index;\n } else {\n this._sectionStart--;\n }\n\n this._state = this._baseState;\n};\n\nTokenizer.prototype._stateInNumericEntity = function (c) {\n if (c === \";\") {\n this._decodeNumericEntity(2, 10);\n\n this._sectionStart++;\n } else if (c < \"0\" || c > \"9\") {\n if (!this._xmlMode) {\n this._decodeNumericEntity(2, 10);\n } else {\n this._state = this._baseState;\n }\n\n this._index--;\n }\n};\n\nTokenizer.prototype._stateInHexEntity = function (c) {\n if (c === \";\") {\n this._decodeNumericEntity(3, 16);\n\n this._sectionStart++;\n } else if ((c < \"a\" || c > \"f\") && (c < \"A\" || c > \"F\") && (c < \"0\" || c > \"9\")) {\n if (!this._xmlMode) {\n this._decodeNumericEntity(3, 16);\n } else {\n this._state = this._baseState;\n }\n\n this._index--;\n }\n};\n\nTokenizer.prototype._cleanup = function () {\n if (this._sectionStart < 0) {\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else if (this._running) {\n if (this._state === TEXT) {\n if (this._sectionStart !== this._index) {\n this._cbs.ontext(this._buffer.substr(this._sectionStart));\n }\n\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else if (this._sectionStart === this._index) {\n //the section just started\n this._buffer = \"\";\n this._bufferOffset += this._index;\n this._index = 0;\n } else {\n //remove everything unnecessary\n this._buffer = this._buffer.substr(this._sectionStart);\n this._index -= this._sectionStart;\n this._bufferOffset += this._sectionStart;\n }\n\n this._sectionStart = 0;\n }\n}; //TODO make events conditional\n\n\nTokenizer.prototype.write = function (chunk) {\n if (this._ended) this._cbs.onerror(Error(\".write() after done!\"));\n this._buffer += chunk;\n\n this._parse();\n};\n\nTokenizer.prototype._parse = function () {\n while (this._index < this._buffer.length && this._running) {\n var c = this._buffer.charAt(this._index);\n\n if (this._state === TEXT) {\n this._stateText(c);\n } else if (this._state === BEFORE_TAG_NAME) {\n this._stateBeforeTagName(c);\n } else if (this._state === IN_TAG_NAME) {\n this._stateInTagName(c);\n } else if (this._state === BEFORE_CLOSING_TAG_NAME) {\n this._stateBeforeCloseingTagName(c);\n } else if (this._state === IN_CLOSING_TAG_NAME) {\n this._stateInCloseingTagName(c);\n } else if (this._state === AFTER_CLOSING_TAG_NAME) {\n this._stateAfterCloseingTagName(c);\n } else if (this._state === IN_SELF_CLOSING_TAG) {\n this._stateInSelfClosingTag(c);\n } else if (this._state === BEFORE_ATTRIBUTE_NAME) {\n /*\n *\tattributes\n */\n this._stateBeforeAttributeName(c);\n } else if (this._state === IN_ATTRIBUTE_NAME) {\n this._stateInAttributeName(c);\n } else if (this._state === AFTER_ATTRIBUTE_NAME) {\n this._stateAfterAttributeName(c);\n } else if (this._state === BEFORE_ATTRIBUTE_VALUE) {\n this._stateBeforeAttributeValue(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_DQ) {\n this._stateInAttributeValueDoubleQuotes(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_SQ) {\n this._stateInAttributeValueSingleQuotes(c);\n } else if (this._state === IN_ATTRIBUTE_VALUE_NQ) {\n this._stateInAttributeValueNoQuotes(c);\n } else if (this._state === BEFORE_DECLARATION) {\n /*\n *\tdeclarations\n */\n this._stateBeforeDeclaration(c);\n } else if (this._state === IN_DECLARATION) {\n this._stateInDeclaration(c);\n } else if (this._state === IN_PROCESSING_INSTRUCTION) {\n /*\n *\tprocessing instructions\n */\n this._stateInProcessingInstruction(c);\n } else if (this._state === BEFORE_COMMENT) {\n /*\n *\tcomments\n */\n this._stateBeforeComment(c);\n } else if (this._state === IN_COMMENT) {\n this._stateInComment(c);\n } else if (this._state === AFTER_COMMENT_1) {\n this._stateAfterComment1(c);\n } else if (this._state === AFTER_COMMENT_2) {\n this._stateAfterComment2(c);\n } else if (this._state === BEFORE_CDATA_1) {\n /*\n *\tcdata\n */\n this._stateBeforeCdata1(c);\n } else if (this._state === BEFORE_CDATA_2) {\n this._stateBeforeCdata2(c);\n } else if (this._state === BEFORE_CDATA_3) {\n this._stateBeforeCdata3(c);\n } else if (this._state === BEFORE_CDATA_4) {\n this._stateBeforeCdata4(c);\n } else if (this._state === BEFORE_CDATA_5) {\n this._stateBeforeCdata5(c);\n } else if (this._state === BEFORE_CDATA_6) {\n this._stateBeforeCdata6(c);\n } else if (this._state === IN_CDATA) {\n this._stateInCdata(c);\n } else if (this._state === AFTER_CDATA_1) {\n this._stateAfterCdata1(c);\n } else if (this._state === AFTER_CDATA_2) {\n this._stateAfterCdata2(c);\n } else if (this._state === BEFORE_SPECIAL) {\n /*\n * special tags\n */\n this._stateBeforeSpecial(c);\n } else if (this._state === BEFORE_SPECIAL_END) {\n this._stateBeforeSpecialEnd(c);\n } else if (this._state === BEFORE_SCRIPT_1) {\n /*\n * script\n */\n this._stateBeforeScript1(c);\n } else if (this._state === BEFORE_SCRIPT_2) {\n this._stateBeforeScript2(c);\n } else if (this._state === BEFORE_SCRIPT_3) {\n this._stateBeforeScript3(c);\n } else if (this._state === BEFORE_SCRIPT_4) {\n this._stateBeforeScript4(c);\n } else if (this._state === BEFORE_SCRIPT_5) {\n this._stateBeforeScript5(c);\n } else if (this._state === AFTER_SCRIPT_1) {\n this._stateAfterScript1(c);\n } else if (this._state === AFTER_SCRIPT_2) {\n this._stateAfterScript2(c);\n } else if (this._state === AFTER_SCRIPT_3) {\n this._stateAfterScript3(c);\n } else if (this._state === AFTER_SCRIPT_4) {\n this._stateAfterScript4(c);\n } else if (this._state === AFTER_SCRIPT_5) {\n this._stateAfterScript5(c);\n } else if (this._state === BEFORE_STYLE_1) {\n /*\n * style\n */\n this._stateBeforeStyle1(c);\n } else if (this._state === BEFORE_STYLE_2) {\n this._stateBeforeStyle2(c);\n } else if (this._state === BEFORE_STYLE_3) {\n this._stateBeforeStyle3(c);\n } else if (this._state === BEFORE_STYLE_4) {\n this._stateBeforeStyle4(c);\n } else if (this._state === AFTER_STYLE_1) {\n this._stateAfterStyle1(c);\n } else if (this._state === AFTER_STYLE_2) {\n this._stateAfterStyle2(c);\n } else if (this._state === AFTER_STYLE_3) {\n this._stateAfterStyle3(c);\n } else if (this._state === AFTER_STYLE_4) {\n this._stateAfterStyle4(c);\n } else if (this._state === BEFORE_ENTITY) {\n /*\n * entities\n */\n this._stateBeforeEntity(c);\n } else if (this._state === BEFORE_NUMERIC_ENTITY) {\n this._stateBeforeNumericEntity(c);\n } else if (this._state === IN_NAMED_ENTITY) {\n this._stateInNamedEntity(c);\n } else if (this._state === IN_NUMERIC_ENTITY) {\n this._stateInNumericEntity(c);\n } else if (this._state === IN_HEX_ENTITY) {\n this._stateInHexEntity(c);\n } else {\n this._cbs.onerror(Error(\"unknown _state\"), this._state);\n }\n\n this._index++;\n }\n\n this._cleanup();\n};\n\nTokenizer.prototype.pause = function () {\n this._running = false;\n};\n\nTokenizer.prototype.resume = function () {\n this._running = true;\n\n if (this._index < this._buffer.length) {\n this._parse();\n }\n\n if (this._ended) {\n this._finish();\n }\n};\n\nTokenizer.prototype.end = function (chunk) {\n if (this._ended) this._cbs.onerror(Error(\".end() after done!\"));\n if (chunk) this.write(chunk);\n this._ended = true;\n if (this._running) this._finish();\n};\n\nTokenizer.prototype._finish = function () {\n //if there is remaining data, emit it in a reasonable way\n if (this._sectionStart < this._index) {\n this._handleTrailingData();\n }\n\n this._cbs.onend();\n};\n\nTokenizer.prototype._handleTrailingData = function () {\n var data = this._buffer.substr(this._sectionStart);\n\n if (this._state === IN_CDATA || this._state === AFTER_CDATA_1 || this._state === AFTER_CDATA_2) {\n this._cbs.oncdata(data);\n } else if (this._state === IN_COMMENT || this._state === AFTER_COMMENT_1 || this._state === AFTER_COMMENT_2) {\n this._cbs.oncomment(data);\n } else if (this._state === IN_NAMED_ENTITY && !this._xmlMode) {\n this._parseLegacyEntity();\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state === IN_NUMERIC_ENTITY && !this._xmlMode) {\n this._decodeNumericEntity(2, 10);\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state === IN_HEX_ENTITY && !this._xmlMode) {\n this._decodeNumericEntity(3, 16);\n\n if (this._sectionStart < this._index) {\n this._state = this._baseState;\n\n this._handleTrailingData();\n }\n } else if (this._state !== IN_TAG_NAME && this._state !== BEFORE_ATTRIBUTE_NAME && this._state !== BEFORE_ATTRIBUTE_VALUE && this._state !== AFTER_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_NAME && this._state !== IN_ATTRIBUTE_VALUE_SQ && this._state !== IN_ATTRIBUTE_VALUE_DQ && this._state !== IN_ATTRIBUTE_VALUE_NQ && this._state !== IN_CLOSING_TAG_NAME) {\n this._cbs.ontext(data);\n } //else, ignore remaining data\n //TODO add a way to remove current tag\n\n};\n\nTokenizer.prototype.reset = function () {\n Tokenizer.call(this, {\n xmlMode: this._xmlMode,\n decodeEntities: this._decodeEntities\n }, this._cbs);\n};\n\nTokenizer.prototype.getAbsoluteIndex = function () {\n return this._bufferOffset + this._index;\n};\n\nTokenizer.prototype._getSection = function () {\n return this._buffer.substring(this._sectionStart, this._index);\n};\n\nTokenizer.prototype._emitToken = function (name) {\n this._cbs[name](this._getSection());\n\n this._sectionStart = -1;\n};\n\nTokenizer.prototype._emitPartial = function (value) {\n if (this._baseState !== TEXT) {\n this._cbs.onattribdata(value); //TODO implement the new event\n\n } else {\n this._cbs.ontext(value);\n }\n};","module.exports = Stream;\n\nvar Parser = require(\"./Parser.js\");\n\nvar WritableStream = require(\"readable-stream\").Writable;\n\nvar StringDecoder = require(\"string_decoder\").StringDecoder;\n\nvar Buffer = require(\"buffer\").Buffer;\n\nfunction Stream(cbs, options) {\n var parser = this._parser = new Parser(cbs, options);\n var decoder = this._decoder = new StringDecoder();\n WritableStream.call(this, {\n decodeStrings: false\n });\n this.once(\"finish\", function () {\n parser.end(decoder.end());\n });\n}\n\nrequire(\"inherits\")(Stream, WritableStream);\n\nStream.prototype._write = function (chunk, encoding, cb) {\n if (chunk instanceof Buffer) chunk = this._decoder.write(chunk);\n\n this._parser.write(chunk);\n\n cb();\n};","var Parser = require(\"./Parser.js\");\n\nvar DomHandler = require(\"domhandler\");\n\nfunction defineProp(name, value) {\n delete module.exports[name];\n module.exports[name] = value;\n return value;\n}\n\nmodule.exports = {\n Parser: Parser,\n Tokenizer: require(\"./Tokenizer.js\"),\n ElementType: require(\"domelementtype\"),\n DomHandler: DomHandler,\n\n get FeedHandler() {\n return defineProp(\"FeedHandler\", require(\"./FeedHandler.js\"));\n },\n\n get Stream() {\n return defineProp(\"Stream\", require(\"./Stream.js\"));\n },\n\n get WritableStream() {\n return defineProp(\"WritableStream\", require(\"./WritableStream.js\"));\n },\n\n get ProxyHandler() {\n return defineProp(\"ProxyHandler\", require(\"./ProxyHandler.js\"));\n },\n\n get DomUtils() {\n return defineProp(\"DomUtils\", require(\"domutils\"));\n },\n\n get CollectingHandler() {\n return defineProp(\"CollectingHandler\", require(\"./CollectingHandler.js\"));\n },\n\n // For legacy support\n DefaultHandler: DomHandler,\n\n get RssHandler() {\n return defineProp(\"RssHandler\", this.FeedHandler);\n },\n\n //helper methods\n parseDOM: function parseDOM(data, options) {\n var handler = new DomHandler(options);\n new Parser(handler, options).end(data);\n return handler.dom;\n },\n parseFeed: function parseFeed(feed, options) {\n var handler = new module.exports.FeedHandler(options);\n new Parser(handler, options).end(feed);\n return handler.dom;\n },\n createDomStream: function createDomStream(cb, options, elementCb) {\n var handler = new DomHandler(cb, options, elementCb);\n return new Parser(handler, options);\n },\n // List of all events that the parser emits\n EVENTS: {\n /* Format: eventname: number of arguments */\n attribute: 2,\n cdatastart: 0,\n cdataend: 0,\n text: 1,\n processinginstruction: 2,\n comment: 1,\n commentend: 0,\n closetag: 1,\n opentag: 2,\n opentagname: 1,\n error: 1,\n end: 0\n }\n};","/*\n Module dependencies\n*/\nvar ElementType = require('domelementtype');\n\nvar entities = require('entities');\n/* mixed-case SVG and MathML tags & attributes\n recognized by the HTML parser, see\n https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n*/\n\n\nvar foreignNames = require('./foreignNames.json');\n\nforeignNames.elementNames.__proto__ = null;\n/* use as a simple dictionary */\n\nforeignNames.attributeNames.__proto__ = null;\nvar unencodedElements = {\n __proto__: null,\n style: true,\n script: true,\n xmp: true,\n iframe: true,\n noembed: true,\n noframes: true,\n plaintext: true,\n noscript: true\n};\n/*\n Format attributes\n*/\n\nfunction formatAttrs(attributes, opts) {\n if (!attributes) return;\n var output = '';\n var value; // Loop through the attributes\n\n for (var key in attributes) {\n value = attributes[key];\n\n if (output) {\n output += ' ';\n }\n\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case attribute names */\n key = foreignNames.attributeNames[key] || key;\n }\n\n output += key;\n\n if (value !== null && value !== '' || opts.xmlMode) {\n output += '=\"' + (opts.decodeEntities ? entities.encodeXML(value) : value.replace(/\\\"/g, '"')) + '\"';\n }\n }\n\n return output;\n}\n/*\n Self-enclosing tags (stolen from node-htmlparser)\n*/\n\n\nvar singleTag = {\n __proto__: null,\n area: true,\n base: true,\n basefont: true,\n br: true,\n col: true,\n command: true,\n embed: true,\n frame: true,\n hr: true,\n img: true,\n input: true,\n isindex: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n};\n\nvar render = module.exports = function (dom, opts) {\n if (!Array.isArray(dom) && !dom.cheerio) dom = [dom];\n opts = opts || {};\n var output = '';\n\n for (var i = 0; i < dom.length; i++) {\n var elem = dom[i];\n if (elem.type === 'root') output += render(elem.children, opts);else if (ElementType.isTag(elem)) output += renderTag(elem, opts);else if (elem.type === ElementType.Directive) output += renderDirective(elem);else if (elem.type === ElementType.Comment) output += renderComment(elem);else if (elem.type === ElementType.CDATA) output += renderCdata(elem);else output += renderText(elem, opts);\n }\n\n return output;\n};\n\nvar foreignModeIntegrationPoints = ['mi', 'mo', 'mn', 'ms', 'mtext', 'annotation-xml', 'foreignObject', 'desc', 'title'];\n\nfunction renderTag(elem, opts) {\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === 'foreign') {\n /* fix up mixed-case element names */\n elem.name = foreignNames.elementNames[elem.name] || elem.name;\n /* exit foreign mode at integration points */\n\n if (elem.parent && foreignModeIntegrationPoints.indexOf(elem.parent.name) >= 0) opts = Object.assign({}, opts, {\n xmlMode: false\n });\n }\n\n if (!opts.xmlMode && ['svg', 'math'].indexOf(elem.name) >= 0) {\n opts = Object.assign({}, opts, {\n xmlMode: 'foreign'\n });\n }\n\n var tag = '<' + elem.name;\n var attribs = formatAttrs(elem.attribs, opts);\n\n if (attribs) {\n tag += ' ' + attribs;\n }\n\n if (opts.xmlMode && (!elem.children || elem.children.length === 0)) {\n tag += '/>';\n } else {\n tag += '>';\n\n if (elem.children) {\n tag += render(elem.children, opts);\n }\n\n if (!singleTag[elem.name] || opts.xmlMode) {\n tag += '';\n }\n }\n\n return tag;\n}\n\nfunction renderDirective(elem) {\n return '<' + elem.data + '>';\n}\n\nfunction renderText(elem, opts) {\n var data = elem.data || ''; // if entities weren't decoded, no need to encode them back\n\n if (opts.decodeEntities && !(elem.parent && elem.parent.name in unencodedElements)) {\n data = entities.encodeXML(data);\n }\n\n return data;\n}\n\nfunction renderCdata(elem) {\n return '';\n}\n\nfunction renderComment(elem) {\n return '';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\n\nvar ElementType;\n\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n\n ElementType[\"Comment\"] = \"comment\";\n /** Type for