@nhtio/lucid-resourceful 0.1.0-master-29dd5a13 → 0.1.0-master-641df8fc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adonis-env.d.ts +17 -0
- package/bundled_liqe.d.ts +6 -5
- package/bundled_xml_js.d.ts +5 -4
- package/definitions.d.ts +1 -1
- package/encoding.d.ts +6 -6
- package/errors.d.ts +23 -8
- package/{index-Bsyx9Sty.js → index-B-5JiNqG.js} +76 -221
- package/index-B-5JiNqG.js.map +1 -0
- package/{index-B6dIMDux.cjs → index-BrGbuAtt.cjs} +76 -221
- package/index-BrGbuAtt.cjs.map +1 -0
- package/index-C9zyi90j.js.map +1 -1
- package/{index-CpyTnwZV.cjs → index-CQApAM0M.cjs} +298 -353
- package/index-CQApAM0M.cjs.map +1 -0
- package/index-CxRBayw6.cjs.map +1 -1
- package/{index-C8mGEf4P.js → index-DLVvkVxI.js} +295 -350
- package/index-DLVvkVxI.js.map +1 -0
- package/index-DsojAcQ4.js.map +1 -1
- package/index-DuzIXu31.cjs.map +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +7 -7
- package/index.mjs +1 -1
- package/integration/middlewares/odata_error.cjs +1 -1
- package/integration/middlewares/odata_error.d.ts +1 -1
- package/integration/middlewares/odata_error.mjs +1 -1
- package/integration/middlewares/resourceful_encoded_request.cjs +100 -12
- package/integration/middlewares/resourceful_encoded_request.cjs.map +1 -1
- package/integration/middlewares/resourceful_encoded_request.d.ts +1 -1
- package/integration/middlewares/resourceful_encoded_request.mjs +98 -10
- package/integration/middlewares/resourceful_encoded_request.mjs.map +1 -1
- package/integration/middlewares/resourceful_error.cjs +1 -1
- package/integration/middlewares/resourceful_error.d.ts +1 -1
- package/integration/middlewares/resourceful_error.mjs +1 -1
- package/integration/provider.cjs +1 -1
- package/integration/provider.mjs +1 -1
- package/joi.d.ts +1 -1
- package/{manager-OLS5T3G7-CJHhMwR7.cjs → manager-OLS5T3G7-BPVI59Zw.cjs} +2 -2
- package/{manager-OLS5T3G7-CJHhMwR7.cjs.map → manager-OLS5T3G7-BPVI59Zw.cjs.map} +1 -1
- package/{manager-OLS5T3G7-C-NS6lhx.js → manager-OLS5T3G7-DzVckqOB.js} +2 -2
- package/{manager-OLS5T3G7-C-NS6lhx.js.map → manager-OLS5T3G7-DzVckqOB.js.map} +1 -1
- package/odata/context.d.ts +1 -1
- package/odata/macro.d.ts +1 -1
- package/{odata_error_middleware-BWfOpQZV.cjs → odata_error_middleware-DhLzccN7.cjs} +4 -4
- package/{odata_error_middleware-BWfOpQZV.cjs.map → odata_error_middleware-DhLzccN7.cjs.map} +1 -1
- package/{odata_error_middleware-CWYqZMez.js → odata_error_middleware-Dspi8bct.js} +4 -4
- package/{odata_error_middleware-CWYqZMez.js.map → odata_error_middleware-Dspi8bct.js.map} +1 -1
- package/package.json +1 -1
- package/private/data_type_schemas.d.ts +12 -12
- package/private/data_types.d.ts +1 -1
- package/private/decorator_schemas.d.ts +1 -1
- package/private/decorator_utils.d.ts +1 -1
- package/private/decorators.d.ts +14 -11
- package/private/encoding.d.ts +3 -3
- package/private/joi/index.d.ts +3 -3
- package/private/lucene_to_lucid_translator.d.ts +1 -1
- package/private/mixin.d.ts +25 -8
- package/private/odata_macro/controllers/resourceful_model_controller.d.ts +4 -4
- package/private/odata_macro/index.d.ts +1 -1
- package/private/odata_macro/middlewares/odata_error_middleware.d.ts +22 -10
- package/private/odata_macro/services/odata_context_service.d.ts +1 -1
- package/private/odata_macro/services/odata_metadata_service.d.ts +3 -3
- package/private/odata_macro/utils/odata.d.ts +2 -2
- package/private/odata_to_lucid_translator.d.ts +1 -1
- package/private/open_api_schema_service.d.ts +3 -3
- package/private/router_macro/controllers/resourceful_model_controller.d.ts +5 -5
- package/private/router_macro/index.d.ts +3 -3
- package/private/router_macro/middlewares/resourceful_error_middleware.d.ts +22 -10
- package/private/router_macro/services/resourceful_router_choices_service.d.ts +3 -3
- package/private/router_macro/services/resourceful_router_context_service.d.ts +1 -1
- package/private/router_macro/services/resourceful_router_model_options_service.d.ts +1 -1
- package/private/router_macro/services/resourceful_router_model_resolver_service.d.ts +3 -3
- package/private/router_macro/services/resourceful_router_openapi_document_service.d.ts +4 -4
- package/private/router_macro/services/resourceful_router_options_service.d.ts +3 -3
- package/private/router_macro/types.d.ts +15 -8
- package/private/router_macro/utils/errors.d.ts +1 -1
- package/private/router_macro/utils/http.d.ts +1 -1
- package/private/router_macro/utils/openapi_validation_schemas.d.ts +2 -2
- package/private/router_macro/utils/relationships.d.ts +1 -1
- package/private/router_macro/utils/type_guards.d.ts +1 -1
- package/private/schema_types.d.ts +1 -1
- package/private/type_guards.d.ts +5 -5
- package/private/types.d.ts +5 -5
- package/private/utils/casters.d.ts +1 -1
- package/private/utils/consumers.d.ts +1 -1
- package/private/utils/preparers.d.ts +1 -1
- package/private/utils.d.ts +1 -1
- package/{resourceful_error_middleware-CMSZGdoG.js → resourceful_error_middleware-Cb_eTzST.js} +4 -4
- package/{resourceful_error_middleware-CMSZGdoG.js.map → resourceful_error_middleware-Cb_eTzST.js.map} +1 -1
- package/{resourceful_error_middleware-lXgefPIC.cjs → resourceful_error_middleware-CnjbNoev.cjs} +4 -4
- package/{resourceful_error_middleware-lXgefPIC.cjs.map → resourceful_error_middleware-CnjbNoev.cjs.map} +1 -1
- package/router/context.d.ts +1 -1
- package/router/utils.cjs +1 -1
- package/router/utils.d.ts +1 -1
- package/router/utils.mjs +1 -1
- package/router.cjs +1 -1
- package/router.d.ts +2 -2
- package/router.mjs +1 -1
- package/types.d.ts +13 -13
- package/utils.d.ts +4 -4
- package/vite-env.d.ts +3 -0
- package/index-B6dIMDux.cjs.map +0 -1
- package/index-Bsyx9Sty.js.map +0 -1
- package/index-C8mGEf4P.js.map +0 -1
- package/index-CpIq4gOr.js +0 -93
- package/index-CpIq4gOr.js.map +0 -1
- package/index-CpyTnwZV.cjs.map +0 -1
- package/index-DqbJXpcT.cjs +0 -92
- package/index-DqbJXpcT.cjs.map +0 -1
- package/private/controller_factory.d.ts +0 -1
- package/private/utils/function_serializer.d.ts +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceful_encoded_request.cjs","sources":["../../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js","../../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js","../../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js","../../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js","../../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js","../../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/bom-handling.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/helpers/merge-exports.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/internal.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf32.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf16.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf7.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-codec.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-data.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-data-generated.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/dbcs-codec.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/dbcs-data.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/index.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/streams.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/index.js","../../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js","../../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js","../../../node_modules/.pnpm/inflation@2.1.0/node_modules/inflation/index.js","../../../src/private/router_macro/middlewares/resourceful_encoded_request.ts"],"sourcesContent":["/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = require('path').relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // emit deprecation if listeners exist\n if (haslisteners) {\n var err = DeprecationError(this._namespace, msg, stack.slice(i))\n process.emit('deprecation', err)\n return\n }\n\n // format and write message\n var format = process.stderr.isTTY\n ? formatColor\n : formatPlain\n var output = format.call(this, msg, caller, stack.slice(i))\n process.stderr.write(output + '\\n', 'utf8')\n}\n\n/**\n * Get call site location as array.\n */\n\nfunction callSiteLocation (callSite) {\n var file = callSite.getFileName() || '<anonymous>'\n var line = callSite.getLineNumber()\n var colm = callSite.getColumnNumber()\n\n if (callSite.isEval()) {\n file = callSite.getEvalOrigin() + ', ' + file\n }\n\n var site = [file, line, colm]\n\n site.callSite = callSite\n site.name = callSite.getFunctionName()\n\n return site\n}\n\n/**\n * Generate a default message from the site.\n */\n\nfunction defaultMessage (site) {\n var callSite = site.callSite\n var funcName = site.name\n\n // make useful anonymous name\n if (!funcName) {\n funcName = '<anonymous@' + formatLocation(site) + '>'\n }\n\n var context = callSite.getThis()\n var typeName = context && callSite.getTypeName()\n\n // ignore useless type name\n if (typeName === 'Object') {\n typeName = undefined\n }\n\n // make useful type name\n if (typeName === 'Function') {\n typeName = context.name || typeName\n }\n\n return typeName && callSite.getMethodName()\n ? typeName + '.' + funcName\n : funcName\n}\n\n/**\n * Format deprecation message without color.\n */\n\nfunction formatPlain (msg, caller, stack) {\n var timestamp = new Date().toUTCString()\n\n var formatted = timestamp +\n ' ' + this._namespace +\n ' deprecated ' + msg\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n at ' + stack[i].toString()\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' at ' + formatLocation(caller)\n }\n\n return formatted\n}\n\n/**\n * Format deprecation message with color.\n */\n\nfunction formatColor (msg, caller, stack) {\n var formatted = '\\x1b[36;1m' + this._namespace + '\\x1b[22;39m' + // bold cyan\n ' \\x1b[33;1mdeprecated\\x1b[22;39m' + // bold yellow\n ' \\x1b[0m' + msg + '\\x1b[39m' // reset\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n \\x1b[36mat ' + stack[i].toString() + '\\x1b[39m' // cyan\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' \\x1b[36m' + formatLocation(caller) + '\\x1b[39m' // cyan\n }\n\n return formatted\n}\n\n/**\n * Format call site location.\n */\n\nfunction formatLocation (callSite) {\n return relative(basePath, callSite[0]) +\n ':' + callSite[1] +\n ':' + callSite[2]\n}\n\n/**\n * Get the stack as array of call sites.\n */\n\nfunction getStack () {\n var limit = Error.stackTraceLimit\n var obj = {}\n var prep = Error.prepareStackTrace\n\n Error.prepareStackTrace = prepareObjectStackTrace\n Error.stackTraceLimit = Math.max(10, limit)\n\n // capture the stack\n Error.captureStackTrace(obj)\n\n // slice this function off the top\n var stack = obj.stack.slice(1)\n\n Error.prepareStackTrace = prep\n Error.stackTraceLimit = limit\n\n return stack\n}\n\n/**\n * Capture call site stack from v8.\n */\n\nfunction prepareObjectStackTrace (obj, stack) {\n return stack\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n var args = createArgumentsString(fn.length)\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n site.name = fn.name\n\n // eslint-disable-next-line no-new-func\n var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site',\n '\"use strict\"\\n' +\n 'return function (' + args + ') {' +\n 'log.call(deprecate, message, site)\\n' +\n 'return fn.apply(this, arguments)\\n' +\n '}')(fn, log, this, message, site)\n\n return deprecatedfn\n}\n\n/**\n * Wrap property in a deprecation message.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n\n var deprecate = this\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n // set site name\n site.name = prop\n\n // convert data descriptor\n if ('value' in descriptor) {\n descriptor = convertDataDescriptorToAccessor(obj, prop, message)\n }\n\n var get = descriptor.get\n var set = descriptor.set\n\n // wrap getter\n if (typeof get === 'function') {\n descriptor.get = function getter () {\n log.call(deprecate, message, site)\n return get.apply(this, arguments)\n }\n }\n\n // wrap setter\n if (typeof set === 'function') {\n descriptor.set = function setter () {\n log.call(deprecate, message, site)\n return set.apply(this, arguments)\n }\n }\n\n Object.defineProperty(obj, prop, descriptor)\n}\n\n/**\n * Create DeprecationError for deprecation\n */\n\nfunction DeprecationError (namespace, message, stack) {\n var error = new Error()\n var stackString\n\n Object.defineProperty(error, 'constructor', {\n value: DeprecationError\n })\n\n Object.defineProperty(error, 'message', {\n configurable: true,\n enumerable: false,\n value: message,\n writable: true\n })\n\n Object.defineProperty(error, 'name', {\n enumerable: false,\n configurable: true,\n value: 'DeprecationError',\n writable: true\n })\n\n Object.defineProperty(error, 'namespace', {\n configurable: true,\n enumerable: false,\n value: namespace,\n writable: true\n })\n\n Object.defineProperty(error, 'stack', {\n configurable: true,\n enumerable: false,\n get: function () {\n if (stackString !== undefined) {\n return stackString\n }\n\n // prepare stack trace\n return (stackString = createStackString.call(this, stack))\n },\n set: function setter (val) {\n stackString = val\n }\n })\n\n return error\n}\n","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.message = codes\n\n// status message (lower-case) to code map\nstatus.code = createMessageToStatusCodeMap(codes)\n\n// array of status codes\nstatus.codes = createStatusCodeList(codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Create a map of message to status code.\n * @private\n */\n\nfunction createMessageToStatusCodeMap (codes) {\n var map = {}\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // populate map\n map[message.toLowerCase()] = status\n })\n\n return map\n}\n\n/**\n * Create a list of all status codes.\n * @private\n */\n\nfunction createStatusCodeList (codes) {\n return Object.keys(codes).map(function mapCode (code) {\n return Number(code)\n })\n}\n\n/**\n * Get the status code for given message.\n * @private\n */\n\nfunction getStatusCode (message) {\n var msg = message.toLowerCase()\n\n if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"')\n }\n\n return status.code[msg]\n}\n\n/**\n * Get the status message for given code.\n * @private\n */\n\nfunction getStatusMessage (code) {\n if (!Object.prototype.hasOwnProperty.call(status.message, code)) {\n throw new Error('invalid status code: ' + code)\n }\n\n return status.message[code]\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n return getStatusMessage(code)\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n return getStatusMessage(n)\n }\n\n return getStatusCode(code)\n}\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\nmodule.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n var type = typeof arg\n if (type === 'object' && arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n } else if (type === 'number' && i === 0) {\n status = arg\n } else if (type === 'string') {\n msg = arg\n } else if (type === 'object') {\n props = arg\n } else {\n throw new TypeError('argument #' + (i + 1) + ' unsupported type ' + type)\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses.message[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses.message[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses.message[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create function to test is a value is a HttpError.\n * @private\n */\n\nfunction createIsHttpErrorFunction (HttpError) {\n return function isHttpError (val) {\n if (!val || typeof val !== 'object') {\n return false\n }\n\n if (val instanceof HttpError) {\n return true\n }\n\n return val instanceof Error &&\n typeof val.expose === 'boolean' &&\n typeof val.statusCode === 'number' && val.status === val.statusCode\n }\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses.message[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses.message[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n}\n\n/**\n * Get a class name from a name identifier.\n *\n * @param {string} name\n * @returns {string}\n * @private\n */\n\nfunction toClassName (name) {\n return name.slice(-5) === 'Error' ? name : name + 'Error'\n}\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","\"use strict\"\n\nvar BOMChar = \"\\uFEFF\"\n\nexports.PrependBOM = PrependBOMWrapper\nfunction PrependBOMWrapper (encoder, options) {\n this.encoder = encoder\n this.addBOM = true\n}\n\nPrependBOMWrapper.prototype.write = function (str) {\n if (this.addBOM) {\n str = BOMChar + str\n this.addBOM = false\n }\n\n return this.encoder.write(str)\n}\n\nPrependBOMWrapper.prototype.end = function () {\n return this.encoder.end()\n}\n\n// ------------------------------------------------------------------------------\n\nexports.StripBOM = StripBOMWrapper\nfunction StripBOMWrapper (decoder, options) {\n this.decoder = decoder\n this.pass = false\n this.options = options || {}\n}\n\nStripBOMWrapper.prototype.write = function (buf) {\n var res = this.decoder.write(buf)\n if (this.pass || !res) { return res }\n\n if (res[0] === BOMChar) {\n res = res.slice(1)\n if (typeof this.options.stripBOM === \"function\") { this.options.stripBOM() }\n }\n\n this.pass = true\n return res\n}\n\nStripBOMWrapper.prototype.end = function () {\n return this.decoder.end()\n}\n","\"use strict\"\n\nvar hasOwn = typeof Object.hasOwn === \"undefined\" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn\n\nfunction mergeModules (target, module) {\n for (var key in module) {\n if (hasOwn(module, key)) {\n target[key] = module[key]\n }\n }\n}\n\nmodule.exports = mergeModules\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Export Node.js internal encodings.\n\nmodule.exports = {\n // Encodings\n utf8: { type: \"_internal\", bomAware: true },\n cesu8: { type: \"_internal\", bomAware: true },\n unicode11utf8: \"utf8\",\n\n ucs2: { type: \"_internal\", bomAware: true },\n utf16le: \"ucs2\",\n\n binary: { type: \"_internal\" },\n base64: { type: \"_internal\" },\n hex: { type: \"_internal\" },\n\n // Codec.\n _internal: InternalCodec\n}\n\n// ------------------------------------------------------------------------------\n\nfunction InternalCodec (codecOptions, iconv) {\n this.enc = codecOptions.encodingName\n this.bomAware = codecOptions.bomAware\n\n if (this.enc === \"base64\") { this.encoder = InternalEncoderBase64 } else if (this.enc === \"utf8\") { this.encoder = InternalEncoderUtf8 } else if (this.enc === \"cesu8\") {\n this.enc = \"utf8\" // Use utf8 for decoding.\n this.encoder = InternalEncoderCesu8\n\n // Add decoder for versions of Node not supporting CESU-8\n if (Buffer.from(\"eda0bdedb2a9\", \"hex\").toString() !== \"💩\") {\n this.decoder = InternalDecoderCesu8\n this.defaultCharUnicode = iconv.defaultCharUnicode\n }\n }\n}\n\nInternalCodec.prototype.encoder = InternalEncoder\nInternalCodec.prototype.decoder = InternalDecoder\n\n// ------------------------------------------------------------------------------\n\n// We use node.js internal decoder. Its signature is the same as ours.\nvar StringDecoder = require(\"string_decoder\").StringDecoder\n\nfunction InternalDecoder (options, codec) {\n this.decoder = new StringDecoder(codec.enc)\n}\n\nInternalDecoder.prototype.write = function (buf) {\n if (!Buffer.isBuffer(buf)) {\n buf = Buffer.from(buf)\n }\n\n return this.decoder.write(buf)\n}\n\nInternalDecoder.prototype.end = function () {\n return this.decoder.end()\n}\n\n// ------------------------------------------------------------------------------\n// Encoder is mostly trivial\n\nfunction InternalEncoder (options, codec) {\n this.enc = codec.enc\n}\n\nInternalEncoder.prototype.write = function (str) {\n return Buffer.from(str, this.enc)\n}\n\nInternalEncoder.prototype.end = function () {\n}\n\n// ------------------------------------------------------------------------------\n// Except base64 encoder, which must keep its state.\n\nfunction InternalEncoderBase64 (options, codec) {\n this.prevStr = \"\"\n}\n\nInternalEncoderBase64.prototype.write = function (str) {\n str = this.prevStr + str\n var completeQuads = str.length - (str.length % 4)\n this.prevStr = str.slice(completeQuads)\n str = str.slice(0, completeQuads)\n\n return Buffer.from(str, \"base64\")\n}\n\nInternalEncoderBase64.prototype.end = function () {\n return Buffer.from(this.prevStr, \"base64\")\n}\n\n// ------------------------------------------------------------------------------\n// CESU-8 encoder is also special.\n\nfunction InternalEncoderCesu8 (options, codec) {\n}\n\nInternalEncoderCesu8.prototype.write = function (str) {\n var buf = Buffer.alloc(str.length * 3); var bufIdx = 0\n for (var i = 0; i < str.length; i++) {\n var charCode = str.charCodeAt(i)\n // Naive implementation, but it works because CESU-8 is especially easy\n // to convert from UTF-16 (which all JS strings are encoded in).\n if (charCode < 0x80) { buf[bufIdx++] = charCode } else if (charCode < 0x800) {\n buf[bufIdx++] = 0xC0 + (charCode >>> 6)\n buf[bufIdx++] = 0x80 + (charCode & 0x3f)\n } else { // charCode will always be < 0x10000 in javascript.\n buf[bufIdx++] = 0xE0 + (charCode >>> 12)\n buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f)\n buf[bufIdx++] = 0x80 + (charCode & 0x3f)\n }\n }\n return buf.slice(0, bufIdx)\n}\n\nInternalEncoderCesu8.prototype.end = function () {\n}\n\n// ------------------------------------------------------------------------------\n// CESU-8 decoder is not implemented in Node v4.0+\n\nfunction InternalDecoderCesu8 (options, codec) {\n this.acc = 0\n this.contBytes = 0\n this.accBytes = 0\n this.defaultCharUnicode = codec.defaultCharUnicode\n}\n\nInternalDecoderCesu8.prototype.write = function (buf) {\n var acc = this.acc; var contBytes = this.contBytes; var accBytes = this.accBytes\n var res = \"\"\n for (var i = 0; i < buf.length; i++) {\n var curByte = buf[i]\n if ((curByte & 0xC0) !== 0x80) { // Leading byte\n if (contBytes > 0) { // Previous code is invalid\n res += this.defaultCharUnicode\n contBytes = 0\n }\n\n if (curByte < 0x80) { // Single-byte code\n res += String.fromCharCode(curByte)\n } else if (curByte < 0xE0) { // Two-byte code\n acc = curByte & 0x1F\n contBytes = 1; accBytes = 1\n } else if (curByte < 0xF0) { // Three-byte code\n acc = curByte & 0x0F\n contBytes = 2; accBytes = 1\n } else { // Four or more are not supported for CESU-8.\n res += this.defaultCharUnicode\n }\n } else { // Continuation byte\n if (contBytes > 0) { // We're waiting for it.\n acc = (acc << 6) | (curByte & 0x3f)\n contBytes--; accBytes++\n if (contBytes === 0) {\n // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)\n if (accBytes === 2 && acc < 0x80 && acc > 0) {\n res += this.defaultCharUnicode\n } else if (accBytes === 3 && acc < 0x800) {\n res += this.defaultCharUnicode\n } else {\n // Actually add character.\n res += String.fromCharCode(acc)\n }\n }\n } else { // Unexpected continuation byte\n res += this.defaultCharUnicode\n }\n }\n }\n this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes\n return res\n}\n\nInternalDecoderCesu8.prototype.end = function () {\n var res = 0\n if (this.contBytes > 0) { res += this.defaultCharUnicode }\n return res\n}\n\n// ------------------------------------------------------------------------------\n// check the chunk boundaries for surrogate pair\n\nfunction InternalEncoderUtf8 (options, codec) {\n this.highSurrogate = \"\"\n}\n\nInternalEncoderUtf8.prototype.write = function (str) {\n if (this.highSurrogate) {\n str = this.highSurrogate + str\n this.highSurrogate = \"\"\n }\n\n if (str.length > 0) {\n var charCode = str.charCodeAt(str.length - 1)\n if (charCode >= 0xd800 && charCode < 0xdc00) {\n this.highSurrogate = str[str.length - 1]\n str = str.slice(0, str.length - 1)\n }\n }\n\n return Buffer.from(str, this.enc)\n}\n\nInternalEncoderUtf8.prototype.end = function () {\n if (this.highSurrogate) {\n var str = this.highSurrogate\n this.highSurrogate = \"\"\n return Buffer.from(str, this.enc)\n }\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// == UTF32-LE/BE codec. ==========================================================\n\nexports._utf32 = Utf32Codec\n\nfunction Utf32Codec (codecOptions, iconv) {\n this.iconv = iconv\n this.bomAware = true\n this.isLE = codecOptions.isLE\n}\n\nexports.utf32le = { type: \"_utf32\", isLE: true }\nexports.utf32be = { type: \"_utf32\", isLE: false }\n\n// Aliases\nexports.ucs4le = \"utf32le\"\nexports.ucs4be = \"utf32be\"\n\nUtf32Codec.prototype.encoder = Utf32Encoder\nUtf32Codec.prototype.decoder = Utf32Decoder\n\n// -- Encoding\n\nfunction Utf32Encoder (options, codec) {\n this.isLE = codec.isLE\n this.highSurrogate = 0\n}\n\nUtf32Encoder.prototype.write = function (str) {\n var src = Buffer.from(str, \"ucs2\")\n var dst = Buffer.alloc(src.length * 2)\n var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE\n var offset = 0\n\n for (var i = 0; i < src.length; i += 2) {\n var code = src.readUInt16LE(i)\n var isHighSurrogate = (code >= 0xD800 && code < 0xDC00)\n var isLowSurrogate = (code >= 0xDC00 && code < 0xE000)\n\n if (this.highSurrogate) {\n if (isHighSurrogate || !isLowSurrogate) {\n // There shouldn't be two high surrogates in a row, nor a high surrogate which isn't followed by a low\n // surrogate. If this happens, keep the pending high surrogate as a stand-alone semi-invalid character\n // (technically wrong, but expected by some applications, like Windows file names).\n write32.call(dst, this.highSurrogate, offset)\n offset += 4\n } else {\n // Create 32-bit value from high and low surrogates;\n var codepoint = (((this.highSurrogate - 0xD800) << 10) | (code - 0xDC00)) + 0x10000\n\n write32.call(dst, codepoint, offset)\n offset += 4\n this.highSurrogate = 0\n\n continue\n }\n }\n\n if (isHighSurrogate) { this.highSurrogate = code } else {\n // Even if the current character is a low surrogate, with no previous high surrogate, we'll\n // encode it as a semi-invalid stand-alone character for the same reasons expressed above for\n // unpaired high surrogates.\n write32.call(dst, code, offset)\n offset += 4\n this.highSurrogate = 0\n }\n }\n\n if (offset < dst.length) { dst = dst.slice(0, offset) }\n\n return dst\n}\n\nUtf32Encoder.prototype.end = function () {\n // Treat any leftover high surrogate as a semi-valid independent character.\n if (!this.highSurrogate) { return }\n\n var buf = Buffer.alloc(4)\n\n if (this.isLE) { buf.writeUInt32LE(this.highSurrogate, 0) } else { buf.writeUInt32BE(this.highSurrogate, 0) }\n\n this.highSurrogate = 0\n\n return buf\n}\n\n// -- Decoding\n\nfunction Utf32Decoder (options, codec) {\n this.isLE = codec.isLE\n this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0)\n this.overflow = []\n}\n\nUtf32Decoder.prototype.write = function (src) {\n if (src.length === 0) { return \"\" }\n\n var i = 0\n var codepoint = 0\n var dst = Buffer.alloc(src.length + 4)\n var offset = 0\n var isLE = this.isLE\n var overflow = this.overflow\n var badChar = this.badChar\n\n if (overflow.length > 0) {\n for (; i < src.length && overflow.length < 4; i++) { overflow.push(src[i]) }\n\n if (overflow.length === 4) {\n // NOTE: codepoint is a signed int32 and can be negative.\n // NOTE: We copied this block from below to help V8 optimize it (it works with array, not buffer).\n if (isLE) {\n codepoint = overflow[i] | (overflow[i + 1] << 8) | (overflow[i + 2] << 16) | (overflow[i + 3] << 24)\n } else {\n codepoint = overflow[i + 3] | (overflow[i + 2] << 8) | (overflow[i + 1] << 16) | (overflow[i] << 24)\n }\n overflow.length = 0\n\n offset = _writeCodepoint(dst, offset, codepoint, badChar)\n }\n }\n\n // Main loop. Should be as optimized as possible.\n for (; i < src.length - 3; i += 4) {\n // NOTE: codepoint is a signed int32 and can be negative.\n if (isLE) {\n codepoint = src[i] | (src[i + 1] << 8) | (src[i + 2] << 16) | (src[i + 3] << 24)\n } else {\n codepoint = src[i + 3] | (src[i + 2] << 8) | (src[i + 1] << 16) | (src[i] << 24)\n }\n offset = _writeCodepoint(dst, offset, codepoint, badChar)\n }\n\n // Keep overflowing bytes.\n for (; i < src.length; i++) {\n overflow.push(src[i])\n }\n\n return dst.slice(0, offset).toString(\"ucs2\")\n}\n\nfunction _writeCodepoint (dst, offset, codepoint, badChar) {\n // NOTE: codepoint is signed int32 and can be negative. We keep it that way to help V8 with optimizations.\n if (codepoint < 0 || codepoint > 0x10FFFF) {\n // Not a valid Unicode codepoint\n codepoint = badChar\n }\n\n // Ephemeral Planes: Write high surrogate.\n if (codepoint >= 0x10000) {\n codepoint -= 0x10000\n\n var high = 0xD800 | (codepoint >> 10)\n dst[offset++] = high & 0xff\n dst[offset++] = high >> 8\n\n // Low surrogate is written below.\n var codepoint = 0xDC00 | (codepoint & 0x3FF)\n }\n\n // Write BMP char or low surrogate.\n dst[offset++] = codepoint & 0xff\n dst[offset++] = codepoint >> 8\n\n return offset\n};\n\nUtf32Decoder.prototype.end = function () {\n this.overflow.length = 0\n}\n\n// == UTF-32 Auto codec =============================================================\n// Decoder chooses automatically from UTF-32LE and UTF-32BE using BOM and space-based heuristic.\n// Defaults to UTF-32LE. http://en.wikipedia.org/wiki/UTF-32\n// Encoder/decoder default can be changed: iconv.decode(buf, 'utf32', {defaultEncoding: 'utf-32be'});\n\n// Encoder prepends BOM (which can be overridden with (addBOM: false}).\n\nexports.utf32 = Utf32AutoCodec\nexports.ucs4 = \"utf32\"\n\nfunction Utf32AutoCodec (options, iconv) {\n this.iconv = iconv\n}\n\nUtf32AutoCodec.prototype.encoder = Utf32AutoEncoder\nUtf32AutoCodec.prototype.decoder = Utf32AutoDecoder\n\n// -- Encoding\n\nfunction Utf32AutoEncoder (options, codec) {\n options = options || {}\n\n if (options.addBOM === undefined) {\n options.addBOM = true\n }\n\n this.encoder = codec.iconv.getEncoder(options.defaultEncoding || \"utf-32le\", options)\n}\n\nUtf32AutoEncoder.prototype.write = function (str) {\n return this.encoder.write(str)\n}\n\nUtf32AutoEncoder.prototype.end = function () {\n return this.encoder.end()\n}\n\n// -- Decoding\n\nfunction Utf32AutoDecoder (options, codec) {\n this.decoder = null\n this.initialBufs = []\n this.initialBufsLen = 0\n this.options = options || {}\n this.iconv = codec.iconv\n}\n\nUtf32AutoDecoder.prototype.write = function (buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBufs.push(buf)\n this.initialBufsLen += buf.length\n\n if (this.initialBufsLen < 32) // We need more bytes to use space heuristic (see below)\n { return \"\" }\n\n // We have enough bytes -> detect endianness.\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.write(buf)\n}\n\nUtf32AutoDecoder.prototype.end = function () {\n if (!this.decoder) {\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n var trail = this.decoder.end()\n if (trail) { resStr += trail }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.end()\n}\n\nfunction detectEncoding (bufs, defaultEncoding) {\n var b = []\n var charsProcessed = 0\n var invalidLE = 0; var invalidBE = 0 // Number of invalid chars when decoded as LE or BE.\n var bmpCharsLE = 0; var bmpCharsBE = 0 // Number of BMP chars when decoded as LE or BE.\n\n outerLoop:\n for (var i = 0; i < bufs.length; i++) {\n var buf = bufs[i]\n for (var j = 0; j < buf.length; j++) {\n b.push(buf[j])\n if (b.length === 4) {\n if (charsProcessed === 0) {\n // Check BOM first.\n if (b[0] === 0xFF && b[1] === 0xFE && b[2] === 0 && b[3] === 0) {\n return \"utf-32le\"\n }\n if (b[0] === 0 && b[1] === 0 && b[2] === 0xFE && b[3] === 0xFF) {\n return \"utf-32be\"\n }\n }\n\n if (b[0] !== 0 || b[1] > 0x10) invalidBE++\n if (b[3] !== 0 || b[2] > 0x10) invalidLE++\n\n if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++\n if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++\n\n b.length = 0\n charsProcessed++\n\n if (charsProcessed >= 100) {\n break outerLoop\n }\n }\n }\n }\n\n // Make decisions.\n if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return \"utf-32be\"\n if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return \"utf-32le\"\n\n // Couldn't decide (likely all zeros or not enough data).\n return defaultEncoding || \"utf-32le\"\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js\n\n// == UTF16-BE codec. ==========================================================\n\nexports.utf16be = Utf16BECodec\nfunction Utf16BECodec () {\n}\n\nUtf16BECodec.prototype.encoder = Utf16BEEncoder\nUtf16BECodec.prototype.decoder = Utf16BEDecoder\nUtf16BECodec.prototype.bomAware = true\n\n// -- Encoding\n\nfunction Utf16BEEncoder () {\n}\n\nUtf16BEEncoder.prototype.write = function (str) {\n var buf = Buffer.from(str, \"ucs2\")\n for (var i = 0; i < buf.length; i += 2) {\n var tmp = buf[i]; buf[i] = buf[i + 1]; buf[i + 1] = tmp\n }\n return buf\n}\n\nUtf16BEEncoder.prototype.end = function () {\n}\n\n// -- Decoding\n\nfunction Utf16BEDecoder () {\n this.overflowByte = -1\n}\n\nUtf16BEDecoder.prototype.write = function (buf) {\n if (buf.length == 0) { return \"\" }\n\n var buf2 = Buffer.alloc(buf.length + 1)\n var i = 0; var j = 0\n\n if (this.overflowByte !== -1) {\n buf2[0] = buf[0]\n buf2[1] = this.overflowByte\n i = 1; j = 2\n }\n\n for (; i < buf.length - 1; i += 2, j += 2) {\n buf2[j] = buf[i + 1]\n buf2[j + 1] = buf[i]\n }\n\n this.overflowByte = (i == buf.length - 1) ? buf[buf.length - 1] : -1\n\n return buf2.slice(0, j).toString(\"ucs2\")\n}\n\nUtf16BEDecoder.prototype.end = function () {\n this.overflowByte = -1\n}\n\n// == UTF-16 codec =============================================================\n// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.\n// Defaults to UTF-16LE, as it's prevalent and default in Node.\n// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le\n// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});\n\n// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).\n\nexports.utf16 = Utf16Codec\nfunction Utf16Codec (codecOptions, iconv) {\n this.iconv = iconv\n}\n\nUtf16Codec.prototype.encoder = Utf16Encoder\nUtf16Codec.prototype.decoder = Utf16Decoder\n\n// -- Encoding (pass-through)\n\nfunction Utf16Encoder (options, codec) {\n options = options || {}\n if (options.addBOM === undefined) { options.addBOM = true }\n this.encoder = codec.iconv.getEncoder(\"utf-16le\", options)\n}\n\nUtf16Encoder.prototype.write = function (str) {\n return this.encoder.write(str)\n}\n\nUtf16Encoder.prototype.end = function () {\n return this.encoder.end()\n}\n\n// -- Decoding\n\nfunction Utf16Decoder (options, codec) {\n this.decoder = null\n this.initialBufs = []\n this.initialBufsLen = 0\n\n this.options = options || {}\n this.iconv = codec.iconv\n}\n\nUtf16Decoder.prototype.write = function (buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBufs.push(buf)\n this.initialBufsLen += buf.length\n\n if (this.initialBufsLen < 16) // We need more bytes to use space heuristic (see below)\n { return \"\" }\n\n // We have enough bytes -> detect endianness.\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.write(buf)\n}\n\nUtf16Decoder.prototype.end = function () {\n if (!this.decoder) {\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n var trail = this.decoder.end()\n if (trail) { resStr += trail }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n return this.decoder.end()\n}\n\nfunction detectEncoding (bufs, defaultEncoding) {\n var b = []\n var charsProcessed = 0\n // Number of ASCII chars when decoded as LE or BE.\n var asciiCharsLE = 0\n var asciiCharsBE = 0\n\n outerLoop:\n for (var i = 0; i < bufs.length; i++) {\n var buf = bufs[i]\n for (var j = 0; j < buf.length; j++) {\n b.push(buf[j])\n if (b.length === 2) {\n if (charsProcessed === 0) {\n // Check BOM first.\n if (b[0] === 0xFF && b[1] === 0xFE) return \"utf-16le\"\n if (b[0] === 0xFE && b[1] === 0xFF) return \"utf-16be\"\n }\n\n if (b[0] === 0 && b[1] !== 0) asciiCharsBE++\n if (b[0] !== 0 && b[1] === 0) asciiCharsLE++\n\n b.length = 0\n charsProcessed++\n\n if (charsProcessed >= 100) {\n break outerLoop\n }\n }\n }\n }\n\n // Make decisions.\n // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.\n // So, we count ASCII as if it was LE or BE, and decide from that.\n if (asciiCharsBE > asciiCharsLE) return \"utf-16be\"\n if (asciiCharsBE < asciiCharsLE) return \"utf-16le\"\n\n // Couldn't decide (likely all zeros or not enough data).\n return defaultEncoding || \"utf-16le\"\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152\n// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3\n\nexports.utf7 = Utf7Codec\nexports.unicode11utf7 = \"utf7\" // Alias UNICODE-1-1-UTF-7\nfunction Utf7Codec (codecOptions, iconv) {\n this.iconv = iconv\n};\n\nUtf7Codec.prototype.encoder = Utf7Encoder\nUtf7Codec.prototype.decoder = Utf7Decoder\nUtf7Codec.prototype.bomAware = true\n\n// -- Encoding\n\n// Why scape ()?./?\n// eslint-disable-next-line no-useless-escape\nvar nonDirectChars = /[^A-Za-z0-9'\\(\\),-\\.\\/:\\? \\n\\r\\t]+/g\n\nfunction Utf7Encoder (options, codec) {\n this.iconv = codec.iconv\n}\n\nUtf7Encoder.prototype.write = function (str) {\n // Naive implementation.\n // Non-direct chars are encoded as \"+<base64>-\"; single \"+\" char is encoded as \"+-\".\n return Buffer.from(str.replace(nonDirectChars, function (chunk) {\n return \"+\" + (chunk === \"+\"\n ? \"\"\n : this.iconv.encode(chunk, \"utf16-be\").toString(\"base64\").replace(/=+$/, \"\")) +\n \"-\"\n }.bind(this)))\n}\n\nUtf7Encoder.prototype.end = function () {\n}\n\n// -- Decoding\n\nfunction Utf7Decoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = \"\"\n}\n\n// Why scape /?\n// eslint-disable-next-line no-useless-escape\nvar base64Regex = /[A-Za-z0-9\\/+]/\nvar base64Chars = []\nfor (var i = 0; i < 256; i++) { base64Chars[i] = base64Regex.test(String.fromCharCode(i)) }\n\nvar plusChar = \"+\".charCodeAt(0)\nvar minusChar = \"-\".charCodeAt(0)\nvar andChar = \"&\".charCodeAt(0)\n\nUtf7Decoder.prototype.write = function (buf) {\n var res = \"\"; var lastI = 0\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n\n // The decoder is more involved as we must handle chunks in stream.\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '+'\n if (buf[i] == plusChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\") // Write direct chars.\n lastI = i + 1\n inBase64 = true\n }\n } else { // We decode base64.\n if (!base64Chars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"+-\" -> \"+\"\n res += \"+\"\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\")\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n if (buf[i] != minusChar) // Minus is absorbed after base64.\n { i-- }\n\n lastI = i + 1\n inBase64 = false\n base64Accum = \"\"\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\") // Write direct chars.\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\")\n\n var canBeDecoded = b64str.length - (b64str.length % 8) // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded) // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded)\n\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n this.inBase64 = inBase64\n this.base64Accum = base64Accum\n\n return res\n}\n\nUtf7Decoder.prototype.end = function () {\n var res = \"\"\n if (this.inBase64 && this.base64Accum.length > 0) { res = this.iconv.decode(Buffer.from(this.base64Accum, \"base64\"), \"utf16-be\") }\n\n this.inBase64 = false\n this.base64Accum = \"\"\n return res\n}\n\n// UTF-7-IMAP codec.\n// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)\n// Differences:\n// * Base64 part is started by \"&\" instead of \"+\"\n// * Direct characters are 0x20-0x7E, except \"&\" (0x26)\n// * In Base64, \",\" is used instead of \"/\"\n// * Base64 must not be used to represent direct characters.\n// * No implicit shift back from Base64 (should always end with '-')\n// * String must end in non-shifted position.\n// * \"-&\" while in base64 is not allowed.\n\nexports.utf7imap = Utf7IMAPCodec\nfunction Utf7IMAPCodec (codecOptions, iconv) {\n this.iconv = iconv\n};\n\nUtf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder\nUtf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder\nUtf7IMAPCodec.prototype.bomAware = true\n\n// -- Encoding\n\nfunction Utf7IMAPEncoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = Buffer.alloc(6)\n this.base64AccumIdx = 0\n}\n\nUtf7IMAPEncoder.prototype.write = function (str) {\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n var base64AccumIdx = this.base64AccumIdx\n var buf = Buffer.alloc(str.length * 5 + 10); var bufIdx = 0\n\n for (var i = 0; i < str.length; i++) {\n var uChar = str.charCodeAt(i)\n if (uChar >= 0x20 && uChar <= 0x7E) { // Direct character or '&'.\n if (inBase64) {\n if (base64AccumIdx > 0) {\n bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString(\"base64\").replace(/\\//g, \",\").replace(/=+$/, \"\"), bufIdx)\n base64AccumIdx = 0\n }\n\n buf[bufIdx++] = minusChar // Write '-', then go to direct mode.\n inBase64 = false\n }\n\n if (!inBase64) {\n buf[bufIdx++] = uChar // Write direct character\n\n if (uChar === andChar) // Ampersand -> '&-'\n { buf[bufIdx++] = minusChar }\n }\n } else { // Non-direct character\n if (!inBase64) {\n buf[bufIdx++] = andChar // Write '&', then go to base64 mode.\n inBase64 = true\n }\n if (inBase64) {\n base64Accum[base64AccumIdx++] = uChar >> 8\n base64Accum[base64AccumIdx++] = uChar & 0xFF\n\n if (base64AccumIdx == base64Accum.length) {\n bufIdx += buf.write(base64Accum.toString(\"base64\").replace(/\\//g, \",\"), bufIdx)\n base64AccumIdx = 0\n }\n }\n }\n }\n\n this.inBase64 = inBase64\n this.base64AccumIdx = base64AccumIdx\n\n return buf.slice(0, bufIdx)\n}\n\nUtf7IMAPEncoder.prototype.end = function () {\n var buf = Buffer.alloc(10); var bufIdx = 0\n if (this.inBase64) {\n if (this.base64AccumIdx > 0) {\n bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString(\"base64\").replace(/\\//g, \",\").replace(/=+$/, \"\"), bufIdx)\n this.base64AccumIdx = 0\n }\n\n buf[bufIdx++] = minusChar // Write '-', then go to direct mode.\n this.inBase64 = false\n }\n\n return buf.slice(0, bufIdx)\n}\n\n// -- Decoding\n\nfunction Utf7IMAPDecoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = \"\"\n}\n\nvar base64IMAPChars = base64Chars.slice()\nbase64IMAPChars[\",\".charCodeAt(0)] = true\n\nUtf7IMAPDecoder.prototype.write = function (buf) {\n var res = \"\"; var lastI = 0\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n\n // The decoder is more involved as we must handle chunks in stream.\n // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '&'\n if (buf[i] == andChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\") // Write direct chars.\n lastI = i + 1\n inBase64 = true\n }\n } else { // We decode base64.\n if (!base64IMAPChars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"&-\" -> \"&\"\n res += \"&\"\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\").replace(/,/g, \"/\")\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n if (buf[i] != minusChar) // Minus may be absorbed after base64.\n { i-- }\n\n lastI = i + 1\n inBase64 = false\n base64Accum = \"\"\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\") // Write direct chars.\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\").replace(/,/g, \"/\")\n\n var canBeDecoded = b64str.length - (b64str.length % 8) // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded) // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded)\n\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n this.inBase64 = inBase64\n this.base64Accum = base64Accum\n\n return res\n}\n\nUtf7IMAPDecoder.prototype.end = function () {\n var res = \"\"\n if (this.inBase64 && this.base64Accum.length > 0) { res = this.iconv.decode(Buffer.from(this.base64Accum, \"base64\"), \"utf16-be\") }\n\n this.inBase64 = false\n this.base64Accum = \"\"\n return res\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that\n// correspond to encoded bytes (if 128 - then lower half is ASCII).\n\nexports._sbcs = SBCSCodec\nfunction SBCSCodec (codecOptions, iconv) {\n if (!codecOptions) {\n throw new Error(\"SBCS codec is called without the data.\")\n }\n\n // Prepare char buffer for decoding.\n if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) {\n throw new Error(\"Encoding '\" + codecOptions.type + \"' has incorrect 'chars' (must be of len 128 or 256)\")\n }\n\n if (codecOptions.chars.length === 128) {\n var asciiString = \"\"\n for (var i = 0; i < 128; i++) {\n asciiString += String.fromCharCode(i)\n }\n codecOptions.chars = asciiString + codecOptions.chars\n }\n\n this.decodeBuf = Buffer.from(codecOptions.chars, \"ucs2\")\n\n // Encoding buffer.\n var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0))\n\n for (var i = 0; i < codecOptions.chars.length; i++) {\n encodeBuf[codecOptions.chars.charCodeAt(i)] = i\n }\n\n this.encodeBuf = encodeBuf\n}\n\nSBCSCodec.prototype.encoder = SBCSEncoder\nSBCSCodec.prototype.decoder = SBCSDecoder\n\nfunction SBCSEncoder (options, codec) {\n this.encodeBuf = codec.encodeBuf\n}\n\nSBCSEncoder.prototype.write = function (str) {\n var buf = Buffer.alloc(str.length)\n for (var i = 0; i < str.length; i++) {\n buf[i] = this.encodeBuf[str.charCodeAt(i)]\n }\n\n return buf\n}\n\nSBCSEncoder.prototype.end = function () {\n}\n\nfunction SBCSDecoder (options, codec) {\n this.decodeBuf = codec.decodeBuf\n}\n\nSBCSDecoder.prototype.write = function (buf) {\n // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.\n var decodeBuf = this.decodeBuf\n var newBuf = Buffer.alloc(buf.length * 2)\n var idx1 = 0; var idx2 = 0\n for (var i = 0; i < buf.length; i++) {\n idx1 = buf[i] * 2; idx2 = i * 2\n newBuf[idx2] = decodeBuf[idx1]\n newBuf[idx2 + 1] = decodeBuf[idx1 + 1]\n }\n return newBuf.toString(\"ucs2\")\n}\n\nSBCSDecoder.prototype.end = function () {\n}\n","\"use strict\"\n\n// Manually added data to be used by sbcs codec in addition to generated one.\n\nmodule.exports = {\n // Not supported by iconv, not sure why.\n 10029: \"maccenteuro\",\n maccenteuro: {\n type: \"_sbcs\",\n chars: \"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\"\n },\n\n 808: \"cp808\",\n ibm808: \"cp808\",\n cp808: {\n type: \"_sbcs\",\n chars: \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ \"\n },\n\n mik: {\n type: \"_sbcs\",\n chars: \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n\n cp720: {\n type: \"_sbcs\",\n chars: \"\\x80\\x81éâ\\x84à\\x86çêëèïî\\x8d\\x8e\\x8f\\x90\\u0651\\u0652ô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡\\u064b\\u064c\\u064d\\u064e\\u064f\\u0650≈°∙·√ⁿ²■\\u00a0\"\n },\n\n // Aliases of generated encodings.\n ascii8bit: \"ascii\",\n usascii: \"ascii\",\n ansix34: \"ascii\",\n ansix341968: \"ascii\",\n ansix341986: \"ascii\",\n csascii: \"ascii\",\n cp367: \"ascii\",\n ibm367: \"ascii\",\n isoir6: \"ascii\",\n iso646us: \"ascii\",\n iso646irv: \"ascii\",\n us: \"ascii\",\n\n latin1: \"iso88591\",\n latin2: \"iso88592\",\n latin3: \"iso88593\",\n latin4: \"iso88594\",\n latin5: \"iso88599\",\n latin6: \"iso885910\",\n latin7: \"iso885913\",\n latin8: \"iso885914\",\n latin9: \"iso885915\",\n latin10: \"iso885916\",\n\n csisolatin1: \"iso88591\",\n csisolatin2: \"iso88592\",\n csisolatin3: \"iso88593\",\n csisolatin4: \"iso88594\",\n csisolatincyrillic: \"iso88595\",\n csisolatinarabic: \"iso88596\",\n csisolatingreek: \"iso88597\",\n csisolatinhebrew: \"iso88598\",\n csisolatin5: \"iso88599\",\n csisolatin6: \"iso885910\",\n\n l1: \"iso88591\",\n l2: \"iso88592\",\n l3: \"iso88593\",\n l4: \"iso88594\",\n l5: \"iso88599\",\n l6: \"iso885910\",\n l7: \"iso885913\",\n l8: \"iso885914\",\n l9: \"iso885915\",\n l10: \"iso885916\",\n\n isoir14: \"iso646jp\",\n isoir57: \"iso646cn\",\n isoir100: \"iso88591\",\n isoir101: \"iso88592\",\n isoir109: \"iso88593\",\n isoir110: \"iso88594\",\n isoir144: \"iso88595\",\n isoir127: \"iso88596\",\n isoir126: \"iso88597\",\n isoir138: \"iso88598\",\n isoir148: \"iso88599\",\n isoir157: \"iso885910\",\n isoir166: \"tis620\",\n isoir179: \"iso885913\",\n isoir199: \"iso885914\",\n isoir203: \"iso885915\",\n isoir226: \"iso885916\",\n\n cp819: \"iso88591\",\n ibm819: \"iso88591\",\n\n cyrillic: \"iso88595\",\n\n arabic: \"iso88596\",\n arabic8: \"iso88596\",\n ecma114: \"iso88596\",\n asmo708: \"iso88596\",\n\n greek: \"iso88597\",\n greek8: \"iso88597\",\n ecma118: \"iso88597\",\n elot928: \"iso88597\",\n\n hebrew: \"iso88598\",\n hebrew8: \"iso88598\",\n\n turkish: \"iso88599\",\n turkish8: \"iso88599\",\n\n thai: \"iso885911\",\n thai8: \"iso885911\",\n\n celtic: \"iso885914\",\n celtic8: \"iso885914\",\n isoceltic: \"iso885914\",\n\n tis6200: \"tis620\",\n tis62025291: \"tis620\",\n tis62025330: \"tis620\",\n\n 10000: \"macroman\",\n 10006: \"macgreek\",\n 10007: \"maccyrillic\",\n 10079: \"maciceland\",\n 10081: \"macturkish\",\n\n cspc8codepage437: \"cp437\",\n cspc775baltic: \"cp775\",\n cspc850multilingual: \"cp850\",\n cspcp852: \"cp852\",\n cspc862latinhebrew: \"cp862\",\n cpgr: \"cp869\",\n\n msee: \"cp1250\",\n mscyrl: \"cp1251\",\n msansi: \"cp1252\",\n msgreek: \"cp1253\",\n msturk: \"cp1254\",\n mshebr: \"cp1255\",\n msarab: \"cp1256\",\n winbaltrim: \"cp1257\",\n\n cp20866: \"koi8r\",\n 20866: \"koi8r\",\n ibm878: \"koi8r\",\n cskoi8r: \"koi8r\",\n\n cp21866: \"koi8u\",\n 21866: \"koi8u\",\n ibm1168: \"koi8u\",\n\n strk10482002: \"rk1048\",\n\n tcvn5712: \"tcvn\",\n tcvn57121: \"tcvn\",\n\n gb198880: \"iso646cn\",\n cn: \"iso646cn\",\n\n csiso14jisc6220ro: \"iso646jp\",\n jisc62201969ro: \"iso646jp\",\n jp: \"iso646jp\",\n\n cshproman8: \"hproman8\",\n r8: \"hproman8\",\n roman8: \"hproman8\",\n xroman8: \"hproman8\",\n ibm1051: \"hproman8\",\n\n mac: \"macintosh\",\n csmacintosh: \"macintosh\"\n}\n","\"use strict\";\n\n// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.\nmodule.exports = {\n \"437\": \"cp437\",\n \"737\": \"cp737\",\n \"775\": \"cp775\",\n \"850\": \"cp850\",\n \"852\": \"cp852\",\n \"855\": \"cp855\",\n \"856\": \"cp856\",\n \"857\": \"cp857\",\n \"858\": \"cp858\",\n \"860\": \"cp860\",\n \"861\": \"cp861\",\n \"862\": \"cp862\",\n \"863\": \"cp863\",\n \"864\": \"cp864\",\n \"865\": \"cp865\",\n \"866\": \"cp866\",\n \"869\": \"cp869\",\n \"874\": \"windows874\",\n \"922\": \"cp922\",\n \"1046\": \"cp1046\",\n \"1124\": \"cp1124\",\n \"1125\": \"cp1125\",\n \"1129\": \"cp1129\",\n \"1133\": \"cp1133\",\n \"1161\": \"cp1161\",\n \"1162\": \"cp1162\",\n \"1163\": \"cp1163\",\n \"1250\": \"windows1250\",\n \"1251\": \"windows1251\",\n \"1252\": \"windows1252\",\n \"1253\": \"windows1253\",\n \"1254\": \"windows1254\",\n \"1255\": \"windows1255\",\n \"1256\": \"windows1256\",\n \"1257\": \"windows1257\",\n \"1258\": \"windows1258\",\n \"28591\": \"iso88591\",\n \"28592\": \"iso88592\",\n \"28593\": \"iso88593\",\n \"28594\": \"iso88594\",\n \"28595\": \"iso88595\",\n \"28596\": \"iso88596\",\n \"28597\": \"iso88597\",\n \"28598\": \"iso88598\",\n \"28599\": \"iso88599\",\n \"28600\": \"iso885910\",\n \"28601\": \"iso885911\",\n \"28603\": \"iso885913\",\n \"28604\": \"iso885914\",\n \"28605\": \"iso885915\",\n \"28606\": \"iso885916\",\n \"windows874\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"win874\": \"windows874\",\n \"cp874\": \"windows874\",\n \"windows1250\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"win1250\": \"windows1250\",\n \"cp1250\": \"windows1250\",\n \"windows1251\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"win1251\": \"windows1251\",\n \"cp1251\": \"windows1251\",\n \"windows1252\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"win1252\": \"windows1252\",\n \"cp1252\": \"windows1252\",\n \"windows1253\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"win1253\": \"windows1253\",\n \"cp1253\": \"windows1253\",\n \"windows1254\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"win1254\": \"windows1254\",\n \"cp1254\": \"windows1254\",\n \"windows1255\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת���\"\n },\n \"win1255\": \"windows1255\",\n \"cp1255\": \"windows1255\",\n \"windows1256\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے\"\n },\n \"win1256\": \"windows1256\",\n \"cp1256\": \"windows1256\",\n \"windows1257\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\"\n },\n \"win1257\": \"windows1257\",\n \"cp1257\": \"windows1257\",\n \"windows1258\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"win1258\": \"windows1258\",\n \"cp1258\": \"windows1258\",\n \"iso88591\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28591\": \"iso88591\",\n \"iso88592\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ą˘Ł¤ĽŚ§¨ŠŞŤŹŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"cp28592\": \"iso88592\",\n \"iso88593\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ħ˘£¤�Ĥ§¨İŞĞĴ�ݰħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙\"\n },\n \"cp28593\": \"iso88593\",\n \"iso88594\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄĸŖ¤Ĩϧ¨ŠĒĢŦޝ°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙\"\n },\n \"cp28594\": \"iso88594\",\n \"iso88595\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ\"\n },\n \"cp28595\": \"iso88595\",\n \"iso88596\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
���¤�������،�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������\"\n },\n \"cp28596\": \"iso88596\",\n \"iso88597\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
‘’£€₯¦§¨©ͺ«¬�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"cp28597\": \"iso88597\",\n \"iso88598\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
�¢£¤¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת���\"\n },\n \"cp28598\": \"iso88598\",\n \"iso88599\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"cp28599\": \"iso88599\",\n \"iso885910\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄĒĢĪĨͧĻĐŠŦŽŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ\"\n },\n \"cp28600\": \"iso885910\",\n \"iso885911\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"cp28601\": \"iso885911\",\n \"iso885913\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
”¢£¤„¦§Ø©Ŗ«¬®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’\"\n },\n \"cp28603\": \"iso885913\",\n \"iso885914\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ\"\n },\n \"cp28604\": \"iso885914\",\n \"iso885915\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28605\": \"iso885915\",\n \"iso885916\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄąŁ€„Чš©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ\"\n },\n \"cp28606\": \"iso885916\",\n \"cp437\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm437\": \"cp437\",\n \"csibm437\": \"cp437\",\n \"cp737\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \"\n },\n \"ibm737\": \"cp737\",\n \"csibm737\": \"cp737\",\n \"cp775\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’±“¾¶§÷„°∙·¹³²■ \"\n },\n \"ibm775\": \"cp775\",\n \"csibm775\": \"cp775\",\n \"cp850\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm850\": \"cp850\",\n \"csibm850\": \"cp850\",\n \"cp852\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´˝˛ˇ˘§÷¸°¨˙űŘř■ \"\n },\n \"ibm852\": \"cp852\",\n \"csibm852\": \"cp852\",\n \"cp855\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ \"\n },\n \"ibm855\": \"cp855\",\n \"csibm855\": \"cp855\",\n \"cp856\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm856\": \"cp856\",\n \"csibm856\": \"cp856\",\n \"cp857\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´±�¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm857\": \"cp857\",\n \"csibm857\": \"cp857\",\n \"cp858\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm858\": \"cp858\",\n \"csibm858\": \"cp858\",\n \"cp860\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm860\": \"cp860\",\n \"csibm860\": \"cp860\",\n \"cp861\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm861\": \"cp861\",\n \"csibm861\": \"cp861\",\n \"cp862\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm862\": \"cp862\",\n \"csibm862\": \"cp862\",\n \"cp863\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm863\": \"cp863\",\n \"csibm863\": \"cp863\",\n \"cp864\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�\"\n },\n \"ibm864\": \"cp864\",\n \"csibm864\": \"cp864\",\n \"cp865\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm865\": \"cp865\",\n \"csibm865\": \"cp865\",\n \"cp866\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \"\n },\n \"ibm866\": \"cp866\",\n \"csibm866\": \"cp866\",\n \"cp869\": {\n \"type\": \"_sbcs\",\n \"chars\": \"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄±υφχ§ψ΅°¨ωϋΰώ■ \"\n },\n \"ibm869\": \"cp869\",\n \"csibm869\": \"cp869\",\n \"cp922\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖרÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ\"\n },\n \"ibm922\": \"cp922\",\n \"csibm922\": \"cp922\",\n \"cp1046\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�\"\n },\n \"ibm1046\": \"cp1046\",\n \"csibm1046\": \"cp1046\",\n \"cp1124\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ЁЂҐЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ\"\n },\n \"ibm1124\": \"cp1124\",\n \"csibm1124\": \"cp1124\",\n \"cp1125\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ \"\n },\n \"ibm1125\": \"cp1125\",\n \"csibm1125\": \"cp1125\",\n \"cp1129\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§œ©ª«¬®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1129\": \"cp1129\",\n \"csibm1129\": \"cp1129\",\n \"cp1133\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�\"\n },\n \"ibm1133\": \"cp1133\",\n \"csibm1133\": \"cp1133\",\n \"cp1161\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ \"\n },\n \"ibm1161\": \"cp1161\",\n \"csibm1161\": \"cp1161\",\n \"cp1162\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"ibm1162\": \"cp1162\",\n \"csibm1162\": \"cp1162\",\n \"cp1163\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£€¥¦§œ©ª«¬®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1163\": \"cp1163\",\n \"csibm1163\": \"cp1163\",\n \"maccroatian\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ\"\n },\n \"maccyrillic\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"macgreek\": {\n \"type\": \"_sbcs\",\n \"chars\": \"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\"\n },\n \"maciceland\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macroman\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macromania\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macthai\": {\n \"type\": \"_sbcs\",\n \"chars\": \"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����\"\n },\n \"macturkish\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macukraine\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"koi8r\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8u\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8ru\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8t\": {\n \"type\": \"_sbcs\",\n \"chars\": \"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"armscii8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
�և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�\"\n },\n \"rk1048\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"tcvn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000ÚỤ\\u0003ỪỬỮ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010ỨỰỲỶỸÝỴ\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ\"\n },\n \"georgianacademy\": {\n \"type\": \"_sbcs\",\n \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"georgianps\": {\n \"type\": \"_sbcs\",\n \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"pt154\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"viscii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001Ẳ\\u0003\\u0004ẴẪ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013Ỷ\\u0015\\u0016\\u0017\\u0018Ỹ\\u001a\\u001b\\u001c\\u001dỴ\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ\"\n },\n \"iso646cn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"iso646jp\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"hproman8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�\"\n },\n \"macintosh\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"ascii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"tis620\": {\n \"type\": \"_sbcs\",\n \"chars\": \"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n }\n}","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.\n// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.\n// To save memory and loading time, we read table files only when requested.\n\nexports._dbcs = DBCSCodec\n\nvar UNASSIGNED = -1\nvar GB18030_CODE = -2\nvar SEQ_START = -10\nvar NODE_START = -1000\nvar UNASSIGNED_NODE = new Array(0x100)\nvar DEF_CHAR = -1\n\nfor (var i = 0; i < 0x100; i++) { UNASSIGNED_NODE[i] = UNASSIGNED }\n\n// Class DBCSCodec reads and initializes mapping tables.\nfunction DBCSCodec (codecOptions, iconv) {\n this.encodingName = codecOptions.encodingName\n if (!codecOptions) { throw new Error(\"DBCS codec is called without the data.\") }\n if (!codecOptions.table) { throw new Error(\"Encoding '\" + this.encodingName + \"' has no data.\") }\n\n // Load tables.\n var mappingTable = codecOptions.table()\n\n // Decode tables: MBCS -> Unicode.\n\n // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.\n // Trie root is decodeTables[0].\n // Values: >= 0 -> unicode character code. can be > 0xFFFF\n // == UNASSIGNED -> unknown/unassigned sequence.\n // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.\n // <= NODE_START -> index of the next node in our trie to process next byte.\n // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.\n this.decodeTables = []\n this.decodeTables[0] = UNASSIGNED_NODE.slice(0) // Create root node.\n\n // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.\n this.decodeTableSeq = []\n\n // Actual mapping tables consist of chunks. Use them to fill up decode tables.\n for (var i = 0; i < mappingTable.length; i++) { this._addDecodeChunk(mappingTable[i]) }\n\n // Load & create GB18030 tables when needed.\n if (typeof codecOptions.gb18030 === \"function\") {\n this.gb18030 = codecOptions.gb18030() // Load GB18030 ranges.\n\n // Add GB18030 common decode nodes.\n var commonThirdByteNodeIdx = this.decodeTables.length\n this.decodeTables.push(UNASSIGNED_NODE.slice(0))\n\n var commonFourthByteNodeIdx = this.decodeTables.length\n this.decodeTables.push(UNASSIGNED_NODE.slice(0))\n\n // Fill out the tree\n var firstByteNode = this.decodeTables[0]\n for (var i = 0x81; i <= 0xFE; i++) {\n var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i]]\n for (var j = 0x30; j <= 0x39; j++) {\n if (secondByteNode[j] === UNASSIGNED) {\n secondByteNode[j] = NODE_START - commonThirdByteNodeIdx\n } else if (secondByteNode[j] > NODE_START) {\n throw new Error(\"gb18030 decode tables conflict at byte 2\")\n }\n\n var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]]\n for (var k = 0x81; k <= 0xFE; k++) {\n if (thirdByteNode[k] === UNASSIGNED) {\n thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx\n } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {\n continue\n } else if (thirdByteNode[k] > NODE_START) {\n throw new Error(\"gb18030 decode tables conflict at byte 3\")\n }\n\n var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]]\n for (var l = 0x30; l <= 0x39; l++) {\n if (fourthByteNode[l] === UNASSIGNED) { fourthByteNode[l] = GB18030_CODE }\n }\n }\n }\n }\n }\n\n this.defaultCharUnicode = iconv.defaultCharUnicode\n\n // Encode tables: Unicode -> DBCS.\n\n // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.\n // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.\n // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).\n // == UNASSIGNED -> no conversion found. Output a default char.\n // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.\n this.encodeTable = []\n\n // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of\n // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key\n // means end of sequence (needed when one sequence is a strict subsequence of another).\n // Objects are kept separately from encodeTable to increase performance.\n this.encodeTableSeq = []\n\n // Some chars can be decoded, but need not be encoded.\n var skipEncodeChars = {}\n if (codecOptions.encodeSkipVals) {\n for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {\n var val = codecOptions.encodeSkipVals[i]\n if (typeof val === \"number\") { skipEncodeChars[val] = true } else {\n for (var j = val.from; j <= val.to; j++) { skipEncodeChars[j] = true }\n }\n }\n }\n\n // Use decode trie to recursively fill out encode tables.\n this._fillEncodeTable(0, 0, skipEncodeChars)\n\n // Add more encoding pairs when needed.\n if (codecOptions.encodeAdd) {\n for (var uChar in codecOptions.encodeAdd) {\n if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) { this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]) }\n }\n }\n\n this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]\n if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0][\"?\"]\n if (this.defCharSB === UNASSIGNED) this.defCharSB = \"?\".charCodeAt(0)\n}\n\nDBCSCodec.prototype.encoder = DBCSEncoder\nDBCSCodec.prototype.decoder = DBCSDecoder\n\n// Decoder helpers\nDBCSCodec.prototype._getDecodeTrieNode = function (addr) {\n var bytes = []\n for (; addr > 0; addr >>>= 8) { bytes.push(addr & 0xFF) }\n if (bytes.length == 0) { bytes.push(0) }\n\n var node = this.decodeTables[0]\n for (var i = bytes.length - 1; i > 0; i--) { // Traverse nodes deeper into the trie.\n var val = node[bytes[i]]\n\n if (val == UNASSIGNED) { // Create new node.\n node[bytes[i]] = NODE_START - this.decodeTables.length\n this.decodeTables.push(node = UNASSIGNED_NODE.slice(0))\n } else if (val <= NODE_START) { // Existing node.\n node = this.decodeTables[NODE_START - val]\n } else { throw new Error(\"Overwrite byte in \" + this.encodingName + \", addr: \" + addr.toString(16)) }\n }\n return node\n}\n\nDBCSCodec.prototype._addDecodeChunk = function (chunk) {\n // First element of chunk is the hex mbcs code where we start.\n var curAddr = parseInt(chunk[0], 16)\n\n // Choose the decoding node where we'll write our chars.\n var writeTable = this._getDecodeTrieNode(curAddr)\n curAddr = curAddr & 0xFF\n\n // Write all other elements of the chunk to the table.\n for (var k = 1; k < chunk.length; k++) {\n var part = chunk[k]\n if (typeof part === \"string\") { // String, write as-is.\n for (var l = 0; l < part.length;) {\n var code = part.charCodeAt(l++)\n if (code >= 0xD800 && code < 0xDC00) { // Decode surrogate\n var codeTrail = part.charCodeAt(l++)\n if (codeTrail >= 0xDC00 && codeTrail < 0xE000) { writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00) } else { throw new Error(\"Incorrect surrogate pair in \" + this.encodingName + \" at chunk \" + chunk[0]) }\n } else if (code > 0x0FF0 && code <= 0x0FFF) { // Character sequence (our own encoding used)\n var len = 0xFFF - code + 2\n var seq = []\n for (var m = 0; m < len; m++) { seq.push(part.charCodeAt(l++)) } // Simple variation: don't support surrogates or subsequences in seq.\n\n writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length\n this.decodeTableSeq.push(seq)\n } else { writeTable[curAddr++] = code } // Basic char\n }\n } else if (typeof part === \"number\") { // Integer, meaning increasing sequence starting with prev character.\n var charCode = writeTable[curAddr - 1] + 1\n for (var l = 0; l < part; l++) { writeTable[curAddr++] = charCode++ }\n } else { throw new Error(\"Incorrect type '\" + typeof part + \"' given in \" + this.encodingName + \" at chunk \" + chunk[0]) }\n }\n if (curAddr > 0xFF) { throw new Error(\"Incorrect chunk in \" + this.encodingName + \" at addr \" + chunk[0] + \": too long\" + curAddr) }\n}\n\n// Encoder helpers\nDBCSCodec.prototype._getEncodeBucket = function (uCode) {\n var high = uCode >> 8 // This could be > 0xFF because of astral characters.\n if (this.encodeTable[high] === undefined) {\n this.encodeTable[high] = UNASSIGNED_NODE.slice(0)\n } // Create bucket on demand.\n return this.encodeTable[high]\n}\n\nDBCSCodec.prototype._setEncodeChar = function (uCode, dbcsCode) {\n var bucket = this._getEncodeBucket(uCode)\n var low = uCode & 0xFF\n if (bucket[low] <= SEQ_START) { this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode } // There's already a sequence, set a single-char subsequence of it.\n else if (bucket[low] == UNASSIGNED) { bucket[low] = dbcsCode }\n}\n\nDBCSCodec.prototype._setEncodeSequence = function (seq, dbcsCode) {\n // Get the root of character tree according to first character of the sequence.\n var uCode = seq[0]\n var bucket = this._getEncodeBucket(uCode)\n var low = uCode & 0xFF\n\n var node\n if (bucket[low] <= SEQ_START) {\n // There's already a sequence with - use it.\n node = this.encodeTableSeq[SEQ_START - bucket[low]]\n } else {\n // There was no sequence object - allocate a new one.\n node = {}\n if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low] // If a char was set before - make it a single-char subsequence.\n bucket[low] = SEQ_START - this.encodeTableSeq.length\n this.encodeTableSeq.push(node)\n }\n\n // Traverse the character tree, allocating new nodes as needed.\n for (var j = 1; j < seq.length - 1; j++) {\n var oldVal = node[uCode]\n if (typeof oldVal === \"object\") { node = oldVal } else {\n node = node[uCode] = {}\n if (oldVal !== undefined) { node[DEF_CHAR] = oldVal }\n }\n }\n\n // Set the leaf to given dbcsCode.\n uCode = seq[seq.length - 1]\n node[uCode] = dbcsCode\n}\n\nDBCSCodec.prototype._fillEncodeTable = function (nodeIdx, prefix, skipEncodeChars) {\n var node = this.decodeTables[nodeIdx]\n var hasValues = false\n var subNodeEmpty = {}\n for (var i = 0; i < 0x100; i++) {\n var uCode = node[i]\n var mbCode = prefix + i\n if (skipEncodeChars[mbCode]) { continue }\n\n if (uCode >= 0) {\n this._setEncodeChar(uCode, mbCode)\n hasValues = true\n } else if (uCode <= NODE_START) {\n var subNodeIdx = NODE_START - uCode\n if (!subNodeEmpty[subNodeIdx]) { // Skip empty subtrees (they are too large in gb18030).\n var newPrefix = (mbCode << 8) >>> 0 // NOTE: '>>> 0' keeps 32-bit num positive.\n if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) { hasValues = true } else { subNodeEmpty[subNodeIdx] = true }\n }\n } else if (uCode <= SEQ_START) {\n this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode)\n hasValues = true\n }\n }\n return hasValues\n}\n\n// == Encoder ==================================================================\n\nfunction DBCSEncoder (options, codec) {\n // Encoder state\n this.leadSurrogate = -1\n this.seqObj = undefined\n\n // Static data\n this.encodeTable = codec.encodeTable\n this.encodeTableSeq = codec.encodeTableSeq\n this.defaultCharSingleByte = codec.defCharSB\n this.gb18030 = codec.gb18030\n}\n\nDBCSEncoder.prototype.write = function (str) {\n var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3))\n var leadSurrogate = this.leadSurrogate\n var seqObj = this.seqObj\n var nextChar = -1\n var i = 0; var j = 0\n\n while (true) {\n // 0. Get next character.\n if (nextChar === -1) {\n if (i == str.length) break\n var uCode = str.charCodeAt(i++)\n } else {\n var uCode = nextChar\n nextChar = -1\n }\n\n // 1. Handle surrogates.\n if (uCode >= 0xD800 && uCode < 0xE000) { // Char is one of surrogates.\n if (uCode < 0xDC00) { // We've got lead surrogate.\n if (leadSurrogate === -1) {\n leadSurrogate = uCode\n continue\n } else {\n leadSurrogate = uCode\n // Double lead surrogate found.\n uCode = UNASSIGNED\n }\n } else { // We've got trail surrogate.\n if (leadSurrogate !== -1) {\n uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00)\n leadSurrogate = -1\n } else {\n // Incomplete surrogate pair - only trail surrogate found.\n uCode = UNASSIGNED\n }\n }\n } else if (leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n nextChar = uCode; uCode = UNASSIGNED // Write an error, then current char.\n leadSurrogate = -1\n }\n\n // 2. Convert uCode character.\n var dbcsCode = UNASSIGNED\n if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence\n var resCode = seqObj[uCode]\n if (typeof resCode === \"object\") { // Sequence continues.\n seqObj = resCode\n continue\n } else if (typeof resCode === \"number\") { // Sequence finished. Write it.\n dbcsCode = resCode\n } else if (resCode == undefined) { // Current character is not part of the sequence.\n // Try default character for this sequence\n resCode = seqObj[DEF_CHAR]\n if (resCode !== undefined) {\n dbcsCode = resCode // Found. Write it.\n nextChar = uCode // Current character will be written too in the next iteration.\n } else {\n // TODO: What if we have no default? (resCode == undefined)\n // Then, we should write first char of the sequence as-is and try the rest recursively.\n // Didn't do it for now because no encoding has this situation yet.\n // Currently, just skip the sequence and write current char.\n }\n }\n seqObj = undefined\n } else if (uCode >= 0) { // Regular character\n var subtable = this.encodeTable[uCode >> 8]\n if (subtable !== undefined) { dbcsCode = subtable[uCode & 0xFF] }\n\n if (dbcsCode <= SEQ_START) { // Sequence start\n seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]\n continue\n }\n\n if (dbcsCode == UNASSIGNED && this.gb18030) {\n // Use GB18030 algorithm to find character(s) to write.\n var idx = findIdx(this.gb18030.uChars, uCode)\n if (idx != -1) {\n var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx])\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600\n newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10\n newBuf[j++] = 0x30 + dbcsCode\n continue\n }\n }\n }\n\n // 3. Write dbcsCode character.\n if (dbcsCode === UNASSIGNED) { dbcsCode = this.defaultCharSingleByte }\n\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode\n } else if (dbcsCode < 0x10000) {\n newBuf[j++] = dbcsCode >> 8 // high byte\n newBuf[j++] = dbcsCode & 0xFF // low byte\n } else if (dbcsCode < 0x1000000) {\n newBuf[j++] = dbcsCode >> 16\n newBuf[j++] = (dbcsCode >> 8) & 0xFF\n newBuf[j++] = dbcsCode & 0xFF\n } else {\n newBuf[j++] = dbcsCode >>> 24\n newBuf[j++] = (dbcsCode >>> 16) & 0xFF\n newBuf[j++] = (dbcsCode >>> 8) & 0xFF\n newBuf[j++] = dbcsCode & 0xFF\n }\n }\n\n this.seqObj = seqObj\n this.leadSurrogate = leadSurrogate\n return newBuf.slice(0, j)\n}\n\nDBCSEncoder.prototype.end = function () {\n if (this.leadSurrogate === -1 && this.seqObj === undefined) { return } // All clean. Most often case.\n\n var newBuf = Buffer.alloc(10); var j = 0\n\n if (this.seqObj) { // We're in the sequence.\n var dbcsCode = this.seqObj[DEF_CHAR]\n if (dbcsCode !== undefined) { // Write beginning of the sequence.\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode\n } else {\n newBuf[j++] = dbcsCode >> 8 // high byte\n newBuf[j++] = dbcsCode & 0xFF // low byte\n }\n } else {\n // See todo above.\n }\n this.seqObj = undefined\n }\n\n if (this.leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n newBuf[j++] = this.defaultCharSingleByte\n this.leadSurrogate = -1\n }\n\n return newBuf.slice(0, j)\n}\n\n// Export for testing\nDBCSEncoder.prototype.findIdx = findIdx\n\n// == Decoder ==================================================================\n\nfunction DBCSDecoder (options, codec) {\n // Decoder state\n this.nodeIdx = 0\n this.prevBytes = []\n\n // Static data\n this.decodeTables = codec.decodeTables\n this.decodeTableSeq = codec.decodeTableSeq\n this.defaultCharUnicode = codec.defaultCharUnicode\n this.gb18030 = codec.gb18030\n}\n\nDBCSDecoder.prototype.write = function (buf) {\n var newBuf = Buffer.alloc(buf.length * 2)\n var nodeIdx = this.nodeIdx\n var prevBytes = this.prevBytes; var prevOffset = this.prevBytes.length\n var seqStart = -this.prevBytes.length // idx of the start of current parsed sequence.\n var uCode\n\n for (var i = 0, j = 0; i < buf.length; i++) {\n var curByte = (i >= 0) ? buf[i] : prevBytes[i + prevOffset]\n\n // Lookup in current trie node.\n var uCode = this.decodeTables[nodeIdx][curByte]\n\n if (uCode >= 0) {\n // Normal character, just use it.\n } else if (uCode === UNASSIGNED) { // Unknown char.\n // TODO: Callback with seq.\n uCode = this.defaultCharUnicode.charCodeAt(0)\n i = seqStart // Skip one byte ('i' will be incremented by the for loop) and try to parse again.\n } else if (uCode === GB18030_CODE) {\n if (i >= 3) {\n var ptr = (buf[i - 3] - 0x81) * 12600 + (buf[i - 2] - 0x30) * 1260 + (buf[i - 1] - 0x81) * 10 + (curByte - 0x30)\n } else {\n var ptr = (prevBytes[i - 3 + prevOffset] - 0x81) * 12600 +\n (((i - 2 >= 0) ? buf[i - 2] : prevBytes[i - 2 + prevOffset]) - 0x30) * 1260 +\n (((i - 1 >= 0) ? buf[i - 1] : prevBytes[i - 1 + prevOffset]) - 0x81) * 10 +\n (curByte - 0x30)\n }\n var idx = findIdx(this.gb18030.gbChars, ptr)\n uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]\n } else if (uCode <= NODE_START) { // Go to next trie node.\n nodeIdx = NODE_START - uCode\n continue\n } else if (uCode <= SEQ_START) { // Output a sequence of chars.\n var seq = this.decodeTableSeq[SEQ_START - uCode]\n for (var k = 0; k < seq.length - 1; k++) {\n uCode = seq[k]\n newBuf[j++] = uCode & 0xFF\n newBuf[j++] = uCode >> 8\n }\n uCode = seq[seq.length - 1]\n } else { throw new Error(\"iconv-lite internal error: invalid decoding table value \" + uCode + \" at \" + nodeIdx + \"/\" + curByte) }\n\n // Write the character to buffer, handling higher planes using surrogate pair.\n if (uCode >= 0x10000) {\n uCode -= 0x10000\n var uCodeLead = 0xD800 | (uCode >> 10)\n newBuf[j++] = uCodeLead & 0xFF\n newBuf[j++] = uCodeLead >> 8\n\n uCode = 0xDC00 | (uCode & 0x3FF)\n }\n newBuf[j++] = uCode & 0xFF\n newBuf[j++] = uCode >> 8\n\n // Reset trie node.\n nodeIdx = 0; seqStart = i + 1\n }\n\n this.nodeIdx = nodeIdx\n this.prevBytes = (seqStart >= 0)\n ? Array.prototype.slice.call(buf, seqStart)\n : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf))\n\n return newBuf.slice(0, j).toString(\"ucs2\")\n}\n\nDBCSDecoder.prototype.end = function () {\n var ret = \"\"\n\n // Try to parse all remaining chars.\n while (this.prevBytes.length > 0) {\n // Skip 1 character in the buffer.\n ret += this.defaultCharUnicode\n var bytesArr = this.prevBytes.slice(1)\n\n // Parse remaining as usual.\n this.prevBytes = []\n this.nodeIdx = 0\n if (bytesArr.length > 0) { ret += this.write(bytesArr) }\n }\n\n this.prevBytes = []\n this.nodeIdx = 0\n return ret\n}\n\n// Binary search for GB18030. Returns largest i such that table[i] <= val.\nfunction findIdx (table, val) {\n if (table[0] > val) { return -1 }\n\n var l = 0; var r = table.length\n while (l < r - 1) { // always table[l] <= val < table[r]\n var mid = l + ((r - l + 1) >> 1)\n if (table[mid] <= val) { l = mid } else { r = mid }\n }\n return l\n}\n","\"use strict\"\n\n// Description of supported double byte encodings and aliases.\n// Tables are not require()-d until they are needed to speed up library load.\n// require()-s are direct to support Browserify.\n\nmodule.exports = {\n\n // == Japanese/ShiftJIS ====================================================\n // All japanese encodings are based on JIS X set of standards:\n // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.\n // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.\n // Has several variations in 1978, 1983, 1990 and 1997.\n // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.\n // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.\n // 2 planes, first is superset of 0208, second - revised 0212.\n // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)\n\n // Byte encodings are:\n // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte\n // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.\n // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.\n // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.\n // 0x00-0x7F - lower part of 0201\n // 0x8E, 0xA1-0xDF - upper part of 0201\n // (0xA1-0xFE)x2 - 0208 plane (94x94).\n // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).\n // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.\n // Used as-is in ISO2022 family.\n // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,\n // 0201-1976 Roman, 0208-1978, 0208-1983.\n // * ISO2022-JP-1: Adds esc seq for 0212-1990.\n // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.\n // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.\n // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.\n //\n // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.\n //\n // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html\n\n shiftjis: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/shiftjis.json\") },\n encodeAdd: { \"\\u00a5\": 0x5C, \"\\u203E\": 0x7E },\n encodeSkipVals: [{ from: 0xED40, to: 0xF940 }]\n },\n csshiftjis: \"shiftjis\",\n mskanji: \"shiftjis\",\n sjis: \"shiftjis\",\n windows31j: \"shiftjis\",\n ms31j: \"shiftjis\",\n xsjis: \"shiftjis\",\n windows932: \"shiftjis\",\n ms932: \"shiftjis\",\n 932: \"shiftjis\",\n cp932: \"shiftjis\",\n\n eucjp: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/eucjp.json\") },\n encodeAdd: { \"\\u00a5\": 0x5C, \"\\u203E\": 0x7E }\n },\n\n // TODO: KDDI extension to Shift_JIS\n // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.\n // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.\n\n // == Chinese/GBK ==========================================================\n // http://en.wikipedia.org/wiki/GBK\n // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder\n\n // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936\n gb2312: \"cp936\",\n gb231280: \"cp936\",\n gb23121980: \"cp936\",\n csgb2312: \"cp936\",\n csiso58gb231280: \"cp936\",\n euccn: \"cp936\",\n\n // Microsoft's CP936 is a subset and approximation of GBK.\n windows936: \"cp936\",\n ms936: \"cp936\",\n 936: \"cp936\",\n cp936: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\") }\n },\n\n // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.\n gbk: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\").concat(require(\"./tables/gbk-added.json\")) }\n },\n xgbk: \"gbk\",\n isoir58: \"gbk\",\n\n // GB18030 is an algorithmic extension of GBK.\n // Main source: https://www.w3.org/TR/encoding/#gbk-encoder\n // http://icu-project.org/docs/papers/gb18030.html\n // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml\n // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0\n gb18030: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\").concat(require(\"./tables/gbk-added.json\")) },\n gb18030: function () { return require(\"./tables/gb18030-ranges.json\") },\n encodeSkipVals: [0x80],\n encodeAdd: { \"€\": 0xA2E3 }\n },\n\n chinese: \"gb18030\",\n\n // == Korean ===============================================================\n // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.\n windows949: \"cp949\",\n ms949: \"cp949\",\n 949: \"cp949\",\n cp949: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp949.json\") }\n },\n\n cseuckr: \"cp949\",\n csksc56011987: \"cp949\",\n euckr: \"cp949\",\n isoir149: \"cp949\",\n korean: \"cp949\",\n ksc56011987: \"cp949\",\n ksc56011989: \"cp949\",\n ksc5601: \"cp949\",\n\n // == Big5/Taiwan/Hong Kong ================================================\n // There are lots of tables for Big5 and cp950. Please see the following links for history:\n // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html\n // Variations, in roughly number of defined chars:\n // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT\n // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/\n // * Big5-2003 (Taiwan standard) almost superset of cp950.\n // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.\n // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.\n // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.\n // Plus, it has 4 combining sequences.\n // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299\n // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.\n // Implementations are not consistent within browsers; sometimes labeled as just big5.\n // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.\n // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31\n // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.\n // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt\n // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt\n //\n // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder\n // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.\n\n windows950: \"cp950\",\n ms950: \"cp950\",\n 950: \"cp950\",\n cp950: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp950.json\") }\n },\n\n // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.\n big5: \"big5hkscs\",\n big5hkscs: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp950.json\").concat(require(\"./tables/big5-added.json\")) },\n encodeSkipVals: [\n // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of\n // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.\n // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.\n 0x8e69, 0x8e6f, 0x8e7e, 0x8eab, 0x8eb4, 0x8ecd, 0x8ed0, 0x8f57, 0x8f69, 0x8f6e, 0x8fcb, 0x8ffe,\n 0x906d, 0x907a, 0x90c4, 0x90dc, 0x90f1, 0x91bf, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92d1, 0x9447, 0x94ca,\n 0x95d9, 0x96fc, 0x9975, 0x9b76, 0x9b78, 0x9b7b, 0x9bc6, 0x9bde, 0x9bec, 0x9bf6, 0x9c42, 0x9c53, 0x9c62,\n 0x9c68, 0x9c6b, 0x9c77, 0x9cbc, 0x9cbd, 0x9cd0, 0x9d57, 0x9d5a, 0x9dc4, 0x9def, 0x9dfb, 0x9ea9, 0x9eef,\n 0x9efd, 0x9f60, 0x9fcb, 0xa077, 0xa0dc, 0xa0df, 0x8fcc, 0x92c8, 0x9644, 0x96ed,\n\n // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345\n 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa2cc, 0xa2ce\n ]\n },\n\n cnbig5: \"big5hkscs\",\n csbig5: \"big5hkscs\",\n xxbig5: \"big5hkscs\"\n}\n","\"use strict\"\n\nvar mergeModules = require(\"../lib/helpers/merge-exports\")\n\n// Update this array if you add/rename/remove files in this directory.\n// We support Browserify by skipping automatic module discovery and requiring modules directly.\nvar modules = [\n require(\"./internal\"),\n require(\"./utf32\"),\n require(\"./utf16\"),\n require(\"./utf7\"),\n require(\"./sbcs-codec\"),\n require(\"./sbcs-data\"),\n require(\"./sbcs-data-generated\"),\n require(\"./dbcs-codec\"),\n require(\"./dbcs-data\")\n]\n\n// Put all encoding/alias/codec definitions to single object and export it.\nfor (var i = 0; i < modules.length; i++) {\n var module = modules[i]\n mergeModules(exports, module)\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// NOTE: Due to 'stream' module being pretty large (~100Kb, significant in browser environments),\n// we opt to dependency-inject it instead of creating a hard dependency.\nmodule.exports = function (streamModule) {\n var Transform = streamModule.Transform\n\n // == Encoder stream =======================================================\n\n function IconvLiteEncoderStream (conv, options) {\n this.conv = conv\n options = options || {}\n options.decodeStrings = false // We accept only strings, so we don't need to decode them.\n Transform.call(this, options)\n }\n\n IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {\n constructor: { value: IconvLiteEncoderStream }\n })\n\n IconvLiteEncoderStream.prototype._transform = function (chunk, encoding, done) {\n if (typeof chunk !== \"string\") {\n return done(new Error(\"Iconv encoding stream needs strings as its input.\"))\n }\n\n try {\n var res = this.conv.write(chunk)\n if (res && res.length) this.push(res)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteEncoderStream.prototype._flush = function (done) {\n try {\n var res = this.conv.end()\n if (res && res.length) this.push(res)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteEncoderStream.prototype.collect = function (cb) {\n var chunks = []\n this.on(\"error\", cb)\n this.on(\"data\", function (chunk) { chunks.push(chunk) })\n this.on(\"end\", function () {\n cb(null, Buffer.concat(chunks))\n })\n return this\n }\n\n // == Decoder stream =======================================================\n\n function IconvLiteDecoderStream (conv, options) {\n this.conv = conv\n options = options || {}\n options.encoding = this.encoding = \"utf8\" // We output strings.\n Transform.call(this, options)\n }\n\n IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {\n constructor: { value: IconvLiteDecoderStream }\n })\n\n IconvLiteDecoderStream.prototype._transform = function (chunk, encoding, done) {\n if (!Buffer.isBuffer(chunk) && !(chunk instanceof Uint8Array)) { return done(new Error(\"Iconv decoding stream needs buffers as its input.\")) }\n try {\n var res = this.conv.write(chunk)\n if (res && res.length) this.push(res, this.encoding)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteDecoderStream.prototype._flush = function (done) {\n try {\n var res = this.conv.end()\n if (res && res.length) this.push(res, this.encoding)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteDecoderStream.prototype.collect = function (cb) {\n var res = \"\"\n this.on(\"error\", cb)\n this.on(\"data\", function (chunk) { res += chunk })\n this.on(\"end\", function () {\n cb(null, res)\n })\n return this\n }\n\n return {\n IconvLiteEncoderStream: IconvLiteEncoderStream,\n IconvLiteDecoderStream: IconvLiteDecoderStream\n }\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\nvar bomHandling = require(\"./bom-handling\")\nvar mergeModules = require(\"./helpers/merge-exports\")\nvar iconv = module.exports\n\n// All codecs and aliases are kept here, keyed by encoding name/alias.\n// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.\n// Cannot initialize with { __proto__: null } because Boolean({ __proto__: null }) === true\niconv.encodings = null\n\n// Characters emitted in case of error.\niconv.defaultCharUnicode = \"�\"\niconv.defaultCharSingleByte = \"?\"\n\n// Public API.\niconv.encode = function encode (str, encoding, options) {\n str = \"\" + (str || \"\") // Ensure string.\n\n var encoder = iconv.getEncoder(encoding, options)\n\n var res = encoder.write(str)\n var trail = encoder.end()\n\n return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res\n}\n\niconv.decode = function decode (buf, encoding, options) {\n if (typeof buf === \"string\") {\n if (!iconv.skipDecodeWarning) {\n console.error(\"Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding\")\n iconv.skipDecodeWarning = true\n }\n\n buf = Buffer.from(\"\" + (buf || \"\"), \"binary\") // Ensure buffer.\n }\n\n var decoder = iconv.getDecoder(encoding, options)\n\n var res = decoder.write(buf)\n var trail = decoder.end()\n\n return trail ? (res + trail) : res\n}\n\niconv.encodingExists = function encodingExists (enc) {\n try {\n iconv.getCodec(enc)\n return true\n } catch (e) {\n return false\n }\n}\n\n// Legacy aliases to convert functions\niconv.toEncoding = iconv.encode\niconv.fromEncoding = iconv.decode\n\n// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.\niconv._codecDataCache = { __proto__: null }\n\niconv.getCodec = function getCodec (encoding) {\n if (!iconv.encodings) {\n var raw = require(\"../encodings\")\n // TODO: In future versions when old nodejs support is removed can use object.assign\n iconv.encodings = { __proto__: null } // Initialize as empty object.\n mergeModules(iconv.encodings, raw)\n }\n\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n var enc = iconv._canonicalizeEncoding(encoding)\n\n // Traverse iconv.encodings to find actual codec.\n var codecOptions = {}\n while (true) {\n var codec = iconv._codecDataCache[enc]\n\n if (codec) { return codec }\n\n var codecDef = iconv.encodings[enc]\n\n switch (typeof codecDef) {\n case \"string\": // Direct alias to other encoding.\n enc = codecDef\n break\n\n case \"object\": // Alias with options. Can be layered.\n for (var key in codecDef) { codecOptions[key] = codecDef[key] }\n\n if (!codecOptions.encodingName) { codecOptions.encodingName = enc }\n\n enc = codecDef.type\n break\n\n case \"function\": // Codec itself.\n if (!codecOptions.encodingName) { codecOptions.encodingName = enc }\n\n // The codec function must load all tables and return object with .encoder and .decoder methods.\n // It'll be called only once (for each different options object).\n //\n codec = new codecDef(codecOptions, iconv)\n\n iconv._codecDataCache[codecOptions.encodingName] = codec // Save it to be reused later.\n return codec\n\n default:\n throw new Error(\"Encoding not recognized: '\" + encoding + \"' (searched as: '\" + enc + \"')\")\n }\n }\n}\n\niconv._canonicalizeEncoding = function (encoding) {\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n return (\"\" + encoding).toLowerCase().replace(/:\\d{4}$|[^0-9a-z]/g, \"\")\n}\n\niconv.getEncoder = function getEncoder (encoding, options) {\n var codec = iconv.getCodec(encoding)\n var encoder = new codec.encoder(options, codec)\n\n if (codec.bomAware && options && options.addBOM) { encoder = new bomHandling.PrependBOM(encoder, options) }\n\n return encoder\n}\n\niconv.getDecoder = function getDecoder (encoding, options) {\n var codec = iconv.getCodec(encoding)\n var decoder = new codec.decoder(options, codec)\n\n if (codec.bomAware && !(options && options.stripBOM === false)) { decoder = new bomHandling.StripBOM(decoder, options) }\n\n return decoder\n}\n\n// Streaming API\n// NOTE: Streaming API naturally depends on 'stream' module from Node.js. Unfortunately in browser environments this module can add\n// up to 100Kb to the output bundle. To avoid unnecessary code bloat, we don't enable Streaming API in browser by default.\n// If you would like to enable it explicitly, please add the following code to your app:\n// > iconv.enableStreamingAPI(require('stream'));\niconv.enableStreamingAPI = function enableStreamingAPI (streamModule) {\n if (iconv.supportsStreams) { return }\n\n // Dependency-inject stream module to create IconvLite stream classes.\n var streams = require(\"./streams\")(streamModule)\n\n // Not public API yet, but expose the stream classes.\n iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream\n iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream\n\n // Streaming API.\n iconv.encodeStream = function encodeStream (encoding, options) {\n return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options)\n }\n\n iconv.decodeStream = function decodeStream (encoding, options) {\n return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options)\n }\n\n iconv.supportsStreams = true\n}\n\n// Enable Streaming API automatically if 'stream' module is available and non-empty (the majority of environments).\nvar streamModule\ntry {\n streamModule = require(\"stream\")\n} catch (e) {}\n\nif (streamModule && streamModule.Transform) {\n iconv.enableStreamingAPI(streamModule)\n} else {\n // In rare cases where 'stream' module is not available by default, throw a helpful exception.\n iconv.encodeStream = iconv.decodeStream = function () {\n throw new Error(\"iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.\")\n }\n}\n\n// Some environments, such as browsers, may not load JavaScript files as UTF-8\n// eslint-disable-next-line no-constant-condition\nif (\"Ā\" !== \"\\u0100\") {\n console.error(\"iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.\")\n}\n","/*!\n * unpipe\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = unpipe\n\n/**\n * Determine if there are Node.js pipe-like data listeners.\n * @private\n */\n\nfunction hasPipeDataListeners(stream) {\n var listeners = stream.listeners('data')\n\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i].name === 'ondata') {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Unpipe a stream from all destinations.\n *\n * @param {object} stream\n * @public\n */\n\nfunction unpipe(stream) {\n if (!stream) {\n throw new TypeError('argument stream is required')\n }\n\n if (typeof stream.unpipe === 'function') {\n // new-style\n stream.unpipe()\n return\n }\n\n // Node.js 0.8 hack\n if (!hasPipeDataListeners(stream)) {\n return\n }\n\n var listener\n var listeners = stream.listeners('close')\n\n for (var i = 0; i < listeners.length; i++) {\n listener = listeners[i]\n\n if (listener.name !== 'cleanup' && listener.name !== 'onclose') {\n continue\n }\n\n // invoke the listener\n listener.call(stream)\n }\n}\n","/*!\n * raw-body\n * Copyright(c) 2013-2014 Jonathan Ong\n * Copyright(c) 2014-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar asyncHooks = tryRequireAsyncHooks()\nvar bytes = require('bytes')\nvar createError = require('http-errors')\nvar iconv = require('iconv-lite')\nvar unpipe = require('unpipe')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = getRawBody\n\n/**\n * Module variables.\n * @private\n */\n\nvar ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /\n\n/**\n * Get the decoder for a given encoding.\n *\n * @param {string} encoding\n * @private\n */\n\nfunction getDecoder (encoding) {\n if (!encoding) return null\n\n try {\n return iconv.getDecoder(encoding)\n } catch (e) {\n // error getting decoder\n if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e\n\n // the encoding was not found\n throw createError(415, 'specified encoding unsupported', {\n encoding: encoding,\n type: 'encoding.unsupported'\n })\n }\n}\n\n/**\n * Get the raw body of a stream (typically HTTP).\n *\n * @param {object} stream\n * @param {object|string|function} [options]\n * @param {function} [callback]\n * @public\n */\n\nfunction getRawBody (stream, options, callback) {\n var done = callback\n var opts = options || {}\n\n // light validation\n if (stream === undefined) {\n throw new TypeError('argument stream is required')\n } else if (typeof stream !== 'object' || stream === null || typeof stream.on !== 'function') {\n throw new TypeError('argument stream must be a stream')\n }\n\n if (options === true || typeof options === 'string') {\n // short cut for encoding\n opts = {\n encoding: options\n }\n }\n\n if (typeof options === 'function') {\n done = options\n opts = {}\n }\n\n // validate callback is a function, if provided\n if (done !== undefined && typeof done !== 'function') {\n throw new TypeError('argument callback must be a function')\n }\n\n // require the callback without promises\n if (!done && !global.Promise) {\n throw new TypeError('argument callback is required')\n }\n\n // get encoding\n var encoding = opts.encoding !== true\n ? opts.encoding\n : 'utf-8'\n\n // convert the limit to an integer\n var limit = bytes.parse(opts.limit)\n\n // convert the expected length to an integer\n var length = opts.length != null && !isNaN(opts.length)\n ? parseInt(opts.length, 10)\n : null\n\n if (done) {\n // classic callback style\n return readStream(stream, encoding, length, limit, wrap(done))\n }\n\n return new Promise(function executor (resolve, reject) {\n readStream(stream, encoding, length, limit, function onRead (err, buf) {\n if (err) return reject(err)\n resolve(buf)\n })\n })\n}\n\n/**\n * Halt a stream.\n *\n * @param {Object} stream\n * @private\n */\n\nfunction halt (stream) {\n // unpipe everything from the stream\n unpipe(stream)\n\n // pause stream\n if (typeof stream.pause === 'function') {\n stream.pause()\n }\n}\n\n/**\n * Read the data from the stream.\n *\n * @param {object} stream\n * @param {string} encoding\n * @param {number} length\n * @param {number} limit\n * @param {function} callback\n * @public\n */\n\nfunction readStream (stream, encoding, length, limit, callback) {\n var complete = false\n var sync = true\n\n // check the length and limit options.\n // note: we intentionally leave the stream paused,\n // so users should handle the stream themselves.\n if (limit !== null && length !== null && length > limit) {\n return done(createError(413, 'request entity too large', {\n expected: length,\n length: length,\n limit: limit,\n type: 'entity.too.large'\n }))\n }\n\n // streams1: assert request encoding is buffer.\n // streams2+: assert the stream encoding is buffer.\n // stream._decoder: streams1\n // state.encoding: streams2\n // state.decoder: streams2, specifically < 0.10.6\n var state = stream._readableState\n if (stream._decoder || (state && (state.encoding || state.decoder))) {\n // developer error\n return done(createError(500, 'stream encoding should not be set', {\n type: 'stream.encoding.set'\n }))\n }\n\n if (typeof stream.readable !== 'undefined' && !stream.readable) {\n return done(createError(500, 'stream is not readable', {\n type: 'stream.not.readable'\n }))\n }\n\n var received = 0\n var decoder\n\n try {\n decoder = getDecoder(encoding)\n } catch (err) {\n return done(err)\n }\n\n var buffer = decoder\n ? ''\n : []\n\n // attach listeners\n stream.on('aborted', onAborted)\n stream.on('close', cleanup)\n stream.on('data', onData)\n stream.on('end', onEnd)\n stream.on('error', onEnd)\n\n // mark sync section complete\n sync = false\n\n function done () {\n var args = new Array(arguments.length)\n\n // copy arguments\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n\n // mark complete\n complete = true\n\n if (sync) {\n process.nextTick(invokeCallback)\n } else {\n invokeCallback()\n }\n\n function invokeCallback () {\n cleanup()\n\n if (args[0]) {\n // halt the stream on error\n halt(stream)\n }\n\n callback.apply(null, args)\n }\n }\n\n function onAborted () {\n if (complete) return\n\n done(createError(400, 'request aborted', {\n code: 'ECONNABORTED',\n expected: length,\n length: length,\n received: received,\n type: 'request.aborted'\n }))\n }\n\n function onData (chunk) {\n if (complete) return\n\n received += chunk.length\n\n if (limit !== null && received > limit) {\n done(createError(413, 'request entity too large', {\n limit: limit,\n received: received,\n type: 'entity.too.large'\n }))\n } else if (decoder) {\n buffer += decoder.write(chunk)\n } else {\n buffer.push(chunk)\n }\n }\n\n function onEnd (err) {\n if (complete) return\n if (err) return done(err)\n\n if (length !== null && received !== length) {\n done(createError(400, 'request size did not match content length', {\n expected: length,\n length: length,\n received: received,\n type: 'request.size.invalid'\n }))\n } else {\n var string = decoder\n ? buffer + (decoder.end() || '')\n : Buffer.concat(buffer)\n done(null, string)\n }\n }\n\n function cleanup () {\n buffer = null\n\n stream.removeListener('aborted', onAborted)\n stream.removeListener('data', onData)\n stream.removeListener('end', onEnd)\n stream.removeListener('error', onEnd)\n stream.removeListener('close', cleanup)\n }\n}\n\n/**\n * Try to require async_hooks\n * @private\n */\n\nfunction tryRequireAsyncHooks () {\n try {\n return require('async_hooks')\n } catch (e) {\n return {}\n }\n}\n\n/**\n * Wrap function with async resource, if possible.\n * AsyncResource.bind static method backported.\n * @private\n */\n\nfunction wrap (fn) {\n var res\n\n // create anonymous resource\n if (asyncHooks.AsyncResource) {\n res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn')\n }\n\n // incompatible node.js\n if (!res || !res.runInAsyncScope) {\n return fn\n }\n\n // return bound function\n return res.runInAsyncScope.bind(res, fn, null)\n}\n","\nvar zlib = require('zlib')\n\nmodule.exports = inflate\n\nfunction inflate(stream, options) {\n if (!stream) {\n throw new TypeError('argument stream is required')\n }\n\n options = options || {}\n\n var encoding = options.encoding\n || (stream.headers && stream.headers['content-encoding'])\n || 'identity'\n \n var decompression\n switch (encoding) {\n case 'gzip':\n case 'deflate':\n delete options.brotli\n delete options.encoding\n decompression = zlib.createUnzip(options)\n break\n case 'br':\n if (zlib.createBrotliDecompress) {\n decompression = zlib.createBrotliDecompress(options.brotli)\n }\n break\n case 'identity':\n return stream\n }\n\n if (!decompression) {\n var err = new Error('Unsupported Content-Encoding: ' + encoding)\n err.status = 415\n throw err\n }\n\n return stream.pipe(decompression)\n}\n","import { decode } from '@nhtio/encoder'\nimport { default as raw } from 'raw-body'\nimport { default as inflate } from 'inflation'\nimport { E_ENCODED_BODY_PARSING_FAILED } from '@nhtio/lucid-resourceful/errors'\nimport type { IncomingMessage } from 'node:http'\nimport type { HttpContext } from '@adonisjs/core/http'\nimport type { NextFn } from '@adonisjs/core/types/http'\nimport type { Encoding, Options as RawBodyOptions } from 'raw-body'\n\nexport class ResourcefulEncodedRequestMiddleware {\n /**\n * Heavily borrows functionality from:\n * https://github.com/adonisjs/bodyparser/blob/889f5674495c2c01a5db546c67f4b4af54da3671/src/parsers/text.ts#L39\n */\n async #getRaw(req: IncomingMessage): Promise<string | null> {\n try {\n const options: RawBodyOptions & { encoding: Encoding } = {\n encoding: 'utf-8',\n limit: '100mb',\n length: 0,\n }\n const contentLength =\n req.headers['content-length'] || req.headers['x-resourceful-content-length']\n const encoding = req.headers['content-encoding'] || 'identity'\n if (contentLength && encoding === 'identity') {\n options.length = ~~contentLength\n }\n const inflated = inflate(req)\n const fetched = await raw(inflated, options)\n const asString = fetched.toString()\n return asString ? asString : null\n } catch (e) {\n throw new E_ENCODED_BODY_PARSING_FAILED(undefined, {\n cause: e instanceof Error ? e : undefined,\n })\n }\n }\n\n async handle(ctx: HttpContext, next: NextFn) {\n const contentType = ctx.request.header('content-type') || ''\n if (\n ctx.request.header('x-resourceful-request-encoded') === '1' &&\n contentType.includes('application/vnd.resourceful.structured')\n ) {\n const hasBody = ctx.request.hasBody()\n if (hasBody) {\n const rawString = await this.#getRaw(ctx.request.request)\n if (rawString === null) {\n return next()\n }\n const decoded = decode<Record<string, any>>(rawString)\n ctx.request.setInitialBody(decoded)\n ctx.request.updateRawBody(rawString)\n ctx.request.bodyType = 'resourceful-encoded'\n }\n }\n return next()\n }\n}\n"],"names":["require$$0","process","codes","status","require$$1","statuses","require$$2","require$$3","require$$4","module","exports","encoding","i","require$$5","require$$6","require$$7","require$$8","require$$9","bomHandling","raw","streamModule","streams","global","Buffer","inflate","E_ENCODED_BODY_PARSING_FAILED","decode"],"mappings":"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AQ;AAAE,YAAI;AAAA,MAAG;AAAA,IACrD;AACE,WAAO;AAAA,EACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}
|
|
1
|
+
{"version":3,"file":"resourceful_encoded_request.cjs","sources":["../../../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js","../../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js","../../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js","../../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js","../../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js","../../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js","../../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/bom-handling.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/helpers/merge-exports.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/internal.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf32.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf16.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/utf7.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-codec.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-data.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/sbcs-data-generated.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/dbcs-codec.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/dbcs-data.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/encodings/index.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/streams.js","../../../node_modules/.pnpm/iconv-lite@0.7.0/node_modules/iconv-lite/lib/index.js","../../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js","../../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js","../../../node_modules/.pnpm/inflation@2.1.0/node_modules/inflation/index.js","../../../src/private/router_macro/middlewares/resourceful_encoded_request.ts"],"sourcesContent":["/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = bytes;\nmodule.exports.format = format;\nmodule.exports.parse = parse;\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n b: 1,\n kb: 1 << 10,\n mb: 1 << 20,\n gb: 1 << 30,\n tb: Math.pow(1024, 4),\n pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n * case: [string],\n * decimalPlaces: [number]\n * fixedDecimals: [boolean]\n * thousandsSeparator: [string]\n * unitSeparator: [string]\n * }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nfunction bytes(value, options) {\n if (typeof value === 'string') {\n return parse(value);\n }\n\n if (typeof value === 'number') {\n return format(value, options);\n }\n\n return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nfunction format(value, options) {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n var mag = Math.abs(value);\n var thousandsSeparator = (options && options.thousandsSeparator) || '';\n var unitSeparator = (options && options.unitSeparator) || '';\n var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n var fixedDecimals = Boolean(options && options.fixedDecimals);\n var unit = (options && options.unit) || '';\n\n if (!unit || !map[unit.toLowerCase()]) {\n if (mag >= map.pb) {\n unit = 'PB';\n } else if (mag >= map.tb) {\n unit = 'TB';\n } else if (mag >= map.gb) {\n unit = 'GB';\n } else if (mag >= map.mb) {\n unit = 'MB';\n } else if (mag >= map.kb) {\n unit = 'KB';\n } else {\n unit = 'B';\n }\n }\n\n var val = value / map[unit.toLowerCase()];\n var str = val.toFixed(decimalPlaces);\n\n if (!fixedDecimals) {\n str = str.replace(formatDecimalsRegExp, '$1');\n }\n\n if (thousandsSeparator) {\n str = str.split('.').map(function (s, i) {\n return i === 0\n ? s.replace(formatThousandsRegExp, thousandsSeparator)\n : s\n }).join('.');\n }\n\n return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nfunction parse(val) {\n if (typeof val === 'number' && !isNaN(val)) {\n return val;\n }\n\n if (typeof val !== 'string') {\n return null;\n }\n\n // Test if the string passed is valid\n var results = parseRegExp.exec(val);\n var floatValue;\n var unit = 'b';\n\n if (!results) {\n // Nothing could be extracted from the given string\n floatValue = parseInt(val, 10);\n unit = 'b'\n } else {\n // Retrieve the value and the unit\n floatValue = parseFloat(results[1]);\n unit = results[4].toLowerCase();\n }\n\n if (isNaN(floatValue)) {\n return null;\n }\n\n return Math.floor(map[unit] * floatValue);\n}\n","/*!\n * depd\n * Copyright(c) 2014-2018 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\n\nvar relative = require('path').relative\n\n/**\n * Module exports.\n */\n\nmodule.exports = depd\n\n/**\n * Get the path to base files on.\n */\n\nvar basePath = process.cwd()\n\n/**\n * Determine if namespace is contained in the string.\n */\n\nfunction containsNamespace (str, namespace) {\n var vals = str.split(/[ ,]+/)\n var ns = String(namespace).toLowerCase()\n\n for (var i = 0; i < vals.length; i++) {\n var val = vals[i]\n\n // namespace contained\n if (val && (val === '*' || val.toLowerCase() === ns)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Convert a data descriptor to accessor descriptor.\n */\n\nfunction convertDataDescriptorToAccessor (obj, prop, message) {\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n var value = descriptor.value\n\n descriptor.get = function getter () { return value }\n\n if (descriptor.writable) {\n descriptor.set = function setter (val) { return (value = val) }\n }\n\n delete descriptor.value\n delete descriptor.writable\n\n Object.defineProperty(obj, prop, descriptor)\n\n return descriptor\n}\n\n/**\n * Create arguments string to keep arity.\n */\n\nfunction createArgumentsString (arity) {\n var str = ''\n\n for (var i = 0; i < arity; i++) {\n str += ', arg' + i\n }\n\n return str.substr(2)\n}\n\n/**\n * Create stack string from stack.\n */\n\nfunction createStackString (stack) {\n var str = this.name + ': ' + this.namespace\n\n if (this.message) {\n str += ' deprecated ' + this.message\n }\n\n for (var i = 0; i < stack.length; i++) {\n str += '\\n at ' + stack[i].toString()\n }\n\n return str\n}\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n var file = site[0]\n\n function deprecate (message) {\n // call to self as log\n log.call(deprecate, message)\n }\n\n deprecate._file = file\n deprecate._ignored = isignored(namespace)\n deprecate._namespace = namespace\n deprecate._traced = istraced(namespace)\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Determine if event emitter has listeners of a given type.\n *\n * The way to do this check is done three different ways in Node.js >= 0.8\n * so this consolidates them into a minimal set using instance methods.\n *\n * @param {EventEmitter} emitter\n * @param {string} type\n * @returns {boolean}\n * @private\n */\n\nfunction eehaslisteners (emitter, type) {\n var count = typeof emitter.listenerCount !== 'function'\n ? emitter.listeners(type).length\n : emitter.listenerCount(type)\n\n return count > 0\n}\n\n/**\n * Determine if namespace is ignored.\n */\n\nfunction isignored (namespace) {\n if (process.noDeprecation) {\n // --no-deprecation support\n return true\n }\n\n var str = process.env.NO_DEPRECATION || ''\n\n // namespace ignored\n return containsNamespace(str, namespace)\n}\n\n/**\n * Determine if namespace is traced.\n */\n\nfunction istraced (namespace) {\n if (process.traceDeprecation) {\n // --trace-deprecation support\n return true\n }\n\n var str = process.env.TRACE_DEPRECATION || ''\n\n // namespace traced\n return containsNamespace(str, namespace)\n}\n\n/**\n * Display deprecation message.\n */\n\nfunction log (message, site) {\n var haslisteners = eehaslisteners(process, 'deprecation')\n\n // abort early if no destination\n if (!haslisteners && this._ignored) {\n return\n }\n\n var caller\n var callFile\n var callSite\n var depSite\n var i = 0\n var seen = false\n var stack = getStack()\n var file = this._file\n\n if (site) {\n // provided site\n depSite = site\n callSite = callSiteLocation(stack[1])\n callSite.name = depSite.name\n file = callSite[0]\n } else {\n // get call site\n i = 2\n depSite = callSiteLocation(stack[i])\n callSite = depSite\n }\n\n // get caller of deprecated thing in relation to file\n for (; i < stack.length; i++) {\n caller = callSiteLocation(stack[i])\n callFile = caller[0]\n\n if (callFile === file) {\n seen = true\n } else if (callFile === this._file) {\n file = this._file\n } else if (seen) {\n break\n }\n }\n\n var key = caller\n ? depSite.join(':') + '__' + caller.join(':')\n : undefined\n\n if (key !== undefined && key in this._warned) {\n // already warned\n return\n }\n\n this._warned[key] = true\n\n // generate automatic message from call site\n var msg = message\n if (!msg) {\n msg = callSite === depSite || !callSite.name\n ? defaultMessage(depSite)\n : defaultMessage(callSite)\n }\n\n // emit deprecation if listeners exist\n if (haslisteners) {\n var err = DeprecationError(this._namespace, msg, stack.slice(i))\n process.emit('deprecation', err)\n return\n }\n\n // format and write message\n var format = process.stderr.isTTY\n ? formatColor\n : formatPlain\n var output = format.call(this, msg, caller, stack.slice(i))\n process.stderr.write(output + '\\n', 'utf8')\n}\n\n/**\n * Get call site location as array.\n */\n\nfunction callSiteLocation (callSite) {\n var file = callSite.getFileName() || '<anonymous>'\n var line = callSite.getLineNumber()\n var colm = callSite.getColumnNumber()\n\n if (callSite.isEval()) {\n file = callSite.getEvalOrigin() + ', ' + file\n }\n\n var site = [file, line, colm]\n\n site.callSite = callSite\n site.name = callSite.getFunctionName()\n\n return site\n}\n\n/**\n * Generate a default message from the site.\n */\n\nfunction defaultMessage (site) {\n var callSite = site.callSite\n var funcName = site.name\n\n // make useful anonymous name\n if (!funcName) {\n funcName = '<anonymous@' + formatLocation(site) + '>'\n }\n\n var context = callSite.getThis()\n var typeName = context && callSite.getTypeName()\n\n // ignore useless type name\n if (typeName === 'Object') {\n typeName = undefined\n }\n\n // make useful type name\n if (typeName === 'Function') {\n typeName = context.name || typeName\n }\n\n return typeName && callSite.getMethodName()\n ? typeName + '.' + funcName\n : funcName\n}\n\n/**\n * Format deprecation message without color.\n */\n\nfunction formatPlain (msg, caller, stack) {\n var timestamp = new Date().toUTCString()\n\n var formatted = timestamp +\n ' ' + this._namespace +\n ' deprecated ' + msg\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n at ' + stack[i].toString()\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' at ' + formatLocation(caller)\n }\n\n return formatted\n}\n\n/**\n * Format deprecation message with color.\n */\n\nfunction formatColor (msg, caller, stack) {\n var formatted = '\\x1b[36;1m' + this._namespace + '\\x1b[22;39m' + // bold cyan\n ' \\x1b[33;1mdeprecated\\x1b[22;39m' + // bold yellow\n ' \\x1b[0m' + msg + '\\x1b[39m' // reset\n\n // add stack trace\n if (this._traced) {\n for (var i = 0; i < stack.length; i++) {\n formatted += '\\n \\x1b[36mat ' + stack[i].toString() + '\\x1b[39m' // cyan\n }\n\n return formatted\n }\n\n if (caller) {\n formatted += ' \\x1b[36m' + formatLocation(caller) + '\\x1b[39m' // cyan\n }\n\n return formatted\n}\n\n/**\n * Format call site location.\n */\n\nfunction formatLocation (callSite) {\n return relative(basePath, callSite[0]) +\n ':' + callSite[1] +\n ':' + callSite[2]\n}\n\n/**\n * Get the stack as array of call sites.\n */\n\nfunction getStack () {\n var limit = Error.stackTraceLimit\n var obj = {}\n var prep = Error.prepareStackTrace\n\n Error.prepareStackTrace = prepareObjectStackTrace\n Error.stackTraceLimit = Math.max(10, limit)\n\n // capture the stack\n Error.captureStackTrace(obj)\n\n // slice this function off the top\n var stack = obj.stack.slice(1)\n\n Error.prepareStackTrace = prep\n Error.stackTraceLimit = limit\n\n return stack\n}\n\n/**\n * Capture call site stack from v8.\n */\n\nfunction prepareObjectStackTrace (obj, stack) {\n return stack\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n var args = createArgumentsString(fn.length)\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n site.name = fn.name\n\n // eslint-disable-next-line no-new-func\n var deprecatedfn = new Function('fn', 'log', 'deprecate', 'message', 'site',\n '\"use strict\"\\n' +\n 'return function (' + args + ') {' +\n 'log.call(deprecate, message, site)\\n' +\n 'return fn.apply(this, arguments)\\n' +\n '}')(fn, log, this, message, site)\n\n return deprecatedfn\n}\n\n/**\n * Wrap property in a deprecation message.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n\n var deprecate = this\n var stack = getStack()\n var site = callSiteLocation(stack[1])\n\n // set site name\n site.name = prop\n\n // convert data descriptor\n if ('value' in descriptor) {\n descriptor = convertDataDescriptorToAccessor(obj, prop, message)\n }\n\n var get = descriptor.get\n var set = descriptor.set\n\n // wrap getter\n if (typeof get === 'function') {\n descriptor.get = function getter () {\n log.call(deprecate, message, site)\n return get.apply(this, arguments)\n }\n }\n\n // wrap setter\n if (typeof set === 'function') {\n descriptor.set = function setter () {\n log.call(deprecate, message, site)\n return set.apply(this, arguments)\n }\n }\n\n Object.defineProperty(obj, prop, descriptor)\n}\n\n/**\n * Create DeprecationError for deprecation\n */\n\nfunction DeprecationError (namespace, message, stack) {\n var error = new Error()\n var stackString\n\n Object.defineProperty(error, 'constructor', {\n value: DeprecationError\n })\n\n Object.defineProperty(error, 'message', {\n configurable: true,\n enumerable: false,\n value: message,\n writable: true\n })\n\n Object.defineProperty(error, 'name', {\n enumerable: false,\n configurable: true,\n value: 'DeprecationError',\n writable: true\n })\n\n Object.defineProperty(error, 'namespace', {\n configurable: true,\n enumerable: false,\n value: namespace,\n writable: true\n })\n\n Object.defineProperty(error, 'stack', {\n configurable: true,\n enumerable: false,\n get: function () {\n if (stackString !== undefined) {\n return stackString\n }\n\n // prepare stack trace\n return (stackString = createStackString.call(this, stack))\n },\n set: function setter (val) {\n stackString = val\n }\n })\n\n return error\n}\n","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.message = codes\n\n// status message (lower-case) to code map\nstatus.code = createMessageToStatusCodeMap(codes)\n\n// array of status codes\nstatus.codes = createStatusCodeList(codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Create a map of message to status code.\n * @private\n */\n\nfunction createMessageToStatusCodeMap (codes) {\n var map = {}\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // populate map\n map[message.toLowerCase()] = status\n })\n\n return map\n}\n\n/**\n * Create a list of all status codes.\n * @private\n */\n\nfunction createStatusCodeList (codes) {\n return Object.keys(codes).map(function mapCode (code) {\n return Number(code)\n })\n}\n\n/**\n * Get the status code for given message.\n * @private\n */\n\nfunction getStatusCode (message) {\n var msg = message.toLowerCase()\n\n if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {\n throw new Error('invalid status message: \"' + message + '\"')\n }\n\n return status.code[msg]\n}\n\n/**\n * Get the status message for given code.\n * @private\n */\n\nfunction getStatusMessage (code) {\n if (!Object.prototype.hasOwnProperty.call(status.message, code)) {\n throw new Error('invalid status code: ' + code)\n }\n\n return status.message[code]\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n return getStatusMessage(code)\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n return getStatusMessage(n)\n }\n\n return getStatusCode(code)\n}\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\nmodule.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n var type = typeof arg\n if (type === 'object' && arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n } else if (type === 'number' && i === 0) {\n status = arg\n } else if (type === 'string') {\n msg = arg\n } else if (type === 'object') {\n props = arg\n } else {\n throw new TypeError('argument #' + (i + 1) + ' unsupported type ' + type)\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses.message[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses.message[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses.message[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create function to test is a value is a HttpError.\n * @private\n */\n\nfunction createIsHttpErrorFunction (HttpError) {\n return function isHttpError (val) {\n if (!val || typeof val !== 'object') {\n return false\n }\n\n if (val instanceof HttpError) {\n return true\n }\n\n return val instanceof Error &&\n typeof val.expose === 'boolean' &&\n typeof val.statusCode === 'number' && val.status === val.statusCode\n }\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses.message[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses.message[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n}\n\n/**\n * Get a class name from a name identifier.\n *\n * @param {string} name\n * @returns {string}\n * @private\n */\n\nfunction toClassName (name) {\n return name.slice(-5) === 'Error' ? name : name + 'Error'\n}\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","\"use strict\"\n\nvar BOMChar = \"\\uFEFF\"\n\nexports.PrependBOM = PrependBOMWrapper\nfunction PrependBOMWrapper (encoder, options) {\n this.encoder = encoder\n this.addBOM = true\n}\n\nPrependBOMWrapper.prototype.write = function (str) {\n if (this.addBOM) {\n str = BOMChar + str\n this.addBOM = false\n }\n\n return this.encoder.write(str)\n}\n\nPrependBOMWrapper.prototype.end = function () {\n return this.encoder.end()\n}\n\n// ------------------------------------------------------------------------------\n\nexports.StripBOM = StripBOMWrapper\nfunction StripBOMWrapper (decoder, options) {\n this.decoder = decoder\n this.pass = false\n this.options = options || {}\n}\n\nStripBOMWrapper.prototype.write = function (buf) {\n var res = this.decoder.write(buf)\n if (this.pass || !res) { return res }\n\n if (res[0] === BOMChar) {\n res = res.slice(1)\n if (typeof this.options.stripBOM === \"function\") { this.options.stripBOM() }\n }\n\n this.pass = true\n return res\n}\n\nStripBOMWrapper.prototype.end = function () {\n return this.decoder.end()\n}\n","\"use strict\"\n\nvar hasOwn = typeof Object.hasOwn === \"undefined\" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn\n\nfunction mergeModules (target, module) {\n for (var key in module) {\n if (hasOwn(module, key)) {\n target[key] = module[key]\n }\n }\n}\n\nmodule.exports = mergeModules\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Export Node.js internal encodings.\n\nmodule.exports = {\n // Encodings\n utf8: { type: \"_internal\", bomAware: true },\n cesu8: { type: \"_internal\", bomAware: true },\n unicode11utf8: \"utf8\",\n\n ucs2: { type: \"_internal\", bomAware: true },\n utf16le: \"ucs2\",\n\n binary: { type: \"_internal\" },\n base64: { type: \"_internal\" },\n hex: { type: \"_internal\" },\n\n // Codec.\n _internal: InternalCodec\n}\n\n// ------------------------------------------------------------------------------\n\nfunction InternalCodec (codecOptions, iconv) {\n this.enc = codecOptions.encodingName\n this.bomAware = codecOptions.bomAware\n\n if (this.enc === \"base64\") { this.encoder = InternalEncoderBase64 } else if (this.enc === \"utf8\") { this.encoder = InternalEncoderUtf8 } else if (this.enc === \"cesu8\") {\n this.enc = \"utf8\" // Use utf8 for decoding.\n this.encoder = InternalEncoderCesu8\n\n // Add decoder for versions of Node not supporting CESU-8\n if (Buffer.from(\"eda0bdedb2a9\", \"hex\").toString() !== \"💩\") {\n this.decoder = InternalDecoderCesu8\n this.defaultCharUnicode = iconv.defaultCharUnicode\n }\n }\n}\n\nInternalCodec.prototype.encoder = InternalEncoder\nInternalCodec.prototype.decoder = InternalDecoder\n\n// ------------------------------------------------------------------------------\n\n// We use node.js internal decoder. Its signature is the same as ours.\nvar StringDecoder = require(\"string_decoder\").StringDecoder\n\nfunction InternalDecoder (options, codec) {\n this.decoder = new StringDecoder(codec.enc)\n}\n\nInternalDecoder.prototype.write = function (buf) {\n if (!Buffer.isBuffer(buf)) {\n buf = Buffer.from(buf)\n }\n\n return this.decoder.write(buf)\n}\n\nInternalDecoder.prototype.end = function () {\n return this.decoder.end()\n}\n\n// ------------------------------------------------------------------------------\n// Encoder is mostly trivial\n\nfunction InternalEncoder (options, codec) {\n this.enc = codec.enc\n}\n\nInternalEncoder.prototype.write = function (str) {\n return Buffer.from(str, this.enc)\n}\n\nInternalEncoder.prototype.end = function () {\n}\n\n// ------------------------------------------------------------------------------\n// Except base64 encoder, which must keep its state.\n\nfunction InternalEncoderBase64 (options, codec) {\n this.prevStr = \"\"\n}\n\nInternalEncoderBase64.prototype.write = function (str) {\n str = this.prevStr + str\n var completeQuads = str.length - (str.length % 4)\n this.prevStr = str.slice(completeQuads)\n str = str.slice(0, completeQuads)\n\n return Buffer.from(str, \"base64\")\n}\n\nInternalEncoderBase64.prototype.end = function () {\n return Buffer.from(this.prevStr, \"base64\")\n}\n\n// ------------------------------------------------------------------------------\n// CESU-8 encoder is also special.\n\nfunction InternalEncoderCesu8 (options, codec) {\n}\n\nInternalEncoderCesu8.prototype.write = function (str) {\n var buf = Buffer.alloc(str.length * 3); var bufIdx = 0\n for (var i = 0; i < str.length; i++) {\n var charCode = str.charCodeAt(i)\n // Naive implementation, but it works because CESU-8 is especially easy\n // to convert from UTF-16 (which all JS strings are encoded in).\n if (charCode < 0x80) { buf[bufIdx++] = charCode } else if (charCode < 0x800) {\n buf[bufIdx++] = 0xC0 + (charCode >>> 6)\n buf[bufIdx++] = 0x80 + (charCode & 0x3f)\n } else { // charCode will always be < 0x10000 in javascript.\n buf[bufIdx++] = 0xE0 + (charCode >>> 12)\n buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f)\n buf[bufIdx++] = 0x80 + (charCode & 0x3f)\n }\n }\n return buf.slice(0, bufIdx)\n}\n\nInternalEncoderCesu8.prototype.end = function () {\n}\n\n// ------------------------------------------------------------------------------\n// CESU-8 decoder is not implemented in Node v4.0+\n\nfunction InternalDecoderCesu8 (options, codec) {\n this.acc = 0\n this.contBytes = 0\n this.accBytes = 0\n this.defaultCharUnicode = codec.defaultCharUnicode\n}\n\nInternalDecoderCesu8.prototype.write = function (buf) {\n var acc = this.acc; var contBytes = this.contBytes; var accBytes = this.accBytes\n var res = \"\"\n for (var i = 0; i < buf.length; i++) {\n var curByte = buf[i]\n if ((curByte & 0xC0) !== 0x80) { // Leading byte\n if (contBytes > 0) { // Previous code is invalid\n res += this.defaultCharUnicode\n contBytes = 0\n }\n\n if (curByte < 0x80) { // Single-byte code\n res += String.fromCharCode(curByte)\n } else if (curByte < 0xE0) { // Two-byte code\n acc = curByte & 0x1F\n contBytes = 1; accBytes = 1\n } else if (curByte < 0xF0) { // Three-byte code\n acc = curByte & 0x0F\n contBytes = 2; accBytes = 1\n } else { // Four or more are not supported for CESU-8.\n res += this.defaultCharUnicode\n }\n } else { // Continuation byte\n if (contBytes > 0) { // We're waiting for it.\n acc = (acc << 6) | (curByte & 0x3f)\n contBytes--; accBytes++\n if (contBytes === 0) {\n // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)\n if (accBytes === 2 && acc < 0x80 && acc > 0) {\n res += this.defaultCharUnicode\n } else if (accBytes === 3 && acc < 0x800) {\n res += this.defaultCharUnicode\n } else {\n // Actually add character.\n res += String.fromCharCode(acc)\n }\n }\n } else { // Unexpected continuation byte\n res += this.defaultCharUnicode\n }\n }\n }\n this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes\n return res\n}\n\nInternalDecoderCesu8.prototype.end = function () {\n var res = 0\n if (this.contBytes > 0) { res += this.defaultCharUnicode }\n return res\n}\n\n// ------------------------------------------------------------------------------\n// check the chunk boundaries for surrogate pair\n\nfunction InternalEncoderUtf8 (options, codec) {\n this.highSurrogate = \"\"\n}\n\nInternalEncoderUtf8.prototype.write = function (str) {\n if (this.highSurrogate) {\n str = this.highSurrogate + str\n this.highSurrogate = \"\"\n }\n\n if (str.length > 0) {\n var charCode = str.charCodeAt(str.length - 1)\n if (charCode >= 0xd800 && charCode < 0xdc00) {\n this.highSurrogate = str[str.length - 1]\n str = str.slice(0, str.length - 1)\n }\n }\n\n return Buffer.from(str, this.enc)\n}\n\nInternalEncoderUtf8.prototype.end = function () {\n if (this.highSurrogate) {\n var str = this.highSurrogate\n this.highSurrogate = \"\"\n return Buffer.from(str, this.enc)\n }\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// == UTF32-LE/BE codec. ==========================================================\n\nexports._utf32 = Utf32Codec\n\nfunction Utf32Codec (codecOptions, iconv) {\n this.iconv = iconv\n this.bomAware = true\n this.isLE = codecOptions.isLE\n}\n\nexports.utf32le = { type: \"_utf32\", isLE: true }\nexports.utf32be = { type: \"_utf32\", isLE: false }\n\n// Aliases\nexports.ucs4le = \"utf32le\"\nexports.ucs4be = \"utf32be\"\n\nUtf32Codec.prototype.encoder = Utf32Encoder\nUtf32Codec.prototype.decoder = Utf32Decoder\n\n// -- Encoding\n\nfunction Utf32Encoder (options, codec) {\n this.isLE = codec.isLE\n this.highSurrogate = 0\n}\n\nUtf32Encoder.prototype.write = function (str) {\n var src = Buffer.from(str, \"ucs2\")\n var dst = Buffer.alloc(src.length * 2)\n var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE\n var offset = 0\n\n for (var i = 0; i < src.length; i += 2) {\n var code = src.readUInt16LE(i)\n var isHighSurrogate = (code >= 0xD800 && code < 0xDC00)\n var isLowSurrogate = (code >= 0xDC00 && code < 0xE000)\n\n if (this.highSurrogate) {\n if (isHighSurrogate || !isLowSurrogate) {\n // There shouldn't be two high surrogates in a row, nor a high surrogate which isn't followed by a low\n // surrogate. If this happens, keep the pending high surrogate as a stand-alone semi-invalid character\n // (technically wrong, but expected by some applications, like Windows file names).\n write32.call(dst, this.highSurrogate, offset)\n offset += 4\n } else {\n // Create 32-bit value from high and low surrogates;\n var codepoint = (((this.highSurrogate - 0xD800) << 10) | (code - 0xDC00)) + 0x10000\n\n write32.call(dst, codepoint, offset)\n offset += 4\n this.highSurrogate = 0\n\n continue\n }\n }\n\n if (isHighSurrogate) { this.highSurrogate = code } else {\n // Even if the current character is a low surrogate, with no previous high surrogate, we'll\n // encode it as a semi-invalid stand-alone character for the same reasons expressed above for\n // unpaired high surrogates.\n write32.call(dst, code, offset)\n offset += 4\n this.highSurrogate = 0\n }\n }\n\n if (offset < dst.length) { dst = dst.slice(0, offset) }\n\n return dst\n}\n\nUtf32Encoder.prototype.end = function () {\n // Treat any leftover high surrogate as a semi-valid independent character.\n if (!this.highSurrogate) { return }\n\n var buf = Buffer.alloc(4)\n\n if (this.isLE) { buf.writeUInt32LE(this.highSurrogate, 0) } else { buf.writeUInt32BE(this.highSurrogate, 0) }\n\n this.highSurrogate = 0\n\n return buf\n}\n\n// -- Decoding\n\nfunction Utf32Decoder (options, codec) {\n this.isLE = codec.isLE\n this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0)\n this.overflow = []\n}\n\nUtf32Decoder.prototype.write = function (src) {\n if (src.length === 0) { return \"\" }\n\n var i = 0\n var codepoint = 0\n var dst = Buffer.alloc(src.length + 4)\n var offset = 0\n var isLE = this.isLE\n var overflow = this.overflow\n var badChar = this.badChar\n\n if (overflow.length > 0) {\n for (; i < src.length && overflow.length < 4; i++) { overflow.push(src[i]) }\n\n if (overflow.length === 4) {\n // NOTE: codepoint is a signed int32 and can be negative.\n // NOTE: We copied this block from below to help V8 optimize it (it works with array, not buffer).\n if (isLE) {\n codepoint = overflow[i] | (overflow[i + 1] << 8) | (overflow[i + 2] << 16) | (overflow[i + 3] << 24)\n } else {\n codepoint = overflow[i + 3] | (overflow[i + 2] << 8) | (overflow[i + 1] << 16) | (overflow[i] << 24)\n }\n overflow.length = 0\n\n offset = _writeCodepoint(dst, offset, codepoint, badChar)\n }\n }\n\n // Main loop. Should be as optimized as possible.\n for (; i < src.length - 3; i += 4) {\n // NOTE: codepoint is a signed int32 and can be negative.\n if (isLE) {\n codepoint = src[i] | (src[i + 1] << 8) | (src[i + 2] << 16) | (src[i + 3] << 24)\n } else {\n codepoint = src[i + 3] | (src[i + 2] << 8) | (src[i + 1] << 16) | (src[i] << 24)\n }\n offset = _writeCodepoint(dst, offset, codepoint, badChar)\n }\n\n // Keep overflowing bytes.\n for (; i < src.length; i++) {\n overflow.push(src[i])\n }\n\n return dst.slice(0, offset).toString(\"ucs2\")\n}\n\nfunction _writeCodepoint (dst, offset, codepoint, badChar) {\n // NOTE: codepoint is signed int32 and can be negative. We keep it that way to help V8 with optimizations.\n if (codepoint < 0 || codepoint > 0x10FFFF) {\n // Not a valid Unicode codepoint\n codepoint = badChar\n }\n\n // Ephemeral Planes: Write high surrogate.\n if (codepoint >= 0x10000) {\n codepoint -= 0x10000\n\n var high = 0xD800 | (codepoint >> 10)\n dst[offset++] = high & 0xff\n dst[offset++] = high >> 8\n\n // Low surrogate is written below.\n var codepoint = 0xDC00 | (codepoint & 0x3FF)\n }\n\n // Write BMP char or low surrogate.\n dst[offset++] = codepoint & 0xff\n dst[offset++] = codepoint >> 8\n\n return offset\n};\n\nUtf32Decoder.prototype.end = function () {\n this.overflow.length = 0\n}\n\n// == UTF-32 Auto codec =============================================================\n// Decoder chooses automatically from UTF-32LE and UTF-32BE using BOM and space-based heuristic.\n// Defaults to UTF-32LE. http://en.wikipedia.org/wiki/UTF-32\n// Encoder/decoder default can be changed: iconv.decode(buf, 'utf32', {defaultEncoding: 'utf-32be'});\n\n// Encoder prepends BOM (which can be overridden with (addBOM: false}).\n\nexports.utf32 = Utf32AutoCodec\nexports.ucs4 = \"utf32\"\n\nfunction Utf32AutoCodec (options, iconv) {\n this.iconv = iconv\n}\n\nUtf32AutoCodec.prototype.encoder = Utf32AutoEncoder\nUtf32AutoCodec.prototype.decoder = Utf32AutoDecoder\n\n// -- Encoding\n\nfunction Utf32AutoEncoder (options, codec) {\n options = options || {}\n\n if (options.addBOM === undefined) {\n options.addBOM = true\n }\n\n this.encoder = codec.iconv.getEncoder(options.defaultEncoding || \"utf-32le\", options)\n}\n\nUtf32AutoEncoder.prototype.write = function (str) {\n return this.encoder.write(str)\n}\n\nUtf32AutoEncoder.prototype.end = function () {\n return this.encoder.end()\n}\n\n// -- Decoding\n\nfunction Utf32AutoDecoder (options, codec) {\n this.decoder = null\n this.initialBufs = []\n this.initialBufsLen = 0\n this.options = options || {}\n this.iconv = codec.iconv\n}\n\nUtf32AutoDecoder.prototype.write = function (buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBufs.push(buf)\n this.initialBufsLen += buf.length\n\n if (this.initialBufsLen < 32) // We need more bytes to use space heuristic (see below)\n { return \"\" }\n\n // We have enough bytes -> detect endianness.\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.write(buf)\n}\n\nUtf32AutoDecoder.prototype.end = function () {\n if (!this.decoder) {\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n var trail = this.decoder.end()\n if (trail) { resStr += trail }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.end()\n}\n\nfunction detectEncoding (bufs, defaultEncoding) {\n var b = []\n var charsProcessed = 0\n var invalidLE = 0; var invalidBE = 0 // Number of invalid chars when decoded as LE or BE.\n var bmpCharsLE = 0; var bmpCharsBE = 0 // Number of BMP chars when decoded as LE or BE.\n\n outerLoop:\n for (var i = 0; i < bufs.length; i++) {\n var buf = bufs[i]\n for (var j = 0; j < buf.length; j++) {\n b.push(buf[j])\n if (b.length === 4) {\n if (charsProcessed === 0) {\n // Check BOM first.\n if (b[0] === 0xFF && b[1] === 0xFE && b[2] === 0 && b[3] === 0) {\n return \"utf-32le\"\n }\n if (b[0] === 0 && b[1] === 0 && b[2] === 0xFE && b[3] === 0xFF) {\n return \"utf-32be\"\n }\n }\n\n if (b[0] !== 0 || b[1] > 0x10) invalidBE++\n if (b[3] !== 0 || b[2] > 0x10) invalidLE++\n\n if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++\n if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++\n\n b.length = 0\n charsProcessed++\n\n if (charsProcessed >= 100) {\n break outerLoop\n }\n }\n }\n }\n\n // Make decisions.\n if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return \"utf-32be\"\n if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return \"utf-32le\"\n\n // Couldn't decide (likely all zeros or not enough data).\n return defaultEncoding || \"utf-32le\"\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js\n\n// == UTF16-BE codec. ==========================================================\n\nexports.utf16be = Utf16BECodec\nfunction Utf16BECodec () {\n}\n\nUtf16BECodec.prototype.encoder = Utf16BEEncoder\nUtf16BECodec.prototype.decoder = Utf16BEDecoder\nUtf16BECodec.prototype.bomAware = true\n\n// -- Encoding\n\nfunction Utf16BEEncoder () {\n}\n\nUtf16BEEncoder.prototype.write = function (str) {\n var buf = Buffer.from(str, \"ucs2\")\n for (var i = 0; i < buf.length; i += 2) {\n var tmp = buf[i]; buf[i] = buf[i + 1]; buf[i + 1] = tmp\n }\n return buf\n}\n\nUtf16BEEncoder.prototype.end = function () {\n}\n\n// -- Decoding\n\nfunction Utf16BEDecoder () {\n this.overflowByte = -1\n}\n\nUtf16BEDecoder.prototype.write = function (buf) {\n if (buf.length == 0) { return \"\" }\n\n var buf2 = Buffer.alloc(buf.length + 1)\n var i = 0; var j = 0\n\n if (this.overflowByte !== -1) {\n buf2[0] = buf[0]\n buf2[1] = this.overflowByte\n i = 1; j = 2\n }\n\n for (; i < buf.length - 1; i += 2, j += 2) {\n buf2[j] = buf[i + 1]\n buf2[j + 1] = buf[i]\n }\n\n this.overflowByte = (i == buf.length - 1) ? buf[buf.length - 1] : -1\n\n return buf2.slice(0, j).toString(\"ucs2\")\n}\n\nUtf16BEDecoder.prototype.end = function () {\n this.overflowByte = -1\n}\n\n// == UTF-16 codec =============================================================\n// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.\n// Defaults to UTF-16LE, as it's prevalent and default in Node.\n// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le\n// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});\n\n// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).\n\nexports.utf16 = Utf16Codec\nfunction Utf16Codec (codecOptions, iconv) {\n this.iconv = iconv\n}\n\nUtf16Codec.prototype.encoder = Utf16Encoder\nUtf16Codec.prototype.decoder = Utf16Decoder\n\n// -- Encoding (pass-through)\n\nfunction Utf16Encoder (options, codec) {\n options = options || {}\n if (options.addBOM === undefined) { options.addBOM = true }\n this.encoder = codec.iconv.getEncoder(\"utf-16le\", options)\n}\n\nUtf16Encoder.prototype.write = function (str) {\n return this.encoder.write(str)\n}\n\nUtf16Encoder.prototype.end = function () {\n return this.encoder.end()\n}\n\n// -- Decoding\n\nfunction Utf16Decoder (options, codec) {\n this.decoder = null\n this.initialBufs = []\n this.initialBufsLen = 0\n\n this.options = options || {}\n this.iconv = codec.iconv\n}\n\nUtf16Decoder.prototype.write = function (buf) {\n if (!this.decoder) {\n // Codec is not chosen yet. Accumulate initial bytes.\n this.initialBufs.push(buf)\n this.initialBufsLen += buf.length\n\n if (this.initialBufsLen < 16) // We need more bytes to use space heuristic (see below)\n { return \"\" }\n\n // We have enough bytes -> detect endianness.\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n\n return this.decoder.write(buf)\n}\n\nUtf16Decoder.prototype.end = function () {\n if (!this.decoder) {\n var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding)\n this.decoder = this.iconv.getDecoder(encoding, this.options)\n\n var resStr = \"\"\n for (var i = 0; i < this.initialBufs.length; i++) { resStr += this.decoder.write(this.initialBufs[i]) }\n\n var trail = this.decoder.end()\n if (trail) { resStr += trail }\n\n this.initialBufs.length = this.initialBufsLen = 0\n return resStr\n }\n return this.decoder.end()\n}\n\nfunction detectEncoding (bufs, defaultEncoding) {\n var b = []\n var charsProcessed = 0\n // Number of ASCII chars when decoded as LE or BE.\n var asciiCharsLE = 0\n var asciiCharsBE = 0\n\n outerLoop:\n for (var i = 0; i < bufs.length; i++) {\n var buf = bufs[i]\n for (var j = 0; j < buf.length; j++) {\n b.push(buf[j])\n if (b.length === 2) {\n if (charsProcessed === 0) {\n // Check BOM first.\n if (b[0] === 0xFF && b[1] === 0xFE) return \"utf-16le\"\n if (b[0] === 0xFE && b[1] === 0xFF) return \"utf-16be\"\n }\n\n if (b[0] === 0 && b[1] !== 0) asciiCharsBE++\n if (b[0] !== 0 && b[1] === 0) asciiCharsLE++\n\n b.length = 0\n charsProcessed++\n\n if (charsProcessed >= 100) {\n break outerLoop\n }\n }\n }\n }\n\n // Make decisions.\n // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.\n // So, we count ASCII as if it was LE or BE, and decide from that.\n if (asciiCharsBE > asciiCharsLE) return \"utf-16be\"\n if (asciiCharsBE < asciiCharsLE) return \"utf-16le\"\n\n // Couldn't decide (likely all zeros or not enough data).\n return defaultEncoding || \"utf-16le\"\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152\n// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3\n\nexports.utf7 = Utf7Codec\nexports.unicode11utf7 = \"utf7\" // Alias UNICODE-1-1-UTF-7\nfunction Utf7Codec (codecOptions, iconv) {\n this.iconv = iconv\n};\n\nUtf7Codec.prototype.encoder = Utf7Encoder\nUtf7Codec.prototype.decoder = Utf7Decoder\nUtf7Codec.prototype.bomAware = true\n\n// -- Encoding\n\n// Why scape ()?./?\n// eslint-disable-next-line no-useless-escape\nvar nonDirectChars = /[^A-Za-z0-9'\\(\\),-\\.\\/:\\? \\n\\r\\t]+/g\n\nfunction Utf7Encoder (options, codec) {\n this.iconv = codec.iconv\n}\n\nUtf7Encoder.prototype.write = function (str) {\n // Naive implementation.\n // Non-direct chars are encoded as \"+<base64>-\"; single \"+\" char is encoded as \"+-\".\n return Buffer.from(str.replace(nonDirectChars, function (chunk) {\n return \"+\" + (chunk === \"+\"\n ? \"\"\n : this.iconv.encode(chunk, \"utf16-be\").toString(\"base64\").replace(/=+$/, \"\")) +\n \"-\"\n }.bind(this)))\n}\n\nUtf7Encoder.prototype.end = function () {\n}\n\n// -- Decoding\n\nfunction Utf7Decoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = \"\"\n}\n\n// Why scape /?\n// eslint-disable-next-line no-useless-escape\nvar base64Regex = /[A-Za-z0-9\\/+]/\nvar base64Chars = []\nfor (var i = 0; i < 256; i++) { base64Chars[i] = base64Regex.test(String.fromCharCode(i)) }\n\nvar plusChar = \"+\".charCodeAt(0)\nvar minusChar = \"-\".charCodeAt(0)\nvar andChar = \"&\".charCodeAt(0)\n\nUtf7Decoder.prototype.write = function (buf) {\n var res = \"\"; var lastI = 0\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n\n // The decoder is more involved as we must handle chunks in stream.\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '+'\n if (buf[i] == plusChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\") // Write direct chars.\n lastI = i + 1\n inBase64 = true\n }\n } else { // We decode base64.\n if (!base64Chars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"+-\" -> \"+\"\n res += \"+\"\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\")\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n if (buf[i] != minusChar) // Minus is absorbed after base64.\n { i-- }\n\n lastI = i + 1\n inBase64 = false\n base64Accum = \"\"\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\") // Write direct chars.\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\")\n\n var canBeDecoded = b64str.length - (b64str.length % 8) // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded) // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded)\n\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n this.inBase64 = inBase64\n this.base64Accum = base64Accum\n\n return res\n}\n\nUtf7Decoder.prototype.end = function () {\n var res = \"\"\n if (this.inBase64 && this.base64Accum.length > 0) { res = this.iconv.decode(Buffer.from(this.base64Accum, \"base64\"), \"utf16-be\") }\n\n this.inBase64 = false\n this.base64Accum = \"\"\n return res\n}\n\n// UTF-7-IMAP codec.\n// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)\n// Differences:\n// * Base64 part is started by \"&\" instead of \"+\"\n// * Direct characters are 0x20-0x7E, except \"&\" (0x26)\n// * In Base64, \",\" is used instead of \"/\"\n// * Base64 must not be used to represent direct characters.\n// * No implicit shift back from Base64 (should always end with '-')\n// * String must end in non-shifted position.\n// * \"-&\" while in base64 is not allowed.\n\nexports.utf7imap = Utf7IMAPCodec\nfunction Utf7IMAPCodec (codecOptions, iconv) {\n this.iconv = iconv\n};\n\nUtf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder\nUtf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder\nUtf7IMAPCodec.prototype.bomAware = true\n\n// -- Encoding\n\nfunction Utf7IMAPEncoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = Buffer.alloc(6)\n this.base64AccumIdx = 0\n}\n\nUtf7IMAPEncoder.prototype.write = function (str) {\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n var base64AccumIdx = this.base64AccumIdx\n var buf = Buffer.alloc(str.length * 5 + 10); var bufIdx = 0\n\n for (var i = 0; i < str.length; i++) {\n var uChar = str.charCodeAt(i)\n if (uChar >= 0x20 && uChar <= 0x7E) { // Direct character or '&'.\n if (inBase64) {\n if (base64AccumIdx > 0) {\n bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString(\"base64\").replace(/\\//g, \",\").replace(/=+$/, \"\"), bufIdx)\n base64AccumIdx = 0\n }\n\n buf[bufIdx++] = minusChar // Write '-', then go to direct mode.\n inBase64 = false\n }\n\n if (!inBase64) {\n buf[bufIdx++] = uChar // Write direct character\n\n if (uChar === andChar) // Ampersand -> '&-'\n { buf[bufIdx++] = minusChar }\n }\n } else { // Non-direct character\n if (!inBase64) {\n buf[bufIdx++] = andChar // Write '&', then go to base64 mode.\n inBase64 = true\n }\n if (inBase64) {\n base64Accum[base64AccumIdx++] = uChar >> 8\n base64Accum[base64AccumIdx++] = uChar & 0xFF\n\n if (base64AccumIdx == base64Accum.length) {\n bufIdx += buf.write(base64Accum.toString(\"base64\").replace(/\\//g, \",\"), bufIdx)\n base64AccumIdx = 0\n }\n }\n }\n }\n\n this.inBase64 = inBase64\n this.base64AccumIdx = base64AccumIdx\n\n return buf.slice(0, bufIdx)\n}\n\nUtf7IMAPEncoder.prototype.end = function () {\n var buf = Buffer.alloc(10); var bufIdx = 0\n if (this.inBase64) {\n if (this.base64AccumIdx > 0) {\n bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString(\"base64\").replace(/\\//g, \",\").replace(/=+$/, \"\"), bufIdx)\n this.base64AccumIdx = 0\n }\n\n buf[bufIdx++] = minusChar // Write '-', then go to direct mode.\n this.inBase64 = false\n }\n\n return buf.slice(0, bufIdx)\n}\n\n// -- Decoding\n\nfunction Utf7IMAPDecoder (options, codec) {\n this.iconv = codec.iconv\n this.inBase64 = false\n this.base64Accum = \"\"\n}\n\nvar base64IMAPChars = base64Chars.slice()\nbase64IMAPChars[\",\".charCodeAt(0)] = true\n\nUtf7IMAPDecoder.prototype.write = function (buf) {\n var res = \"\"; var lastI = 0\n var inBase64 = this.inBase64\n var base64Accum = this.base64Accum\n\n // The decoder is more involved as we must handle chunks in stream.\n // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).\n\n for (var i = 0; i < buf.length; i++) {\n if (!inBase64) { // We're in direct mode.\n // Write direct chars until '&'\n if (buf[i] == andChar) {\n res += this.iconv.decode(buf.slice(lastI, i), \"ascii\") // Write direct chars.\n lastI = i + 1\n inBase64 = true\n }\n } else { // We decode base64.\n if (!base64IMAPChars[buf[i]]) { // Base64 ended.\n if (i == lastI && buf[i] == minusChar) { // \"&-\" -> \"&\"\n res += \"&\"\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i), \"ascii\").replace(/,/g, \"/\")\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n if (buf[i] != minusChar) // Minus may be absorbed after base64.\n { i-- }\n\n lastI = i + 1\n inBase64 = false\n base64Accum = \"\"\n }\n }\n }\n\n if (!inBase64) {\n res += this.iconv.decode(buf.slice(lastI), \"ascii\") // Write direct chars.\n } else {\n var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), \"ascii\").replace(/,/g, \"/\")\n\n var canBeDecoded = b64str.length - (b64str.length % 8) // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.\n base64Accum = b64str.slice(canBeDecoded) // The rest will be decoded in future.\n b64str = b64str.slice(0, canBeDecoded)\n\n res += this.iconv.decode(Buffer.from(b64str, \"base64\"), \"utf16-be\")\n }\n\n this.inBase64 = inBase64\n this.base64Accum = base64Accum\n\n return res\n}\n\nUtf7IMAPDecoder.prototype.end = function () {\n var res = \"\"\n if (this.inBase64 && this.base64Accum.length > 0) { res = this.iconv.decode(Buffer.from(this.base64Accum, \"base64\"), \"utf16-be\") }\n\n this.inBase64 = false\n this.base64Accum = \"\"\n return res\n}\n","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that\n// correspond to encoded bytes (if 128 - then lower half is ASCII).\n\nexports._sbcs = SBCSCodec\nfunction SBCSCodec (codecOptions, iconv) {\n if (!codecOptions) {\n throw new Error(\"SBCS codec is called without the data.\")\n }\n\n // Prepare char buffer for decoding.\n if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) {\n throw new Error(\"Encoding '\" + codecOptions.type + \"' has incorrect 'chars' (must be of len 128 or 256)\")\n }\n\n if (codecOptions.chars.length === 128) {\n var asciiString = \"\"\n for (var i = 0; i < 128; i++) {\n asciiString += String.fromCharCode(i)\n }\n codecOptions.chars = asciiString + codecOptions.chars\n }\n\n this.decodeBuf = Buffer.from(codecOptions.chars, \"ucs2\")\n\n // Encoding buffer.\n var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0))\n\n for (var i = 0; i < codecOptions.chars.length; i++) {\n encodeBuf[codecOptions.chars.charCodeAt(i)] = i\n }\n\n this.encodeBuf = encodeBuf\n}\n\nSBCSCodec.prototype.encoder = SBCSEncoder\nSBCSCodec.prototype.decoder = SBCSDecoder\n\nfunction SBCSEncoder (options, codec) {\n this.encodeBuf = codec.encodeBuf\n}\n\nSBCSEncoder.prototype.write = function (str) {\n var buf = Buffer.alloc(str.length)\n for (var i = 0; i < str.length; i++) {\n buf[i] = this.encodeBuf[str.charCodeAt(i)]\n }\n\n return buf\n}\n\nSBCSEncoder.prototype.end = function () {\n}\n\nfunction SBCSDecoder (options, codec) {\n this.decodeBuf = codec.decodeBuf\n}\n\nSBCSDecoder.prototype.write = function (buf) {\n // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.\n var decodeBuf = this.decodeBuf\n var newBuf = Buffer.alloc(buf.length * 2)\n var idx1 = 0; var idx2 = 0\n for (var i = 0; i < buf.length; i++) {\n idx1 = buf[i] * 2; idx2 = i * 2\n newBuf[idx2] = decodeBuf[idx1]\n newBuf[idx2 + 1] = decodeBuf[idx1 + 1]\n }\n return newBuf.toString(\"ucs2\")\n}\n\nSBCSDecoder.prototype.end = function () {\n}\n","\"use strict\"\n\n// Manually added data to be used by sbcs codec in addition to generated one.\n\nmodule.exports = {\n // Not supported by iconv, not sure why.\n 10029: \"maccenteuro\",\n maccenteuro: {\n type: \"_sbcs\",\n chars: \"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\"\n },\n\n 808: \"cp808\",\n ibm808: \"cp808\",\n cp808: {\n type: \"_sbcs\",\n chars: \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ \"\n },\n\n mik: {\n type: \"_sbcs\",\n chars: \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n\n cp720: {\n type: \"_sbcs\",\n chars: \"\\x80\\x81éâ\\x84à\\x86çêëèïî\\x8d\\x8e\\x8f\\x90\\u0651\\u0652ô¤ـûùءآأؤ£إئابةتثجحخدذرزسشص«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ضطظعغفµقكلمنهوىي≡\\u064b\\u064c\\u064d\\u064e\\u064f\\u0650≈°∙·√ⁿ²■\\u00a0\"\n },\n\n // Aliases of generated encodings.\n ascii8bit: \"ascii\",\n usascii: \"ascii\",\n ansix34: \"ascii\",\n ansix341968: \"ascii\",\n ansix341986: \"ascii\",\n csascii: \"ascii\",\n cp367: \"ascii\",\n ibm367: \"ascii\",\n isoir6: \"ascii\",\n iso646us: \"ascii\",\n iso646irv: \"ascii\",\n us: \"ascii\",\n\n latin1: \"iso88591\",\n latin2: \"iso88592\",\n latin3: \"iso88593\",\n latin4: \"iso88594\",\n latin5: \"iso88599\",\n latin6: \"iso885910\",\n latin7: \"iso885913\",\n latin8: \"iso885914\",\n latin9: \"iso885915\",\n latin10: \"iso885916\",\n\n csisolatin1: \"iso88591\",\n csisolatin2: \"iso88592\",\n csisolatin3: \"iso88593\",\n csisolatin4: \"iso88594\",\n csisolatincyrillic: \"iso88595\",\n csisolatinarabic: \"iso88596\",\n csisolatingreek: \"iso88597\",\n csisolatinhebrew: \"iso88598\",\n csisolatin5: \"iso88599\",\n csisolatin6: \"iso885910\",\n\n l1: \"iso88591\",\n l2: \"iso88592\",\n l3: \"iso88593\",\n l4: \"iso88594\",\n l5: \"iso88599\",\n l6: \"iso885910\",\n l7: \"iso885913\",\n l8: \"iso885914\",\n l9: \"iso885915\",\n l10: \"iso885916\",\n\n isoir14: \"iso646jp\",\n isoir57: \"iso646cn\",\n isoir100: \"iso88591\",\n isoir101: \"iso88592\",\n isoir109: \"iso88593\",\n isoir110: \"iso88594\",\n isoir144: \"iso88595\",\n isoir127: \"iso88596\",\n isoir126: \"iso88597\",\n isoir138: \"iso88598\",\n isoir148: \"iso88599\",\n isoir157: \"iso885910\",\n isoir166: \"tis620\",\n isoir179: \"iso885913\",\n isoir199: \"iso885914\",\n isoir203: \"iso885915\",\n isoir226: \"iso885916\",\n\n cp819: \"iso88591\",\n ibm819: \"iso88591\",\n\n cyrillic: \"iso88595\",\n\n arabic: \"iso88596\",\n arabic8: \"iso88596\",\n ecma114: \"iso88596\",\n asmo708: \"iso88596\",\n\n greek: \"iso88597\",\n greek8: \"iso88597\",\n ecma118: \"iso88597\",\n elot928: \"iso88597\",\n\n hebrew: \"iso88598\",\n hebrew8: \"iso88598\",\n\n turkish: \"iso88599\",\n turkish8: \"iso88599\",\n\n thai: \"iso885911\",\n thai8: \"iso885911\",\n\n celtic: \"iso885914\",\n celtic8: \"iso885914\",\n isoceltic: \"iso885914\",\n\n tis6200: \"tis620\",\n tis62025291: \"tis620\",\n tis62025330: \"tis620\",\n\n 10000: \"macroman\",\n 10006: \"macgreek\",\n 10007: \"maccyrillic\",\n 10079: \"maciceland\",\n 10081: \"macturkish\",\n\n cspc8codepage437: \"cp437\",\n cspc775baltic: \"cp775\",\n cspc850multilingual: \"cp850\",\n cspcp852: \"cp852\",\n cspc862latinhebrew: \"cp862\",\n cpgr: \"cp869\",\n\n msee: \"cp1250\",\n mscyrl: \"cp1251\",\n msansi: \"cp1252\",\n msgreek: \"cp1253\",\n msturk: \"cp1254\",\n mshebr: \"cp1255\",\n msarab: \"cp1256\",\n winbaltrim: \"cp1257\",\n\n cp20866: \"koi8r\",\n 20866: \"koi8r\",\n ibm878: \"koi8r\",\n cskoi8r: \"koi8r\",\n\n cp21866: \"koi8u\",\n 21866: \"koi8u\",\n ibm1168: \"koi8u\",\n\n strk10482002: \"rk1048\",\n\n tcvn5712: \"tcvn\",\n tcvn57121: \"tcvn\",\n\n gb198880: \"iso646cn\",\n cn: \"iso646cn\",\n\n csiso14jisc6220ro: \"iso646jp\",\n jisc62201969ro: \"iso646jp\",\n jp: \"iso646jp\",\n\n cshproman8: \"hproman8\",\n r8: \"hproman8\",\n roman8: \"hproman8\",\n xroman8: \"hproman8\",\n ibm1051: \"hproman8\",\n\n mac: \"macintosh\",\n csmacintosh: \"macintosh\"\n}\n","\"use strict\";\n\n// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.\nmodule.exports = {\n \"437\": \"cp437\",\n \"737\": \"cp737\",\n \"775\": \"cp775\",\n \"850\": \"cp850\",\n \"852\": \"cp852\",\n \"855\": \"cp855\",\n \"856\": \"cp856\",\n \"857\": \"cp857\",\n \"858\": \"cp858\",\n \"860\": \"cp860\",\n \"861\": \"cp861\",\n \"862\": \"cp862\",\n \"863\": \"cp863\",\n \"864\": \"cp864\",\n \"865\": \"cp865\",\n \"866\": \"cp866\",\n \"869\": \"cp869\",\n \"874\": \"windows874\",\n \"922\": \"cp922\",\n \"1046\": \"cp1046\",\n \"1124\": \"cp1124\",\n \"1125\": \"cp1125\",\n \"1129\": \"cp1129\",\n \"1133\": \"cp1133\",\n \"1161\": \"cp1161\",\n \"1162\": \"cp1162\",\n \"1163\": \"cp1163\",\n \"1250\": \"windows1250\",\n \"1251\": \"windows1251\",\n \"1252\": \"windows1252\",\n \"1253\": \"windows1253\",\n \"1254\": \"windows1254\",\n \"1255\": \"windows1255\",\n \"1256\": \"windows1256\",\n \"1257\": \"windows1257\",\n \"1258\": \"windows1258\",\n \"28591\": \"iso88591\",\n \"28592\": \"iso88592\",\n \"28593\": \"iso88593\",\n \"28594\": \"iso88594\",\n \"28595\": \"iso88595\",\n \"28596\": \"iso88596\",\n \"28597\": \"iso88597\",\n \"28598\": \"iso88598\",\n \"28599\": \"iso88599\",\n \"28600\": \"iso885910\",\n \"28601\": \"iso885911\",\n \"28603\": \"iso885913\",\n \"28604\": \"iso885914\",\n \"28605\": \"iso885915\",\n \"28606\": \"iso885916\",\n \"windows874\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"win874\": \"windows874\",\n \"cp874\": \"windows874\",\n \"windows1250\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"win1250\": \"windows1250\",\n \"cp1250\": \"windows1250\",\n \"windows1251\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"win1251\": \"windows1251\",\n \"cp1251\": \"windows1251\",\n \"windows1252\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"win1252\": \"windows1252\",\n \"cp1252\": \"windows1252\",\n \"windows1253\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"win1253\": \"windows1253\",\n \"cp1253\": \"windows1253\",\n \"windows1254\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"win1254\": \"windows1254\",\n \"cp1254\": \"windows1254\",\n \"windows1255\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת���\"\n },\n \"win1255\": \"windows1255\",\n \"cp1255\": \"windows1255\",\n \"windows1256\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے\"\n },\n \"win1256\": \"windows1256\",\n \"cp1256\": \"windows1256\",\n \"windows1257\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\"\n },\n \"win1257\": \"windows1257\",\n \"cp1257\": \"windows1257\",\n \"windows1258\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"win1258\": \"windows1258\",\n \"cp1258\": \"windows1258\",\n \"iso88591\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28591\": \"iso88591\",\n \"iso88592\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ą˘Ł¤ĽŚ§¨ŠŞŤŹŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\"\n },\n \"cp28592\": \"iso88592\",\n \"iso88593\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ħ˘£¤�Ĥ§¨İŞĞĴ�ݰħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙\"\n },\n \"cp28593\": \"iso88593\",\n \"iso88594\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄĸŖ¤Ĩϧ¨ŠĒĢŦޝ°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙\"\n },\n \"cp28594\": \"iso88594\",\n \"iso88595\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ЁЂЃЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ\"\n },\n \"cp28595\": \"iso88595\",\n \"iso88596\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
���¤�������،�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������\"\n },\n \"cp28596\": \"iso88596\",\n \"iso88597\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
‘’£€₯¦§¨©ͺ«¬�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\"\n },\n \"cp28597\": \"iso88597\",\n \"iso88598\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
�¢£¤¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת���\"\n },\n \"cp28598\": \"iso88598\",\n \"iso88599\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\"\n },\n \"cp28599\": \"iso88599\",\n \"iso885910\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄĒĢĪĨͧĻĐŠŦŽŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ\"\n },\n \"cp28600\": \"iso885910\",\n \"iso885911\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"cp28601\": \"iso885911\",\n \"iso885913\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
”¢£¤„¦§Ø©Ŗ«¬®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’\"\n },\n \"cp28603\": \"iso885913\",\n \"iso885914\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ\"\n },\n \"cp28604\": \"iso885914\",\n \"iso885915\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"cp28605\": \"iso885915\",\n \"iso885916\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ĄąŁ€„Чš©Ș«ŹźŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ\"\n },\n \"cp28606\": \"iso885916\",\n \"cp437\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm437\": \"cp437\",\n \"csibm437\": \"cp437\",\n \"cp737\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \"\n },\n \"ibm737\": \"cp737\",\n \"csibm737\": \"cp737\",\n \"cp775\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’±“¾¶§÷„°∙·¹³²■ \"\n },\n \"ibm775\": \"cp775\",\n \"csibm775\": \"cp775\",\n \"cp850\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm850\": \"cp850\",\n \"csibm850\": \"cp850\",\n \"cp852\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´˝˛ˇ˘§÷¸°¨˙űŘř■ \"\n },\n \"ibm852\": \"cp852\",\n \"csibm852\": \"cp852\",\n \"cp855\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№ыЫзЗшШэЭщЩчЧ§■ \"\n },\n \"ibm855\": \"cp855\",\n \"csibm855\": \"cp855\",\n \"cp856\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm856\": \"cp856\",\n \"csibm856\": \"cp856\",\n \"cp857\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´±�¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm857\": \"cp857\",\n \"csibm857\": \"cp857\",\n \"cp858\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ \"\n },\n \"ibm858\": \"cp858\",\n \"csibm858\": \"cp858\",\n \"cp860\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm860\": \"cp860\",\n \"csibm860\": \"cp860\",\n \"cp861\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm861\": \"cp861\",\n \"csibm861\": \"cp861\",\n \"cp862\": {\n \"type\": \"_sbcs\",\n \"chars\": \"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm862\": \"cp862\",\n \"csibm862\": \"cp862\",\n \"cp863\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm863\": \"cp863\",\n \"csibm863\": \"cp863\",\n \"cp864\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�\"\n },\n \"ibm864\": \"cp864\",\n \"csibm864\": \"cp864\",\n \"cp865\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \"\n },\n \"ibm865\": \"cp865\",\n \"csibm865\": \"cp865\",\n \"cp866\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \"\n },\n \"ibm866\": \"cp866\",\n \"csibm866\": \"cp866\",\n \"cp869\": {\n \"type\": \"_sbcs\",\n \"chars\": \"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄±υφχ§ψ΅°¨ωϋΰώ■ \"\n },\n \"ibm869\": \"cp869\",\n \"csibm869\": \"cp869\",\n \"cp922\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§¨©ª«¬®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖרÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ\"\n },\n \"ibm922\": \"cp922\",\n \"csibm922\": \"cp922\",\n \"cp1046\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ﺈ×÷ﹱ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�\"\n },\n \"ibm1046\": \"cp1046\",\n \"csibm1046\": \"cp1046\",\n \"cp1124\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ЁЂҐЄЅІЇЈЉЊЋЌЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ\"\n },\n \"ibm1124\": \"cp1124\",\n \"csibm1124\": \"cp1124\",\n \"cp1125\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ \"\n },\n \"ibm1125\": \"cp1125\",\n \"csibm1125\": \"cp1125\",\n \"cp1129\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£¤¥¦§œ©ª«¬®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1129\": \"cp1129\",\n \"csibm1129\": \"cp1129\",\n \"cp1133\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�\"\n },\n \"ibm1133\": \"cp1133\",\n \"csibm1133\": \"cp1133\",\n \"cp1161\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ \"\n },\n \"ibm1161\": \"cp1161\",\n \"csibm1161\": \"cp1161\",\n \"cp1162\": {\n \"type\": \"_sbcs\",\n \"chars\": \"€…‘’“”•–— กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n },\n \"ibm1162\": \"cp1162\",\n \"csibm1162\": \"cp1162\",\n \"cp1163\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
¡¢£€¥¦§œ©ª«¬®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\"\n },\n \"ibm1163\": \"cp1163\",\n \"csibm1163\": \"cp1163\",\n \"maccroatian\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ\"\n },\n \"maccyrillic\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"macgreek\": {\n \"type\": \"_sbcs\",\n \"chars\": \"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\"\n },\n \"maciceland\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macroman\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macromania\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macthai\": {\n \"type\": \"_sbcs\",\n \"chars\": \"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����\"\n },\n \"macturkish\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"macukraine\": {\n \"type\": \"_sbcs\",\n \"chars\": \"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\"\n },\n \"koi8r\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8u\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8ru\": {\n \"type\": \"_sbcs\",\n \"chars\": \"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"koi8t\": {\n \"type\": \"_sbcs\",\n \"chars\": \"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ\"\n },\n \"armscii8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
�և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�\"\n },\n \"rk1048\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"tcvn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000ÚỤ\\u0003ỪỬỮ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010ỨỰỲỶỸÝỴ\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ\"\n },\n \"georgianacademy\": {\n \"type\": \"_sbcs\",\n \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"georgianps\": {\n \"type\": \"_sbcs\",\n \"chars\": \"‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\"\n },\n \"pt154\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\"\n },\n \"viscii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001Ẳ\\u0003\\u0004ẴẪ\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013Ỷ\\u0015\\u0016\\u0017\\u0018Ỹ\\u001a\\u001b\\u001c\\u001dỴ\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ\"\n },\n \"iso646cn\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"iso646jp\": {\n \"type\": \"_sbcs\",\n \"chars\": \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"hproman8\": {\n \"type\": \"_sbcs\",\n \"chars\": \"
ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�\"\n },\n \"macintosh\": {\n \"type\": \"_sbcs\",\n \"chars\": \"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\"\n },\n \"ascii\": {\n \"type\": \"_sbcs\",\n \"chars\": \"��������������������������������������������������������������������������������������������������������������������������������\"\n },\n \"tis620\": {\n \"type\": \"_sbcs\",\n \"chars\": \"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\"\n }\n}","\"use strict\"\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.\n// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.\n// To save memory and loading time, we read table files only when requested.\n\nexports._dbcs = DBCSCodec\n\nvar UNASSIGNED = -1\nvar GB18030_CODE = -2\nvar SEQ_START = -10\nvar NODE_START = -1000\nvar UNASSIGNED_NODE = new Array(0x100)\nvar DEF_CHAR = -1\n\nfor (var i = 0; i < 0x100; i++) { UNASSIGNED_NODE[i] = UNASSIGNED }\n\n// Class DBCSCodec reads and initializes mapping tables.\nfunction DBCSCodec (codecOptions, iconv) {\n this.encodingName = codecOptions.encodingName\n if (!codecOptions) { throw new Error(\"DBCS codec is called without the data.\") }\n if (!codecOptions.table) { throw new Error(\"Encoding '\" + this.encodingName + \"' has no data.\") }\n\n // Load tables.\n var mappingTable = codecOptions.table()\n\n // Decode tables: MBCS -> Unicode.\n\n // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.\n // Trie root is decodeTables[0].\n // Values: >= 0 -> unicode character code. can be > 0xFFFF\n // == UNASSIGNED -> unknown/unassigned sequence.\n // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.\n // <= NODE_START -> index of the next node in our trie to process next byte.\n // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.\n this.decodeTables = []\n this.decodeTables[0] = UNASSIGNED_NODE.slice(0) // Create root node.\n\n // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.\n this.decodeTableSeq = []\n\n // Actual mapping tables consist of chunks. Use them to fill up decode tables.\n for (var i = 0; i < mappingTable.length; i++) { this._addDecodeChunk(mappingTable[i]) }\n\n // Load & create GB18030 tables when needed.\n if (typeof codecOptions.gb18030 === \"function\") {\n this.gb18030 = codecOptions.gb18030() // Load GB18030 ranges.\n\n // Add GB18030 common decode nodes.\n var commonThirdByteNodeIdx = this.decodeTables.length\n this.decodeTables.push(UNASSIGNED_NODE.slice(0))\n\n var commonFourthByteNodeIdx = this.decodeTables.length\n this.decodeTables.push(UNASSIGNED_NODE.slice(0))\n\n // Fill out the tree\n var firstByteNode = this.decodeTables[0]\n for (var i = 0x81; i <= 0xFE; i++) {\n var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i]]\n for (var j = 0x30; j <= 0x39; j++) {\n if (secondByteNode[j] === UNASSIGNED) {\n secondByteNode[j] = NODE_START - commonThirdByteNodeIdx\n } else if (secondByteNode[j] > NODE_START) {\n throw new Error(\"gb18030 decode tables conflict at byte 2\")\n }\n\n var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]]\n for (var k = 0x81; k <= 0xFE; k++) {\n if (thirdByteNode[k] === UNASSIGNED) {\n thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx\n } else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {\n continue\n } else if (thirdByteNode[k] > NODE_START) {\n throw new Error(\"gb18030 decode tables conflict at byte 3\")\n }\n\n var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]]\n for (var l = 0x30; l <= 0x39; l++) {\n if (fourthByteNode[l] === UNASSIGNED) { fourthByteNode[l] = GB18030_CODE }\n }\n }\n }\n }\n }\n\n this.defaultCharUnicode = iconv.defaultCharUnicode\n\n // Encode tables: Unicode -> DBCS.\n\n // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.\n // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.\n // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).\n // == UNASSIGNED -> no conversion found. Output a default char.\n // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.\n this.encodeTable = []\n\n // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of\n // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key\n // means end of sequence (needed when one sequence is a strict subsequence of another).\n // Objects are kept separately from encodeTable to increase performance.\n this.encodeTableSeq = []\n\n // Some chars can be decoded, but need not be encoded.\n var skipEncodeChars = {}\n if (codecOptions.encodeSkipVals) {\n for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {\n var val = codecOptions.encodeSkipVals[i]\n if (typeof val === \"number\") { skipEncodeChars[val] = true } else {\n for (var j = val.from; j <= val.to; j++) { skipEncodeChars[j] = true }\n }\n }\n }\n\n // Use decode trie to recursively fill out encode tables.\n this._fillEncodeTable(0, 0, skipEncodeChars)\n\n // Add more encoding pairs when needed.\n if (codecOptions.encodeAdd) {\n for (var uChar in codecOptions.encodeAdd) {\n if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) { this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]) }\n }\n }\n\n this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)]\n if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0][\"?\"]\n if (this.defCharSB === UNASSIGNED) this.defCharSB = \"?\".charCodeAt(0)\n}\n\nDBCSCodec.prototype.encoder = DBCSEncoder\nDBCSCodec.prototype.decoder = DBCSDecoder\n\n// Decoder helpers\nDBCSCodec.prototype._getDecodeTrieNode = function (addr) {\n var bytes = []\n for (; addr > 0; addr >>>= 8) { bytes.push(addr & 0xFF) }\n if (bytes.length == 0) { bytes.push(0) }\n\n var node = this.decodeTables[0]\n for (var i = bytes.length - 1; i > 0; i--) { // Traverse nodes deeper into the trie.\n var val = node[bytes[i]]\n\n if (val == UNASSIGNED) { // Create new node.\n node[bytes[i]] = NODE_START - this.decodeTables.length\n this.decodeTables.push(node = UNASSIGNED_NODE.slice(0))\n } else if (val <= NODE_START) { // Existing node.\n node = this.decodeTables[NODE_START - val]\n } else { throw new Error(\"Overwrite byte in \" + this.encodingName + \", addr: \" + addr.toString(16)) }\n }\n return node\n}\n\nDBCSCodec.prototype._addDecodeChunk = function (chunk) {\n // First element of chunk is the hex mbcs code where we start.\n var curAddr = parseInt(chunk[0], 16)\n\n // Choose the decoding node where we'll write our chars.\n var writeTable = this._getDecodeTrieNode(curAddr)\n curAddr = curAddr & 0xFF\n\n // Write all other elements of the chunk to the table.\n for (var k = 1; k < chunk.length; k++) {\n var part = chunk[k]\n if (typeof part === \"string\") { // String, write as-is.\n for (var l = 0; l < part.length;) {\n var code = part.charCodeAt(l++)\n if (code >= 0xD800 && code < 0xDC00) { // Decode surrogate\n var codeTrail = part.charCodeAt(l++)\n if (codeTrail >= 0xDC00 && codeTrail < 0xE000) { writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00) } else { throw new Error(\"Incorrect surrogate pair in \" + this.encodingName + \" at chunk \" + chunk[0]) }\n } else if (code > 0x0FF0 && code <= 0x0FFF) { // Character sequence (our own encoding used)\n var len = 0xFFF - code + 2\n var seq = []\n for (var m = 0; m < len; m++) { seq.push(part.charCodeAt(l++)) } // Simple variation: don't support surrogates or subsequences in seq.\n\n writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length\n this.decodeTableSeq.push(seq)\n } else { writeTable[curAddr++] = code } // Basic char\n }\n } else if (typeof part === \"number\") { // Integer, meaning increasing sequence starting with prev character.\n var charCode = writeTable[curAddr - 1] + 1\n for (var l = 0; l < part; l++) { writeTable[curAddr++] = charCode++ }\n } else { throw new Error(\"Incorrect type '\" + typeof part + \"' given in \" + this.encodingName + \" at chunk \" + chunk[0]) }\n }\n if (curAddr > 0xFF) { throw new Error(\"Incorrect chunk in \" + this.encodingName + \" at addr \" + chunk[0] + \": too long\" + curAddr) }\n}\n\n// Encoder helpers\nDBCSCodec.prototype._getEncodeBucket = function (uCode) {\n var high = uCode >> 8 // This could be > 0xFF because of astral characters.\n if (this.encodeTable[high] === undefined) {\n this.encodeTable[high] = UNASSIGNED_NODE.slice(0)\n } // Create bucket on demand.\n return this.encodeTable[high]\n}\n\nDBCSCodec.prototype._setEncodeChar = function (uCode, dbcsCode) {\n var bucket = this._getEncodeBucket(uCode)\n var low = uCode & 0xFF\n if (bucket[low] <= SEQ_START) { this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode } // There's already a sequence, set a single-char subsequence of it.\n else if (bucket[low] == UNASSIGNED) { bucket[low] = dbcsCode }\n}\n\nDBCSCodec.prototype._setEncodeSequence = function (seq, dbcsCode) {\n // Get the root of character tree according to first character of the sequence.\n var uCode = seq[0]\n var bucket = this._getEncodeBucket(uCode)\n var low = uCode & 0xFF\n\n var node\n if (bucket[low] <= SEQ_START) {\n // There's already a sequence with - use it.\n node = this.encodeTableSeq[SEQ_START - bucket[low]]\n } else {\n // There was no sequence object - allocate a new one.\n node = {}\n if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low] // If a char was set before - make it a single-char subsequence.\n bucket[low] = SEQ_START - this.encodeTableSeq.length\n this.encodeTableSeq.push(node)\n }\n\n // Traverse the character tree, allocating new nodes as needed.\n for (var j = 1; j < seq.length - 1; j++) {\n var oldVal = node[uCode]\n if (typeof oldVal === \"object\") { node = oldVal } else {\n node = node[uCode] = {}\n if (oldVal !== undefined) { node[DEF_CHAR] = oldVal }\n }\n }\n\n // Set the leaf to given dbcsCode.\n uCode = seq[seq.length - 1]\n node[uCode] = dbcsCode\n}\n\nDBCSCodec.prototype._fillEncodeTable = function (nodeIdx, prefix, skipEncodeChars) {\n var node = this.decodeTables[nodeIdx]\n var hasValues = false\n var subNodeEmpty = {}\n for (var i = 0; i < 0x100; i++) {\n var uCode = node[i]\n var mbCode = prefix + i\n if (skipEncodeChars[mbCode]) { continue }\n\n if (uCode >= 0) {\n this._setEncodeChar(uCode, mbCode)\n hasValues = true\n } else if (uCode <= NODE_START) {\n var subNodeIdx = NODE_START - uCode\n if (!subNodeEmpty[subNodeIdx]) { // Skip empty subtrees (they are too large in gb18030).\n var newPrefix = (mbCode << 8) >>> 0 // NOTE: '>>> 0' keeps 32-bit num positive.\n if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) { hasValues = true } else { subNodeEmpty[subNodeIdx] = true }\n }\n } else if (uCode <= SEQ_START) {\n this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode)\n hasValues = true\n }\n }\n return hasValues\n}\n\n// == Encoder ==================================================================\n\nfunction DBCSEncoder (options, codec) {\n // Encoder state\n this.leadSurrogate = -1\n this.seqObj = undefined\n\n // Static data\n this.encodeTable = codec.encodeTable\n this.encodeTableSeq = codec.encodeTableSeq\n this.defaultCharSingleByte = codec.defCharSB\n this.gb18030 = codec.gb18030\n}\n\nDBCSEncoder.prototype.write = function (str) {\n var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3))\n var leadSurrogate = this.leadSurrogate\n var seqObj = this.seqObj\n var nextChar = -1\n var i = 0; var j = 0\n\n while (true) {\n // 0. Get next character.\n if (nextChar === -1) {\n if (i == str.length) break\n var uCode = str.charCodeAt(i++)\n } else {\n var uCode = nextChar\n nextChar = -1\n }\n\n // 1. Handle surrogates.\n if (uCode >= 0xD800 && uCode < 0xE000) { // Char is one of surrogates.\n if (uCode < 0xDC00) { // We've got lead surrogate.\n if (leadSurrogate === -1) {\n leadSurrogate = uCode\n continue\n } else {\n leadSurrogate = uCode\n // Double lead surrogate found.\n uCode = UNASSIGNED\n }\n } else { // We've got trail surrogate.\n if (leadSurrogate !== -1) {\n uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00)\n leadSurrogate = -1\n } else {\n // Incomplete surrogate pair - only trail surrogate found.\n uCode = UNASSIGNED\n }\n }\n } else if (leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n nextChar = uCode; uCode = UNASSIGNED // Write an error, then current char.\n leadSurrogate = -1\n }\n\n // 2. Convert uCode character.\n var dbcsCode = UNASSIGNED\n if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence\n var resCode = seqObj[uCode]\n if (typeof resCode === \"object\") { // Sequence continues.\n seqObj = resCode\n continue\n } else if (typeof resCode === \"number\") { // Sequence finished. Write it.\n dbcsCode = resCode\n } else if (resCode == undefined) { // Current character is not part of the sequence.\n // Try default character for this sequence\n resCode = seqObj[DEF_CHAR]\n if (resCode !== undefined) {\n dbcsCode = resCode // Found. Write it.\n nextChar = uCode // Current character will be written too in the next iteration.\n } else {\n // TODO: What if we have no default? (resCode == undefined)\n // Then, we should write first char of the sequence as-is and try the rest recursively.\n // Didn't do it for now because no encoding has this situation yet.\n // Currently, just skip the sequence and write current char.\n }\n }\n seqObj = undefined\n } else if (uCode >= 0) { // Regular character\n var subtable = this.encodeTable[uCode >> 8]\n if (subtable !== undefined) { dbcsCode = subtable[uCode & 0xFF] }\n\n if (dbcsCode <= SEQ_START) { // Sequence start\n seqObj = this.encodeTableSeq[SEQ_START - dbcsCode]\n continue\n }\n\n if (dbcsCode == UNASSIGNED && this.gb18030) {\n // Use GB18030 algorithm to find character(s) to write.\n var idx = findIdx(this.gb18030.uChars, uCode)\n if (idx != -1) {\n var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx])\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600\n newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260\n newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10\n newBuf[j++] = 0x30 + dbcsCode\n continue\n }\n }\n }\n\n // 3. Write dbcsCode character.\n if (dbcsCode === UNASSIGNED) { dbcsCode = this.defaultCharSingleByte }\n\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode\n } else if (dbcsCode < 0x10000) {\n newBuf[j++] = dbcsCode >> 8 // high byte\n newBuf[j++] = dbcsCode & 0xFF // low byte\n } else if (dbcsCode < 0x1000000) {\n newBuf[j++] = dbcsCode >> 16\n newBuf[j++] = (dbcsCode >> 8) & 0xFF\n newBuf[j++] = dbcsCode & 0xFF\n } else {\n newBuf[j++] = dbcsCode >>> 24\n newBuf[j++] = (dbcsCode >>> 16) & 0xFF\n newBuf[j++] = (dbcsCode >>> 8) & 0xFF\n newBuf[j++] = dbcsCode & 0xFF\n }\n }\n\n this.seqObj = seqObj\n this.leadSurrogate = leadSurrogate\n return newBuf.slice(0, j)\n}\n\nDBCSEncoder.prototype.end = function () {\n if (this.leadSurrogate === -1 && this.seqObj === undefined) { return } // All clean. Most often case.\n\n var newBuf = Buffer.alloc(10); var j = 0\n\n if (this.seqObj) { // We're in the sequence.\n var dbcsCode = this.seqObj[DEF_CHAR]\n if (dbcsCode !== undefined) { // Write beginning of the sequence.\n if (dbcsCode < 0x100) {\n newBuf[j++] = dbcsCode\n } else {\n newBuf[j++] = dbcsCode >> 8 // high byte\n newBuf[j++] = dbcsCode & 0xFF // low byte\n }\n } else {\n // See todo above.\n }\n this.seqObj = undefined\n }\n\n if (this.leadSurrogate !== -1) {\n // Incomplete surrogate pair - only lead surrogate found.\n newBuf[j++] = this.defaultCharSingleByte\n this.leadSurrogate = -1\n }\n\n return newBuf.slice(0, j)\n}\n\n// Export for testing\nDBCSEncoder.prototype.findIdx = findIdx\n\n// == Decoder ==================================================================\n\nfunction DBCSDecoder (options, codec) {\n // Decoder state\n this.nodeIdx = 0\n this.prevBytes = []\n\n // Static data\n this.decodeTables = codec.decodeTables\n this.decodeTableSeq = codec.decodeTableSeq\n this.defaultCharUnicode = codec.defaultCharUnicode\n this.gb18030 = codec.gb18030\n}\n\nDBCSDecoder.prototype.write = function (buf) {\n var newBuf = Buffer.alloc(buf.length * 2)\n var nodeIdx = this.nodeIdx\n var prevBytes = this.prevBytes; var prevOffset = this.prevBytes.length\n var seqStart = -this.prevBytes.length // idx of the start of current parsed sequence.\n var uCode\n\n for (var i = 0, j = 0; i < buf.length; i++) {\n var curByte = (i >= 0) ? buf[i] : prevBytes[i + prevOffset]\n\n // Lookup in current trie node.\n var uCode = this.decodeTables[nodeIdx][curByte]\n\n if (uCode >= 0) {\n // Normal character, just use it.\n } else if (uCode === UNASSIGNED) { // Unknown char.\n // TODO: Callback with seq.\n uCode = this.defaultCharUnicode.charCodeAt(0)\n i = seqStart // Skip one byte ('i' will be incremented by the for loop) and try to parse again.\n } else if (uCode === GB18030_CODE) {\n if (i >= 3) {\n var ptr = (buf[i - 3] - 0x81) * 12600 + (buf[i - 2] - 0x30) * 1260 + (buf[i - 1] - 0x81) * 10 + (curByte - 0x30)\n } else {\n var ptr = (prevBytes[i - 3 + prevOffset] - 0x81) * 12600 +\n (((i - 2 >= 0) ? buf[i - 2] : prevBytes[i - 2 + prevOffset]) - 0x30) * 1260 +\n (((i - 1 >= 0) ? buf[i - 1] : prevBytes[i - 1 + prevOffset]) - 0x81) * 10 +\n (curByte - 0x30)\n }\n var idx = findIdx(this.gb18030.gbChars, ptr)\n uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx]\n } else if (uCode <= NODE_START) { // Go to next trie node.\n nodeIdx = NODE_START - uCode\n continue\n } else if (uCode <= SEQ_START) { // Output a sequence of chars.\n var seq = this.decodeTableSeq[SEQ_START - uCode]\n for (var k = 0; k < seq.length - 1; k++) {\n uCode = seq[k]\n newBuf[j++] = uCode & 0xFF\n newBuf[j++] = uCode >> 8\n }\n uCode = seq[seq.length - 1]\n } else { throw new Error(\"iconv-lite internal error: invalid decoding table value \" + uCode + \" at \" + nodeIdx + \"/\" + curByte) }\n\n // Write the character to buffer, handling higher planes using surrogate pair.\n if (uCode >= 0x10000) {\n uCode -= 0x10000\n var uCodeLead = 0xD800 | (uCode >> 10)\n newBuf[j++] = uCodeLead & 0xFF\n newBuf[j++] = uCodeLead >> 8\n\n uCode = 0xDC00 | (uCode & 0x3FF)\n }\n newBuf[j++] = uCode & 0xFF\n newBuf[j++] = uCode >> 8\n\n // Reset trie node.\n nodeIdx = 0; seqStart = i + 1\n }\n\n this.nodeIdx = nodeIdx\n this.prevBytes = (seqStart >= 0)\n ? Array.prototype.slice.call(buf, seqStart)\n : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf))\n\n return newBuf.slice(0, j).toString(\"ucs2\")\n}\n\nDBCSDecoder.prototype.end = function () {\n var ret = \"\"\n\n // Try to parse all remaining chars.\n while (this.prevBytes.length > 0) {\n // Skip 1 character in the buffer.\n ret += this.defaultCharUnicode\n var bytesArr = this.prevBytes.slice(1)\n\n // Parse remaining as usual.\n this.prevBytes = []\n this.nodeIdx = 0\n if (bytesArr.length > 0) { ret += this.write(bytesArr) }\n }\n\n this.prevBytes = []\n this.nodeIdx = 0\n return ret\n}\n\n// Binary search for GB18030. Returns largest i such that table[i] <= val.\nfunction findIdx (table, val) {\n if (table[0] > val) { return -1 }\n\n var l = 0; var r = table.length\n while (l < r - 1) { // always table[l] <= val < table[r]\n var mid = l + ((r - l + 1) >> 1)\n if (table[mid] <= val) { l = mid } else { r = mid }\n }\n return l\n}\n","\"use strict\"\n\n// Description of supported double byte encodings and aliases.\n// Tables are not require()-d until they are needed to speed up library load.\n// require()-s are direct to support Browserify.\n\nmodule.exports = {\n\n // == Japanese/ShiftJIS ====================================================\n // All japanese encodings are based on JIS X set of standards:\n // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.\n // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.\n // Has several variations in 1978, 1983, 1990 and 1997.\n // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.\n // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.\n // 2 planes, first is superset of 0208, second - revised 0212.\n // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)\n\n // Byte encodings are:\n // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte\n // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.\n // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.\n // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.\n // 0x00-0x7F - lower part of 0201\n // 0x8E, 0xA1-0xDF - upper part of 0201\n // (0xA1-0xFE)x2 - 0208 plane (94x94).\n // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).\n // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.\n // Used as-is in ISO2022 family.\n // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,\n // 0201-1976 Roman, 0208-1978, 0208-1983.\n // * ISO2022-JP-1: Adds esc seq for 0212-1990.\n // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.\n // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.\n // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.\n //\n // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.\n //\n // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html\n\n shiftjis: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/shiftjis.json\") },\n encodeAdd: { \"\\u00a5\": 0x5C, \"\\u203E\": 0x7E },\n encodeSkipVals: [{ from: 0xED40, to: 0xF940 }]\n },\n csshiftjis: \"shiftjis\",\n mskanji: \"shiftjis\",\n sjis: \"shiftjis\",\n windows31j: \"shiftjis\",\n ms31j: \"shiftjis\",\n xsjis: \"shiftjis\",\n windows932: \"shiftjis\",\n ms932: \"shiftjis\",\n 932: \"shiftjis\",\n cp932: \"shiftjis\",\n\n eucjp: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/eucjp.json\") },\n encodeAdd: { \"\\u00a5\": 0x5C, \"\\u203E\": 0x7E }\n },\n\n // TODO: KDDI extension to Shift_JIS\n // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.\n // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.\n\n // == Chinese/GBK ==========================================================\n // http://en.wikipedia.org/wiki/GBK\n // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder\n\n // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936\n gb2312: \"cp936\",\n gb231280: \"cp936\",\n gb23121980: \"cp936\",\n csgb2312: \"cp936\",\n csiso58gb231280: \"cp936\",\n euccn: \"cp936\",\n\n // Microsoft's CP936 is a subset and approximation of GBK.\n windows936: \"cp936\",\n ms936: \"cp936\",\n 936: \"cp936\",\n cp936: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\") }\n },\n\n // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.\n gbk: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\").concat(require(\"./tables/gbk-added.json\")) }\n },\n xgbk: \"gbk\",\n isoir58: \"gbk\",\n\n // GB18030 is an algorithmic extension of GBK.\n // Main source: https://www.w3.org/TR/encoding/#gbk-encoder\n // http://icu-project.org/docs/papers/gb18030.html\n // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml\n // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0\n gb18030: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp936.json\").concat(require(\"./tables/gbk-added.json\")) },\n gb18030: function () { return require(\"./tables/gb18030-ranges.json\") },\n encodeSkipVals: [0x80],\n encodeAdd: { \"€\": 0xA2E3 }\n },\n\n chinese: \"gb18030\",\n\n // == Korean ===============================================================\n // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.\n windows949: \"cp949\",\n ms949: \"cp949\",\n 949: \"cp949\",\n cp949: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp949.json\") }\n },\n\n cseuckr: \"cp949\",\n csksc56011987: \"cp949\",\n euckr: \"cp949\",\n isoir149: \"cp949\",\n korean: \"cp949\",\n ksc56011987: \"cp949\",\n ksc56011989: \"cp949\",\n ksc5601: \"cp949\",\n\n // == Big5/Taiwan/Hong Kong ================================================\n // There are lots of tables for Big5 and cp950. Please see the following links for history:\n // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html\n // Variations, in roughly number of defined chars:\n // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT\n // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/\n // * Big5-2003 (Taiwan standard) almost superset of cp950.\n // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.\n // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.\n // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.\n // Plus, it has 4 combining sequences.\n // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299\n // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.\n // Implementations are not consistent within browsers; sometimes labeled as just big5.\n // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.\n // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31\n // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.\n // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt\n // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt\n //\n // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder\n // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.\n\n windows950: \"cp950\",\n ms950: \"cp950\",\n 950: \"cp950\",\n cp950: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp950.json\") }\n },\n\n // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.\n big5: \"big5hkscs\",\n big5hkscs: {\n type: \"_dbcs\",\n table: function () { return require(\"./tables/cp950.json\").concat(require(\"./tables/big5-added.json\")) },\n encodeSkipVals: [\n // Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of\n // https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.\n // But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.\n 0x8e69, 0x8e6f, 0x8e7e, 0x8eab, 0x8eb4, 0x8ecd, 0x8ed0, 0x8f57, 0x8f69, 0x8f6e, 0x8fcb, 0x8ffe,\n 0x906d, 0x907a, 0x90c4, 0x90dc, 0x90f1, 0x91bf, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92d1, 0x9447, 0x94ca,\n 0x95d9, 0x96fc, 0x9975, 0x9b76, 0x9b78, 0x9b7b, 0x9bc6, 0x9bde, 0x9bec, 0x9bf6, 0x9c42, 0x9c53, 0x9c62,\n 0x9c68, 0x9c6b, 0x9c77, 0x9cbc, 0x9cbd, 0x9cd0, 0x9d57, 0x9d5a, 0x9dc4, 0x9def, 0x9dfb, 0x9ea9, 0x9eef,\n 0x9efd, 0x9f60, 0x9fcb, 0xa077, 0xa0dc, 0xa0df, 0x8fcc, 0x92c8, 0x9644, 0x96ed,\n\n // Step 2 of https://encoding.spec.whatwg.org/#index-big5-pointer: Use last pointer for U+2550, U+255E, U+2561, U+256A, U+5341, or U+5345\n 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa2cc, 0xa2ce\n ]\n },\n\n cnbig5: \"big5hkscs\",\n csbig5: \"big5hkscs\",\n xxbig5: \"big5hkscs\"\n}\n","\"use strict\"\n\nvar mergeModules = require(\"../lib/helpers/merge-exports\")\n\n// Update this array if you add/rename/remove files in this directory.\n// We support Browserify by skipping automatic module discovery and requiring modules directly.\nvar modules = [\n require(\"./internal\"),\n require(\"./utf32\"),\n require(\"./utf16\"),\n require(\"./utf7\"),\n require(\"./sbcs-codec\"),\n require(\"./sbcs-data\"),\n require(\"./sbcs-data-generated\"),\n require(\"./dbcs-codec\"),\n require(\"./dbcs-data\")\n]\n\n// Put all encoding/alias/codec definitions to single object and export it.\nfor (var i = 0; i < modules.length; i++) {\n var module = modules[i]\n mergeModules(exports, module)\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\n// NOTE: Due to 'stream' module being pretty large (~100Kb, significant in browser environments),\n// we opt to dependency-inject it instead of creating a hard dependency.\nmodule.exports = function (streamModule) {\n var Transform = streamModule.Transform\n\n // == Encoder stream =======================================================\n\n function IconvLiteEncoderStream (conv, options) {\n this.conv = conv\n options = options || {}\n options.decodeStrings = false // We accept only strings, so we don't need to decode them.\n Transform.call(this, options)\n }\n\n IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {\n constructor: { value: IconvLiteEncoderStream }\n })\n\n IconvLiteEncoderStream.prototype._transform = function (chunk, encoding, done) {\n if (typeof chunk !== \"string\") {\n return done(new Error(\"Iconv encoding stream needs strings as its input.\"))\n }\n\n try {\n var res = this.conv.write(chunk)\n if (res && res.length) this.push(res)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteEncoderStream.prototype._flush = function (done) {\n try {\n var res = this.conv.end()\n if (res && res.length) this.push(res)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteEncoderStream.prototype.collect = function (cb) {\n var chunks = []\n this.on(\"error\", cb)\n this.on(\"data\", function (chunk) { chunks.push(chunk) })\n this.on(\"end\", function () {\n cb(null, Buffer.concat(chunks))\n })\n return this\n }\n\n // == Decoder stream =======================================================\n\n function IconvLiteDecoderStream (conv, options) {\n this.conv = conv\n options = options || {}\n options.encoding = this.encoding = \"utf8\" // We output strings.\n Transform.call(this, options)\n }\n\n IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {\n constructor: { value: IconvLiteDecoderStream }\n })\n\n IconvLiteDecoderStream.prototype._transform = function (chunk, encoding, done) {\n if (!Buffer.isBuffer(chunk) && !(chunk instanceof Uint8Array)) { return done(new Error(\"Iconv decoding stream needs buffers as its input.\")) }\n try {\n var res = this.conv.write(chunk)\n if (res && res.length) this.push(res, this.encoding)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteDecoderStream.prototype._flush = function (done) {\n try {\n var res = this.conv.end()\n if (res && res.length) this.push(res, this.encoding)\n done()\n } catch (e) {\n done(e)\n }\n }\n\n IconvLiteDecoderStream.prototype.collect = function (cb) {\n var res = \"\"\n this.on(\"error\", cb)\n this.on(\"data\", function (chunk) { res += chunk })\n this.on(\"end\", function () {\n cb(null, res)\n })\n return this\n }\n\n return {\n IconvLiteEncoderStream: IconvLiteEncoderStream,\n IconvLiteDecoderStream: IconvLiteDecoderStream\n }\n}\n","\"use strict\"\n\nvar Buffer = require(\"safer-buffer\").Buffer\n\nvar bomHandling = require(\"./bom-handling\")\nvar mergeModules = require(\"./helpers/merge-exports\")\nvar iconv = module.exports\n\n// All codecs and aliases are kept here, keyed by encoding name/alias.\n// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.\n// Cannot initialize with { __proto__: null } because Boolean({ __proto__: null }) === true\niconv.encodings = null\n\n// Characters emitted in case of error.\niconv.defaultCharUnicode = \"�\"\niconv.defaultCharSingleByte = \"?\"\n\n// Public API.\niconv.encode = function encode (str, encoding, options) {\n str = \"\" + (str || \"\") // Ensure string.\n\n var encoder = iconv.getEncoder(encoding, options)\n\n var res = encoder.write(str)\n var trail = encoder.end()\n\n return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res\n}\n\niconv.decode = function decode (buf, encoding, options) {\n if (typeof buf === \"string\") {\n if (!iconv.skipDecodeWarning) {\n console.error(\"Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding\")\n iconv.skipDecodeWarning = true\n }\n\n buf = Buffer.from(\"\" + (buf || \"\"), \"binary\") // Ensure buffer.\n }\n\n var decoder = iconv.getDecoder(encoding, options)\n\n var res = decoder.write(buf)\n var trail = decoder.end()\n\n return trail ? (res + trail) : res\n}\n\niconv.encodingExists = function encodingExists (enc) {\n try {\n iconv.getCodec(enc)\n return true\n } catch (e) {\n return false\n }\n}\n\n// Legacy aliases to convert functions\niconv.toEncoding = iconv.encode\niconv.fromEncoding = iconv.decode\n\n// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.\niconv._codecDataCache = { __proto__: null }\n\niconv.getCodec = function getCodec (encoding) {\n if (!iconv.encodings) {\n var raw = require(\"../encodings\")\n // TODO: In future versions when old nodejs support is removed can use object.assign\n iconv.encodings = { __proto__: null } // Initialize as empty object.\n mergeModules(iconv.encodings, raw)\n }\n\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n var enc = iconv._canonicalizeEncoding(encoding)\n\n // Traverse iconv.encodings to find actual codec.\n var codecOptions = {}\n while (true) {\n var codec = iconv._codecDataCache[enc]\n\n if (codec) { return codec }\n\n var codecDef = iconv.encodings[enc]\n\n switch (typeof codecDef) {\n case \"string\": // Direct alias to other encoding.\n enc = codecDef\n break\n\n case \"object\": // Alias with options. Can be layered.\n for (var key in codecDef) { codecOptions[key] = codecDef[key] }\n\n if (!codecOptions.encodingName) { codecOptions.encodingName = enc }\n\n enc = codecDef.type\n break\n\n case \"function\": // Codec itself.\n if (!codecOptions.encodingName) { codecOptions.encodingName = enc }\n\n // The codec function must load all tables and return object with .encoder and .decoder methods.\n // It'll be called only once (for each different options object).\n //\n codec = new codecDef(codecOptions, iconv)\n\n iconv._codecDataCache[codecOptions.encodingName] = codec // Save it to be reused later.\n return codec\n\n default:\n throw new Error(\"Encoding not recognized: '\" + encoding + \"' (searched as: '\" + enc + \"')\")\n }\n }\n}\n\niconv._canonicalizeEncoding = function (encoding) {\n // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.\n return (\"\" + encoding).toLowerCase().replace(/:\\d{4}$|[^0-9a-z]/g, \"\")\n}\n\niconv.getEncoder = function getEncoder (encoding, options) {\n var codec = iconv.getCodec(encoding)\n var encoder = new codec.encoder(options, codec)\n\n if (codec.bomAware && options && options.addBOM) { encoder = new bomHandling.PrependBOM(encoder, options) }\n\n return encoder\n}\n\niconv.getDecoder = function getDecoder (encoding, options) {\n var codec = iconv.getCodec(encoding)\n var decoder = new codec.decoder(options, codec)\n\n if (codec.bomAware && !(options && options.stripBOM === false)) { decoder = new bomHandling.StripBOM(decoder, options) }\n\n return decoder\n}\n\n// Streaming API\n// NOTE: Streaming API naturally depends on 'stream' module from Node.js. Unfortunately in browser environments this module can add\n// up to 100Kb to the output bundle. To avoid unnecessary code bloat, we don't enable Streaming API in browser by default.\n// If you would like to enable it explicitly, please add the following code to your app:\n// > iconv.enableStreamingAPI(require('stream'));\niconv.enableStreamingAPI = function enableStreamingAPI (streamModule) {\n if (iconv.supportsStreams) { return }\n\n // Dependency-inject stream module to create IconvLite stream classes.\n var streams = require(\"./streams\")(streamModule)\n\n // Not public API yet, but expose the stream classes.\n iconv.IconvLiteEncoderStream = streams.IconvLiteEncoderStream\n iconv.IconvLiteDecoderStream = streams.IconvLiteDecoderStream\n\n // Streaming API.\n iconv.encodeStream = function encodeStream (encoding, options) {\n return new iconv.IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options)\n }\n\n iconv.decodeStream = function decodeStream (encoding, options) {\n return new iconv.IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options)\n }\n\n iconv.supportsStreams = true\n}\n\n// Enable Streaming API automatically if 'stream' module is available and non-empty (the majority of environments).\nvar streamModule\ntry {\n streamModule = require(\"stream\")\n} catch (e) {}\n\nif (streamModule && streamModule.Transform) {\n iconv.enableStreamingAPI(streamModule)\n} else {\n // In rare cases where 'stream' module is not available by default, throw a helpful exception.\n iconv.encodeStream = iconv.decodeStream = function () {\n throw new Error(\"iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.\")\n }\n}\n\n// Some environments, such as browsers, may not load JavaScript files as UTF-8\n// eslint-disable-next-line no-constant-condition\nif (\"Ā\" !== \"\\u0100\") {\n console.error(\"iconv-lite warning: js files use non-utf8 encoding. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.\")\n}\n","/*!\n * unpipe\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = unpipe\n\n/**\n * Determine if there are Node.js pipe-like data listeners.\n * @private\n */\n\nfunction hasPipeDataListeners(stream) {\n var listeners = stream.listeners('data')\n\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i].name === 'ondata') {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Unpipe a stream from all destinations.\n *\n * @param {object} stream\n * @public\n */\n\nfunction unpipe(stream) {\n if (!stream) {\n throw new TypeError('argument stream is required')\n }\n\n if (typeof stream.unpipe === 'function') {\n // new-style\n stream.unpipe()\n return\n }\n\n // Node.js 0.8 hack\n if (!hasPipeDataListeners(stream)) {\n return\n }\n\n var listener\n var listeners = stream.listeners('close')\n\n for (var i = 0; i < listeners.length; i++) {\n listener = listeners[i]\n\n if (listener.name !== 'cleanup' && listener.name !== 'onclose') {\n continue\n }\n\n // invoke the listener\n listener.call(stream)\n }\n}\n","/*!\n * raw-body\n * Copyright(c) 2013-2014 Jonathan Ong\n * Copyright(c) 2014-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar asyncHooks = tryRequireAsyncHooks()\nvar bytes = require('bytes')\nvar createError = require('http-errors')\nvar iconv = require('iconv-lite')\nvar unpipe = require('unpipe')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = getRawBody\n\n/**\n * Module variables.\n * @private\n */\n\nvar ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /\n\n/**\n * Get the decoder for a given encoding.\n *\n * @param {string} encoding\n * @private\n */\n\nfunction getDecoder (encoding) {\n if (!encoding) return null\n\n try {\n return iconv.getDecoder(encoding)\n } catch (e) {\n // error getting decoder\n if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e\n\n // the encoding was not found\n throw createError(415, 'specified encoding unsupported', {\n encoding: encoding,\n type: 'encoding.unsupported'\n })\n }\n}\n\n/**\n * Get the raw body of a stream (typically HTTP).\n *\n * @param {object} stream\n * @param {object|string|function} [options]\n * @param {function} [callback]\n * @public\n */\n\nfunction getRawBody (stream, options, callback) {\n var done = callback\n var opts = options || {}\n\n // light validation\n if (stream === undefined) {\n throw new TypeError('argument stream is required')\n } else if (typeof stream !== 'object' || stream === null || typeof stream.on !== 'function') {\n throw new TypeError('argument stream must be a stream')\n }\n\n if (options === true || typeof options === 'string') {\n // short cut for encoding\n opts = {\n encoding: options\n }\n }\n\n if (typeof options === 'function') {\n done = options\n opts = {}\n }\n\n // validate callback is a function, if provided\n if (done !== undefined && typeof done !== 'function') {\n throw new TypeError('argument callback must be a function')\n }\n\n // require the callback without promises\n if (!done && !global.Promise) {\n throw new TypeError('argument callback is required')\n }\n\n // get encoding\n var encoding = opts.encoding !== true\n ? opts.encoding\n : 'utf-8'\n\n // convert the limit to an integer\n var limit = bytes.parse(opts.limit)\n\n // convert the expected length to an integer\n var length = opts.length != null && !isNaN(opts.length)\n ? parseInt(opts.length, 10)\n : null\n\n if (done) {\n // classic callback style\n return readStream(stream, encoding, length, limit, wrap(done))\n }\n\n return new Promise(function executor (resolve, reject) {\n readStream(stream, encoding, length, limit, function onRead (err, buf) {\n if (err) return reject(err)\n resolve(buf)\n })\n })\n}\n\n/**\n * Halt a stream.\n *\n * @param {Object} stream\n * @private\n */\n\nfunction halt (stream) {\n // unpipe everything from the stream\n unpipe(stream)\n\n // pause stream\n if (typeof stream.pause === 'function') {\n stream.pause()\n }\n}\n\n/**\n * Read the data from the stream.\n *\n * @param {object} stream\n * @param {string} encoding\n * @param {number} length\n * @param {number} limit\n * @param {function} callback\n * @public\n */\n\nfunction readStream (stream, encoding, length, limit, callback) {\n var complete = false\n var sync = true\n\n // check the length and limit options.\n // note: we intentionally leave the stream paused,\n // so users should handle the stream themselves.\n if (limit !== null && length !== null && length > limit) {\n return done(createError(413, 'request entity too large', {\n expected: length,\n length: length,\n limit: limit,\n type: 'entity.too.large'\n }))\n }\n\n // streams1: assert request encoding is buffer.\n // streams2+: assert the stream encoding is buffer.\n // stream._decoder: streams1\n // state.encoding: streams2\n // state.decoder: streams2, specifically < 0.10.6\n var state = stream._readableState\n if (stream._decoder || (state && (state.encoding || state.decoder))) {\n // developer error\n return done(createError(500, 'stream encoding should not be set', {\n type: 'stream.encoding.set'\n }))\n }\n\n if (typeof stream.readable !== 'undefined' && !stream.readable) {\n return done(createError(500, 'stream is not readable', {\n type: 'stream.not.readable'\n }))\n }\n\n var received = 0\n var decoder\n\n try {\n decoder = getDecoder(encoding)\n } catch (err) {\n return done(err)\n }\n\n var buffer = decoder\n ? ''\n : []\n\n // attach listeners\n stream.on('aborted', onAborted)\n stream.on('close', cleanup)\n stream.on('data', onData)\n stream.on('end', onEnd)\n stream.on('error', onEnd)\n\n // mark sync section complete\n sync = false\n\n function done () {\n var args = new Array(arguments.length)\n\n // copy arguments\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i]\n }\n\n // mark complete\n complete = true\n\n if (sync) {\n process.nextTick(invokeCallback)\n } else {\n invokeCallback()\n }\n\n function invokeCallback () {\n cleanup()\n\n if (args[0]) {\n // halt the stream on error\n halt(stream)\n }\n\n callback.apply(null, args)\n }\n }\n\n function onAborted () {\n if (complete) return\n\n done(createError(400, 'request aborted', {\n code: 'ECONNABORTED',\n expected: length,\n length: length,\n received: received,\n type: 'request.aborted'\n }))\n }\n\n function onData (chunk) {\n if (complete) return\n\n received += chunk.length\n\n if (limit !== null && received > limit) {\n done(createError(413, 'request entity too large', {\n limit: limit,\n received: received,\n type: 'entity.too.large'\n }))\n } else if (decoder) {\n buffer += decoder.write(chunk)\n } else {\n buffer.push(chunk)\n }\n }\n\n function onEnd (err) {\n if (complete) return\n if (err) return done(err)\n\n if (length !== null && received !== length) {\n done(createError(400, 'request size did not match content length', {\n expected: length,\n length: length,\n received: received,\n type: 'request.size.invalid'\n }))\n } else {\n var string = decoder\n ? buffer + (decoder.end() || '')\n : Buffer.concat(buffer)\n done(null, string)\n }\n }\n\n function cleanup () {\n buffer = null\n\n stream.removeListener('aborted', onAborted)\n stream.removeListener('data', onData)\n stream.removeListener('end', onEnd)\n stream.removeListener('error', onEnd)\n stream.removeListener('close', cleanup)\n }\n}\n\n/**\n * Try to require async_hooks\n * @private\n */\n\nfunction tryRequireAsyncHooks () {\n try {\n return require('async_hooks')\n } catch (e) {\n return {}\n }\n}\n\n/**\n * Wrap function with async resource, if possible.\n * AsyncResource.bind static method backported.\n * @private\n */\n\nfunction wrap (fn) {\n var res\n\n // create anonymous resource\n if (asyncHooks.AsyncResource) {\n res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn')\n }\n\n // incompatible node.js\n if (!res || !res.runInAsyncScope) {\n return fn\n }\n\n // return bound function\n return res.runInAsyncScope.bind(res, fn, null)\n}\n","\nvar zlib = require('zlib')\n\nmodule.exports = inflate\n\nfunction inflate(stream, options) {\n if (!stream) {\n throw new TypeError('argument stream is required')\n }\n\n options = options || {}\n\n var encoding = options.encoding\n || (stream.headers && stream.headers['content-encoding'])\n || 'identity'\n \n var decompression\n switch (encoding) {\n case 'gzip':\n case 'deflate':\n delete options.brotli\n delete options.encoding\n decompression = zlib.createUnzip(options)\n break\n case 'br':\n if (zlib.createBrotliDecompress) {\n decompression = zlib.createBrotliDecompress(options.brotli)\n }\n break\n case 'identity':\n return stream\n }\n\n if (!decompression) {\n var err = new Error('Unsupported Content-Encoding: ' + encoding)\n err.status = 415\n throw err\n }\n\n return stream.pipe(decompression)\n}\n","import { decode } from '@nhtio/encoder'\nimport { default as raw } from 'raw-body'\nimport { default as inflate } from 'inflation'\nimport { E_ENCODED_BODY_PARSING_FAILED } from '@nhtio/lucid-resourceful/errors'\nimport type { IncomingMessage } from 'node:http'\nimport type { HttpContext } from '@adonisjs/core/http'\nimport type { NextFn } from '@adonisjs/core/types/http'\nimport type { Encoding, Options as RawBodyOptions } from 'raw-body'\n\nexport class ResourcefulEncodedRequestMiddleware {\n /**\n * Heavily borrows functionality from:\n * https://github.com/adonisjs/bodyparser/blob/889f5674495c2c01a5db546c67f4b4af54da3671/src/parsers/text.ts#L39\n */\n async #getRaw(req: IncomingMessage): Promise<string | null> {\n try {\n const options: RawBodyOptions & { encoding: Encoding } = {\n encoding: 'utf-8',\n limit: '100mb',\n length: 0,\n }\n const contentLength =\n req.headers['content-length'] || req.headers['x-resourceful-content-length']\n const encoding = req.headers['content-encoding'] || 'identity'\n if (contentLength && encoding === 'identity') {\n options.length = ~~contentLength\n }\n const inflated = inflate(req)\n const fetched = await raw(inflated, options)\n const asString = fetched.toString()\n return asString ? asString : null\n } catch (e) {\n throw new E_ENCODED_BODY_PARSING_FAILED(undefined, {\n cause: e instanceof Error ? e : undefined,\n })\n }\n }\n\n async handle(ctx: HttpContext, next: NextFn) {\n const contentType = ctx.request.header('content-type') || ''\n if (\n ctx.request.header('x-resourceful-request-encoded') === '1' &&\n contentType.includes('application/vnd.resourceful.structured')\n ) {\n const hasBody = ctx.request.hasBody()\n if (hasBody) {\n const rawString = await this.#getRaw(ctx.request.request)\n if (rawString === null) {\n return next()\n }\n const decoded = decode<Record<string, any>>(rawString)\n ctx.request.setInitialBody(decoded)\n ctx.request.updateRawBody(rawString)\n ctx.request.bodyType = 'resourceful-encoded'\n }\n }\n return next()\n }\n}\n"],"names":["bytesModule","bytes","require$$0","process","codes","status","require$$1","statuses","require$$2","require$$3","require$$4","module","exports","encoding","i","require$$5","require$$6","require$$7","require$$8","require$$9","bomHandling","raw","streamModule","streams","global","Buffer","inflate","E_ENCODED_BODY_PARSING_FAILED","decode"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}
|