-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1d973ecf76eb6bbe32f30407b779c4a366ccff7d-621145bea78701b27c1f.js.map
1 lines (1 loc) · 318 KB
/
1d973ecf76eb6bbe32f30407b779c4a366ccff7d-621145bea78701b27c1f.js.map
1
{"version":3,"file":"1d973ecf76eb6bbe32f30407b779c4a366ccff7d-621145bea78701b27c1f.js","mappings":"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","sources":["webpack://gatsby-starter-hello-world/./node_modules/base64-js/index.js","webpack://gatsby-starter-hello-world/./node_modules/buffer/index.js","webpack://gatsby-starter-hello-world/./node_modules/dom-serializer/index.js","webpack://gatsby-starter-hello-world/./node_modules/dom-serializer/node_modules/domelementtype/lib/index.js","webpack://gatsby-starter-hello-world/./node_modules/domelementtype/index.js","webpack://gatsby-starter-hello-world/./node_modules/domhandler/index.js","webpack://gatsby-starter-hello-world/./node_modules/domhandler/lib/element.js","webpack://gatsby-starter-hello-world/./node_modules/domhandler/lib/node.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/index.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/helpers.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/legacy.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/manipulation.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/querying.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/stringify.js","webpack://gatsby-starter-hello-world/./node_modules/domutils/lib/traversal.js","webpack://gatsby-starter-hello-world/./node_modules/entities/lib/decode.js","webpack://gatsby-starter-hello-world/./node_modules/entities/lib/decode_codepoint.js","webpack://gatsby-starter-hello-world/./node_modules/entities/lib/encode.js","webpack://gatsby-starter-hello-world/./node_modules/entities/lib/index.js","webpack://gatsby-starter-hello-world/./node_modules/events/events.js","webpack://gatsby-starter-hello-world/./node_modules/grommet/es6/components/Tab/StyledTab.js","webpack://gatsby-starter-hello-world/./node_modules/grommet/es6/components/Tab/Tab.js","webpack://gatsby-starter-hello-world/./node_modules/grommet/es6/components/Tabs/StyledTabs.js","webpack://gatsby-starter-hello-world/./node_modules/grommet/es6/components/Tabs/Tabs.js","webpack://gatsby-starter-hello-world/./node_modules/grommet/es6/components/Tabs/TabsContext.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/CollectingHandler.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/FeedHandler.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/Parser.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/ProxyHandler.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/Stream.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/WritableStream.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/lib/index.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","webpack://gatsby-starter-hello-world/./node_modules/htmlparser2/node_modules/string_decoder/lib/string_decoder.js","webpack://gatsby-starter-hello-world/./node_modules/ieee754/index.js","webpack://gatsby-starter-hello-world/./node_modules/inherits/inherits_browser.js","webpack://gatsby-starter-hello-world/./node_modules/isarray/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/HtmlParser.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/convertNodeToElement.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/dom/attributes/BooleanAttributes.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/dom/attributes/ReactAttributes.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/dom/elements/VoidElements.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/elementTypes/StyleElementType.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/elementTypes/TagElementType.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/elementTypes/TextElementType.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/elementTypes/UnsupportedElementType.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/elementTypes/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/index.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/processNodes.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/utils/generatePropsFromAttributes.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/utils/htmlAttributesToReact.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/utils/inlineStyleToObject.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/utils/isEmptyTextNode.js","webpack://gatsby-starter-hello-world/./node_modules/react-html-parser/lib/utils/isValidTagOrAttributeName.js","webpack://gatsby-starter-hello-world/./node_modules/safe-buffer/index.js","webpack://gatsby-starter-hello-world/./src/containers/DataGrid/index.js"],"sourcesContent":["'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 <http://feross.org>\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 isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * 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(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, 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(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\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(null, 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(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().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);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\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 (!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 (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (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 case undefined:\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) return utf8ToBytes(string).length; // assume utf8\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 coersion 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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\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 | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.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\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT && 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 } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.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 } // legacy write(string, encoding, offset, length) - remove in v0.13\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 return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.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 += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; 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;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\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 = 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 = 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 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\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 = function readUInt32BE(offset, noAssert) {\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 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 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 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 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 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 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 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 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 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 = 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 = 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 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\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\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 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 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 (!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('sourceStart out of bounds');\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 var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), 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 (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\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 } else if (typeof val === 'number') {\n val = val & 255;\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 : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\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 strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // 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}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\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 += '</' + elem.name + '>';\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 '<![CDATA[' + elem.children[0].data + ']]>';\n}\n\nfunction renderComment(elem) {\n return '<!--' + elem.data + '-->';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\n\nfunction isTag(elem) {\n return elem.type === \"tag\"\n /* Tag */\n || elem.type === \"script\"\n /* Script */\n || elem.type === \"style\"\n /* Style */\n ;\n}\n\nexports.isTag = isTag; // Exports for backwards compatibility\n\nexports.Text = \"text\"\n/* Text */\n; //Text\n\nexports.Directive = \"directive\"\n/* Directive */\n; //<? ... ?>\n\nexports.Comment = \"comment\"\n/* Comment */\n; //<!-- ... -->\n\nexports.Script = \"script\"\n/* Script */\n; //<script> tags\n\nexports.Style = \"style\"\n/* Style */\n; //<style> tags\n\nexports.Tag = \"tag\"\n/* Tag */\n; //Any tag\n\nexports.CDATA = \"cdata\"\n/* CDATA */\n; //<![CDATA[ ... ]]>\n\nexports.Doctype = \"doctype\"\n/* Doctype */\n;","//Types of elements found in the DOM\nmodule.exports = {\n Text: \"text\",\n //Text\n Directive: \"directive\",\n //<? ... ?>\n Comment: \"comment\",\n //<!-- ... -->\n Script: \"script\",\n //<script> tags\n Style: \"style\",\n //<style> tags\n Tag: \"tag\",\n //Any tag\n CDATA: \"cdata\",\n //<![CDATA[ ... ]]>\n Doctype: \"doctype\",\n isTag: function isTag(elem) {\n return elem.type === \"tag\" || elem.type === \"script\" || elem.type === \"style\";\n }\n};","var ElementType = require(\"domelementtype\");\n\nvar re_whitespace = /\\s+/g;\n\nvar NodePrototype = require(\"./lib/node\");\n\nvar ElementPrototype = require(\"./lib/element\");\n\nfunction DomHandler(callback, options, elementCB) {\n if (typeof callback === \"object\") {\n elementCB = options;\n options = callback;\n callback = null;\n } else if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n\n this._callback = callback;\n this._options = options || defaultOpts;\n this._elementCB = elementCB;\n this.dom = [];\n this._done = false;\n this._tagStack = [];\n this._parser = this._parser || null;\n} //default options\n\n\nvar defaultOpts = {\n normalizeWhitespace: false,\n //Replace all whitespace with single spaces\n withStartIndices: false,\n //Add startIndex properties to nodes\n withEndIndices: false //Add endIndex properties to nodes\n\n};\n\nDomHandler.prototype.onparserinit = function (parser) {\n this._parser = parser;\n}; //Resets the handler back to starting state\n\n\nDomHandler.prototype.onreset = function () {\n DomHandler.call(this, this._callback, this._options, this._elementCB);\n}; //Signals the handler that parsing is done\n\n\nDomHandler.prototype.onend = function () {\n if (this._done) return;\n this._done = true;\n this._parser = null;\n\n this._handleCallback(null);\n};\n\nDomHandler.prototype._handleCallback = DomHandler.prototype.onerror = function (error) {\n if (typeof this._callback === \"function\") {\n this._callback(error, this.dom);\n } else {\n if (error) throw error;\n }\n};\n\nDomHandler.prototype.onclosetag = function () {\n //if(this._tagStack.pop().name !== name) this._handleCallback(Error(\"Tagname didn't match!\"));\n var elem = this._tagStack.pop();\n\n if (this._options.withEndIndices && elem) {\n elem.endIndex = this._parser.endIndex;\n }\n\n if (this._elementCB) this._elementCB(elem);\n};\n\nDomHandler.prototype._createDomElement = function (properties) {\n if (!this._options.withDomLvl1) return properties;\n var element;\n\n if (properties.type === \"tag\") {\n element = Object.create(ElementPrototype);\n } else {\n element = Object.create(NodePrototype);\n }\n\n for (var key in properties) {\n if (properties.hasOwnProperty(key)) {\n element[key] = properties[key];\n }\n }\n\n return element;\n};\n\nDomHandler.prototype._addDomElement = function (element) {\n var parent = this._tagStack[this._tagStack.length - 1];\n var siblings = parent ? parent.children : this.dom;\n var previousSibling = siblings[siblings.length - 1];\n element.next = null;\n\n if (this._options.withStartIndices) {\n element.startIndex = this._parser.startIndex;\n }\n\n if (this._options.withEndIndices) {\n element.endIndex = this._parser.endIndex;\n }\n\n if (previousSibling) {\n element.prev = previousSibling;\n previousSibling.next = element;\n } else {\n element.prev = null;\n }\n\n siblings.push(element);\n element.parent = parent || null;\n};\n\nDomHandler.prototype.onopentag = function (name, attribs) {\n var properties = {\n type: name === \"script\" ? ElementType.Script : name === \"style\" ? ElementType.Style : ElementType.Tag,\n name: name,\n attribs: attribs,\n children: []\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.ontext = function (data) {\n //the ignoreWhitespace is officially dropped, but for now,\n //it's an alias for normalizeWhitespace\n var normalize = this._options.normalizeWhitespace || this._options.ignoreWhitespace;\n var lastTag;\n\n if (!this._tagStack.length && this.dom.length && (lastTag = this.dom[this.dom.length - 1]).type === ElementType.Text) {\n if (normalize) {\n lastTag.data = (lastTag.data + data).replace(re_whitespace, \" \");\n } else {\n lastTag.data += data;\n }\n } else {\n if (this._tagStack.length && (lastTag = this._tagStack[this._tagStack.length - 1]) && (lastTag = lastTag.children[lastTag.children.length - 1]) && lastTag.type === ElementType.Text) {\n if (normalize) {\n lastTag.data = (lastTag.data + data).replace(re_whitespace, \" \");\n } else {\n lastTag.data += data;\n }\n } else {\n if (normalize) {\n data = data.replace(re_whitespace, \" \");\n }\n\n var element = this._createDomElement({\n data: data,\n type: ElementType.Text\n });\n\n this._addDomElement(element);\n }\n }\n};\n\nDomHandler.prototype.oncomment = function (data) {\n var lastTag = this._tagStack[this._tagStack.length - 1];\n\n if (lastTag && lastTag.type === ElementType.Comment) {\n lastTag.data += data;\n return;\n }\n\n var properties = {\n data: data,\n type: ElementType.Comment\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.oncdatastart = function () {\n var properties = {\n children: [{\n data: \"\",\n type: ElementType.Text\n }],\n type: ElementType.CDATA\n };\n\n var element = this._createDomElement(properties);\n\n this._addDomElement(element);\n\n this._tagStack.push(element);\n};\n\nDomHandler.prototype.oncommentend = DomHandler.prototype.oncdataend = function () {\n this._tagStack.pop();\n};\n\nDomHandler.prototype.onprocessinginstruction = function (name, data) {\n var element = this._createDomElement({\n name: name,\n data: data,\n type: ElementType.Directive\n });\n\n this._addDomElement(element);\n};\n\nmodule.exports = DomHandler;","// DOM-Level-1-compliant structure\nvar NodePrototype = require('./node');\n\nvar ElementPrototype = module.exports = Object.create(NodePrototype);\nvar domLvl1 = {\n tagName: \"name\"\n};\nObject.keys(domLvl1).forEach(function (key) {\n var shorthand = domLvl1[key];\n Object.defineProperty(ElementPrototype, key, {\n get: function get() {\n return this[shorthand] || null;\n },\n set: function set(val) {\n this[shorthand] = val;\n return val;\n }\n });\n});","// This object will be used as the prototype for Nodes when creating a\n// DOM-Level-1-compliant structure.\nvar NodePrototype = module.exports = {\n get firstChild() {\n var children = this.children;\n return children && children[0] || null;\n },\n\n get lastChild() {\n var children = this.children;\n return children && children[children.length - 1] || null;\n },\n\n get nodeType() {\n return nodeTypes[this.type] || nodeTypes.element;\n }\n\n};\nvar domLvl1 = {\n tagName: \"name\",\n childNodes: \"children\",\n parentNode: \"parent\",\n previousSibling: \"prev\",\n nextSibling: \"next\",\n nodeValue: \"data\"\n};\nvar nodeTypes = {\n element: 1,\n text: 3,\n cdata: 4,\n comment: 8\n};\nObject.keys(domLvl1).forEach(function (key) {\n var shorthand = domLvl1[key];\n Object.defineProperty(NodePrototype, key, {\n get: function get() {\n return this[shorthand] || null;\n },\n set: function set(val) {\n this[shorthand] = val;\n return val;\n }\n });\n});","var DomUtils = module.exports;\n[require(\"./lib/stringify\"), require(\"./lib/traversal\"), require(\"./lib/manipulation\"), require(\"./lib/querying\"), require(\"./lib/legacy\"), require(\"./lib/helpers\")].forEach(function (ext) {\n Object.keys(ext).forEach(function (key) {\n DomUtils[key] = ext[key].bind(DomUtils);\n });\n});","// removeSubsets\n// Given an array of nodes, remove any member that is contained by another.\nexports.removeSubsets = function (nodes) {\n var idx = nodes.length,\n node,\n ancestor,\n replace; // Check if each node (or one of its ancestors) is already contained in the\n // array.\n\n while (--idx > -1) {\n node = ancestor = nodes[idx]; // Temporarily remove the node under consideration\n\n nodes[idx] = null;\n replace = true;\n\n while (ancestor) {\n if (nodes.indexOf(ancestor) > -1) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n\n ancestor = ancestor.parent;\n } // If the node has been found to be unique, re-insert it.\n\n\n if (replace) {\n nodes[idx] = node;\n }\n }\n\n return nodes;\n}; // Source: http://dom.spec.whatwg.org/#dom-node-comparedocumentposition\n\n\nvar POSITION = {\n DISCONNECTED: 1,\n PRECEDING: 2,\n FOLLOWING: 4,\n CONTAINS: 8,\n CONTAINED_BY: 16\n}; // Compare the position of one node against another node in any other document.\n// The return value is a bitmask with the following values:\n//\n// document order:\n// > There is an ordering, document order, defined on all the nodes in the\n// > document corresponding to the order in which the first character of the\n// > XML representation of each node occurs in the XML representation of the\n// > document after expansion of general entities. Thus, the document element\n// > node will be the first node. Element nodes occur before their children.\n// > Thus, document order orders element nodes in order of the occurrence of\n// > their start-tag in the XML (after expansion of entities). The attribute\n// > nodes of an element occur after the element and before its children. The\n// > relative order of attribute nodes is implementation-dependent./\n// Source:\n// http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n//\n// @argument {Node} nodaA The first node to use in the comparison\n// @argument {Node} nodeB The second node to use in the comparison\n//\n// @return {Number} A bitmask describing the input nodes' relative position.\n// See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n// a description of these values.\n\nvar comparePos = exports.compareDocumentPosition = function (nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n var current, sharedParent, siblings, aSibling, bSibling, idx;\n\n if (nodeA === nodeB) {\n return 0;\n }\n\n current = nodeA;\n\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n\n current = nodeB;\n\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n\n idx = 0;\n\n while (aParents[idx] === bParents[idx]) {\n idx++;\n }\n\n if (idx === 0) {\n return POSITION.DISCONNECTED;\n }\n\n sharedParent = aParents[idx - 1];\n siblings = sharedParent.children;\n aSibling = aParents[idx];\n bSibling = bParents[idx];\n\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return POSITION.FOLLOWING | POSITION.CONTAINED_BY;\n }\n\n return POSITION.FOLLOWING;\n } else {\n if (sharedParent === nodeA) {\n return POSITION.PRECEDING | POSITION.CONTAINS;\n }\n\n return POSITION.PRECEDING;\n }\n}; // Sort an array of nodes based on their relative position in the document and\n// remove any duplicate nodes. If the array contains nodes that do not belong\n// to the same document, sort order is unspecified.\n//\n// @argument {Array} nodes Array of DOM nodes\n//\n// @returns {Array} collection of unique nodes, sorted in document order\n\n\nexports.uniqueSort = function (nodes) {\n var idx = nodes.length,\n node,\n position;\n nodes = nodes.slice();\n\n while (--idx > -1) {\n node = nodes[idx];\n position = nodes.indexOf(node);\n\n if (position > -1 && position < idx) {\n nodes.splice(idx, 1);\n }\n }\n\n nodes.sort(function (a, b) {\n var relative = comparePos(a, b);\n\n if (relative & POSITION.PRECEDING) {\n return -1;\n } else if (relative & POSITION.FOLLOWING) {\n return 1;\n }\n\n return 0;\n });\n return nodes;\n};","var ElementType = require(\"domelementtype\");\n\nvar isTag = exports.isTag = ElementType.isTag;\n\nexports.testElement = function (options, element) {\n for (var key in options) {\n if (!options.hasOwnProperty(key)) ;else if (key === \"tag_name\") {\n if (!isTag(element) || !options.tag_name(element.name)) {\n return false;\n }\n } else if (key === \"tag_type\") {\n if (!options.tag_type(element.type)) return false;\n } else if (key === \"tag_contains\") {\n if (isTag(element) || !options.tag_contains(element.data)) {\n return false;\n }\n } else if (!element.attribs || !options[key](element.attribs[key])) {\n return false;\n }\n }\n\n return true;\n};\n\nvar Checks = {\n tag_name: function tag_name(name) {\n if (typeof name === \"function\") {\n return function (elem) {\n return isTag(elem) && name(elem.name);\n };\n } else if (name === \"*\") {\n return isTag;\n } else {\n return function (elem) {\n return isTag(elem) && elem.name === name;\n };\n }\n },\n tag_type: function tag_type(type) {\n if (typeof type === \"function\") {\n return function (elem) {\n return type(elem.type);\n };\n } else {\n return function (elem) {\n return elem.type === type;\n };\n }\n },\n tag_contains: function tag_contains(data) {\n if (typeof data === \"function\") {\n return function (elem) {\n return !isTag(elem) && data(elem.data);\n };\n } else {\n return function (elem) {\n return !isTag(elem) && elem.data === data;\n };\n }\n }\n};\n\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) {\n return elem.attribs && value(elem.attribs[attrib]);\n };\n } else {\n return function (elem) {\n return elem.attribs && elem.attribs[attrib] === value;\n };\n }\n}\n\nfunction combineFuncs(a, b) {\n return function (elem) {\n return a(elem) || b(elem);\n };\n}\n\nexports.getElements = function (options, element, recurse, limit) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return key in Checks ? Checks[key](value) : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? [] : this.filter(funcs.reduce(combineFuncs), element, recurse, limit);\n};\n\nexports.getElementById = function (id, element, recurse) {\n if (!Array.isArray(element)) element = [element];\n return this.findOne(getAttribCheck(\"id\", id), element, recurse !== false);\n};\n\nexports.getElementsByTagName = function (name, element, recurse, limit) {\n return this.filter(Checks.tag_name(name), element, recurse, limit);\n};\n\nexports.getElementsByTagType = function (type, element, recurse, limit) {\n return this.filter(Checks.tag_type(type), element, recurse, limit);\n};","exports.removeElement = function (elem) {\n if (elem.prev) elem.prev.next = elem.next;\n if (elem.next) elem.next.prev = elem.prev;\n\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n};\n\nexports.replaceElement = function (elem, replacement) {\n var prev = replacement.prev = elem.prev;\n\n if (prev) {\n prev.next = replacement;\n }\n\n var next = replacement.next = elem.next;\n\n if (next) {\n next.prev = replacement;\n }\n\n var parent = replacement.parent = elem.parent;\n\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n};\n\nexports.appendChild = function (elem, child) {\n child.parent = elem;\n\n if (elem.children.push(child) !== 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n child.next = null;\n }\n};\n\nexports.append = function (elem, next) {\n var parent = elem.parent,\n currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n\n if (currNext) {\n currNext.prev = next;\n\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n } else if (parent) {\n parent.children.push(next);\n }\n};\n\nexports.prepend = function (elem, prev) {\n var parent = elem.parent;\n\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(elem), 0, prev);\n }\n\n if (elem.prev) {\n elem.prev.next = prev;\n }\n\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n};","var isTag = require(\"domelementtype\").isTag;\n\nmodule.exports = {\n filter: filter,\n find: find,\n findOneChild: findOneChild,\n findOne: findOne,\n existsOne: existsOne,\n findAll: findAll\n};\n\nfunction filter(test, element, recurse, limit) {\n if (!Array.isArray(element)) element = [element];\n\n if (typeof limit !== \"number\" || !isFinite(limit)) {\n limit = Infinity;\n }\n\n return find(test, element, recurse !== false, limit);\n}\n\nfunction find(test, elems, recurse, limit) {\n var result = [],\n childs;\n\n for (var i = 0, j = elems.length; i < j; i++) {\n if (test(elems[i])) {\n result.push(elems[i]);\n if (--limit <= 0) break;\n }\n\n childs = elems[i].children;\n\n if (recurse && childs && childs.length > 0) {\n childs = find(test, childs, recurse, limit);\n result = result.concat(childs);\n limit -= childs.length;\n if (limit <= 0) break;\n }\n }\n\n return result;\n}\n\nfunction findOneChild(test, elems) {\n for (var i = 0, l = elems.length; i < l; i++) {\n if (test(elems[i])) return elems[i];\n }\n\n return null;\n}\n\nfunction findOne(test, elems) {\n var elem = null;\n\n for (var i = 0, l = elems.length; i < l && !elem; i++) {\n if (!isTag(elems[i])) {\n continue;\n } else if (test(elems[i])) {\n elem = elems[i];\n } else if (elems[i].children.length > 0) {\n elem = findOne(test, elems[i].children);\n }\n }\n\n return elem;\n}\n\nfunction existsOne(test, elems) {\n for (var i = 0, l = elems.length; i < l; i++) {\n if (isTag(elems[i]) && (test(elems[i]) || elems[i].children.length > 0 && existsOne(test, elems[i].children))) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction findAll(test, elems) {\n var result = [];\n\n for (var i = 0, j = elems.length; i < j; i++) {\n if (!isTag(elems[i])) continue;\n if (test(elems[i])) result.push(elems[i]);\n\n if (elems[i].children.length > 0) {\n result = result.concat(findAll(test, elems[i].children));\n }\n }\n\n return result;\n}","var ElementType = require(\"domelementtype\"),\n getOuterHTML = require(\"dom-serializer\"),\n isTag = ElementType.isTag;\n\nmodule.exports = {\n getInnerHTML: getInnerHTML,\n getOuterHTML: getOuterHTML,\n getText: getText\n};\n\nfunction getInnerHTML(elem, opts) {\n return elem.children ? elem.children.map(function (elem) {\n return getOuterHTML(elem, opts);\n }).join(\"\") : \"\";\n}\n\nfunction getText(elem) {\n if (Array.isArray(elem)) return elem.map(getText).join(\"\");\n if (isTag(elem) || elem.type === ElementType.CDATA) return getText(elem.children);\n if (elem.type === ElementType.Text) return elem.data;\n return \"\";\n}","var getChildren = exports.getChildren = function (elem) {\n return elem.children;\n};\n\nvar getParent = exports.getParent = function (elem) {\n return elem.parent;\n};\n\nexports.getSiblings = function (elem) {\n var parent = getParent(elem);\n return parent ? getChildren(parent) : [elem];\n};\n\nexports.getAttributeValue = function (elem, name) {\n return elem.attribs && elem.attribs[name];\n};\n\nexports.hasAttrib = function (elem, name) {\n return !!elem.attribs && hasOwnProperty.call(elem.attribs, name);\n};\n\nexports.getName = function (elem) {\n return elem.name;\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\n\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\n\nfunction getStrictDecoder(map) {\n var keys = Object.keys(map).join(\"|\");\n var replace = getReplacer(map);\n keys += \"|#[xX][\\\\da-fA-F]+|#\\\\d+\";\n var re = new RegExp(\"&(?:\" + keys + \");\", \"g\");\n return function (str) {\n return String(str).replace(re, replace);\n };\n}\n\nvar sorter = function sorter(a, b) {\n return a < b ? 1 : -1;\n};\n\nexports.decodeHTML = function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n } else {\n keys[i] += \";\";\n }\n }\n\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n\n function replacer(str) {\n if (str.substr(-1) !== \";\") str += \";\";\n return replace(str);\n } //TODO consider creating a merged map\n\n\n return function (str) {\n return String(str).replace(re, replacer);\n };\n}();\n\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n\n return map[str.slice(1, -1)];\n };\n}","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar decode_json_1 = __importDefault(require(\"./maps/decode.json\")); // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\n\n\nfunction decodeCodePoint(codePoint) {\n if (codePoint >= 0xd800 && codePoint <= 0xdfff || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n\n var output = \"\";\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(codePoint >>> 10 & 0x3ff | 0xd800);\n codePoint = 0xdc00 | codePoint & 0x3ff;\n }\n\n output += String.fromCharCode(codePoint);\n return output;\n}\n\nexports.default = decodeCodePoint;","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.escape = exports.encodeHTML = exports.encodeXML = void 0;\n\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\n\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\nexports.encodeXML = getInverse(inverseXML, xmlReplacer);\n\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\n\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n\nfunction getInverseObj(obj) {\n return Object.keys(obj).sort().reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\n\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n } else {\n // Add value to multiple array\n multiple.push(k);\n }\n } // Add ranges to single characters.\n\n\n single.sort();\n\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n\n while (end < single.length - 1 && single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n\n var count = 1 + end - start; // We want to replace at least three characters\n\n if (count < 3) continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\n\nfunction singleCharReplacer(c) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return \"&#x\" + c.codePointAt(0).toString(16).toUpperCase() + \";\";\n}\n\nfunction getInverse(inverse, re) {\n return function (data) {\n return data.replace(re, function (name) {\n return inverse[name];\n }).replace(reNonASCII, singleCharReplacer);\n };\n}\n\nvar reXmlChars = getInverseReplacer(inverseXML);\n\nfunction escape(data) {\n return data.replace(reXmlChars, singleCharReplacer).replace(reNonASCII, singleCharReplacer);\n}\n\nexports.escape = escape;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.encode = exports.decodeStrict = exports.decode = void 0;\n\nvar decode_1 = require(\"./decode\");\n\nvar encode_1 = require(\"./encode\");\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\n\nfunction decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\n\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\n\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n */\n\nfunction encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\n\nexports.encode = encode;\n\nvar encode_2 = require(\"./encode\");\n\nObject.defineProperty(exports, \"encodeXML\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeXML;\n }\n});\nObject.defineProperty(exports, \"encodeHTML\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\nObject.defineProperty(exports, \"escape\", {\n enumerable: true,\n get: function get() {\n return encode_2.escape;\n }\n}); // Legacy aliases\n\nObject.defineProperty(exports, \"encodeHTML4\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\nObject.defineProperty(exports, \"encodeHTML5\", {\n enumerable: true,\n get: function get() {\n return encode_2.encodeHTML;\n }\n});\n\nvar decode_2 = require(\"./decode\");\n\nObject.defineProperty(exports, \"decodeXML\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeXML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTMLStrict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n}); // Legacy aliases\n\nObject.defineProperty(exports, \"decodeHTML4\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML5\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTML;\n }\n});\nObject.defineProperty(exports, \"decodeHTML4Strict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n});\nObject.defineProperty(exports, \"decodeHTML5Strict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeHTMLStrict;\n }\n});\nObject.defineProperty(exports, \"decodeXMLStrict\", {\n enumerable: true,\n get: function get() {\n return decode_2.decodeXML;\n }\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.\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\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\nEventEmitter.defaultMaxListeners = 10; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\nEventEmitter.prototype.setMaxListeners = function (n) {\n if (!isNumber(n) || n < 0 || isNaN(n)) throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function (type) {\n var er, handler, len, args, i, listeners;\n if (!this._events) this._events = {}; // If there is no 'error' event listener then throw.\n\n if (type === 'error') {\n if (!this._events.error || isObject(this._events.error) && !this._events.error.length) {\n er = arguments[1];\n\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n if (isUndefined(handler)) return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n\n case 2:\n handler.call(this, arguments[1]);\n break;\n\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n\n for (i = 0; i < len; i++) {\n listeners[i].apply(this, args);\n }\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function (type, listener) {\n var m;\n if (!isFunction(listener)) throw TypeError('listener must be a function');\n if (!this._events) this._events = {}; // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n\n if (this._events.newListener) this.emit('newListener', type, isFunction(listener.listener) ? listener.listener : listener);\n if (!this._events[type]) // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;else if (isObject(this._events[type])) // If we've already got an array, just append.\n this._events[type].push(listener);else // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener]; // Check for listener leak\n\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' + 'leak detected. %d listeners added. ' + 'Use emitter.setMaxListeners() to increase limit.', this._events[type].length);\n\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function (type, listener) {\n if (!isFunction(listener)) throw TypeError('listener must be a function');\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n return this;\n}; // emits a 'removeListener' event iff the listener was removed\n\n\nEventEmitter.prototype.removeListener = function (type, listener) {\n var list, position, length, i;\n if (!isFunction(listener)) throw TypeError('listener must be a function');\n if (!this._events || !this._events[type]) return this;\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener || isFunction(list.listener) && list.listener === listener) {\n delete this._events[type];\n if (this._events.removeListener) this.emit('removeListener', type, listener);\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener || list[i].listener && list[i].listener === listener) {\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener) this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function (type) {\n var key, listeners;\n if (!this._events) return this; // not listening for removeListener, no need to emit\n\n if (!this._events.removeListener) {\n if (arguments.length === 0) this._events = {};else if (this._events[type]) delete this._events[type];\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length) {\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n }\n\n delete this._events[type];\n return this;\n};\n\nEventEmitter.prototype.listeners = function (type) {\n var ret;\n if (!this._events || !this._events[type]) ret = [];else if (isFunction(this._events[type])) ret = [this._events[type]];else ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function (type) {\n if (this._events) {\n var evlistener = this._events[type];\n if (isFunction(evlistener)) return 1;else if (evlistener) return evlistener.length;\n }\n\n return 0;\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}","import styled, { css } from 'styled-components';\nimport { genericStyles, normalizeColor } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar tabHoverStyle = css([\"&:hover{\", \" \", \" \", \";}\"], function (props) {\n return props.theme.tab.hover.background && css([\"background:\", \";\"], normalizeColor(props.theme.tab.hover.background, props.theme));\n}, function (props) {\n return props.theme.tab.hover.color && css([\"color:\", \";\"], normalizeColor(props.theme.tab.hover.color, props.theme));\n}, function (props) {\n return props.theme.tab.hover.extend;\n});\nvar StyledTab = styled.div.withConfig({\n displayName: \"StyledTab\",\n componentId: \"sc-1nnwnsb-0\"\n})([\"\", \" \", \" \", \" \", \"\"], genericStyles, function (props) {\n return !props.plain && !props.disabled && props.theme.tab.hover && tabHoverStyle;\n}, function (props) {\n return props.disabled && props.theme.tab.disabled;\n}, function (props) {\n return props.theme.tab.extend;\n});\nStyledTab.defaultProps = {};\nObject.setPrototypeOf(StyledTab.defaultProps, defaultProps);\nexport { StyledTab };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { forwardRef, useContext, useEffect, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { Button } from '../Button';\nimport { Text } from '../Text';\nimport { TabsContext } from '../Tabs/TabsContext';\nimport { normalizeColor } from '../../utils';\nimport { StyledTab } from './StyledTab';\nvar Tab = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var activeProp = _ref.active,\n disabled = _ref.disabled,\n children = _ref.children,\n icon = _ref.icon,\n plain = _ref.plain,\n title = _ref.title,\n onMouseOver = _ref.onMouseOver,\n onMouseOut = _ref.onMouseOut,\n reverse = _ref.reverse,\n rest = _objectWithoutPropertiesLoose(_ref, [\"active\", \"disabled\", \"children\", \"icon\", \"plain\", \"title\", \"onMouseOver\", \"onMouseOut\", \"reverse\"]);\n\n var _useContext = useContext(TabsContext),\n active = _useContext.active,\n activeIndex = _useContext.activeIndex,\n onActivate = _useContext.onActivate,\n setActiveContent = _useContext.setActiveContent,\n setActiveTitle = _useContext.setActiveTitle;\n\n var theme = useContext(ThemeContext) || defaultProps.theme;\n\n var _useState = useState(undefined),\n over = _useState[0],\n setOver = _useState[1];\n\n var _useState2 = useState(undefined),\n focus = _useState2[0],\n setFocus = _useState2[1];\n\n var normalizedTitle = title;\n var tabStyles = {};\n useEffect(function () {\n if (active) {\n setActiveContent(children);\n var activeTitle = typeof title === 'string' ? title : activeIndex + 1;\n setActiveTitle(activeTitle);\n }\n }, [active, activeIndex, children, setActiveContent, setActiveTitle, title]);\n\n var onMouseOverTab = function onMouseOverTab(event) {\n setOver(true);\n\n if (onMouseOver) {\n onMouseOver(event);\n }\n };\n\n var onMouseOutTab = function onMouseOutTab(event) {\n setOver(undefined);\n\n if (onMouseOut) {\n onMouseOut(event);\n }\n };\n\n var onClickTab = function onClickTab(event) {\n if (event) {\n event.preventDefault();\n }\n\n onActivate();\n };\n\n if (active && disabled) {\n console.warn( // eslint-disable-next-line max-len\n \"Warning: Tab props 'active' and 'disabled' have both been set to TRUE on the same Tab resulting in an interesting Tab state. Is this your intent?\");\n }\n\n if (!plain) {\n if (typeof title !== 'string') {\n normalizedTitle = title;\n } else if (active) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.active, title);\n } else if (disabled && theme.tab.disabled) {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, theme.tab.disabled, title);\n } else {\n normalizedTitle = /*#__PURE__*/React.createElement(Text, {\n color: over ? theme.tab.hover.color : theme.tab.color\n }, title);\n }\n\n if (theme.tab.border) {\n var borderColor = theme.tab.border.color || theme.global.control.border.color;\n\n if (active) {\n borderColor = theme.tab.border.active.color || borderColor;\n } else if (disabled && theme.tab.border.disabled) {\n borderColor = theme.tab.border.disabled.color || borderColor;\n } else if (over) {\n borderColor = theme.tab.border.hover.color || borderColor;\n }\n\n borderColor = normalizeColor(borderColor, theme);\n tabStyles.border = {\n side: theme.tab.border.side,\n size: theme.tab.border.size,\n color: borderColor\n };\n }\n\n tabStyles.background = active ? theme.tab.active.background || theme.tab.background : theme.tab.background;\n tabStyles.pad = theme.tab.pad;\n tabStyles.margin = theme.tab.margin;\n } // needed to apply hover/active styles to the icon\n\n\n var renderIcon = function renderIcon(iconProp) {\n if (active) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.active));\n }\n\n if (disabled) {\n return /*#__PURE__*/React.cloneElement(iconProp, _extends({}, theme.tab.disabled));\n }\n\n return /*#__PURE__*/React.cloneElement(iconProp, {\n color: over ? theme.tab.hover.color : theme.tab.color\n });\n };\n\n var normalizedIcon;\n\n if (icon) {\n normalizedIcon = renderIcon(icon);\n }\n\n var first = reverse ? normalizedTitle : normalizedIcon;\n var second = reverse ? normalizedIcon : normalizedTitle;\n var withIconStyles;\n\n if (first && second) {\n withIconStyles = {\n direction: 'row',\n align: 'center',\n justify: 'center',\n gap: 'small'\n };\n }\n\n return /*#__PURE__*/React.createElement(Button, _extends({\n ref: ref,\n plain: true,\n role: \"tab\",\n \"aria-selected\": active,\n \"aria-expanded\": active,\n disabled: disabled\n }, rest, {\n onClick: onClickTab,\n onMouseOver: onMouseOverTab,\n onMouseOut: onMouseOutTab,\n onFocus: function onFocus() {\n setFocus(true);\n if (onMouseOver) onMouseOver();\n },\n onBlur: function onBlur() {\n setFocus(undefined);\n if (onMouseOut) onMouseOut();\n } // ensure focus outline is not covered by hover styling\n // of adjacent tabs\n ,\n style: focus && {\n zIndex: 1\n }\n }), /*#__PURE__*/React.createElement(StyledTab, _extends({\n as: Box,\n disabled: disabled,\n plain: plain\n }, withIconStyles, tabStyles), first, second));\n});\nTab.displayName = 'Tab';\nTab.defaultProps = {};\nObject.setPrototypeOf(Tab.defaultProps, defaultProps);\nvar TabDoc;\n\nif (process.env.NODE_ENV !== 'production') {\n TabDoc = require('./doc').doc(Tab); // eslint-disable-line global-require\n}\n\nvar TabWrapper = TabDoc || Tab;\nexport { TabWrapper as Tab };","var _FLEX_MAP;\n\nimport styled, { css } from 'styled-components';\nimport { genericStyles } from '../../utils';\nimport { defaultProps } from '../../default-props';\nvar StyledTabsHeader = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabsHeader\",\n componentId: \"a4fwxl-0\"\n})([\"\", \";\"], function (props) {\n return props.theme.tabs.header.extend;\n});\nStyledTabsHeader.defaultProps = {};\nObject.setPrototypeOf(StyledTabsHeader.defaultProps, defaultProps);\nvar FLEX_MAP = (_FLEX_MAP = {}, _FLEX_MAP[true] = '1 1', _FLEX_MAP[false] = '0 0', _FLEX_MAP.grow = '1 0', _FLEX_MAP.shrink = '0 1', _FLEX_MAP);\nvar flexStyle = css([\"flex:\", \";\"], function (props) {\n return \"\" + FLEX_MAP[props.flex] + (props.flex !== true ? ' auto' : '');\n});\nvar StyledTabPanel = styled.div.withConfig({\n displayName: \"StyledTabs__StyledTabPanel\",\n componentId: \"a4fwxl-1\"\n})([\"min-height:0;\", \" \", \";\"], function (props) {\n return props.flex && flexStyle;\n}, function (props) {\n return props.theme.tabs.panel.extend;\n});\nStyledTabPanel.defaultProps = {};\nObject.setPrototypeOf(StyledTabPanel.defaultProps, defaultProps);\nvar StyledTabs = styled.div.withConfig({\n displayName: \"StyledTabs\",\n componentId: \"a4fwxl-2\"\n})([\"\", \" \", \";\"], genericStyles, function (props) {\n return props.theme.tabs.extend;\n});\nStyledTabs.defaultProps = {};\nObject.setPrototypeOf(StyledTabs.defaultProps, defaultProps);\nexport { StyledTabsHeader, StyledTabPanel, StyledTabs };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { forwardRef, useContext, useState } from 'react';\nimport { ThemeContext } from 'styled-components';\nimport { defaultProps } from '../../default-props';\nimport { Box } from '../Box';\nimport { TabsContext } from './TabsContext';\nimport { StyledTabPanel, StyledTabs, StyledTabsHeader } from './StyledTabs';\nimport { normalizeColor } from '../../utils';\nvar Tabs = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var alignControls = _ref.alignControls,\n children = _ref.children,\n flex = _ref.flex,\n _ref$justify = _ref.justify,\n justify = _ref$justify === void 0 ? 'center' : _ref$justify,\n _ref$messages = _ref.messages,\n messages = _ref$messages === void 0 ? {\n tabContents: 'Tab Contents'\n } : _ref$messages,\n _ref$responsive = _ref.responsive,\n responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n rest = _objectWithoutPropertiesLoose(_ref, [\"alignControls\", \"children\", \"flex\", \"justify\", \"messages\", \"responsive\"]);\n\n var theme = useContext(ThemeContext) || defaultProps.theme;\n var propsActiveIndex = rest.activeIndex,\n onActive = rest.onActive;\n\n var _useState = useState(rest.activeIndex || 0),\n activeIndex = _useState[0],\n setActiveIndex = _useState[1];\n\n var _useState2 = useState(),\n activeContent = _useState2[0],\n setActiveContent = _useState2[1];\n\n var _useState3 = useState(),\n activeTitle = _useState3[0],\n setActiveTitle = _useState3[1];\n\n if (activeIndex !== propsActiveIndex && propsActiveIndex !== undefined) {\n setActiveIndex(propsActiveIndex);\n }\n\n var activateTab = function activateTab(index) {\n if (propsActiveIndex === undefined) {\n setActiveIndex(index);\n }\n\n if (onActive) {\n onActive(index);\n }\n };\n /* eslint-disable no-param-reassign */\n\n\n delete rest.activeIndex;\n delete rest.onActive;\n /* eslint-enable no-param-reassign */\n\n var tabs = React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(TabsContext.Provider, {\n value: {\n activeIndex: activeIndex,\n active: activeIndex === index,\n onActivate: function onActivate() {\n return activateTab(index);\n },\n setActiveContent: setActiveContent,\n setActiveTitle: setActiveTitle\n }\n }, child ?\n /*#__PURE__*/\n // cloneElement is needed for backward compatibility with custom\n // styled components that rely on props.active. We should reassess\n // if it is still necessary in our next major release.\n React.cloneElement(child, {\n active: activeIndex === index\n }) : child);\n });\n var tabsHeaderStyles = {};\n\n if (theme.tabs.header && theme.tabs.header.border) {\n var borderColor = theme.tabs.header.border.color || theme.global.control.border.color;\n borderColor = normalizeColor(borderColor, theme);\n tabsHeaderStyles.border = {\n side: theme.tabs.header.border.side,\n size: theme.tabs.header.border.size,\n style: theme.tabs.header.border.style,\n color: borderColor\n };\n }\n\n var tabContentTitle = (activeTitle || '') + \" \" + messages.tabContents;\n return /*#__PURE__*/React.createElement(StyledTabs, _extends({\n ref: ref,\n as: Box,\n role: \"tablist\",\n flex: flex,\n responsive: responsive\n }, rest, {\n background: theme.tabs.background\n }), /*#__PURE__*/React.createElement(StyledTabsHeader, _extends({\n as: Box,\n direction: \"row\",\n justify: justify,\n alignSelf: alignControls,\n flex: false,\n wrap: true,\n background: theme.tabs.header.background,\n gap: theme.tabs.gap\n }, tabsHeaderStyles), tabs), /*#__PURE__*/React.createElement(StyledTabPanel, {\n flex: flex,\n \"aria-label\": tabContentTitle,\n role: \"tabpanel\"\n }, activeContent));\n});\nTabs.displayName = 'Tabs';\nvar TabsDoc;\n\nif (process.env.NODE_ENV !== 'production') {\n TabsDoc = require('./doc').doc(Tabs); // eslint-disable-line global-require\n}\n\nvar TabsWrapper = TabsDoc || Tabs;\nexport { TabsWrapper as Tabs };","import React from 'react';\nexport var TabsContext = /*#__PURE__*/React.createContext({});","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};","var decodeMap = require(\"../maps/decode.json\");\n\nmodule.exports = decodeCodePoint; // modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\n\nfunction decodeCodePoint(codePoint) {\n if (codePoint >= 0xd800 && codePoint <= 0xdfff || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n\n if (codePoint in decodeMap) {\n codePoint = decodeMap[codePoint];\n }\n\n var output = \"\";\n\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(codePoint >>> 10 & 0x3ff | 0xd800);\n codePoint = 0xdc00 | codePoint & 0x3ff;\n }\n\n output += String.fromCharCode(codePoint);\n return output;\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/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n case 'raw':\n return true;\n\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n\n case 'latin1':\n case 'binary':\n return 'latin1';\n\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n\n default:\n if (retried) return; // undefined\n\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n}\n\n; // Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\n\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n} // StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\n\n\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n} // Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n\n return nb;\n }\n\n return 0;\n} // Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\n\n\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n} // UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\n\n\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n\n return r;\n }\n\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n} // For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\n\n\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HtmlParser;\n\nvar _htmlparser = require('htmlparser2');\n\nvar _htmlparser2 = _interopRequireDefault(_htmlparser);\n\nvar _processNodes = require('./processNodes');\n\nvar _processNodes2 = _interopRequireDefault(_processNodes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Parses a HTML string and returns a list of React components generated from it\n *\n * @param {String} html The HTML to convert into React component\n * @param {Object} options Options to pass\n * @returns {Array} List of top level React elements\n */\n\n\nfunction HtmlParser(html) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$decodeEntities = _ref.decodeEntities,\n decodeEntities = _ref$decodeEntities === undefined ? true : _ref$decodeEntities,\n transform = _ref.transform,\n _ref$preprocessNodes = _ref.preprocessNodes,\n preprocessNodes = _ref$preprocessNodes === undefined ? function (nodes) {\n return nodes;\n } : _ref$preprocessNodes;\n\n var nodes = preprocessNodes(_htmlparser2.default.parseDOM(html, {\n decodeEntities: decodeEntities\n }));\n return (0, _processNodes2.default)(nodes, transform);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = convertNodeToElement;\n\nvar _elementTypes = require('./elementTypes');\n\nvar _elementTypes2 = _interopRequireDefault(_elementTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts a htmlparser2 node to a React element\n *\n * @param {Object} node The htmlparser2 node to convert\n * @param {Number} index The index of the current node\n * @param {Function} transform Transform function to apply to children of the node\n * @returns {React.Element}\n */\n\n\nfunction convertNodeToElement(node, index, transform) {\n return _elementTypes2.default[node.type](node, index, transform);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * List of boolean attributes\n * These attributes should have their React attribute value set to be the same as their name\n * E.g. <input disabled> = <input disabled>\n * <input disabled=\"\"> = <input disabled>\n * <input disabled=\"disabled\"> = <input disabled>\n * @type {Array}\n */\n\nexports.default = ['allowfullScreen', 'async', 'autoplay', 'capture', 'checked', 'controls', 'default', 'defer', 'disabled', 'formnovalidate', 'hidden', 'loop', 'multiple', 'muted', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'itemscope'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Mapping of standard HTML attributes to their React counterparts\n * List taken and reversed from react/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n * https://github.com/facebook/react/blob/c9c3c339b757682f1154f1c915eb55e6a8766933/src/renderers/dom/shared/HTMLDOMPropertyConfig.js\n * @type {Object}\n */\n\nexports.default = {\n /**\n * Standard Properties\n */\n accept: 'accept',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n allowtransparency: 'allowTransparency',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocomplete: 'autoComplete',\n autoplay: 'autoPlay',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n charset: 'charSet',\n challenge: 'challenge',\n checked: 'checked',\n cite: 'cite',\n classid: 'classID',\n class: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlsList: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n form: 'form',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formmethod: 'formMethod',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n for: 'htmlFor',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginheight: 'marginHeight',\n marginwidth: 'marginWidth',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n slot: 'slot',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n\n /**\n * RDFa Properties\n */\n about: 'about',\n datatype: 'datatype',\n inlist: 'inlist',\n prefix: 'prefix',\n property: 'property',\n resource: 'resource',\n typeof: 'typeof',\n vocab: 'vocab',\n\n /**\n * Non-standard Properties\n */\n autocapitalize: 'autoCapitalize',\n autocorrect: 'autoCorrect',\n autosave: 'autoSave',\n color: 'color',\n itemprop: 'itemProp',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n itemid: 'itemID',\n itemref: 'itemRef',\n results: 'results',\n security: 'security',\n unselectable: 'unselectable'\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * List of void elements\n * These elements are not allowed to have children\n * @type {Array}\n */\n\nexports.default = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = StyleElementType;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _generatePropsFromAttributes = require('../utils/generatePropsFromAttributes');\n\nvar _generatePropsFromAttributes2 = _interopRequireDefault(_generatePropsFromAttributes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts a <style> element to a React element\n *\n * @param {Object} node The style node\n * @param {String} index The index of the React element relative to it's parent\n * @returns {React.Element} The React style element\n */\n\n\nfunction StyleElementType(node, index) {\n // The style element only ever has a single child which is the styles so try and find this to add as\n // a child to the style element that will be created\n var styles = void 0;\n\n if (node.children.length > 0) {\n styles = node.children[0].data;\n } // generate props\n\n\n var props = (0, _generatePropsFromAttributes2.default)(node.attribs, index); // create and return the element\n\n return _react2.default.createElement('style', props, styles);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TagElementType;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _processNodes = require('../processNodes');\n\nvar _processNodes2 = _interopRequireDefault(_processNodes);\n\nvar _generatePropsFromAttributes = require('../utils/generatePropsFromAttributes');\n\nvar _generatePropsFromAttributes2 = _interopRequireDefault(_generatePropsFromAttributes);\n\nvar _VoidElements = require('../dom/elements/VoidElements');\n\nvar _VoidElements2 = _interopRequireDefault(_VoidElements);\n\nvar _isValidTagOrAttributeName = require('../utils/isValidTagOrAttributeName');\n\nvar _isValidTagOrAttributeName2 = _interopRequireDefault(_isValidTagOrAttributeName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Converts any element (excluding style - see StyleElementType - and script) to a react element.\n *\n * @param {Object} node The tag node\n * @param {String} index The index of the React element relative to it's parent\n * @param {Function} transform The transform function to apply to all children\n * @returns {React.Element} The React tag element\n */\n\n\nfunction TagElementType(node, index, transform) {\n var tagName = node.name; // validate tag name\n\n if (!(0, _isValidTagOrAttributeName2.default)(tagName)) {\n return null;\n } // generate props\n\n\n var props = (0, _generatePropsFromAttributes2.default)(node.attribs, index); // If the node is not a void element and has children then process them\n\n var children = null;\n\n if (_VoidElements2.default.indexOf(tagName) === -1) {\n children = (0, _processNodes2.default)(node.children, transform);\n } // create and return the element\n\n\n return _react2.default.createElement(tagName, props, children);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = TextElementType;\n/**\n * Converts a text node to a React text element\n *\n * @param {Object} node The text node\n * @returns {String} The text\n */\n\nfunction TextElementType(node) {\n // React will accept plain text for rendering so just return the node data\n return node.data;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = UnsupportedElementType;\n/**\n * Handles an unsupported element type by returning null so nothing is rendered\n * @returns {null}\n */\n\nfunction UnsupportedElementType() {\n // do nothing because the element type is unsupported\n // comment, directive, script, cdata, doctype are all currently unsupported\n return null;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ElementType$Text$Ele;\n\nvar _htmlparser = require('htmlparser2');\n\nvar _TextElementType = require('./TextElementType');\n\nvar _TextElementType2 = _interopRequireDefault(_TextElementType);\n\nvar _TagElementType = require('./TagElementType');\n\nvar _TagElementType2 = _interopRequireDefault(_TagElementType);\n\nvar _StyleElementType = require('./StyleElementType');\n\nvar _StyleElementType2 = _interopRequireDefault(_StyleElementType);\n\nvar _UnsupportedElementType = require('./UnsupportedElementType');\n\nvar _UnsupportedElementType2 = _interopRequireDefault(_UnsupportedElementType);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n/*\n * Map each htmlparser2 element type to a function which will convert that element type to a React element\n * Not all of the element types are supported so the UnsupportedElementType is used for them which will not return any\n * value\n */\n\n\nexports.default = (_ElementType$Text$Ele = {}, _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Text, _TextElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Tag, _TagElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Style, _StyleElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Directive, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Comment, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Script, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.CDATA, _UnsupportedElementType2.default), _defineProperty(_ElementType$Text$Ele, _htmlparser.ElementType.Doctype, _UnsupportedElementType2.default), _ElementType$Text$Ele);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.htmlparser2 = exports.convertNodeToElement = exports.processNodes = undefined;\n\nvar _processNodes = require('./processNodes');\n\nObject.defineProperty(exports, 'processNodes', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_processNodes).default;\n }\n});\n\nvar _convertNodeToElement = require('./convertNodeToElement');\n\nObject.defineProperty(exports, 'convertNodeToElement', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_convertNodeToElement).default;\n }\n});\n\nvar _htmlparser = require('htmlparser2');\n\nObject.defineProperty(exports, 'htmlparser2', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_htmlparser).default;\n }\n});\n\nvar _HtmlParser = require('./HtmlParser');\n\nvar _HtmlParser2 = _interopRequireDefault(_HtmlParser);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = _HtmlParser2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = processNodes;\n\nvar _isEmptyTextNode = require('./utils/isEmptyTextNode');\n\nvar _isEmptyTextNode2 = _interopRequireDefault(_isEmptyTextNode);\n\nvar _convertNodeToElement = require('./convertNodeToElement');\n\nvar _convertNodeToElement2 = _interopRequireDefault(_convertNodeToElement);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Processes the nodes generated by htmlparser2 and convert them all into React elements\n *\n * @param {Object[]} nodes List of nodes to process\n * @param {Function} transform Transform function to optionally apply to nodes\n * @returns {React.Element[]} The list of processed React elements\n */\n\n\nfunction processNodes(nodes, transform) {\n return nodes.filter(function (node) {\n return !(0, _isEmptyTextNode2.default)(node);\n }).map(function (node, index) {\n // return the result of the transform function if applicable\n var transformed = void 0;\n\n if (typeof transform === 'function') {\n transformed = transform(node, index);\n\n if (transformed === null || !!transformed) {\n return transformed;\n }\n } // otherwise convert the node as standard\n\n\n return (0, _convertNodeToElement2.default)(node, index, transform);\n });\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nexports.default = generatePropsFromAttributes;\n\nvar _htmlAttributesToReact = require('./htmlAttributesToReact');\n\nvar _htmlAttributesToReact2 = _interopRequireDefault(_htmlAttributesToReact);\n\nvar _inlineStyleToObject = require('./inlineStyleToObject');\n\nvar _inlineStyleToObject2 = _interopRequireDefault(_inlineStyleToObject);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Generates props for a React element from an object of HTML attributes\n *\n * @param {Object} attributes The HTML attributes\n * @param {String} key The key to give the react element\n */\n\n\nfunction generatePropsFromAttributes(attributes, key) {\n // generate props\n var props = _extends({}, (0, _htmlAttributesToReact2.default)(attributes), {\n key: key\n }); // if there is an inline/string style prop then convert it to a React style object\n // otherwise, it is invalid and omitted\n\n\n if (typeof props.style === 'string' || props.style instanceof String) {\n props.style = (0, _inlineStyleToObject2.default)(props.style);\n } else {\n delete props.style;\n }\n\n return props;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = htmlAttributesToReact;\n\nvar _BooleanAttributes = require('../dom/attributes/BooleanAttributes');\n\nvar _BooleanAttributes2 = _interopRequireDefault(_BooleanAttributes);\n\nvar _ReactAttributes = require('../dom/attributes/ReactAttributes');\n\nvar _ReactAttributes2 = _interopRequireDefault(_ReactAttributes);\n\nvar _isValidTagOrAttributeName = require('./isValidTagOrAttributeName');\n\nvar _isValidTagOrAttributeName2 = _interopRequireDefault(_isValidTagOrAttributeName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/**\n * Returns the parsed attribute value taking into account things like boolean attributes\n *\n * @param {String} attribute The name of the attribute\n * @param {*} value The value of the attribute from the HTML\n * @returns {*} The parsed attribute value\n */\n\n\nvar getParsedAttributeValue = function getParsedAttributeValue(attribute, value) {\n // if the attribute if a boolean then it's value should be the same as it's name\n // e.g. disabled=\"disabled\"\n var lowerBooleanAttributes = _BooleanAttributes2.default.map(function (attr) {\n return attr.toLowerCase();\n });\n\n if (lowerBooleanAttributes.indexOf(attribute.toLowerCase()) >= 0) {\n value = attribute;\n }\n\n return value;\n};\n/**\n * Takes an object of standard HTML property names and converts them to their React counterpart. If the react\n * version does not exist for an attribute then just use it as it is\n *\n * @param {Object} attributes The HTML attributes to convert\n * @returns {Object} The React attributes\n */\n\n\nfunction htmlAttributesToReact(attributes) {\n return Object.keys(attributes).filter(function (attr) {\n return (0, _isValidTagOrAttributeName2.default)(attr);\n }).reduce(function (mappedAttributes, attribute) {\n // lowercase the attribute name and find it in the react attribute map\n var lowerCaseAttribute = attribute.toLowerCase(); // format the attribute name\n\n var name = _ReactAttributes2.default[lowerCaseAttribute] || lowerCaseAttribute; // add the parsed attribute value to the mapped attributes\n\n mappedAttributes[name] = getParsedAttributeValue(name, attributes[attribute]);\n return mappedAttributes;\n }, {});\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nexports.default = InlineStyleToObject;\n/**\n * Converts an inline style string into an object of React style properties\n *\n * @param {String} inlineStyle='' The inline style to convert\n * @returns {Object} The converted style\n */\n\nfunction InlineStyleToObject() {\n var inlineStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; // just return empty object if the inlineStyle is empty\n\n if (inlineStyle === '') {\n return {};\n }\n\n return inlineStyle.split(';').reduce(function (styleObject, stylePropertyValue) {\n // extract the style property name and value\n var _stylePropertyValue$s = stylePropertyValue.split(/^([^:]+):/).filter(function (val, i) {\n return i > 0;\n }).map(function (item) {\n return item.trim().toLowerCase();\n }),\n _stylePropertyValue$s2 = _slicedToArray(_stylePropertyValue$s, 2),\n property = _stylePropertyValue$s2[0],\n value = _stylePropertyValue$s2[1]; // if there is no value (i.e. no : in the style) then ignore it\n\n\n if (value === undefined) {\n return styleObject;\n } // convert the property name into the correct React format\n // remove all hyphens and convert the letter immediately after each hyphen to upper case\n // additionally don't uppercase any -ms- prefix\n // e.g. -ms-style-property = msStyleProperty\n // -webkit-style-property = WebkitStyleProperty\n\n\n property = property.replace(/^-ms-/, 'ms-').replace(/-(.)/g, function (_, character) {\n return character.toUpperCase();\n }); // add the new style property and value to the style object\n\n styleObject[property] = value;\n return styleObject;\n }, {});\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmptyTextNode;\n/**\n * Tests a htmlparser2 node and returns whether is it a text node at the start and end of the line containing only\n * white space. This allows these node types to be excluded from the rendering because they are unnecessary.\n *\n * @param {Object} node The element object as created by htmlparser2\n * @returns {boolean} Whether the node is an empty text node\n */\n\nfunction isEmptyTextNode(node) {\n return node.type === 'text' && /\\r?\\n/.test(node.data) && node.data.trim() === '';\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValidTagOrAttributeName;\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/;\nvar nameCache = {};\n\nfunction isValidTagOrAttributeName(tagName) {\n if (!nameCache.hasOwnProperty(tagName)) {\n nameCache[tagName] = VALID_TAG_REGEX.test(tagName);\n }\n\n return nameCache[tagName];\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n} // Copy static methods from Buffer\n\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};","import React, { useCallback, useEffect, useState } from \"react\";\nimport { Close, Configure } from \"grommet-icons\";\nimport Modal from \"../../components/Modal\";\nimport {\n Tab,\n Tabs,\n Box,\n Anchor,\n DataTable,\n Text,\n ResponsiveContext,\n} from \"grommet\";\nimport { callCloud, crud } from \"../../library/parse\";\nimport CRUDForm from \"../CRUDForm\";\n\nconst Home = ({\n datasource,\n hideCRUDForm,\n suffix = \"\",\n objectClass,\n columns,\n fetchData,\n afterAction,\n}) => {\n const [activeModel, setActiveModel] = useState({});\n const [showFormModal, setShowFormModal] = useState(false);\n const [mode, setMode] = useState(\"read\");\n const [stores, setStores] = useState(datasource || []);\n const [dtColumn, setDtColumn] = useState([]);\n const size = React.useContext(ResponsiveContext);\n const loadData = useCallback(async () => {\n return (\n fetchData &&\n setStores(await callCloud(fetchData.action, fetchData.params))\n );\n }, [fetchData]);\n\n useEffect(() => {\n if (datasource) {\n setStores(datasource);\n } else {\n loadData();\n }\n }, [loadData, datasource]);\n\n useEffect(() => {\n const newDtColumn = columns.map((e) => ({\n property: e.property,\n header: <Text> {e.headerText}</Text>,\n primary: e.primary,\n render: e.render,\n }));\n\n !hideCRUDForm &&\n newDtColumn.push({\n property: \"objectId\",\n header: (\n <Anchor\n onClick={() => {\n setActiveModel({});\n setMode(\"create\");\n setShowFormModal(true);\n }}\n >\n Add {objectClass}\n </Anchor>\n ),\n render: (datum) => (\n <>\n <Configure\n onClick={() => {\n setActiveModel(datum);\n setMode(\"update\");\n setShowFormModal(true);\n }}\n style={{ cursor: \"pointer\" }}\n />\n <Close\n onClick={() => {\n setActiveModel(datum);\n setMode(\"delete\");\n setShowFormModal(true);\n }}\n style={{ cursor: \"pointer\" }}\n />\n </>\n ),\n });\n setDtColumn(newDtColumn);\n }, [hideCRUDForm, columns]);\n\n return (\n <>\n <Box>\n {stores.length} {objectClass}\n <DataTable columns={dtColumn} data={stores.map((e) => e.toJSON())} />\n </Box>\n {showFormModal && (\n <Modal full={true} onClose={() => setShowFormModal(false)}>\n <Tabs>\n <Tab title=\"Information\">\n <CRUDForm\n formConfig={{ config: columns }}\n mode={mode}\n model={activeModel}\n onClick={(mode, model) => {\n crud(objectClass, model, mode, suffix);\n setTimeout(() => {\n loadData();\n setShowFormModal(false);\n afterAction && afterAction();\n }, 1000);\n }}\n />\n </Tab>\n </Tabs>\n </Modal>\n )}\n </>\n );\n};\n\nexport default Home;\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","base64","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","prototype","arg","encodingOrOffset","this","allocUnsafe","from","value","TypeError","ArrayBuffer","array","byteOffset","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","obj","isBuffer","checked","copy","buffer","val","type","data","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","g","foo","subarray","e","typedArraySupport","poolSize","_augment","Symbol","species","Object","defineProperty","configurable","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","Infinity","leadSurrogate","trim","replace","stringtrim","base64clean","src","dst","ElementType","entities","foreignNames","elementNames","attributeNames","unencodedElements","style","script","xmp","iframe","noembed","noframes","plaintext","noscript","singleTag","area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr","render","module","dom","opts","cheerio","elem","children","isTag","renderTag","Directive","renderDirective","Comment","renderComment","CDATA","renderCdata","renderText","foreignModeIntegrationPoints","xmlMode","name","parent","assign","tag","attribs","attributes","key","decodeEntities","encodeXML","formatAttrs","Text","Script","Style","Tag","Doctype","re_whitespace","NodePrototype","ElementPrototype","DomHandler","callback","options","elementCB","defaultOpts","_callback","_options","_elementCB","_done","_tagStack","_parser","normalizeWhitespace","withStartIndices","withEndIndices","onparserinit","parser","onreset","onend","_handleCallback","onerror","error","onclosetag","pop","endIndex","_createDomElement","properties","withDomLvl1","element","create","hasOwnProperty","_addDomElement","siblings","previousSibling","next","startIndex","prev","onopentag","ontext","lastTag","normalize","ignoreWhitespace","oncomment","oncdatastart","oncommentend","oncdataend","onprocessinginstruction","domLvl1","tagName","keys","forEach","shorthand","get","nodeTypes","childNodes","parentNode","nextSibling","nodeValue","text","cdata","comment","DomUtils","bind","removeSubsets","nodes","node","ancestor","idx","splice","POSITION","comparePos","compareDocumentPosition","nodeA","nodeB","current","sharedParent","aSibling","bSibling","aParents","bParents","unshift","uniqueSort","position","sort","relative","testElement","tag_name","tag_type","tag_contains","Checks","getAttribCheck","attrib","combineFuncs","getElements","recurse","funcs","map","filter","reduce","getElementById","id","findOne","getElementsByTagName","getElementsByTagType","removeElement","childs","replaceElement","replacement","appendChild","child","sibling","append","currNext","prepend","find","test","elems","result","findOneChild","l","existsOne","findAll","getOuterHTML","getInnerHTML","getText","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","__importDefault","mod","__esModule","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","getStrictDecoder","getReplacer","re","RegExp","default","sorter","charAt","secondChar","legacy","replacer","decode_json_1","escape","encodeHTML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getInverse","inverseHTML","htmlReplacer","inverse","single","multiple","_i","_a","k","count","reNonASCII","singleCharReplacer","codePointAt","toUpperCase","reXmlChars","encode","decodeStrict","decode","decode_1","encode_1","level","encode_2","enumerable","decode_2","EventEmitter","_events","_maxListeners","isFunction","isObject","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","handler","args","listeners","err","context","addListener","listener","newListener","warned","console","trace","on","once","fired","removeListener","removeAllListeners","listenerCount","evlistener","emitter","tabHoverStyle","css","props","theme","tab","hover","background","color","extend","StyledTab","displayName","componentId","plain","disabled","_extends","defaultProps","setPrototypeOf","Tab","forwardRef","_ref","ref","active","icon","title","onMouseOver","onMouseOut","reverse","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_useContext","useContext","TabsContext","activeIndex","onActivate","setActiveContent","setActiveTitle","ThemeContext","_useState","useState","over","setOver","_useState2","focus","setFocus","normalizedTitle","tabStyles","useEffect","warn","border","borderColor","global","control","side","pad","margin","normalizedIcon","iconProp","withIconStyles","first","second","direction","align","justify","gap","Button","role","onClick","event","preventDefault","onFocus","onBlur","zIndex","as","Box","TabWrapper","_FLEX_MAP","StyledTabsHeader","tabs","header","FLEX_MAP","grow","shrink","flexStyle","flex","StyledTabPanel","panel","StyledTabs","Tabs","alignControls","_ref$justify","_ref$messages","messages","tabContents","_ref$responsive","responsive","propsActiveIndex","onActive","setActiveIndex","activeContent","_useState3","activeTitle","index","activateTab","tabsHeaderStyles","tabContentTitle","alignSelf","wrap","TabsWrapper","CollectingHandler","cbs","_cbs","events","EVENTS","restart","FeedHandler","init","what","where","getOneElement","fetch","addConditionally","prop","isValidFeed","feed","feedRoot","href","updated","Date","items","item","entry","description","pubDate","Tokenizer","formTags","option","optgroup","select","button","datalist","textarea","openImpliesClose","tr","th","td","thead","body","head","li","p","h1","h2","h3","h4","h5","h6","voidElements","foreignContextElements","math","svg","htmlIntegrationElements","mi","mo","mn","ms","mtext","foreignObject","desc","re_nameEnd","Parser","_tagname","_attribname","_attribvalue","_attribs","_stack","_foreignContext","_lowerCaseTagNames","lowerCaseTags","_lowerCaseAttributeNames","lowerCaseAttributeNames","_tokenizer","_updatePosition","initialOffset","_sectionStart","getAbsoluteIndex","onopentagname","el","onopentagend","_closeCurrentTag","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","onattribute","_getInstructionName","search","ondeclaration","oncdata","recognizeCDATA","reset","parseComplete","chunk","pause","resume","parseChunk","done","ProxyHandler","Stream","Cbs","scope","readable","decodeCodePoint","entityMap","legacyMap","xmlMap","TEXT","BEFORE_TAG_NAME","IN_TAG_NAME","IN_SELF_CLOSING_TAG","BEFORE_CLOSING_TAG_NAME","IN_CLOSING_TAG_NAME","AFTER_CLOSING_TAG_NAME","BEFORE_ATTRIBUTE_NAME","IN_ATTRIBUTE_NAME","AFTER_ATTRIBUTE_NAME","BEFORE_ATTRIBUTE_VALUE","IN_ATTRIBUTE_VALUE_DQ","IN_ATTRIBUTE_VALUE_SQ","IN_ATTRIBUTE_VALUE_NQ","BEFORE_DECLARATION","IN_DECLARATION","IN_PROCESSING_INSTRUCTION","BEFORE_COMMENT","IN_COMMENT","AFTER_COMMENT_1","AFTER_COMMENT_2","BEFORE_CDATA_1","BEFORE_CDATA_2","BEFORE_CDATA_3","BEFORE_CDATA_4","BEFORE_CDATA_5","BEFORE_CDATA_6","IN_CDATA","AFTER_CDATA_1","AFTER_CDATA_2","BEFORE_SPECIAL","BEFORE_SPECIAL_END","BEFORE_SCRIPT_1","BEFORE_SCRIPT_2","BEFORE_SCRIPT_3","BEFORE_SCRIPT_4","BEFORE_SCRIPT_5","AFTER_SCRIPT_1","AFTER_SCRIPT_2","AFTER_SCRIPT_3","AFTER_SCRIPT_4","AFTER_SCRIPT_5","BEFORE_STYLE_1","BEFORE_STYLE_2","BEFORE_STYLE_3","BEFORE_STYLE_4","AFTER_STYLE_1","AFTER_STYLE_2","AFTER_STYLE_3","AFTER_STYLE_4","BEFORE_ENTITY","BEFORE_NUMERIC_ENTITY","IN_NAMED_ENTITY","IN_NUMERIC_ENTITY","IN_HEX_ENTITY","SPECIAL_NONE","SPECIAL_SCRIPT","SPECIAL_STYLE","whitespace","ifElseState","upper","SUCCESS","FAILURE","lower","_state","_index","consumeSpecialNameChar","NEXT_STATE","_buffer","_bufferOffset","_baseState","_special","_running","_ended","_xmlMode","_decodeEntities","_stateText","_getSection","_stateBeforeTagName","_stateInTagName","_emitToken","_stateBeforeCloseingTagName","_stateInCloseingTagName","_stateAfterCloseingTagName","_stateBeforeAttributeName","_stateInSelfClosingTag","_stateInAttributeName","_stateAfterAttributeName","_stateBeforeAttributeValue","_stateInAttributeValueDoubleQuotes","_stateInAttributeValueSingleQuotes","_stateInAttributeValueNoQuotes","_stateBeforeDeclaration","_stateInDeclaration","_stateInProcessingInstruction","_stateBeforeComment","_stateInComment","_stateAfterComment1","_stateAfterComment2","substring","_stateBeforeCdata1","_stateBeforeCdata2","_stateBeforeCdata3","_stateBeforeCdata4","_stateBeforeCdata5","_stateBeforeCdata6","_stateInCdata","_stateAfterCdata1","_stateAfterCdata2","_stateBeforeSpecial","_stateBeforeSpecialEnd","_stateBeforeScript1","_stateBeforeScript2","_stateBeforeScript3","_stateBeforeScript4","_stateBeforeScript5","_stateAfterScript1","_stateAfterScript2","_stateAfterScript3","_stateAfterScript4","_stateAfterScript5","_stateBeforeStyle1","_stateBeforeStyle2","_stateBeforeStyle3","_stateBeforeStyle4","_stateAfterStyle1","_stateAfterStyle2","_stateAfterStyle3","_stateAfterStyle4","_stateBeforeEntity","_stateBeforeNumericEntity","_parseNamedEntityStrict","entity","_emitPartial","_parseLegacyEntity","_stateInNamedEntity","_decodeNumericEntity","sectionStart","_stateInNumericEntity","_stateInHexEntity","_cleanup","_parse","_finish","_handleTrailingData","WritableStream","StringDecoder","decoder","_decoder","decodeStrings","_write","cb","defineProp","DefaultHandler","parseDOM","parseFeed","createDomStream","elementCb","attribute","cdatastart","cdataend","processinginstruction","commentend","closetag","opentag","opentagname","decodeMap","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","self","utf8CheckExtraBytes","total","utf8CheckIncomplete","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","abs","log","LN2","ctor","superCtor","super_","constructor","writable","TempCtor","html","_ref$decodeEntities","transform","_ref$preprocessNodes","preprocessNodes","_htmlparser2","_processNodes2","_interopRequireDefault","_elementTypes2","_elementTypes","accept","accesskey","action","allowfullscreen","allowtransparency","alt","async","autocomplete","autoplay","capture","cellpadding","cellspacing","charset","challenge","cite","classid","class","cols","colspan","content","contenteditable","contextmenu","controls","controlsList","coords","crossorigin","datetime","defer","download","draggable","enctype","form","formaction","formenctype","formmethod","formnovalidate","formtarget","frameborder","headers","height","hidden","high","hreflang","for","inputmode","integrity","is","keyparams","keytype","kind","label","lang","loop","low","manifest","marginheight","marginwidth","maxlength","media","mediagroup","method","minlength","muted","nonce","novalidate","open","optimum","pattern","placeholder","playsinline","poster","preload","profile","radiogroup","readonly","referrerpolicy","rel","required","reversed","rows","rowspan","sandbox","scoped","scrolling","seamless","selected","shape","sizes","slot","span","spellcheck","srcdoc","srclang","srcset","step","summary","tabindex","usemap","width","wmode","about","datatype","inlist","prefix","property","resource","typeof","vocab","autocapitalize","autocorrect","autosave","itemprop","itemscope","itemtype","itemid","itemref","results","security","unselectable","styles","_generatePropsFromAttributes2","_react2","createElement","_isValidTagOrAttributeName2","_VoidElements2","_ElementType$Text$Ele","_htmlparser","_TextElementType2","_TagElementType2","_StyleElementType2","_UnsupportedElementType2","_defineProperty","_processNodes","_convertNodeToElement","_HtmlParser2","_isEmptyTextNode2","transformed","_convertNodeToElement2","_htmlAttributesToReact2","_inlineStyleToObject2","attr","mappedAttributes","lowerCaseAttribute","_ReactAttributes2","_BooleanAttributes2","getParsedAttributeValue","_slicedToArray","iterator","_n","_d","_e","_s","sliceIterator","inlineStyle","split","styleObject","stylePropertyValue","_stylePropertyValue$s","_stylePropertyValue$s2","_","character","nameCache","VALID_TAG_REGEX","copyProps","SafeBuffer","datasource","hideCRUDForm","suffix","objectClass","columns","fetchData","afterAction","activeModel","setActiveModel","showFormModal","setShowFormModal","mode","setMode","stores","setStores","dtColumn","setDtColumn","loadData","React","ResponsiveContext","useCallback","callCloud","params","newDtColumn","headerText","primary","datum","cursor","full","onClose","formConfig","config","model","crud","setTimeout"],"sourceRoot":""}