HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/api-storage/node_modules/@zxing/text-encoding/umd/encoding.js.map
{"version":3,"file":"encoding.js","sources":["../esm/encoding/defaultEncoding.js","../esm/encoding/encodings.js","../esm/encoding/finished.js","../esm/helper/getArrayVal.js","../esm/encoding/utilities.js","../esm/helper/getGlobalScope.js","../esm/encoding/encoding-indexes-provider.js","../esm/encoding/indexes.js","../esm/encoding/terminology.js","../esm/coders/big5/Big5Decoder.js","../esm/coders/big5/Big5Encoder.js","../esm/coders/euc-jp/EUCJPDecoder.js","../esm/coders/euc-jp/EUCJPEncoder.js","../esm/coders/euc-kr/EUCKRDecoder.js","../esm/coders/euc-kr/EUCKREncoder.js","../esm/coders/gb18030/GB18030Decoder.js","../esm/coders/gb18030/GB18030Encoder.js","../esm/coders/iso-2022-jp/ISO2022JPDecoder.js","../esm/coders/iso-2022-jp/ISO2022JPEncoder.js","../esm/coders/shift-jis/ShiftJISDecoder.js","../esm/coders/shift-jis/ShiftJISEncoder.js","../esm/coders/single-byte/SingleByteDecoder.js","../esm/coders/single-byte/SingleByteEncoder.js","../esm/coders/utf-16/converCodeUnitToBytes.js","../esm/coders/utf-16/UTF16Decoder.js","../esm/coders/utf-16/UTF16Encoder.js","../esm/coders/utf-8/UTF8Decoder.js","../esm/coders/utf-8/UTF8Encoder.js","../esm/coders/x-user-defined/XUserDefinedDecoder.js","../esm/coders/x-user-defined/XUserDefinedEncoder.js","../esm/encoding/encoding-factory.js","../esm/common/Stream.js","../esm/common/TextDecoder.js","../esm/common/TextEncoder.js","../esm/encoding.js"],"sourcesContent":["/** @const */ export var DEFAULT_ENCODING = 'utf-8';\n//# sourceMappingURL=defaultEncoding.js.map","/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nexport function decoderError(fatal, opt_code_point) {\n    if (opt_code_point === void 0) { opt_code_point = undefined; }\n    if (fatal)\n        throw TypeError(\"Decoder error\");\n    return opt_code_point || 0xfffd;\n}\n/**\n * @param {number} code_point The code point that could not be encoded.\n * @return {number} Always throws, no value is actually returned.\n */\nexport function encoderError(code_point) {\n    throw TypeError(\"The code point \" + code_point + \" could not be encoded.\");\n}\n// 5.2 Names and labels\n// TODO: Define @typedef for Encoding: {name:string,labels:Array.<string>}\n// https://github.com/google/closure-compiler/issues/247\n/**\n * @param {string} label The encoding label.\n * @return {?{name:string,labels:Array.<string>}}\n */\nexport function getEncoding(label) {\n    // 1. Remove any leading and trailing ASCII whitespace from label.\n    var keyLabel = String(label).trim().toLowerCase();\n    // 2. If label is an ASCII case-insensitive match for any of the\n    // labels listed in the table below, return the corresponding\n    // encoding, and failure otherwise.\n    if (keyLabel in label_to_encoding) {\n        return label_to_encoding[keyLabel];\n    }\n    return null;\n}\n/**\n * Encodings table: https://encoding.spec.whatwg.org/encodings.json\n * @const\n * @type {!Array.<{\n *          heading: string,\n *          encodings: Array.<{name:string,labels:Array.<string>}>\n *        }>}\n */\nvar encodings = [\n    {\n        encodings: [\n            {\n                labels: [\"unicode-1-1-utf-8\", \"utf-8\", \"utf8\"],\n                name: \"UTF-8\",\n            },\n        ],\n        heading: \"The Encoding\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\"866\", \"cp866\", \"csibm866\", \"ibm866\"],\n                name: \"IBM866\",\n            },\n            {\n                labels: [\n                    \"csisolatin2\",\n                    \"iso-8859-2\",\n                    \"iso-ir-101\",\n                    \"iso8859-2\",\n                    \"iso88592\",\n                    \"iso_8859-2\",\n                    \"iso_8859-2:1987\",\n                    \"l2\",\n                    \"latin2\",\n                ],\n                name: \"ISO-8859-2\",\n            },\n            {\n                labels: [\n                    \"csisolatin3\",\n                    \"iso-8859-3\",\n                    \"iso-ir-109\",\n                    \"iso8859-3\",\n                    \"iso88593\",\n                    \"iso_8859-3\",\n                    \"iso_8859-3:1988\",\n                    \"l3\",\n                    \"latin3\",\n                ],\n                name: \"ISO-8859-3\",\n            },\n            {\n                labels: [\n                    \"csisolatin4\",\n                    \"iso-8859-4\",\n                    \"iso-ir-110\",\n                    \"iso8859-4\",\n                    \"iso88594\",\n                    \"iso_8859-4\",\n                    \"iso_8859-4:1988\",\n                    \"l4\",\n                    \"latin4\",\n                ],\n                name: \"ISO-8859-4\",\n            },\n            {\n                labels: [\n                    \"csisolatincyrillic\",\n                    \"cyrillic\",\n                    \"iso-8859-5\",\n                    \"iso-ir-144\",\n                    \"iso8859-5\",\n                    \"iso88595\",\n                    \"iso_8859-5\",\n                    \"iso_8859-5:1988\",\n                ],\n                name: \"ISO-8859-5\",\n            },\n            {\n                labels: [\n                    \"arabic\",\n                    \"asmo-708\",\n                    \"csiso88596e\",\n                    \"csiso88596i\",\n                    \"csisolatinarabic\",\n                    \"ecma-114\",\n                    \"iso-8859-6\",\n                    \"iso-8859-6-e\",\n                    \"iso-8859-6-i\",\n                    \"iso-ir-127\",\n                    \"iso8859-6\",\n                    \"iso88596\",\n                    \"iso_8859-6\",\n                    \"iso_8859-6:1987\",\n                ],\n                name: \"ISO-8859-6\",\n            },\n            {\n                labels: [\n                    \"csisolatingreek\",\n                    \"ecma-118\",\n                    \"elot_928\",\n                    \"greek\",\n                    \"greek8\",\n                    \"iso-8859-7\",\n                    \"iso-ir-126\",\n                    \"iso8859-7\",\n                    \"iso88597\",\n                    \"iso_8859-7\",\n                    \"iso_8859-7:1987\",\n                    \"sun_eu_greek\",\n                ],\n                name: \"ISO-8859-7\",\n            },\n            {\n                labels: [\n                    \"csiso88598e\",\n                    \"csisolatinhebrew\",\n                    \"hebrew\",\n                    \"iso-8859-8\",\n                    \"iso-8859-8-e\",\n                    \"iso-ir-138\",\n                    \"iso8859-8\",\n                    \"iso88598\",\n                    \"iso_8859-8\",\n                    \"iso_8859-8:1988\",\n                    \"visual\",\n                ],\n                name: \"ISO-8859-8\",\n            },\n            {\n                labels: [\"csiso88598i\", \"iso-8859-8-i\", \"logical\"],\n                name: \"ISO-8859-8-I\",\n            },\n            {\n                labels: [\n                    \"csisolatin6\",\n                    \"iso-8859-10\",\n                    \"iso-ir-157\",\n                    \"iso8859-10\",\n                    \"iso885910\",\n                    \"l6\",\n                    \"latin6\",\n                ],\n                name: \"ISO-8859-10\",\n            },\n            {\n                labels: [\"iso-8859-13\", \"iso8859-13\", \"iso885913\"],\n                name: \"ISO-8859-13\",\n            },\n            {\n                labels: [\"iso-8859-14\", \"iso8859-14\", \"iso885914\"],\n                name: \"ISO-8859-14\",\n            },\n            {\n                labels: [\n                    \"csisolatin9\",\n                    \"iso-8859-15\",\n                    \"iso8859-15\",\n                    \"iso885915\",\n                    \"iso_8859-15\",\n                    \"l9\",\n                ],\n                name: \"ISO-8859-15\",\n            },\n            {\n                labels: [\"iso-8859-16\"],\n                name: \"ISO-8859-16\",\n            },\n            {\n                labels: [\"cskoi8r\", \"koi\", \"koi8\", \"koi8-r\", \"koi8_r\"],\n                name: \"KOI8-R\",\n            },\n            {\n                labels: [\"koi8-ru\", \"koi8-u\"],\n                name: \"KOI8-U\",\n            },\n            {\n                labels: [\"csmacintosh\", \"mac\", \"macintosh\", \"x-mac-roman\"],\n                name: \"macintosh\",\n            },\n            {\n                labels: [\n                    \"dos-874\",\n                    \"iso-8859-11\",\n                    \"iso8859-11\",\n                    \"iso885911\",\n                    \"tis-620\",\n                    \"windows-874\",\n                ],\n                name: \"windows-874\",\n            },\n            {\n                labels: [\"cp1250\", \"windows-1250\", \"x-cp1250\"],\n                name: \"windows-1250\",\n            },\n            {\n                labels: [\"cp1251\", \"windows-1251\", \"x-cp1251\"],\n                name: \"windows-1251\",\n            },\n            {\n                labels: [\n                    \"ansi_x3.4-1968\",\n                    \"cp1252\",\n                    \"cp819\",\n                    \"ibm819\",\n                    \"iso-ir-100\",\n                    \"windows-1252\",\n                    \"x-cp1252\",\n                ],\n                name: \"windows-1252\",\n            },\n            {\n                labels: [\n                    \"ascii\",\n                    \"us-ascii\",\n                    \"iso-8859-1\",\n                    \"iso8859-1\",\n                    \"iso88591\",\n                    \"iso_8859-1\",\n                    \"iso_8859-1:1987\",\n                    \"l1\",\n                    \"latin1\",\n                    \"csisolatin1\",\n                ],\n                name: \"iso-8859-1\",\n            },\n            {\n                labels: [\"cp1253\", \"windows-1253\", \"x-cp1253\"],\n                name: \"windows-1253\",\n            },\n            {\n                labels: [\n                    \"cp1254\",\n                    \"csisolatin5\",\n                    \"iso-8859-9\",\n                    \"iso-ir-148\",\n                    \"iso8859-9\",\n                    \"iso88599\",\n                    \"iso_8859-9\",\n                    \"iso_8859-9:1989\",\n                    \"l5\",\n                    \"latin5\",\n                    \"windows-1254\",\n                    \"x-cp1254\",\n                ],\n                name: \"windows-1254\",\n            },\n            {\n                labels: [\"cp1255\", \"windows-1255\", \"x-cp1255\"],\n                name: \"windows-1255\",\n            },\n            {\n                labels: [\"cp1256\", \"windows-1256\", \"x-cp1256\"],\n                name: \"windows-1256\",\n            },\n            {\n                labels: [\"cp1257\", \"windows-1257\", \"x-cp1257\"],\n                name: \"windows-1257\",\n            },\n            {\n                labels: [\"cp1258\", \"windows-1258\", \"x-cp1258\"],\n                name: \"windows-1258\",\n            },\n            {\n                labels: [\"x-mac-cyrillic\", \"x-mac-ukrainian\"],\n                name: \"x-mac-cyrillic\",\n            },\n        ],\n        heading: \"Legacy single-byte encodings\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\n                    \"chinese\",\n                    \"csgb2312\",\n                    \"csiso58gb231280\",\n                    \"gb2312\",\n                    \"gb_2312\",\n                    \"gb_2312-80\",\n                    \"gbk\",\n                    \"iso-ir-58\",\n                    \"x-gbk\",\n                ],\n                name: \"GBK\",\n            },\n            {\n                labels: [\"gb18030\"],\n                name: \"gb18030\",\n            },\n        ],\n        heading: \"Legacy multi-byte Chinese (simplified) encodings\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\"big5\", \"big5-hkscs\", \"cn-big5\", \"csbig5\", \"x-x-big5\"],\n                name: \"Big5\",\n            },\n        ],\n        heading: \"Legacy multi-byte Chinese (traditional) encodings\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\"cseucpkdfmtjapanese\", \"euc-jp\", \"x-euc-jp\"],\n                name: \"EUC-JP\",\n            },\n            {\n                labels: [\"csiso2022jp\", \"iso-2022-jp\"],\n                name: \"ISO-2022-JP\",\n            },\n            {\n                labels: [\n                    \"csshiftjis\",\n                    \"ms932\",\n                    \"ms_kanji\",\n                    \"shift-jis\",\n                    \"shift_jis\",\n                    \"sjis\",\n                    \"windows-31j\",\n                    \"x-sjis\",\n                ],\n                name: \"Shift_JIS\",\n            },\n        ],\n        heading: \"Legacy multi-byte Japanese encodings\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\n                    \"cseuckr\",\n                    \"csksc56011987\",\n                    \"euc-kr\",\n                    \"iso-ir-149\",\n                    \"korean\",\n                    \"ks_c_5601-1987\",\n                    \"ks_c_5601-1989\",\n                    \"ksc5601\",\n                    \"ksc_5601\",\n                    \"windows-949\",\n                ],\n                name: \"EUC-KR\",\n            },\n        ],\n        heading: \"Legacy multi-byte Korean encodings\",\n    },\n    {\n        encodings: [\n            {\n                labels: [\n                    \"csiso2022kr\",\n                    \"hz-gb-2312\",\n                    \"iso-2022-cn\",\n                    \"iso-2022-cn-ext\",\n                    \"iso-2022-kr\",\n                ],\n                name: \"replacement\",\n            },\n            {\n                labels: [\"utf-16be\"],\n                name: \"UTF-16BE\",\n            },\n            {\n                labels: [\"utf-16\", \"utf-16le\"],\n                name: \"UTF-16LE\",\n            },\n            {\n                labels: [\"x-user-defined\"],\n                name: \"x-user-defined\",\n            },\n        ],\n        heading: \"Legacy miscellaneous encodings\",\n    },\n];\n// Label to encoding registry.\n/** @type {Object.<string,{name:string,labels:Array.<string>}>} */\nvar label_to_encoding = {};\nencodings.forEach(function (category) {\n    category.encodings.forEach(function (encoding) {\n        encoding.labels.forEach(function (label) {\n            label_to_encoding[label] = encoding;\n        });\n    });\n});\nexport { encodings };\n//# sourceMappingURL=encodings.js.map","// 5.1 Encoders and decoders\n/** @const */\nexport var finished = -1;\n//# sourceMappingURL=finished.js.map","export function getArrayVal(idxVal) {\n    return Array.isArray(idxVal) ? idxVal : [idxVal];\n}\n//# sourceMappingURL=getArrayVal.js.map","/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nexport function inRange(a, min, max) {\n    return min <= a && a <= max;\n}\n/**\n * @param {!Array.<*>} array The array to check.\n * @param {*} item The item to look for in the array.\n * @return {boolean} True if the item appears in the array.\n */\nexport function includes(array, item) {\n    return array.indexOf(item) !== -1;\n}\n/**\n * @param {*} o\n * @return {Object}\n */\nexport function ToDictionary(o) {\n    if (o === undefined || o === null)\n        return {};\n    if (o === Object(o))\n        return o;\n    throw TypeError('Could not convert argument to dictionary');\n}\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.<number>} Code points.\n */\nexport function stringToCodePoints(string) {\n    // https://heycam.github.io/webidl/#dfn-obtain-unicode\n    // 1. Let S be the DOMString value.\n    var s = String(string);\n    // 2. Let n be the length of S.\n    var n = s.length;\n    // 3. Initialize i to 0.\n    var i = 0;\n    // 4. Initialize U to be an empty sequence of Unicode characters.\n    var u = [];\n    // 5. While i < n:\n    while (i < n) {\n        // 1. Let c be the code unit in S at index i.\n        var c = s.charCodeAt(i);\n        // 2. Depending on the value of c:\n        // c < 0xD800 or c > 0xDFFF\n        if (c < 0xD800 || c > 0xDFFF) {\n            // Append to U the Unicode character with code point c.\n            u.push(c);\n        }\n        // 0xDC00 ≤ c ≤ 0xDFFF\n        else if (0xDC00 <= c && c <= 0xDFFF) {\n            // Append to U a U+FFFD REPLACEMENT CHARACTER.\n            u.push(0xFFFD);\n        }\n        // 0xD800 ≤ c ≤ 0xDBFF\n        else if (0xD800 <= c && c <= 0xDBFF) {\n            // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n            // CHARACTER.\n            if (i === n - 1) {\n                u.push(0xFFFD);\n            }\n            // 2. Otherwise, i < n−1:\n            else {\n                // 1. Let d be the code unit in S at index i+1.\n                var d = s.charCodeAt(i + 1);\n                // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n                if (0xDC00 <= d && d <= 0xDFFF) {\n                    // 1. Let a be c & 0x3FF.\n                    var a = c & 0x3FF;\n                    // 2. Let b be d & 0x3FF.\n                    var b = d & 0x3FF;\n                    // 3. Append to U the Unicode character with code point\n                    // 2^16+2^10*a+b.\n                    u.push(0x10000 + (a << 10) + b);\n                    // 4. Set i to i+1.\n                    i += 1;\n                }\n                // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n                // U+FFFD REPLACEMENT CHARACTER.\n                else {\n                    u.push(0xFFFD);\n                }\n            }\n        }\n        // 3. Set i to i+1.\n        i += 1;\n    }\n    // 6. Return U.\n    return u;\n}\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nexport function codePointsToString(code_points) {\n    var s = '';\n    for (var i = 0; i < code_points.length; ++i) {\n        var cp = code_points[i];\n        if (cp <= 0xFFFF) {\n            s += String.fromCharCode(cp);\n        }\n        else {\n            cp -= 0x10000;\n            s += String.fromCharCode((cp >> 10) + 0xD800, (cp & 0x3FF) + 0xDC00);\n        }\n    }\n    return s;\n}\n//# sourceMappingURL=utilities.js.map","export function getGlobalScope() {\n    if (typeof global !== 'undefined')\n        return global;\n    if (typeof window !== 'undefined')\n        return window;\n    if (typeof self !== 'undefined')\n        return self;\n    return;\n}\n//# sourceMappingURL=getGlobalScope.js.map","import { getGlobalScope } from \"../helper/getGlobalScope\";\nvar _encodingIndexes;\nfunction checkForEncodingIndexes() {\n    if (typeof TextEncodingIndexes !== 'undefined')\n        return TextEncodingIndexes.encodingIndexes;\n    var glo = getGlobalScope();\n    if (!glo)\n        return null;\n    if ('TextEncodingIndexes' in glo)\n        return global['TextEncodingIndexes']['encodingIndexes'];\n    if ('encoding-indexes' in glo)\n        return global['encodingIndexes'];\n    return null;\n}\nexport function getEncodingIndexes() {\n    if (_encodingIndexes) {\n        return _encodingIndexes;\n    }\n    var indexes = checkForEncodingIndexes();\n    if (!indexes) {\n        return null;\n    }\n    _encodingIndexes = indexes;\n    return indexes;\n}\n//# sourceMappingURL=encoding-indexes-provider.js.map","import { getArrayVal } from \"../helper/getArrayVal\";\nimport { inRange } from \"./utilities\";\nimport { getEncodingIndexes } from \"./encoding-indexes-provider\";\n/**\n * @param {number} pointer The |pointer| to search for.\n * @param {(!Array.<?number>|undefined)} index The |index| to search within.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n *     or null if |code point| is not in |index|.\n */\nexport function indexCodePointFor(pointer, index) {\n    if (!index)\n        return null;\n    return index[pointer] || null;\n}\n/**\n * @param {number} code_point The |code point| to search for.\n * @param {!Array.<?number>} index The |index| to search within.\n * @return {?number} The first pointer corresponding to |code point| in\n *     |index|, or null if |code point| is not in |index|.\n */\nexport function indexPointerFor(code_point, index) {\n    var pointer = index.indexOf(code_point);\n    return pointer === -1 ? null : pointer;\n}\n/**\n * @param {string} name Name of the index.\n * @return {(!Array.<number>|!Array.<Array.<number>>)}\n *  */\nexport function index(name) {\n    var encodingIndexes = getEncodingIndexes();\n    if (!encodingIndexes) {\n        throw Error(\"Indexes missing.\" +\n            \" Did you forget to include encoding-indexes.js first?\");\n    }\n    return encodingIndexes[name];\n}\n/**\n * @param {number} pointer The |pointer| to search for in the gb18030 index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n *     or null if |code point| is not in the gb18030 index.\n */\nexport function indexGB18030RangesCodePointFor(pointer) {\n    // 1. If pointer is greater than 39419 and less than 189000, or\n    // pointer is greater than 1237575, return null.\n    if ((pointer > 39419 && pointer < 189000) || (pointer > 1237575))\n        return null;\n    // 2. If pointer is 7457, return code point U+E7C7.\n    if (pointer === 7457)\n        return 0xE7C7;\n    // 3. Let offset be the last pointer in index gb18030 ranges that\n    // is equal to or less than pointer and let code point offset be\n    // its corresponding code point.\n    var offset = 0;\n    var code_point_offset = 0;\n    var idx = index('gb18030-ranges');\n    for (var i = 0; i < idx.length; ++i) {\n        /** @type {!Array.<number>} */\n        var entry = getArrayVal(idx[i]);\n        if (entry[0] <= pointer) {\n            offset = entry[0];\n            code_point_offset = entry[1];\n        }\n        else {\n            break;\n        }\n    }\n    // 4. Return a code point whose value is code point offset +\n    // pointer − offset.\n    return code_point_offset + pointer - offset;\n}\n/**\n * @param {number} code_point The |code point| to locate in the gb18030 index.\n * @return {number} The first pointer corresponding to |code point| in the\n *     gb18030 index.\n */\nexport function indexGB18030RangesPointerFor(code_point) {\n    // 1. If code point is U+E7C7, return pointer 7457.\n    if (code_point === 0xE7C7)\n        return 7457;\n    // 2. Let offset be the last code point in index gb18030 ranges\n    // that is equal to or less than code point and let pointer offset\n    // be its corresponding pointer.\n    var offset = 0;\n    var pointer_offset = 0;\n    var idx = index('gb18030-ranges');\n    for (var i = 0; i < idx.length; ++i) {\n        var idxVal = idx[i];\n        /** @type {!Array.<number>} */\n        var entry = getArrayVal(idxVal);\n        if (entry[1] <= code_point) {\n            offset = entry[1];\n            pointer_offset = entry[0];\n        }\n        else {\n            break;\n        }\n    }\n    // 3. Return a pointer whose value is pointer offset + code point\n    // − offset.\n    return pointer_offset + code_point - offset;\n}\n/**\n * @param {number} code_point The |code_point| to search for in the Shift_JIS\n *     index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n *     or null if |code point| is not in the Shift_JIS index.\n */\nexport function indexShiftJISPointerFor(code_point) {\n    // 1. Let index be index jis0208 excluding all entries whose\n    // pointer is in the range 8272 to 8835, inclusive.\n    shift_jis_index = shift_jis_index ||\n        index('jis0208').map(function (code_point, pointer) {\n            return inRange(pointer, 8272, 8835) ? null : code_point;\n        });\n    var index_ = shift_jis_index;\n    // 2. Return the index pointer for code point in index.\n    return index_.indexOf(code_point);\n}\nvar shift_jis_index;\n/**\n * @param {number} code_point The |code_point| to search for in the big5\n *     index.\n * @return {?number} The code point corresponding to |pointer| in |index|,\n *     or null if |code point| is not in the big5 index.\n */\nexport function indexBig5PointerFor(code_point) {\n    // 1. Let index be index Big5 excluding all entries whose pointer\n    big5_index_no_hkscs = big5_index_no_hkscs ||\n        index('big5').map(function (code_point, pointer) {\n            return (pointer < (0xA1 - 0x81) * 157) ? null : code_point;\n        });\n    var index_ = big5_index_no_hkscs;\n    // 2. If code point is U+2550, U+255E, U+2561, U+256A, U+5341, or\n    // U+5345, return the last pointer corresponding to code point in\n    // index.\n    if (code_point === 0x2550 || code_point === 0x255E ||\n        code_point === 0x2561 || code_point === 0x256A ||\n        code_point === 0x5341 || code_point === 0x5345) {\n        return index_.lastIndexOf(code_point);\n    }\n    // 3. Return the index pointer for code point in index.\n    return indexPointerFor(code_point, index_);\n}\nvar big5_index_no_hkscs;\n//# sourceMappingURL=indexes.js.map","//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n//\n// 4. Terminology\n//\n/**\n * An ASCII byte is a byte in the range 0x00 to 0x7F, inclusive.\n * @param {number} a The number to test.\n * @return {boolean} True if a is in the range 0x00 to 0x7F, inclusive.\n */\nexport function isASCIIByte(a) {\n    return 0x00 <= a && a <= 0x7F;\n}\n/**\n * An ASCII code point is a code point in the range U+0000 to\n * U+007F, inclusive.\n */\nexport var isASCIICodePoint = isASCIIByte;\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ export var end_of_stream = -1;\n//# sourceMappingURL=terminology.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n  * @constructor\n  * @implements {Decoder}\n  * @param {{fatal: boolean}} options\n  */\nvar Big5Decoder = /** @class */ (function () {\n    function Big5Decoder(options) {\n        this.fatal = options.fatal;\n        // Big5's decoder has an associated Big5 lead (initially 0x00).\n        /** @type {number} */ this.Big5_lead = 0x00;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    Big5Decoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and Big5 lead is not 0x00, set\n        // Big5 lead to 0x00 and return error.\n        if (bite === end_of_stream && this.Big5_lead !== 0x00) {\n            this.Big5_lead = 0x00;\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream and Big5 lead is 0x00, return\n        // finished.\n        if (bite === end_of_stream && this.Big5_lead === 0x00)\n            return finished;\n        // 3. If Big5 lead is not 0x00, let lead be Big5 lead, let\n        // pointer be null, set Big5 lead to 0x00, and then run these\n        // substeps:\n        if (this.Big5_lead !== 0x00) {\n            var lead = this.Big5_lead;\n            var pointer = null;\n            this.Big5_lead = 0x00;\n            // 1. Let offset be 0x40 if byte is less than 0x7F and 0x62\n            // otherwise.\n            var offset = bite < 0x7F ? 0x40 : 0x62;\n            // 2. If byte is in the range 0x40 to 0x7E, inclusive, or 0xA1\n            // to 0xFE, inclusive, set pointer to (lead − 0x81) × 157 +\n            // (byte − offset).\n            if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0xA1, 0xFE))\n                pointer = (lead - 0x81) * 157 + (bite - offset);\n            // 3. If there is a row in the table below whose first column\n            // is pointer, return the two code points listed in its second\n            // column\n            // Pointer | Code points\n            // --------+--------------\n            // 1133    | U+00CA U+0304\n            // 1135    | U+00CA U+030C\n            // 1164    | U+00EA U+0304\n            // 1166    | U+00EA U+030C\n            switch (pointer) {\n                case 1133: return [0x00CA, 0x0304];\n                case 1135: return [0x00CA, 0x030C];\n                case 1164: return [0x00EA, 0x0304];\n                case 1166: return [0x00EA, 0x030C];\n            }\n            // 4. Let code point be null if pointer is null and the index\n            // code point for pointer in index Big5 otherwise.\n            var code_point = (pointer === null) ? null :\n                indexCodePointFor(pointer, index('big5'));\n            // 5. If code point is null and byte is an ASCII byte, prepend\n            // byte to stream.\n            if (code_point === null && isASCIIByte(bite))\n                stream.prepend(bite);\n            // 6. If code point is null, return error.\n            if (code_point === null)\n                return decoderError(this.fatal);\n            // 7. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 4. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 5. If byte is in the range 0x81 to 0xFE, inclusive, set Big5\n        // lead to byte and return continue.\n        if (inRange(bite, 0x81, 0xFE)) {\n            this.Big5_lead = bite;\n            return null;\n        }\n        // 6. Return error.\n        return decoderError(this.fatal);\n    };\n    return Big5Decoder;\n}());\nexport { Big5Decoder };\n//# sourceMappingURL=Big5Decoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { indexBig5PointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\n/**\n   * @constructor\n   * @implements {Encoder}\n   * @param {{fatal: boolean}} options\n   */\nvar Big5Encoder = /** @class */ (function () {\n    function Big5Encoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    Big5Encoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. Let pointer be the index Big5 pointer for code point.\n        var pointer = indexBig5PointerFor(code_point);\n        // 4. If pointer is null, return error with code point.\n        if (pointer === null)\n            return encoderError(code_point);\n        // 5. Let lead be Math.floor(pointer / 157) + 0x81.\n        var lead = Math.floor(pointer / 157) + 0x81;\n        // 6. If lead is less than 0xA1, return error with code point.\n        if (lead < 0xA1)\n            return encoderError(code_point);\n        // 7. Let trail be pointer % 157.\n        var trail = pointer % 157;\n        // 8. Let offset be 0x40 if trail is less than 0x3F and 0x62\n        // otherwise.\n        var offset = trail < 0x3F ? 0x40 : 0x62;\n        // Return two bytes whose values are lead and trail + offset.\n        return [lead, trail + offset];\n    };\n    return Big5Encoder;\n}());\nexport { Big5Encoder };\n//# sourceMappingURL=Big5Encoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar EUCJPDecoder = /** @class */ (function () {\n    function EUCJPDecoder(options) {\n        this.fatal = options.fatal;\n        // euc-jp's decoder has an associated euc-jp jis0212 flag\n        // (initially unset) and euc-jp lead (initially 0x00).\n        /** @type {boolean} */ this.eucjp_jis0212_flag = false,\n            /** @type {number} */ this.eucjp_lead = 0x00;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    EUCJPDecoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and euc-jp lead is not 0x00, set\n        // euc-jp lead to 0x00, and return error.\n        if (bite === end_of_stream && this.eucjp_lead !== 0x00) {\n            this.eucjp_lead = 0x00;\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream and euc-jp lead is 0x00, return\n        // finished.\n        if (bite === end_of_stream && this.eucjp_lead === 0x00)\n            return finished;\n        // 3. If euc-jp lead is 0x8E and byte is in the range 0xA1 to\n        // 0xDF, inclusive, set euc-jp lead to 0x00 and return a code\n        // point whose value is 0xFF61 − 0xA1 + byte.\n        if (this.eucjp_lead === 0x8E && inRange(bite, 0xA1, 0xDF)) {\n            this.eucjp_lead = 0x00;\n            return 0xFF61 - 0xA1 + bite;\n        }\n        // 4. If euc-jp lead is 0x8F and byte is in the range 0xA1 to\n        // 0xFE, inclusive, set the euc-jp jis0212 flag, set euc-jp lead\n        // to byte, and return continue.\n        if (this.eucjp_lead === 0x8F && inRange(bite, 0xA1, 0xFE)) {\n            this.eucjp_jis0212_flag = true;\n            this.eucjp_lead = bite;\n            return null;\n        }\n        // 5. If euc-jp lead is not 0x00, let lead be euc-jp lead, set\n        // euc-jp lead to 0x00, and run these substeps:\n        if (this.eucjp_lead !== 0x00) {\n            var lead = this.eucjp_lead;\n            this.eucjp_lead = 0x00;\n            // 1. Let code point be null.\n            var code_point = null;\n            // 2. If lead and byte are both in the range 0xA1 to 0xFE,\n            // inclusive, set code point to the index code point for (lead\n            // − 0xA1) × 94 + byte − 0xA1 in index jis0208 if the euc-jp\n            // jis0212 flag is unset and in index jis0212 otherwise.\n            if (inRange(lead, 0xA1, 0xFE) && inRange(bite, 0xA1, 0xFE)) {\n                code_point = indexCodePointFor((lead - 0xA1) * 94 + (bite - 0xA1), index(!this.eucjp_jis0212_flag ? 'jis0208' : 'jis0212'));\n            }\n            // 3. Unset the euc-jp jis0212 flag.\n            this.eucjp_jis0212_flag = false;\n            // 4. If byte is not in the range 0xA1 to 0xFE, inclusive,\n            // prepend byte to stream.\n            if (!inRange(bite, 0xA1, 0xFE))\n                stream.prepend(bite);\n            // 5. If code point is null, return error.\n            if (code_point === null)\n                return decoderError(this.fatal);\n            // 6. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 6. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 7. If byte is 0x8E, 0x8F, or in the range 0xA1 to 0xFE,\n        // inclusive, set euc-jp lead to byte and return continue.\n        if (bite === 0x8E || bite === 0x8F || inRange(bite, 0xA1, 0xFE)) {\n            this.eucjp_lead = bite;\n            return null;\n        }\n        // 8. Return error.\n        return decoderError(this.fatal);\n    };\n    return EUCJPDecoder;\n}());\nexport { EUCJPDecoder };\n//# sourceMappingURL=EUCJPDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar EUCJPEncoder = /** @class */ (function () {\n    function EUCJPEncoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    EUCJPEncoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. If code point is U+00A5, return byte 0x5C.\n        if (code_point === 0x00A5)\n            return 0x5C;\n        // 4. If code point is U+203E, return byte 0x7E.\n        if (code_point === 0x203E)\n            return 0x7E;\n        // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n        // return two bytes whose values are 0x8E and code point −\n        // 0xFF61 + 0xA1.\n        if (inRange(code_point, 0xFF61, 0xFF9F))\n            return [0x8E, code_point - 0xFF61 + 0xA1];\n        // 6. If code point is U+2212, set it to U+FF0D.\n        if (code_point === 0x2212)\n            code_point = 0xFF0D;\n        // 7. Let pointer be the index pointer for code point in index\n        // jis0208.\n        var pointer = indexPointerFor(code_point, index('jis0208'));\n        // 8. If pointer is null, return error with code point.\n        if (pointer === null)\n            return encoderError(code_point);\n        // 9. Let lead be Math.floor(pointer / 94) + 0xA1.\n        var lead = Math.floor(pointer / 94) + 0xA1;\n        // 10. Let trail be pointer % 94 + 0xA1.\n        var trail = pointer % 94 + 0xA1;\n        // 11. Return two bytes whose values are lead and trail.\n        return [lead, trail];\n    };\n    return EUCJPEncoder;\n}());\nexport { EUCJPEncoder };\n//# sourceMappingURL=EUCJPEncoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar EUCKRDecoder = /** @class */ (function () {\n    function EUCKRDecoder(options) {\n        this.fatal = options.fatal;\n        // euc-kr's decoder has an associated euc-kr lead (initially 0x00).\n        /** @type {number} */ this.euckr_lead = 0x00;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    EUCKRDecoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and euc-kr lead is not 0x00, set\n        // euc-kr lead to 0x00 and return error.\n        if (bite === end_of_stream && this.euckr_lead !== 0) {\n            this.euckr_lead = 0x00;\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream and euc-kr lead is 0x00, return\n        // finished.\n        if (bite === end_of_stream && this.euckr_lead === 0)\n            return finished;\n        // 3. If euc-kr lead is not 0x00, let lead be euc-kr lead, let\n        // pointer be null, set euc-kr lead to 0x00, and then run these\n        // substeps:\n        if (this.euckr_lead !== 0x00) {\n            var lead = this.euckr_lead;\n            var pointer = null;\n            this.euckr_lead = 0x00;\n            // 1. If byte is in the range 0x41 to 0xFE, inclusive, set\n            // pointer to (lead − 0x81) × 190 + (byte − 0x41).\n            if (inRange(bite, 0x41, 0xFE))\n                pointer = (lead - 0x81) * 190 + (bite - 0x41);\n            // 2. Let code point be null, if pointer is null, and the\n            // index code point for pointer in index euc-kr otherwise.\n            var code_point = (pointer === null)\n                ? null : indexCodePointFor(pointer, index('euc-kr'));\n            // 3. If code point is null and byte is an ASCII byte, prepend\n            // byte to stream.\n            if (pointer === null && isASCIIByte(bite))\n                stream.prepend(bite);\n            // 4. If code point is null, return error.\n            if (code_point === null)\n                return decoderError(this.fatal);\n            // 5. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 4. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 5. If byte is in the range 0x81 to 0xFE, inclusive, set\n        // euc-kr lead to byte and return continue.\n        if (inRange(bite, 0x81, 0xFE)) {\n            this.euckr_lead = bite;\n            return null;\n        }\n        // 6. Return error.\n        return decoderError(this.fatal);\n    };\n    return EUCKRDecoder;\n}());\nexport { EUCKRDecoder };\n//# sourceMappingURL=EUCKRDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar EUCKREncoder = /** @class */ (function () {\n    function EUCKREncoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    EUCKREncoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. Let pointer be the index pointer for code point in index\n        // euc-kr.\n        var pointer = indexPointerFor(code_point, index('euc-kr'));\n        // 4. If pointer is null, return error with code point.\n        if (pointer === null)\n            return encoderError(code_point);\n        // 5. Let lead be Math.floor(pointer / 190) + 0x81.\n        var lead = Math.floor(pointer / 190) + 0x81;\n        // 6. Let trail be pointer % 190 + 0x41.\n        var trail = (pointer % 190) + 0x41;\n        // 7. Return two bytes whose values are lead and trail.\n        return [lead, trail];\n    };\n    return EUCKREncoder;\n}());\nexport { EUCKREncoder };\n//# sourceMappingURL=EUCKREncoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor, indexGB18030RangesCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar GB18030Decoder = /** @class */ (function () {\n    function GB18030Decoder(options) {\n        this.fatal = options.fatal;\n        // gb18030's decoder has an associated gb18030 first, gb18030\n        // second, and gb18030 third (all initially 0x00).\n        /** @type {number} */ this.gb18030_first = 0x00,\n            /** @type {number} */ this.gb18030_second = 0x00,\n            /** @type {number} */ this.gb18030_third = 0x00;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    GB18030Decoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and gb18030 first, gb18030\n        // second, and gb18030 third are 0x00, return finished.\n        if (bite === end_of_stream && this.gb18030_first === 0x00 &&\n            this.gb18030_second === 0x00 && this.gb18030_third === 0x00) {\n            return finished;\n        }\n        // 2. If byte is end-of-stream, and gb18030 first, gb18030\n        // second, or gb18030 third is not 0x00, set gb18030 first,\n        // gb18030 second, and gb18030 third to 0x00, and return error.\n        if (bite === end_of_stream &&\n            (this.gb18030_first !== 0x00 || this.gb18030_second !== 0x00 ||\n                this.gb18030_third !== 0x00)) {\n            this.gb18030_first = 0x00;\n            this.gb18030_second = 0x00;\n            this.gb18030_third = 0x00;\n            decoderError(this.fatal);\n        }\n        var code_point;\n        // 3. If gb18030 third is not 0x00, run these substeps:\n        if (this.gb18030_third !== 0x00) {\n            // 1. Let code point be null.\n            code_point = null;\n            // 2. If byte is in the range 0x30 to 0x39, inclusive, set\n            // code point to the index gb18030 ranges code point for\n            // (((gb18030 first − 0x81) × 10 + gb18030 second − 0x30) ×\n            // 126 + gb18030 third − 0x81) × 10 + byte − 0x30.\n            if (inRange(bite, 0x30, 0x39)) {\n                code_point = indexGB18030RangesCodePointFor((((this.gb18030_first - 0x81) * 10 + this.gb18030_second - 0x30) * 126 +\n                    this.gb18030_third - 0x81) * 10 + bite - 0x30);\n            }\n            // 3. Let buffer be a byte sequence consisting of gb18030\n            // second, gb18030 third, and byte, in order.\n            var buffer = [this.gb18030_second, this.gb18030_third, bite];\n            // 4. Set gb18030 first, gb18030 second, and gb18030 third to\n            // 0x00.\n            this.gb18030_first = 0x00;\n            this.gb18030_second = 0x00;\n            this.gb18030_third = 0x00;\n            // 5. If code point is null, prepend buffer to stream and\n            // return error.\n            if (code_point === null) {\n                stream.prepend(buffer);\n                return decoderError(this.fatal);\n            }\n            // 6. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 4. If gb18030 second is not 0x00, run these substeps:\n        if (this.gb18030_second !== 0x00) {\n            // 1. If byte is in the range 0x81 to 0xFE, inclusive, set\n            // gb18030 third to byte and return continue.\n            if (inRange(bite, 0x81, 0xFE)) {\n                this.gb18030_third = bite;\n                return null;\n            }\n            // 2. Prepend gb18030 second followed by byte to stream, set\n            // gb18030 first and gb18030 second to 0x00, and return error.\n            stream.prepend([this.gb18030_second, bite]);\n            this.gb18030_first = 0x00;\n            this.gb18030_second = 0x00;\n            return decoderError(this.fatal);\n        }\n        // 5. If gb18030 first is not 0x00, run these substeps:\n        if (this.gb18030_first !== 0x00) {\n            // 1. If byte is in the range 0x30 to 0x39, inclusive, set\n            // gb18030 second to byte and return continue.\n            if (inRange(bite, 0x30, 0x39)) {\n                this.gb18030_second = bite;\n                return null;\n            }\n            // 2. Let lead be gb18030 first, let pointer be null, and set\n            // gb18030 first to 0x00.\n            var lead = this.gb18030_first;\n            var pointer = null;\n            this.gb18030_first = 0x00;\n            // 3. Let offset be 0x40 if byte is less than 0x7F and 0x41\n            // otherwise.\n            var offset = bite < 0x7F ? 0x40 : 0x41;\n            // 4. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n            // to 0xFE, inclusive, set pointer to (lead − 0x81) × 190 +\n            // (byte − offset).\n            if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFE))\n                pointer = (lead - 0x81) * 190 + (bite - offset);\n            // 5. Let code point be null if pointer is null and the index\n            // code point for pointer in index gb18030 otherwise.\n            code_point = pointer === null ? null :\n                indexCodePointFor(pointer, index('gb18030'));\n            // 6. If code point is null and byte is an ASCII byte, prepend\n            // byte to stream.\n            if (code_point === null && isASCIIByte(bite))\n                stream.prepend(bite);\n            // 7. If code point is null, return error.\n            if (code_point === null)\n                return decoderError(this.fatal);\n            // 8. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 6. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 7. If byte is 0x80, return code point U+20AC.\n        if (bite === 0x80)\n            return 0x20AC;\n        // 8. If byte is in the range 0x81 to 0xFE, inclusive, set\n        // gb18030 first to byte and return continue.\n        if (inRange(bite, 0x81, 0xFE)) {\n            this.gb18030_first = bite;\n            return null;\n        }\n        // 9. Return error.\n        return decoderError(this.fatal);\n    };\n    return GB18030Decoder;\n}());\nexport { GB18030Decoder };\n//# sourceMappingURL=GB18030Decoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexGB18030RangesPointerFor, indexPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n * @param {boolean=} gbk_flag\n */\nvar GB18030Encoder = /** @class */ (function () {\n    function GB18030Encoder(options, gbk_flag) {\n        if (gbk_flag === void 0) { gbk_flag = undefined; }\n        this.gbk_flag = gbk_flag;\n        this.fatal = options.fatal;\n        // gb18030's decoder has an associated gbk flag (initially unset).\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    GB18030Encoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. If code point is U+E5E5, return error with code point.\n        if (code_point === 0xE5E5)\n            return encoderError(code_point);\n        // 4. If the gbk flag is set and code point is U+20AC, return\n        // byte 0x80.\n        if (this.gbk_flag && code_point === 0x20AC)\n            return 0x80;\n        // 5. Let pointer be the index pointer for code point in index\n        // gb18030.\n        var pointer = indexPointerFor(code_point, index('gb18030'));\n        // 6. If pointer is not null, run these substeps:\n        if (pointer !== null) {\n            // 1. Let lead be Math.floor(pointer / 190) + 0x81.\n            var lead = Math.floor(pointer / 190) + 0x81;\n            // 2. Let trail be pointer % 190.\n            var trail = pointer % 190;\n            // 3. Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.\n            var offset = trail < 0x3F ? 0x40 : 0x41;\n            // 4. Return two bytes whose values are lead and trail + offset.\n            return [lead, trail + offset];\n        }\n        // 7. If gbk flag is set, return error with code point.\n        if (this.gbk_flag)\n            return encoderError(code_point);\n        // 8. Set pointer to the index gb18030 ranges pointer for code\n        // point.\n        pointer = indexGB18030RangesPointerFor(code_point);\n        // 9. Let byte1 be Math.floor(pointer / 10 / 126 / 10).\n        var byte1 = Math.floor(pointer / 10 / 126 / 10);\n        // 10. Set pointer to pointer − byte1 × 10 × 126 × 10.\n        pointer = pointer - byte1 * 10 * 126 * 10;\n        // 11. Let byte2 be Math.floor(pointer / 10 / 126).\n        var byte2 = Math.floor(pointer / 10 / 126);\n        // 12. Set pointer to pointer − byte2 × 10 × 126.\n        pointer = pointer - byte2 * 10 * 126;\n        // 13. Let byte3 be Math.floor(pointer / 10).\n        var byte3 = Math.floor(pointer / 10);\n        // 14. Let byte4 be pointer − byte3 × 10.\n        var byte4 = pointer - byte3 * 10;\n        // 15. Return four bytes whose values are byte1 + 0x81, byte2 +\n        // 0x30, byte3 + 0x81, byte4 + 0x30.\n        return [byte1 + 0x81,\n            byte2 + 0x30,\n            byte3 + 0x81,\n            byte4 + 0x30];\n    };\n    return GB18030Encoder;\n}());\nexport { GB18030Encoder };\n//# sourceMappingURL=GB18030Encoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\nvar states;\n(function (states) {\n    states[states[\"ASCII\"] = 0] = \"ASCII\";\n    states[states[\"Roman\"] = 1] = \"Roman\";\n    states[states[\"Katakana\"] = 2] = \"Katakana\";\n    states[states[\"LeadByte\"] = 3] = \"LeadByte\";\n    states[states[\"TrailByte\"] = 4] = \"TrailByte\";\n    states[states[\"EscapeStart\"] = 5] = \"EscapeStart\";\n    states[states[\"Escape\"] = 6] = \"Escape\";\n})(states || (states = {}));\nvar ISO2022JPDecoder = /** @class */ (function () {\n    /**\n     * @constructor\n     * @implements {Decoder}\n     * @param {{fatal: boolean}} options\n     */\n    function ISO2022JPDecoder(options) {\n        this.fatal = options.fatal;\n        // iso-2022-jp's decoder has an associated iso-2022-jp decoder\n        // state (initially ASCII), iso-2022-jp decoder output state\n        // (initially ASCII), iso-2022-jp lead (initially 0x00), and\n        // iso-2022-jp output flag (initially unset).\n        /** @type {number} */ this.iso2022jp_decoder_state = states.ASCII,\n            /** @type {number} */ this.iso2022jp_decoder_output_state = states.ASCII,\n            /** @type {number} */ this.iso2022jp_lead = 0x00,\n            /** @type {boolean} */ this.iso2022jp_output_flag = false;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    ISO2022JPDecoder.prototype.handler = function (stream, bite) {\n        // switching on iso-2022-jp decoder state:\n        switch (this.iso2022jp_decoder_state) {\n            default:\n            case states.ASCII:\n                // ASCII\n                // Based on byte:\n                // 0x1B\n                if (bite === 0x1B) {\n                    // Set iso-2022-jp decoder state to escape start and return\n                    // continue.\n                    this.iso2022jp_decoder_state = states.EscapeStart;\n                    return null;\n                }\n                // 0x00 to 0x7F, excluding 0x0E, 0x0F, and 0x1B\n                if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E\n                    && bite !== 0x0F && bite !== 0x1B) {\n                    // Unset the iso-2022-jp output flag and return a code point\n                    // whose value is byte.\n                    this.iso2022jp_output_flag = false;\n                    return bite;\n                }\n                // end-of-stream\n                if (bite === end_of_stream) {\n                    // Return finished.\n                    return finished;\n                }\n                // Otherwise\n                // Unset the iso-2022-jp output flag and return error.\n                this.iso2022jp_output_flag = false;\n                return decoderError(this.fatal);\n            case states.Roman:\n                // Roman\n                // Based on byte:\n                // 0x1B\n                if (bite === 0x1B) {\n                    // Set iso-2022-jp decoder state to escape start and return\n                    // continue.\n                    this.iso2022jp_decoder_state = states.EscapeStart;\n                    return null;\n                }\n                // 0x5C\n                if (bite === 0x5C) {\n                    // Unset the iso-2022-jp output flag and return code point\n                    // U+00A5.\n                    this.iso2022jp_output_flag = false;\n                    return 0x00A5;\n                }\n                // 0x7E\n                if (bite === 0x7E) {\n                    // Unset the iso-2022-jp output flag and return code point\n                    // U+203E.\n                    this.iso2022jp_output_flag = false;\n                    return 0x203E;\n                }\n                // 0x00 to 0x7F, excluding 0x0E, 0x0F, 0x1B, 0x5C, and 0x7E\n                if (inRange(bite, 0x00, 0x7F) && bite !== 0x0E && bite !== 0x0F\n                    && bite !== 0x1B && bite !== 0x5C && bite !== 0x7E) {\n                    // Unset the iso-2022-jp output flag and return a code point\n                    // whose value is byte.\n                    this.iso2022jp_output_flag = false;\n                    return bite;\n                }\n                // end-of-stream\n                if (bite === end_of_stream) {\n                    // Return finished.\n                    return finished;\n                }\n                // Otherwise\n                // Unset the iso-2022-jp output flag and return error.\n                this.iso2022jp_output_flag = false;\n                return decoderError(this.fatal);\n            case states.Katakana:\n                // Katakana\n                // Based on byte:\n                // 0x1B\n                if (bite === 0x1B) {\n                    // Set iso-2022-jp decoder state to escape start and return\n                    // continue.\n                    this.iso2022jp_decoder_state = states.EscapeStart;\n                    return null;\n                }\n                // 0x21 to 0x5F\n                if (inRange(bite, 0x21, 0x5F)) {\n                    // Unset the iso-2022-jp output flag and return a code point\n                    // whose value is 0xFF61 − 0x21 + byte.\n                    this.iso2022jp_output_flag = false;\n                    return 0xFF61 - 0x21 + bite;\n                }\n                // end-of-stream\n                if (bite === end_of_stream) {\n                    // Return finished.\n                    return finished;\n                }\n                // Otherwise\n                // Unset the iso-2022-jp output flag and return error.\n                this.iso2022jp_output_flag = false;\n                return decoderError(this.fatal);\n            case states.LeadByte:\n                // Lead byte\n                // Based on byte:\n                // 0x1B\n                if (bite === 0x1B) {\n                    // Set iso-2022-jp decoder state to escape start and return\n                    // continue.\n                    this.iso2022jp_decoder_state = states.EscapeStart;\n                    return null;\n                }\n                // 0x21 to 0x7E\n                if (inRange(bite, 0x21, 0x7E)) {\n                    // Unset the iso-2022-jp output flag, set iso-2022-jp lead\n                    // to byte, iso-2022-jp decoder state to trail byte, and\n                    // return continue.\n                    this.iso2022jp_output_flag = false;\n                    this.iso2022jp_lead = bite;\n                    this.iso2022jp_decoder_state = states.TrailByte;\n                    return null;\n                }\n                // end-of-stream\n                if (bite === end_of_stream) {\n                    // Return finished.\n                    return finished;\n                }\n                // Otherwise\n                // Unset the iso-2022-jp output flag and return error.\n                this.iso2022jp_output_flag = false;\n                return decoderError(this.fatal);\n            case states.TrailByte:\n                // Trail byte\n                // Based on byte:\n                // 0x1B\n                if (bite === 0x1B) {\n                    // Set iso-2022-jp decoder state to escape start and return\n                    // continue.\n                    this.iso2022jp_decoder_state = states.EscapeStart;\n                    return decoderError(this.fatal);\n                }\n                // 0x21 to 0x7E\n                if (inRange(bite, 0x21, 0x7E)) {\n                    // 1. Set the iso-2022-jp decoder state to lead byte.\n                    this.iso2022jp_decoder_state = states.LeadByte;\n                    // 2. Let pointer be (iso-2022-jp lead − 0x21) × 94 + byte − 0x21.\n                    var pointer = (this.iso2022jp_lead - 0x21) * 94 + bite - 0x21;\n                    // 3. Let code point be the index code point for pointer in\n                    // index jis0208.\n                    var code_point = indexCodePointFor(pointer, index('jis0208'));\n                    // 4. If code point is null, return error.\n                    if (code_point === null)\n                        return decoderError(this.fatal);\n                    // 5. Return a code point whose value is code point.\n                    return code_point;\n                }\n                // end-of-stream\n                if (bite === end_of_stream) {\n                    // Set the iso-2022-jp decoder state to lead byte, prepend\n                    // byte to stream, and return error.\n                    this.iso2022jp_decoder_state = states.LeadByte;\n                    stream.prepend(bite);\n                    return decoderError(this.fatal);\n                }\n                // Otherwise\n                // Set iso-2022-jp decoder state to lead byte and return\n                // error.\n                this.iso2022jp_decoder_state = states.LeadByte;\n                return decoderError(this.fatal);\n            case states.EscapeStart:\n                // Escape start\n                // 1. If byte is either 0x24 or 0x28, set iso-2022-jp lead to\n                // byte, iso-2022-jp decoder state to escape, and return\n                // continue.\n                if (bite === 0x24 || bite === 0x28) {\n                    this.iso2022jp_lead = bite;\n                    this.iso2022jp_decoder_state = states.Escape;\n                    return null;\n                }\n                // 2. Prepend byte to stream.\n                stream.prepend(bite);\n                // 3. Unset the iso-2022-jp output flag, set iso-2022-jp\n                // decoder state to iso-2022-jp decoder output state, and\n                // return error.\n                this.iso2022jp_output_flag = false;\n                this.iso2022jp_decoder_state = this.iso2022jp_decoder_output_state;\n                return decoderError(this.fatal);\n            case states.Escape:\n                // Escape\n                // 1. Let lead be iso-2022-jp lead and set iso-2022-jp lead to\n                // 0x00.\n                var lead = this.iso2022jp_lead;\n                this.iso2022jp_lead = 0x00;\n                // 2. Let state be null.\n                var state = null;\n                // 3. If lead is 0x28 and byte is 0x42, set state to ASCII.\n                if (lead === 0x28 && bite === 0x42)\n                    state = states.ASCII;\n                // 4. If lead is 0x28 and byte is 0x4A, set state to Roman.\n                if (lead === 0x28 && bite === 0x4A)\n                    state = states.Roman;\n                // 5. If lead is 0x28 and byte is 0x49, set state to Katakana.\n                if (lead === 0x28 && bite === 0x49)\n                    state = states.Katakana;\n                // 6. If lead is 0x24 and byte is either 0x40 or 0x42, set\n                // state to lead byte.\n                if (lead === 0x24 && (bite === 0x40 || bite === 0x42))\n                    state = states.LeadByte;\n                // 7. If state is non-null, run these substeps:\n                if (state !== null) {\n                    // 1. Set iso-2022-jp decoder state and iso-2022-jp decoder\n                    // output state to states.\n                    this.iso2022jp_decoder_state = this.iso2022jp_decoder_state = state;\n                    // 2. Let output flag be the iso-2022-jp output flag.\n                    var output_flag = this.iso2022jp_output_flag;\n                    // 3. Set the iso-2022-jp output flag.\n                    this.iso2022jp_output_flag = true;\n                    // 4. Return continue, if output flag is unset, and error\n                    // otherwise.\n                    return !output_flag ? null : decoderError(this.fatal);\n                }\n                // 8. Prepend lead and byte to stream.\n                stream.prepend([lead, bite]);\n                // 9. Unset the iso-2022-jp output flag, set iso-2022-jp\n                // decoder state to iso-2022-jp decoder output state and\n                // return error.\n                this.iso2022jp_output_flag = false;\n                this.iso2022jp_decoder_state = this.iso2022jp_decoder_output_state;\n                return decoderError(this.fatal);\n        }\n    };\n    return ISO2022JPDecoder;\n}());\nexport { ISO2022JPDecoder };\n//# sourceMappingURL=ISO2022JPDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\nvar states;\n(function (states) {\n    states[states[\"ASCII\"] = 0] = \"ASCII\";\n    states[states[\"Roman\"] = 1] = \"Roman\";\n    states[states[\"jis0208\"] = 2] = \"jis0208\";\n})(states || (states = {}));\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar ISO2022JPEncoder = /** @class */ (function () {\n    function ISO2022JPEncoder(options) {\n        this.fatal = options.fatal;\n        // iso-2022-jp's encoder has an associated iso-2022-jp encoder\n        // state which is one of ASCII, Roman, and jis0208 (initially\n        // ASCII).\n        /** @type {number} */ this.iso2022jp_state = states.ASCII;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    ISO2022JPEncoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream and iso-2022-jp encoder\n        // state is not ASCII, prepend code point to stream, set\n        // iso-2022-jp encoder state to ASCII, and return three bytes\n        // 0x1B 0x28 0x42.\n        if (code_point === end_of_stream &&\n            this.iso2022jp_state !== states.ASCII) {\n            stream.prepend(code_point);\n            this.iso2022jp_state = states.ASCII;\n            return [0x1B, 0x28, 0x42];\n        }\n        // 2. If code point is end-of-stream and iso-2022-jp encoder\n        // state is ASCII, return finished.\n        if (code_point === end_of_stream && this.iso2022jp_state === states.ASCII)\n            return finished;\n        // 3. If ISO-2022-JP encoder state is ASCII or Roman, and code\n        // point is U+000E, U+000F, or U+001B, return error with U+FFFD.\n        if ((this.iso2022jp_state === states.ASCII ||\n            this.iso2022jp_state === states.Roman) &&\n            (code_point === 0x000E || code_point === 0x000F ||\n                code_point === 0x001B)) {\n            return encoderError(0xFFFD);\n        }\n        // 4. If iso-2022-jp encoder state is ASCII and code point is an\n        // ASCII code point, return a byte whose value is code point.\n        if (this.iso2022jp_state === states.ASCII &&\n            isASCIICodePoint(code_point))\n            return code_point;\n        // 5. If iso-2022-jp encoder state is Roman and code point is an\n        // ASCII code point, excluding U+005C and U+007E, or is U+00A5\n        // or U+203E, run these substeps:\n        if (this.iso2022jp_state === states.Roman &&\n            ((isASCIICodePoint(code_point) &&\n                code_point !== 0x005C && code_point !== 0x007E) ||\n                (code_point == 0x00A5 || code_point == 0x203E))) {\n            // 1. If code point is an ASCII code point, return a byte\n            // whose value is code point.\n            if (isASCIICodePoint(code_point))\n                return code_point;\n            // 2. If code point is U+00A5, return byte 0x5C.\n            if (code_point === 0x00A5)\n                return 0x5C;\n            // 3. If code point is U+203E, return byte 0x7E.\n            if (code_point === 0x203E)\n                return 0x7E;\n        }\n        // 6. If code point is an ASCII code point, and iso-2022-jp\n        // encoder state is not ASCII, prepend code point to stream, set\n        // iso-2022-jp encoder state to ASCII, and return three bytes\n        // 0x1B 0x28 0x42.\n        if (isASCIICodePoint(code_point) &&\n            this.iso2022jp_state !== states.ASCII) {\n            stream.prepend(code_point);\n            this.iso2022jp_state = states.ASCII;\n            return [0x1B, 0x28, 0x42];\n        }\n        // 7. If code point is either U+00A5 or U+203E, and iso-2022-jp\n        // encoder state is not Roman, prepend code point to stream, set\n        // iso-2022-jp encoder state to Roman, and return three bytes\n        // 0x1B 0x28 0x4A.\n        if ((code_point === 0x00A5 || code_point === 0x203E) &&\n            this.iso2022jp_state !== states.Roman) {\n            stream.prepend(code_point);\n            this.iso2022jp_state = states.Roman;\n            return [0x1B, 0x28, 0x4A];\n        }\n        // 8. If code point is U+2212, set it to U+FF0D.\n        if (code_point === 0x2212)\n            code_point = 0xFF0D;\n        // 9. Let pointer be the index pointer for code point in index\n        // jis0208.\n        var pointer = indexPointerFor(code_point, index('jis0208'));\n        // 10. If pointer is null, return error with code point.\n        if (pointer === null)\n            return encoderError(code_point);\n        // 11. If iso-2022-jp encoder state is not jis0208, prepend code\n        // point to stream, set iso-2022-jp encoder state to jis0208,\n        // and return three bytes 0x1B 0x24 0x42.\n        if (this.iso2022jp_state !== states.jis0208) {\n            stream.prepend(code_point);\n            this.iso2022jp_state = states.jis0208;\n            return [0x1B, 0x24, 0x42];\n        }\n        // 12. Let lead be Math.floor(pointer / 94) + 0x21.\n        var lead = Math.floor(pointer / 94) + 0x21;\n        // 13. Let trail be pointer % 94 + 0x21.\n        var trail = pointer % 94 + 0x21;\n        // 14. Return two bytes whose values are lead and trail.\n        return [lead, trail];\n    };\n    return ISO2022JPEncoder;\n}());\nexport { ISO2022JPEncoder };\n//# sourceMappingURL=ISO2022JPEncoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { index, indexCodePointFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar ShiftJISDecoder = /** @class */ (function () {\n    function ShiftJISDecoder(options) {\n        this.fatal = options.fatal;\n        // Shift_JIS's decoder has an associated Shift_JIS lead (initially\n        // 0x00).\n        /** @type {number} */ this.Shift_JIS_lead = 0x00;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    ShiftJISDecoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and Shift_JIS lead is not 0x00,\n        // set Shift_JIS lead to 0x00 and return error.\n        if (bite === end_of_stream && this.Shift_JIS_lead !== 0x00) {\n            this.Shift_JIS_lead = 0x00;\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream and Shift_JIS lead is 0x00,\n        // return finished.\n        if (bite === end_of_stream && this.Shift_JIS_lead === 0x00)\n            return finished;\n        // 3. If Shift_JIS lead is not 0x00, let lead be Shift_JIS lead,\n        // let pointer be null, set Shift_JIS lead to 0x00, and then run\n        // these substeps:\n        if (this.Shift_JIS_lead !== 0x00) {\n            var lead = this.Shift_JIS_lead;\n            var pointer = null;\n            this.Shift_JIS_lead = 0x00;\n            // 1. Let offset be 0x40, if byte is less than 0x7F, and 0x41\n            // otherwise.\n            var offset = (bite < 0x7F) ? 0x40 : 0x41;\n            // 2. Let lead offset be 0x81, if lead is less than 0xA0, and\n            // 0xC1 otherwise.\n            var lead_offset = (lead < 0xA0) ? 0x81 : 0xC1;\n            // 3. If byte is in the range 0x40 to 0x7E, inclusive, or 0x80\n            // to 0xFC, inclusive, set pointer to (lead − lead offset) ×\n            // 188 + byte − offset.\n            if (inRange(bite, 0x40, 0x7E) || inRange(bite, 0x80, 0xFC))\n                pointer = (lead - lead_offset) * 188 + bite - offset;\n            // 4. If pointer is in the range 8836 to 10715, inclusive,\n            // return a code point whose value is 0xE000 − 8836 + pointer.\n            if (inRange(pointer, 8836, 10715))\n                return 0xE000 - 8836 + pointer;\n            // 5. Let code point be null, if pointer is null, and the\n            // index code point for pointer in index jis0208 otherwise.\n            var code_point = (pointer === null) ? null :\n                indexCodePointFor(pointer, index('jis0208'));\n            // 6. If code point is null and byte is an ASCII byte, prepend\n            // byte to stream.\n            if (code_point === null && isASCIIByte(bite))\n                stream.prepend(bite);\n            // 7. If code point is null, return error.\n            if (code_point === null)\n                return decoderError(this.fatal);\n            // 8. Return a code point whose value is code point.\n            return code_point;\n        }\n        // 4. If byte is an ASCII byte or 0x80, return a code point\n        // whose value is byte.\n        if (isASCIIByte(bite) || bite === 0x80)\n            return bite;\n        // 5. If byte is in the range 0xA1 to 0xDF, inclusive, return a\n        // code point whose value is 0xFF61 − 0xA1 + byte.\n        if (inRange(bite, 0xA1, 0xDF))\n            return 0xFF61 - 0xA1 + bite;\n        // 6. If byte is in the range 0x81 to 0x9F, inclusive, or 0xE0\n        // to 0xFC, inclusive, set Shift_JIS lead to byte and return\n        // continue.\n        if (inRange(bite, 0x81, 0x9F) || inRange(bite, 0xE0, 0xFC)) {\n            this.Shift_JIS_lead = bite;\n            return null;\n        }\n        // 7. Return error.\n        return decoderError(this.fatal);\n    };\n    return ShiftJISDecoder;\n}());\nexport { ShiftJISDecoder };\n//# sourceMappingURL=ShiftJISDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { indexShiftJISPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar ShiftJISEncoder = /** @class */ (function () {\n    function ShiftJISEncoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    ShiftJISEncoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point or U+0080, return a\n        // byte whose value is code point.\n        if (isASCIICodePoint(code_point) || code_point === 0x0080)\n            return code_point;\n        // 3. If code point is U+00A5, return byte 0x5C.\n        if (code_point === 0x00A5)\n            return 0x5C;\n        // 4. If code point is U+203E, return byte 0x7E.\n        if (code_point === 0x203E)\n            return 0x7E;\n        // 5. If code point is in the range U+FF61 to U+FF9F, inclusive,\n        // return a byte whose value is code point − 0xFF61 + 0xA1.\n        if (inRange(code_point, 0xFF61, 0xFF9F))\n            return code_point - 0xFF61 + 0xA1;\n        // 6. If code point is U+2212, set it to U+FF0D.\n        if (code_point === 0x2212)\n            code_point = 0xFF0D;\n        // 7. Let pointer be the index Shift_JIS pointer for code point.\n        var pointer = indexShiftJISPointerFor(code_point);\n        // 8. If pointer is null, return error with code point.\n        if (pointer === null)\n            return encoderError(code_point);\n        // 9. Let lead be Math.floor(pointer / 188).\n        var lead = Math.floor(pointer / 188);\n        // 10. Let lead offset be 0x81, if lead is less than 0x1F, and\n        // 0xC1 otherwise.\n        var lead_offset = (lead < 0x1F) ? 0x81 : 0xC1;\n        // 11. Let trail be pointer % 188.\n        var trail = pointer % 188;\n        // 12. Let offset be 0x40, if trail is less than 0x3F, and 0x41\n        // otherwise.\n        var offset = (trail < 0x3F) ? 0x40 : 0x41;\n        // 13. Return two bytes whose values are lead + lead offset and\n        // trail + offset.\n        return [lead + lead_offset, trail + offset];\n    };\n    return ShiftJISEncoder;\n}());\nexport { ShiftJISEncoder };\n//# sourceMappingURL=ShiftJISEncoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {!Array.<number>} index The encoding index.\n * @param {{fatal: boolean}} options\n */\nvar SingleByteDecoder = /** @class */ (function () {\n    function SingleByteDecoder(index, options) {\n        this.index = index;\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    SingleByteDecoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream, return finished.\n        if (bite === end_of_stream)\n            return finished;\n        // 2. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 3. Let code point be the index code point for byte − 0x80 in\n        // index single-byte.\n        var code_point = this.index[bite - 0x80];\n        // 4. If code point is null, return error.\n        if (!code_point)\n            return decoderError(this.fatal);\n        // 5. Return a code point whose value is code point.\n        return code_point;\n    };\n    return SingleByteDecoder;\n}());\nexport { SingleByteDecoder };\n//# sourceMappingURL=SingleByteDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { indexPointerFor } from \"../../encoding/indexes\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {!Array.<?number>} index The encoding index.\n * @param {{fatal: boolean}} options\n */\nvar SingleByteEncoder = /** @class */ (function () {\n    function SingleByteEncoder(index, options) {\n        this.index = index;\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    SingleByteEncoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. Let pointer be the index pointer for code point in index\n        // single-byte.\n        var pointer = indexPointerFor(code_point, this.index);\n        // 4. If pointer is null, return error with code point.\n        if (pointer === null)\n            encoderError(code_point);\n        // 5. Return a byte whose value is pointer + 0x80.\n        return pointer + 0x80;\n    };\n    return SingleByteEncoder;\n}());\nexport { SingleByteEncoder };\n//# sourceMappingURL=SingleByteEncoder.js.map","/**\n * @param {number} code_unit\n * @param {boolean} utf16be\n * @return {!Array.<number>} bytes\n */\nexport function convertCodeUnitToBytes(code_unit, utf16be) {\n    // 1. Let byte1 be code unit >> 8.\n    var byte1 = code_unit >> 8;\n    // 2. Let byte2 be code unit & 0x00FF.\n    var byte2 = code_unit & 0x00FF;\n    // 3. Then return the bytes in order:\n    // utf-16be flag is set: byte1, then byte2.\n    if (utf16be)\n        return [byte1, byte2];\n    // utf-16be flag is unset: byte2, then byte1.\n    return [byte2, byte1];\n}\n//# sourceMappingURL=converCodeUnitToBytes.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { end_of_stream } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\nimport { convertCodeUnitToBytes } from \"./converCodeUnitToBytes\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\nvar UTF16Decoder = /** @class */ (function () {\n    function UTF16Decoder(utf16_be, options) {\n        this.utf16_be = utf16_be;\n        this.fatal = options.fatal;\n        /** @type {?number} */ this.utf16_lead_byte = null;\n        /** @type {?number} */ this.utf16_lead_surrogate = null;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    UTF16Decoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and either utf-16 lead byte or\n        // utf-16 lead surrogate is not null, set utf-16 lead byte and\n        // utf-16 lead surrogate to null, and return error.\n        if (bite === end_of_stream && (this.utf16_lead_byte !== null ||\n            this.utf16_lead_surrogate !== null)) {\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream and utf-16 lead byte and utf-16\n        // lead surrogate are null, return finished.\n        if (bite === end_of_stream && this.utf16_lead_byte === null &&\n            this.utf16_lead_surrogate === null) {\n            return finished;\n        }\n        // 3. If utf-16 lead byte is null, set utf-16 lead byte to byte\n        // and return continue.\n        if (this.utf16_lead_byte === null) {\n            this.utf16_lead_byte = bite;\n            return null;\n        }\n        // 4. Let code unit be the result of:\n        var code_unit;\n        if (this.utf16_be) {\n            // utf-16be decoder flag is set\n            //   (utf-16 lead byte << 8) + byte.\n            code_unit = (this.utf16_lead_byte << 8) + bite;\n        }\n        else {\n            // utf-16be decoder flag is unset\n            //   (byte << 8) + utf-16 lead byte.\n            code_unit = (bite << 8) + this.utf16_lead_byte;\n        }\n        // Then set utf-16 lead byte to null.\n        this.utf16_lead_byte = null;\n        // 5. If utf-16 lead surrogate is not null, let lead surrogate\n        // be utf-16 lead surrogate, set utf-16 lead surrogate to null,\n        // and then run these substeps:\n        if (this.utf16_lead_surrogate !== null) {\n            var lead_surrogate = this.utf16_lead_surrogate;\n            this.utf16_lead_surrogate = null;\n            // 1. If code unit is in the range U+DC00 to U+DFFF,\n            // inclusive, return a code point whose value is 0x10000 +\n            // ((lead surrogate − 0xD800) << 10) + (code unit − 0xDC00).\n            if (inRange(code_unit, 0xDC00, 0xDFFF)) {\n                return 0x10000 + (lead_surrogate - 0xD800) * 0x400 +\n                    (code_unit - 0xDC00);\n            }\n            // 2. Prepend the sequence resulting of converting code unit\n            // to bytes using utf-16be decoder flag to stream and return\n            // error.\n            stream.prepend(convertCodeUnitToBytes(code_unit, this.utf16_be));\n            return decoderError(this.fatal);\n        }\n        // 6. If code unit is in the range U+D800 to U+DBFF, inclusive,\n        // set utf-16 lead surrogate to code unit and return continue.\n        if (inRange(code_unit, 0xD800, 0xDBFF)) {\n            this.utf16_lead_surrogate = code_unit;\n            return null;\n        }\n        // 7. If code unit is in the range U+DC00 to U+DFFF, inclusive,\n        // return error.\n        if (inRange(code_unit, 0xDC00, 0xDFFF))\n            return decoderError(this.fatal);\n        // 8. Return code point code unit.\n        return code_unit;\n    };\n    return UTF16Decoder;\n}());\nexport { UTF16Decoder };\n//# sourceMappingURL=UTF16Decoder.js.map","import { finished } from \"../../encoding/finished\";\nimport { end_of_stream } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\nimport { convertCodeUnitToBytes } from \"./converCodeUnitToBytes\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {boolean} utf16_be True if big-endian, false if little-endian.\n * @param {{fatal: boolean}} options\n */\nvar UTF16Encoder = /** @class */ (function () {\n    function UTF16Encoder(utf16_be, options) {\n        this.utf16_be = utf16_be;\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    UTF16Encoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is in the range U+0000 to U+FFFF, inclusive,\n        // return the sequence resulting of converting code point to\n        // bytes using utf-16be encoder flag.\n        if (inRange(code_point, 0x0000, 0xFFFF))\n            return convertCodeUnitToBytes(code_point, this.utf16_be);\n        // 3. Let lead be ((code point − 0x10000) >> 10) + 0xD800,\n        // converted to bytes using utf-16be encoder flag.\n        var lead = convertCodeUnitToBytes(((code_point - 0x10000) >> 10) + 0xD800, this.utf16_be);\n        // 4. Let trail be ((code point − 0x10000) & 0x3FF) + 0xDC00,\n        // converted to bytes using utf-16be encoder flag.\n        var trail = convertCodeUnitToBytes(((code_point - 0x10000) & 0x3FF) + 0xDC00, this.utf16_be);\n        // 5. Return a byte sequence of lead followed by trail.\n        return lead.concat(trail);\n    };\n    return UTF16Encoder;\n}());\nexport { UTF16Encoder };\n//# sourceMappingURL=UTF16Encoder.js.map","import { decoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { end_of_stream } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar UTF8Decoder = /** @class */ (function () {\n    function UTF8Decoder(options) {\n        this.fatal = options.fatal;\n        // utf-8's decoder's has an associated utf-8 code point, utf-8\n        // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n        // lower boundary (initially 0x80), and a utf-8 upper boundary\n        // (initially 0xBF).\n        /** @type {number} */ this.utf8_code_point = 0,\n            /** @type {number} */ this.utf8_bytes_seen = 0,\n            /** @type {number} */ this.utf8_bytes_needed = 0,\n            /** @type {number} */ this.utf8_lower_boundary = 0x80,\n            /** @type {number} */ this.utf8_upper_boundary = 0xBF;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    UTF8Decoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n        // set utf-8 bytes needed to 0 and return error.\n        if (bite === end_of_stream && this.utf8_bytes_needed !== 0) {\n            this.utf8_bytes_needed = 0;\n            return decoderError(this.fatal);\n        }\n        // 2. If byte is end-of-stream, return finished.\n        if (bite === end_of_stream)\n            return finished;\n        // 3. If utf-8 bytes needed is 0, based on byte:\n        if (this.utf8_bytes_needed === 0) {\n            // 0x00 to 0x7F\n            if (inRange(bite, 0x00, 0x7F)) {\n                // Return a code point whose value is byte.\n                return bite;\n            }\n            // 0xC2 to 0xDF\n            else if (inRange(bite, 0xC2, 0xDF)) {\n                // 1. Set utf-8 bytes needed to 1.\n                this.utf8_bytes_needed = 1;\n                // 2. Set UTF-8 code point to byte & 0x1F.\n                this.utf8_code_point = bite & 0x1F;\n            }\n            // 0xE0 to 0xEF\n            else if (inRange(bite, 0xE0, 0xEF)) {\n                // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n                if (bite === 0xE0)\n                    this.utf8_lower_boundary = 0xA0;\n                // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n                if (bite === 0xED)\n                    this.utf8_upper_boundary = 0x9F;\n                // 3. Set utf-8 bytes needed to 2.\n                this.utf8_bytes_needed = 2;\n                // 4. Set UTF-8 code point to byte & 0xF.\n                this.utf8_code_point = bite & 0xF;\n            }\n            // 0xF0 to 0xF4\n            else if (inRange(bite, 0xF0, 0xF4)) {\n                // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n                if (bite === 0xF0)\n                    this.utf8_lower_boundary = 0x90;\n                // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n                if (bite === 0xF4)\n                    this.utf8_upper_boundary = 0x8F;\n                // 3. Set utf-8 bytes needed to 3.\n                this.utf8_bytes_needed = 3;\n                // 4. Set UTF-8 code point to byte & 0x7.\n                this.utf8_code_point = bite & 0x7;\n            }\n            // Otherwise\n            else {\n                // Return error.\n                return decoderError(this.fatal);\n            }\n            // Return continue.\n            return null;\n        }\n        // 4. If byte is not in the range utf-8 lower boundary to utf-8\n        // upper boundary, inclusive, run these substeps:\n        if (!inRange(bite, this.utf8_lower_boundary, this.utf8_upper_boundary)) {\n            // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n            // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n            // utf-8 upper boundary to 0xBF.\n            this.utf8_code_point = this.utf8_bytes_needed = this.utf8_bytes_seen = 0;\n            this.utf8_lower_boundary = 0x80;\n            this.utf8_upper_boundary = 0xBF;\n            // 2. Prepend byte to stream.\n            stream.prepend(bite);\n            // 3. Return error.\n            return decoderError(this.fatal);\n        }\n        // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n        // to 0xBF.\n        this.utf8_lower_boundary = 0x80;\n        this.utf8_upper_boundary = 0xBF;\n        // 6. Set UTF-8 code point to (UTF-8 code point << 6) | (byte &\n        // 0x3F)\n        this.utf8_code_point = (this.utf8_code_point << 6) | (bite & 0x3F);\n        // 7. Increase utf-8 bytes seen by one.\n        this.utf8_bytes_seen += 1;\n        // 8. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n        // continue.\n        if (this.utf8_bytes_seen !== this.utf8_bytes_needed)\n            return null;\n        // 9. Let code point be utf-8 code point.\n        var code_point = this.utf8_code_point;\n        // 10. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n        // seen to 0.\n        this.utf8_code_point = this.utf8_bytes_needed = this.utf8_bytes_seen = 0;\n        // 11. Return a code point whose value is code point.\n        return code_point;\n    };\n    return UTF8Decoder;\n}());\nexport { UTF8Decoder };\n//# sourceMappingURL=UTF8Decoder.js.map","import { finished } from \"../../encoding/finished\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar UTF8Encoder = /** @class */ (function () {\n    function UTF8Encoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    UTF8Encoder.prototype.handler = function (stream, code_point) {\n        // 1. If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. Set count and offset based on the range code point is in:\n        var count, offset;\n        // U+0080 to U+07FF, inclusive:\n        if (inRange(code_point, 0x0080, 0x07FF)) {\n            // 1 and 0xC0\n            count = 1;\n            offset = 0xC0;\n        }\n        // U+0800 to U+FFFF, inclusive:\n        else if (inRange(code_point, 0x0800, 0xFFFF)) {\n            // 2 and 0xE0\n            count = 2;\n            offset = 0xE0;\n        }\n        // U+10000 to U+10FFFF, inclusive:\n        else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n            // 3 and 0xF0\n            count = 3;\n            offset = 0xF0;\n        }\n        // 4. Let bytes be a byte sequence whose first byte is (code\n        // point >> (6 × count)) + offset.\n        var bytes = [(code_point >> (6 * count)) + offset];\n        // 5. Run these substeps while count is greater than 0:\n        while (count > 0) {\n            // 1. Set temp to code point >> (6 × (count − 1)).\n            var temp = code_point >> (6 * (count - 1));\n            // 2. Append to bytes 0x80 | (temp & 0x3F).\n            bytes.push(0x80 | (temp & 0x3F));\n            // 3. Decrease count by one.\n            count -= 1;\n        }\n        // 6. Return bytes bytes, in order.\n        return bytes;\n    };\n    return UTF8Encoder;\n}());\nexport { UTF8Encoder };\n//# sourceMappingURL=UTF8Encoder.js.map","import { finished } from \"../../encoding/finished\";\nimport { end_of_stream, isASCIIByte } from \"../../encoding/terminology\";\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nvar XUserDefinedDecoder = /** @class */ (function () {\n    function XUserDefinedDecoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream The stream of bytes being decoded.\n     * @param {number} bite The next byte read from the stream.\n     * @return {?(number|!Array.<number>)} The next code point(s)\n     *     decoded, or null if not enough data exists in the input\n     *     stream to decode a complete code point.\n     */\n    XUserDefinedDecoder.prototype.handler = function (stream, bite) {\n        // 1. If byte is end-of-stream, return finished.\n        if (bite === end_of_stream)\n            return finished;\n        // 2. If byte is an ASCII byte, return a code point whose value\n        // is byte.\n        if (isASCIIByte(bite))\n            return bite;\n        // 3. Return a code point whose value is 0xF780 + byte − 0x80.\n        return 0xF780 + bite - 0x80;\n    };\n    return XUserDefinedDecoder;\n}());\nexport { XUserDefinedDecoder };\n//# sourceMappingURL=XUserDefinedDecoder.js.map","import { encoderError } from \"../../encoding/encodings\";\nimport { finished } from \"../../encoding/finished\";\nimport { end_of_stream, isASCIICodePoint } from \"../../encoding/terminology\";\nimport { inRange } from \"../../encoding/utilities\";\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nvar XUserDefinedEncoder = /** @class */ (function () {\n    function XUserDefinedEncoder(options) {\n        this.fatal = options.fatal;\n    }\n    /**\n     * @param {Stream} stream Input stream.\n     * @param {number} code_point Next code point read from the stream.\n     * @return {(number|!Array.<number>)} Byte(s) to emit.\n     */\n    XUserDefinedEncoder.prototype.handler = function (stream, code_point) {\n        // 1.If code point is end-of-stream, return finished.\n        if (code_point === end_of_stream)\n            return finished;\n        // 2. If code point is an ASCII code point, return a byte whose\n        // value is code point.\n        if (isASCIICodePoint(code_point))\n            return code_point;\n        // 3. If code point is in the range U+F780 to U+F7FF, inclusive,\n        // return a byte whose value is code point − 0xF780 + 0x80.\n        if (inRange(code_point, 0xF780, 0xF7FF))\n            return code_point - 0xF780 + 0x80;\n        // 4. Return error with code point.\n        return encoderError(code_point);\n    };\n    return XUserDefinedEncoder;\n}());\nexport { XUserDefinedEncoder };\n//# sourceMappingURL=XUserDefinedEncoder.js.map","// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\nimport { Big5Decoder, Big5Encoder } from '../coders/big5';\nimport { EUCJPDecoder, EUCJPEncoder } from '../coders/euc-jp';\nimport { EUCKRDecoder, EUCKREncoder } from '../coders/euc-kr';\nimport { GB18030Decoder, GB18030Encoder } from '../coders/gb18030';\nimport { ISO2022JPDecoder, ISO2022JPEncoder } from '../coders/iso-2022-jp';\nimport { ShiftJISDecoder, ShiftJISEncoder } from '../coders/shift-jis';\nimport { SingleByteDecoder, SingleByteEncoder } from '../coders/single-byte';\nimport { UTF16Decoder, UTF16Encoder } from '../coders/utf-16';\nimport { UTF8Decoder, UTF8Encoder } from '../coders/utf-8';\nimport { XUserDefinedDecoder, XUserDefinedEncoder } from '../coders/x-user-defined';\nimport { encodings } from './encodings';\nimport { index } from './indexes';\nimport { getEncodingIndexes } from './encoding-indexes-provider';\n//\n// Utilities\n//\n// import './encoding/utilities';\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n//\n// 4. Terminology\n//\n// import './encoding/terminology';\n//\n// 5. Encodings\n//\n// import \"./encoding/encodings\";\n//\n// 6. Indexes\n//\n// import './encoding/indexes';\nvar encodingIndexes = getEncodingIndexes();\n// Registry of of encoder/decoder factories, by encoding name.\n/** @type {Object.<string, function({fatal:boolean}): Encoder>} */\n// const encoders: Encoders = {};\n/** @type {Object.<string, function({fatal:boolean}): Decoder>} */\n// const decoders: Decoders = {};\n//\n// 10. Legacy single-byte encodings\n//\n// 10.1 single-byte decoder\n// 10.2 single-byte encoder\nexport var encoders = {\n    // 9.1 utf-8\n    // 9.1.1 utf-8 decoder\n    // 9.1.2 utf-8 encoder\n    /** @param {{fatal: boolean}} options */\n    'UTF-8': function (options) { return new UTF8Encoder(options); },\n    //\n    // 11. Legacy multi-byte Chinese (simplified) encodings\n    //\n    // 11.1 gbk\n    // 11.1.1 gbk decoder\n    // gbk's decoder is gb18030's decoder.\n    // 11.1.2 gbk encoder\n    // gbk's encoder is gb18030's encoder with its gbk flag set.\n    /** @param {{fatal: boolean}} options */\n    'GBK': function (options) { return new GB18030Encoder(options, true); },\n    // 11.2 gb18030\n    // 11.2.1 gb18030 decoder\n    // 11.2.2 gb18030 encoder\n    /** @param {{fatal: boolean}} options */\n    'gb18030': function (options) { return new GB18030Encoder(options); },\n    //\n    // 12. Legacy multi-byte Chinese (traditional) encodings\n    //\n    // 12.1 Big5\n    // 12.1.1 Big5 decoder\n    // 12.1.2 Big5 encoder\n    /** @param {{fatal: boolean}} options */\n    'Big5': function (options) { return new Big5Encoder(options); },\n    //\n    // 13. Legacy multi-byte Japanese encodings\n    //\n    // 13.1 euc-jp\n    // 13.1.1 euc-jp decoder\n    // 13.1.2 euc-jp encoder\n    /** @param {{fatal: boolean}} options */\n    'EUC-JP': function (options) { return new EUCJPEncoder(options); },\n    // 13.2 iso-2022-jp\n    // 13.2.1 iso-2022-jp decoder\n    // 13.2.2 iso-2022-jp encoder\n    /** @param {{fatal: boolean}} options */\n    'ISO-2022-JP': function (options) { return new ISO2022JPEncoder(options); },\n    // 13.3 Shift_JIS\n    // 13.3.1 Shift_JIS decoder\n    // 13.3.2 Shift_JIS encoder\n    /** @param {{fatal: boolean}} options */\n    'Shift_JIS': function (options) { return new ShiftJISEncoder(options); },\n    //\n    // 14. Legacy multi-byte Korean encodings\n    //\n    // 14.1 euc-kr\n    // 14.1.1 euc-kr decoder\n    // 14.1.2 euc-kr encoder\n    /** @param {{fatal: boolean}} options */\n    'EUC-KR': function (options) { return new EUCKREncoder(options); },\n    //\n    // 15. Legacy miscellaneous encodings\n    //\n    // 15.1 replacement\n    // Not needed - API throws RangeError\n    // 15.2 Common infrastructure for utf-16be and utf-16le\n    // 15.2.1 shared utf-16 decoder\n    // 15.2.2 shared utf-16 encoder\n    // 15.3 utf-16be\n    // 15.3.1 utf-16be decoder\n    /** @param {{fatal: boolean}} options */\n    'UTF-16BE': function (options) { return new UTF16Encoder(true, options); },\n    // 15.3.2 utf-16be encoder\n    // 15.4 utf-16le\n    // 15.4.1 utf-16le decoder\n    /** @param {{fatal: boolean}} options */\n    'UTF-16LE': function (options) { return new UTF16Encoder(false, options); },\n    // 15.4.2 utf-16le encoder\n    // 15.5 x-user-defined\n    // 15.5.1 x-user-defined decoder\n    // 15.5.2 x-user-defined encoder\n    /** @param {{fatal: boolean}} options */\n    'x-user-defined': function (options) { return new XUserDefinedEncoder(options); },\n};\nexport var decoders = {\n    /** @param {{fatal: boolean}} options */\n    'UTF-8': function (options) { return new UTF8Decoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'GBK': function (options) { return new GB18030Decoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'gb18030': function (options) { return new GB18030Decoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'Big5': function (options) { return new Big5Decoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'EUC-JP': function (options) { return new EUCJPDecoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'ISO-2022-JP': function (options) { return new ISO2022JPDecoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'Shift_JIS': function (options) { return new ShiftJISDecoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'EUC-KR': function (options) { return new EUCKRDecoder(options); },\n    /** @param {{fatal: boolean}} options */\n    'UTF-16BE': function (options) { return new UTF16Decoder(true, options); },\n    /** @param {{fatal: boolean}} options */\n    'UTF-16LE': function (options) { return new UTF16Decoder(false, options); },\n    /** @param {{fatal: boolean}} options */\n    'x-user-defined': function (options) { return new XUserDefinedDecoder(options); },\n};\nif (encodingIndexes) {\n    encodings.forEach(function (category) {\n        if (category.heading !== 'Legacy single-byte encodings')\n            return;\n        category.encodings.forEach(function (encoding) {\n            var name = encoding.name;\n            var idx = index(name.toLowerCase());\n            /** @param {{fatal: boolean}} options */\n            decoders[name] = function (options) {\n                return new SingleByteDecoder(idx, options);\n            };\n            /** @param {{fatal: boolean}} options */\n            encoders[name] = function (options) {\n                return new SingleByteEncoder(idx, options);\n            };\n        });\n    });\n}\n//# sourceMappingURL=encoding-factory.js.map","import { end_of_stream } from \"../encoding/terminology\";\n/**\n * A stream represents an ordered sequence of tokens.\n */\nvar Stream = /** @class */ (function () {\n    /**\n     *\n     * @constructor\n     * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide\n     * the stream.\n     */\n    function Stream(tokens) {\n        /** @type {!Array.<number>} */\n        this.tokens = Array.from(tokens);\n        // Reversed as push/pop is more efficient than shift/unshift.\n        this.tokens.reverse();\n    }\n    /**\n     * @return {boolean} True if end-of-stream has been hit.\n     */\n    Stream.prototype.endOfStream = function () {\n        return !this.tokens.length;\n    };\n    /**\n     * When a token is read from a stream, the first token in the\n     * stream must be returned and subsequently removed, and\n     * end-of-stream must be returned otherwise.\n     *\n     * @return {number} Get the next token from the stream, or\n     * end_of_stream.\n     */\n    Stream.prototype.read = function () {\n        if (!this.tokens.length)\n            return end_of_stream;\n        return this.tokens.pop();\n    };\n    /**\n     * When one or more tokens are prepended to a stream, those tokens\n     * must be inserted, in given order, before the first token in the\n     * stream.\n     *\n     * @param {(number|!Array.<number>)} token The token(s) to prepend to the\n     * stream.\n     */\n    Stream.prototype.prepend = function (token) {\n        if (Array.isArray(token)) {\n            var tokens = (token);\n            while (tokens.length)\n                this.tokens.push(tokens.pop());\n        }\n        else {\n            this.tokens.push(token);\n        }\n    };\n    /**\n     * When one or more tokens are pushed to a stream, those tokens\n     * must be inserted, in given order, after the last token in the\n     * stream.\n     *\n     * @param {(number|!Array.<number>)} token The tokens(s) to push to the\n     * stream.\n     */\n    Stream.prototype.push = function (token) {\n        if (Array.isArray(token)) {\n            var tokens = (token);\n            while (tokens.length)\n                this.tokens.unshift(tokens.shift());\n        }\n        else {\n            this.tokens.unshift(token);\n        }\n    };\n    return Stream;\n}());\nexport { Stream };\n//# sourceMappingURL=Stream.js.map","import { DEFAULT_ENCODING } from \"../encoding/defaultEncoding\";\nimport { decoders } from \"../encoding/encoding-factory\";\nimport { getEncoding } from \"../encoding/encodings\";\nimport { finished } from \"../encoding/finished\";\nimport { end_of_stream } from \"../encoding/terminology\";\nimport { codePointsToString, includes, ToDictionary } from \"../encoding/utilities\";\nimport { Stream } from \"./Stream\";\n/**\n * @constructor\n * @param {string=} label The label of the encoding;\n *     defaults to 'utf-8'.\n * @param {Object=} options\n */\nvar TextDecoder = /** @class */ (function () {\n    function TextDecoder(label, options) {\n        label = label !== undefined ? String(label) : DEFAULT_ENCODING;\n        var optionsMap = ToDictionary(options);\n        // A TextDecoder object has an associated encoding, decoder,\n        // stream, ignore BOM flag (initially unset), BOM seen flag\n        // (initially unset), error mode (initially replacement), and do\n        // not flush flag (initially unset).\n        /** @private */\n        this._encoding = null;\n        /** @private @type {?Decoder} */\n        this._decoder = null;\n        /** @private @type {boolean} */\n        this._ignoreBOM = false;\n        /** @private @type {boolean} */\n        this._BOMseen = false;\n        /** @private @type {string} */\n        this._error_mode = 'replacement';\n        /** @private @type {boolean} */\n        this._do_not_flush = false;\n        // 1. Let encoding be the result of getting an encoding from\n        // label.\n        var encoding = getEncoding(label);\n        // 2. If encoding is failure or replacement, throw a RangeError.\n        if (encoding === null || encoding.name === 'replacement')\n            throw RangeError('Unknown encoding: ' + label);\n        if (!decoders[encoding.name]) {\n            throw Error('Decoder not present.' +\n                ' Did you forget to include encoding-indexes.js first?');\n        }\n        // 3. Let dec be a new TextDecoder object.\n        // const dec = this;\n        // no need to do this as this is a proper class \n        // now and TSC will handle transpilation to older platforms\n        // 4. Set dec's encoding to encoding.\n        this._encoding = encoding;\n        // 5. If options's fatal member is true, set dec's error mode to\n        // fatal.\n        if (Boolean(optionsMap['fatal']))\n            this._error_mode = 'fatal';\n        // 6. If options's ignoreBOM member is true, set dec's ignore BOM\n        // flag.\n        if (Boolean(optionsMap['ignoreBOM']))\n            this._ignoreBOM = true;\n        // For pre-ES5 runtimes:\n        // if (!Object.defineProperty) {\n        //   this.encoding = dec._encoding.name.toLowerCase();\n        //   this.fatal = dec._error_mode === 'fatal';\n        //   this.ignoreBOM = dec._ignoreBOM;\n        // }\n        // 7. Return dec.\n        // return dec;\n    }\n    Object.defineProperty(TextDecoder.prototype, \"encoding\", {\n        // if (Object.defineProperty) {\n        // The encoding attribute's getter must return encoding's name.\n        //   Object.defineProperty(TextDecoder.prototype, 'encoding', {\n        //     /** @this {TextDecoder} */\n        //     get: function () { return this._encoding.name.toLowerCase(); }\n        //   });\n        get: function () {\n            return this._encoding.name.toLowerCase();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(TextDecoder.prototype, \"fatal\", {\n        // The fatal attribute's getter must return true if error mode\n        // is fatal, and false otherwise.\n        //   Object.defineProperty(TextDecoder.prototype, 'fatal', {\n        //     /** @this {TextDecoder} */\n        //     get: function () { return this._error_mode === 'fatal'; }\n        //   });\n        get: function () {\n            return this._error_mode === 'fatal';\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(TextDecoder.prototype, \"ignoreBOM\", {\n        // The ignoreBOM attribute's getter must return true if ignore\n        // BOM flag is set, and false otherwise.\n        //   Object.defineProperty(TextDecoder.prototype, 'ignoreBOM', {\n        //     /** @this {TextDecoder} */\n        //     get: function () { return this._ignoreBOM; }\n        //   });\n        get: function () {\n            return this._ignoreBOM;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    // }\n    /**\n     * @param {BufferSource=} input The buffer of bytes to decode.\n     * @param {Object=} options\n     * @return {string} The decoded string.\n     */\n    TextDecoder.prototype.decode = function (input, options) {\n        var bytes = getBytesFromInput(input);\n        var optionsMap = ToDictionary(options);\n        // 1. If the do not flush flag is unset, set decoder to a new\n        // encoding's decoder, set stream to a new stream, and unset the\n        // BOM seen flag.\n        if (!this._do_not_flush) {\n            this._decoder = decoders[this._encoding.name]({\n                fatal: this._error_mode === 'fatal'\n            });\n            this._BOMseen = false;\n        }\n        // 2. If options's stream is true, set the do not flush flag, and\n        // unset the do not flush flag otherwise.\n        this._do_not_flush = Boolean(optionsMap['stream']);\n        // 3. If input is given, push a copy of input to stream.\n        // TODO: Align with spec algorithm - maintain stream on instance.\n        var input_stream = new Stream(bytes);\n        // 4. Let output be a new stream.\n        var output = [];\n        /** @type {?(number|!Array.<number>)} */\n        var result;\n        // 5. While true:\n        while (true) {\n            // 1. Let token be the result of reading from stream.\n            var token = input_stream.read();\n            // 2. If token is end-of-stream and the do not flush flag is\n            // set, return output, serialized.\n            // TODO: Align with spec algorithm.\n            if (token === end_of_stream)\n                break;\n            // 3. Otherwise, run these subsubsteps:\n            // 1. Let result be the result of processing token for decoder,\n            // stream, output, and error mode.\n            result = this._decoder.handler(input_stream, token);\n            // 2. If result is finished, return output, serialized.\n            if (result === finished)\n                break;\n            if (result !== null) {\n                if (Array.isArray(result))\n                    output.push.apply(output, /**@type {!Array.<number>}*/ (result));\n                else\n                    output.push(result);\n            }\n            // 3. Otherwise, if result is error, throw a TypeError.\n            // (Thrown in handler)\n            // 4. Otherwise, do nothing.\n        }\n        // TODO: Align with spec algorithm.\n        if (!this._do_not_flush) {\n            do {\n                result = this._decoder.handler(input_stream, input_stream.read());\n                if (result === finished)\n                    break;\n                if (!result)\n                    continue;\n                if (Array.isArray(result))\n                    output.push.apply(output, /**@type {!Array.<number>}*/ (result));\n                else\n                    output.push(result);\n            } while (!input_stream.endOfStream());\n            this._decoder = null;\n        }\n        return this.serializeStream(output);\n    };\n    // A TextDecoder object also has an associated serialize stream\n    // algorithm...\n    /**\n     * @param {!Array.<number>} stream\n     * @return {string}\n     * @this {TextDecoder}\n     */\n    TextDecoder.prototype.serializeStream = function (stream) {\n        // 1. Let token be the result of reading from stream.\n        // (Done in-place on array, rather than as a stream)\n        // 2. If encoding is UTF-8, UTF-16BE, or UTF-16LE, and ignore\n        // BOM flag and BOM seen flag are unset, run these subsubsteps:\n        if (includes(['UTF-8', 'UTF-16LE', 'UTF-16BE'], this._encoding.name) &&\n            !this._ignoreBOM && !this._BOMseen) {\n            if (stream.length > 0 && stream[0] === 0xFEFF) {\n                // 1. If token is U+FEFF, set BOM seen flag.\n                this._BOMseen = true;\n                stream.shift();\n            }\n            else if (stream.length > 0) {\n                // 2. Otherwise, if token is not end-of-stream, set BOM seen\n                // flag and append token to stream.\n                this._BOMseen = true;\n            }\n            else {\n                // 3. Otherwise, if token is not end-of-stream, append token\n                // to output.\n                // (no-op)\n            }\n        }\n        // 4. Otherwise, return output.\n        return codePointsToString(stream);\n    };\n    return TextDecoder;\n}());\nexport { TextDecoder };\nfunction isBufferInstance(input) {\n    try {\n        return input instanceof ArrayBuffer;\n    }\n    catch (e) {\n        console.error(e);\n        return false;\n    }\n}\nfunction getBytesFromInput(input) {\n    if (typeof input !== 'object')\n        return new Uint8Array(0);\n    if (isBufferInstance(input)) {\n        return new Uint8Array(input);\n    }\n    if ('buffer' in input && isBufferInstance(input.buffer)) {\n        return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n    }\n    return new Uint8Array(0);\n}\n//# sourceMappingURL=TextDecoder.js.map","import { DEFAULT_ENCODING } from \"../encoding/defaultEncoding\";\nimport { encoders } from \"../encoding/encoding-factory\";\nimport { getEncoding } from \"../encoding/encodings\";\nimport { finished } from \"../encoding/finished\";\nimport { end_of_stream } from \"../encoding/terminology\";\nimport { stringToCodePoints, ToDictionary } from \"../encoding/utilities\";\nimport { getGlobalScope } from \"../helper/getGlobalScope\";\nimport { Stream } from \"./Stream\";\n/**\n * @constructor\n * @param {string=} label The label of the encoding. NONSTANDARD.\n * @param {Object=} options NONSTANDARD.\n */\nvar TextEncoder = /** @class */ (function () {\n    function TextEncoder(label, options) {\n        var optionsMap = ToDictionary(options);\n        // A TextEncoder object has an associated encoding and encoder.\n        /** @private */\n        this._encoding = null;\n        /** @private @type {?Encoder} */\n        this._encoder = null;\n        // Non-standard\n        /** @private @type {boolean} */\n        this._do_not_flush = false;\n        /** @private @type {string} */\n        this._fatal = Boolean(optionsMap['fatal']) ? 'fatal' : 'replacement';\n        // 1. Let enc be a new TextEncoder object.\n        // const enc = this;\n        // no need to do this as this is a proper class \n        // now and TSC will handle transpilation to older platforms\n        // 2. Set enc's encoding to UTF-8's encoder.\n        if (Boolean(optionsMap['NONSTANDARD_allowLegacyEncoding'])) {\n            // NONSTANDARD behavior.\n            label = !!label ? String(label) : DEFAULT_ENCODING;\n            var encoding = getEncoding(label);\n            if (encoding === null || encoding.name === 'replacement')\n                throw RangeError('Unknown encoding: ' + label);\n            if (!encoders[encoding.name]) {\n                throw Error('Encoder not present.' +\n                    ' Did you forget to include encoding-indexes.js first?');\n            }\n            this._encoding = encoding;\n            // EXPERIMENTAL_CODE\n            // } else if ([\"iso-8859-1\", \"ISO-8859-1\", \"latin-1\", \"latin1\", \"LATIN-1\", \"LATIN1\"].indexOf(label) !== -1) {\n            //   this._encoding = getEncoding('iso-8859-1');\n        }\n        else {\n            // Standard behavior.\n            this._encoding = getEncoding('utf-8');\n            var glo = getGlobalScope() || {};\n            if (label !== undefined && 'console' in glo) {\n                console.warn('TextEncoder constructor called with encoding label, '\n                    + 'which is ignored.');\n            }\n        }\n        // For pre-ES5 runtimes:\n        // if (!Object.defineProperty)\n        // this.encoding = enc._encoding.name.toLowerCase();\n        // 3. Return enc.\n        // return enc;\n    }\n    Object.defineProperty(TextEncoder.prototype, \"encoding\", {\n        // if(Object.defineProperty) {\n        //  // The encoding attribute's getter must return encoding's name.\n        //   Object.defineProperty(TextEncoder.prototype, 'encoding', {\n        //     /** @this {TextEncoder} */\n        //     get: function () { return this._encoding.name.toLowerCase(); }\n        //   });\n        // }\n        get: function () {\n            return this._encoding.name.toLowerCase();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    /**\n     * @param {string=} opt_string The string to encode.\n     * @param {Object=} options\n     * @return {!Uint8Array} Encoded bytes, as a Uint8Array.\n     */\n    TextEncoder.prototype.encode = function (opt_string, options) {\n        opt_string = opt_string === undefined ? '' : String(opt_string);\n        var optionsMap = ToDictionary(options);\n        // NOTE: This option is nonstandard. None of the encodings\n        // permitted for encoding (i.e. UTF-8, UTF-16) are stateful when\n        // the input is a USVString so streaming is not necessary.\n        if (!this._do_not_flush)\n            this._encoder = encoders[this._encoding.name]({\n                fatal: this._fatal === 'fatal'\n            });\n        this._do_not_flush = Boolean(optionsMap['stream']);\n        // 1. Convert input to a stream.\n        var input = new Stream(stringToCodePoints(opt_string));\n        // 2. Let output be a new stream\n        var output = [];\n        /** @type {?(number|!Array.<number>)} */\n        var result;\n        // 3. While true, run these substeps:\n        while (true) {\n            // 1. Let token be the result of reading from input.\n            var token = input.read();\n            if (token === end_of_stream)\n                break;\n            // 2. Let result be the result of processing token for encoder,\n            // input, output.\n            result = this._encoder.handler(input, token);\n            if (result === finished)\n                break;\n            if (Array.isArray(result))\n                output.push.apply(output, /**@type {!Array.<number>}*/ (result));\n            else\n                output.push(result);\n        }\n        // TODO: Align with spec algorithm.\n        if (!this._do_not_flush) {\n            while (true) {\n                result = this._encoder.handler(input, input.read());\n                if (result === finished)\n                    break;\n                if (Array.isArray(result))\n                    output.push.apply(output, /**@type {!Array.<number>}*/ (result));\n                else\n                    output.push(result);\n            }\n            this._encoder = null;\n        }\n        // 3. If result is finished, convert output into a byte sequence,\n        // and then return a Uint8Array object wrapping an ArrayBuffer\n        // containing output.\n        return new Uint8Array(output);\n    };\n    return TextEncoder;\n}());\nexport { TextEncoder };\n//# sourceMappingURL=TextEncoder.js.map","import { TextDecoder } from './common/TextDecoder';\nimport { TextEncoder } from './common/TextEncoder';\n// Polyfills browser\nif (typeof window !== 'undefined') {\n    var checkUndefined = function (key) { return !(key in window)\n        || typeof window[key] === 'undefined'\n        || window[key] === null; };\n    if (checkUndefined('TextDecoder'))\n        window['TextDecoder'] = TextDecoder;\n    if (checkUndefined('TextEncoder'))\n        window['TextEncoder'] = TextEncoder;\n}\nexport { TextDecoder, TextEncoder };\n//# sourceMappingURL=encoding.js.map"],"names":["states"],"mappings":"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"}