Files
S. EsmaeiliandClaude Haiku 5.5 10e453e4be build: ship pre-built API bundle; images copy output instead of installing
- API: `pnpm build` bundles dist/ into apps/api/.output (esbuild), with
  Linux musl native packages for sharp and argon2 kept alongside
- docker/api.Dockerfile copies that output; no pnpm install on the server
- add dist/migrate.js (prisma migrate deploy equivalent, same
  _prisma_migrations table and lock) so the Prisma CLI is not needed at runtime
- pnpm-workspace: supportedArchitectures for linux/x64/musl
- admin: apps/admin/.env.production sets VITE_SITE_URL for the production build
- drop NPM_REGISTRY / SITE_URL build args from compose and .env.example
- gitignore: anchor node_modules rules so pre-built node_modules are committed
- README: describe the pre-built deploy flow

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-24 14:41:31 +03:30

53630 lines
2.1 MiB
Plaintext

import { createRequire as __bundleCreateRequire } from "node:module"; const require = __bundleCreateRequire(import.meta.url);
import {
BadRequestException,
CATCH_WATERMARK,
CONTROLLER_WATERMARK,
CUSTOM_ROUTE_ARGS_METADATA,
ConsoleLogger,
ENHANCER_KEY_TO_SUBTYPE_MAP,
ENTRY_PROVIDER_WATERMARK,
EXCEPTION_FILTERS_METADATA,
FILTER_CATCH_EXCEPTIONS,
ForbiddenException,
GLOBAL_MODULE_METADATA,
GUARDS_METADATA,
Global,
HEADERS_METADATA,
HOST_METADATA,
HTTP_CODE_METADATA,
HttpException,
HttpStatus,
INJECTABLE_WATERMARK,
INTERCEPTORS_METADATA,
Inject,
Injectable,
InternalServerErrorException,
IntrinsicException,
Logger,
METHOD_METADATA,
MODULE_METADATA,
MODULE_PATH,
Module,
NotFoundException,
OPTIONAL_DEPS_METADATA,
OPTIONAL_PROPERTY_DEPS_METADATA,
Optional,
PARAMTYPES_METADATA,
PATH_METADATA,
PIPES_METADATA,
PROPERTY_DEPS_METADATA,
PayloadTooLargeException,
REDIRECT_METADATA,
RENDER_METADATA,
RESPONSE_PASSTHROUGH_METADATA,
ROUTE_ARGS_METADATA,
RequestMethod,
RouteParamtypes,
SCOPE_OPTIONS_METADATA,
SELF_DECLARED_DEPS_METADATA,
SSE_ABORT_CONTROLLER,
SSE_METADATA,
SSE_OPTIONS_METADATA,
Scope,
SetMetadata,
ShutdownSignal,
StreamableFile,
VERSION_METADATA,
VERSION_NEUTRAL,
VersioningType,
__decorate,
__metadata,
__param,
addLeadingSlash,
clc,
flatten,
init_cli_colors_util,
init_common,
init_constants,
init_dist,
init_load_package_util,
init_parameter_decorator_options_util,
init_random_string_generator_util,
init_route_params_decorator,
init_route_paramtypes_enum,
init_shared_utils,
init_tslib_es6,
isConstructor,
isEmpty,
isEmptyArray,
isFunction,
isNil,
isObject,
isPlainObject,
isString,
isSymbol,
isUndefined,
loadPackage,
loadPackageCached,
mixin,
normalizePath,
randomStringGenerator,
require_ArgumentOutOfRangeError,
require_AsyncAction,
require_AsyncScheduler,
require_AsyncSubject,
require_BehaviorSubject,
require_ConnectableObservable,
require_EmptyError,
require_NotFoundError,
require_Notification,
require_ObjectUnsubscribedError,
require_Observable,
require_OperatorSubscriber,
require_Reflect,
require_ReplaySubject,
require_Scheduler,
require_SequenceError,
require_Subject,
require_Subscriber,
require_Subscription,
require_UnsubscriptionError,
require_args,
require_argsArgArrayOrObject,
require_async,
require_audit,
require_auditTime,
require_buffer,
require_bufferCount,
require_bufferTime,
require_bufferToggle,
require_bufferWhen,
require_catchError,
require_combineAll,
require_combineLatest,
require_combineLatestAll,
require_combineLatestWith,
require_concat,
require_concatAll,
require_concatMap,
require_concatMapTo,
require_concatWith,
require_config,
require_connect,
require_count,
require_createObject,
require_debounce,
require_debounceTime,
require_defaultIfEmpty,
require_delay,
require_delayWhen,
require_dematerialize,
require_distinct,
require_distinctUntilChanged,
require_distinctUntilKeyChanged,
require_elementAt,
require_empty,
require_endWith,
require_every,
require_exhaust,
require_exhaustAll,
require_exhaustMap,
require_expand,
require_filter,
require_finalize,
require_find,
require_findIndex,
require_first,
require_flatMap,
require_from,
require_groupBy,
require_identity,
require_ignoreElements,
require_innerFrom,
require_interval,
require_isArrayLike,
require_isEmpty,
require_isFunction,
require_isScheduler,
require_last,
require_lib,
require_map,
require_mapOneOrManyArgs,
require_mapTo,
require_materialize,
require_max,
require_mergeAll,
require_mergeMap,
require_mergeMapTo,
require_mergeScan,
require_mergeWith,
require_min,
require_multicast,
require_noop,
require_not,
require_observable,
require_observeOn,
require_of,
require_onErrorResumeNext,
require_onErrorResumeNextWith,
require_operators,
require_pairwise,
require_pipe,
require_pluck,
require_publish,
require_publishBehavior,
require_publishLast,
require_publishReplay,
require_race,
require_raceWith,
require_reduce,
require_refCount,
require_repeat,
require_repeatWhen,
require_retry,
require_retryWhen,
require_sample,
require_sampleTime,
require_scan,
require_scheduleIterable,
require_scheduled,
require_sequenceEqual,
require_share,
require_shareReplay,
require_single,
require_skip,
require_skipLast,
require_skipUntil,
require_skipWhile,
require_startWith,
require_subscribeOn,
require_switchAll,
require_switchMap,
require_switchMapTo,
require_switchScan,
require_take,
require_takeLast,
require_takeUntil,
require_takeWhile,
require_tap,
require_throttle,
require_throttleTime,
require_throwError,
require_throwIfEmpty,
require_timeInterval,
require_timeout,
require_timeoutWith,
require_timer,
require_timestamp,
require_toArray,
require_window,
require_windowCount,
require_windowTime,
require_windowToggle,
require_windowWhen,
require_withLatestFrom,
require_zip,
require_zipAll,
require_zipWith,
stripEndSlash,
tryLoadPackage,
uid
} from "./chunk-BX2ML7LW.js";
import {
require_src
} from "./chunk-C4DYPKAN.js";
import {
require_ms
} from "./chunk-A34KYKJP.js";
import {
__commonJS,
__esm,
__export,
__name,
__require,
__toESM
} from "./chunk-T6GW54FI.js";
// ../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js
var require_object_assign = __commonJS({
"../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js"(exports, module) {
"use strict";
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === void 0) {
throw new TypeError("Object.assign cannot be called with null or undefined");
}
return Object(val);
}
__name(toObject, "toObject");
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
var test1 = new String("abc");
test1[5] = "de";
if (Object.getOwnPropertyNames(test1)[0] === "5") {
return false;
}
var test2 = {};
for (var i = 0; i < 10; i++) {
test2["_" + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
return test2[n];
});
if (order2.join("") !== "0123456789") {
return false;
}
var test3 = {};
"abcdefghijklmnopqrst".split("").forEach(function(letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join("") !== "abcdefghijklmnopqrst") {
return false;
}
return true;
} catch (err) {
return false;
}
}
__name(shouldUseNative, "shouldUseNative");
module.exports = shouldUseNative() ? Object.assign : function(target, source) {
var from2;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from2 = Object(arguments[s]);
for (var key in from2) {
if (hasOwnProperty.call(from2, key)) {
to[key] = from2[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from2);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from2, symbols[i])) {
to[symbols[i]] = from2[symbols[i]];
}
}
}
}
return to;
};
}
});
// ../../node_modules/.pnpm/vary@1.1.2/node_modules/vary/index.js
var require_vary = __commonJS({
"../../node_modules/.pnpm/vary@1.1.2/node_modules/vary/index.js"(exports, module) {
"use strict";
module.exports = vary;
module.exports.append = append;
var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
function append(header, field) {
if (typeof header !== "string") {
throw new TypeError("header argument is required");
}
if (!field) {
throw new TypeError("field argument is required");
}
var fields = !Array.isArray(field) ? parse(String(field)) : field;
for (var j = 0; j < fields.length; j++) {
if (!FIELD_NAME_REGEXP.test(fields[j])) {
throw new TypeError("field argument contains an invalid header name");
}
}
if (header === "*") {
return header;
}
var val = header;
var vals = parse(header.toLowerCase());
if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) {
return "*";
}
for (var i = 0; i < fields.length; i++) {
var fld = fields[i].toLowerCase();
if (vals.indexOf(fld) === -1) {
vals.push(fld);
val = val ? val + ", " + fields[i] : fields[i];
}
}
return val;
}
__name(append, "append");
function parse(header) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = header.length; i < len; i++) {
switch (header.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
list.push(header.substring(start, end));
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
list.push(header.substring(start, end));
return list;
}
__name(parse, "parse");
function vary(res, field) {
if (!res || !res.getHeader || !res.setHeader) {
throw new TypeError("res argument is required");
}
var val = res.getHeader("Vary") || "";
var header = Array.isArray(val) ? val.join(", ") : String(val);
if (val = append(header, field)) {
res.setHeader("Vary", val);
}
}
__name(vary, "vary");
}
});
// ../../node_modules/.pnpm/cors@2.8.6/node_modules/cors/lib/index.js
var require_lib2 = __commonJS({
"../../node_modules/.pnpm/cors@2.8.6/node_modules/cors/lib/index.js"(exports, module) {
(function() {
"use strict";
var assign = require_object_assign();
var vary = require_vary();
var defaults = {
origin: "*",
methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
preflightContinue: false,
optionsSuccessStatus: 204
};
function isString2(s) {
return typeof s === "string" || s instanceof String;
}
__name(isString2, "isString");
function isOriginAllowed(origin, allowedOrigin) {
if (Array.isArray(allowedOrigin)) {
for (var i = 0; i < allowedOrigin.length; ++i) {
if (isOriginAllowed(origin, allowedOrigin[i])) {
return true;
}
}
return false;
} else if (isString2(allowedOrigin)) {
return origin === allowedOrigin;
} else if (allowedOrigin instanceof RegExp) {
return allowedOrigin.test(origin);
} else {
return !!allowedOrigin;
}
}
__name(isOriginAllowed, "isOriginAllowed");
function configureOrigin(options, req) {
var requestOrigin = req.headers.origin, headers = [], isAllowed;
if (!options.origin || options.origin === "*") {
headers.push([{
key: "Access-Control-Allow-Origin",
value: "*"
}]);
} else if (isString2(options.origin)) {
headers.push([{
key: "Access-Control-Allow-Origin",
value: options.origin
}]);
headers.push([{
key: "Vary",
value: "Origin"
}]);
} else {
isAllowed = isOriginAllowed(requestOrigin, options.origin);
headers.push([{
key: "Access-Control-Allow-Origin",
value: isAllowed ? requestOrigin : false
}]);
headers.push([{
key: "Vary",
value: "Origin"
}]);
}
return headers;
}
__name(configureOrigin, "configureOrigin");
function configureMethods(options) {
var methods = options.methods;
if (methods.join) {
methods = options.methods.join(",");
}
return {
key: "Access-Control-Allow-Methods",
value: methods
};
}
__name(configureMethods, "configureMethods");
function configureCredentials(options) {
if (options.credentials === true) {
return {
key: "Access-Control-Allow-Credentials",
value: "true"
};
}
return null;
}
__name(configureCredentials, "configureCredentials");
function configureAllowedHeaders(options, req) {
var allowedHeaders = options.allowedHeaders || options.headers;
var headers = [];
if (!allowedHeaders) {
allowedHeaders = req.headers["access-control-request-headers"];
headers.push([{
key: "Vary",
value: "Access-Control-Request-Headers"
}]);
} else if (allowedHeaders.join) {
allowedHeaders = allowedHeaders.join(",");
}
if (allowedHeaders && allowedHeaders.length) {
headers.push([{
key: "Access-Control-Allow-Headers",
value: allowedHeaders
}]);
}
return headers;
}
__name(configureAllowedHeaders, "configureAllowedHeaders");
function configureExposedHeaders(options) {
var headers = options.exposedHeaders;
if (!headers) {
return null;
} else if (headers.join) {
headers = headers.join(",");
}
if (headers && headers.length) {
return {
key: "Access-Control-Expose-Headers",
value: headers
};
}
return null;
}
__name(configureExposedHeaders, "configureExposedHeaders");
function configureMaxAge(options) {
var maxAge = (typeof options.maxAge === "number" || options.maxAge) && options.maxAge.toString();
if (maxAge && maxAge.length) {
return {
key: "Access-Control-Max-Age",
value: maxAge
};
}
return null;
}
__name(configureMaxAge, "configureMaxAge");
function applyHeaders(headers, res) {
for (var i = 0, n = headers.length; i < n; i++) {
var header = headers[i];
if (header) {
if (Array.isArray(header)) {
applyHeaders(header, res);
} else if (header.key === "Vary" && header.value) {
vary(res, header.value);
} else if (header.value) {
res.setHeader(header.key, header.value);
}
}
}
}
__name(applyHeaders, "applyHeaders");
function cors2(options, req, res, next) {
var headers = [], method = req.method && req.method.toUpperCase && req.method.toUpperCase();
if (method === "OPTIONS") {
headers.push(configureOrigin(options, req));
headers.push(configureCredentials(options));
headers.push(configureMethods(options));
headers.push(configureAllowedHeaders(options, req));
headers.push(configureMaxAge(options));
headers.push(configureExposedHeaders(options));
applyHeaders(headers, res);
if (options.preflightContinue) {
next();
} else {
res.statusCode = options.optionsSuccessStatus;
res.setHeader("Content-Length", "0");
res.end();
}
} else {
headers.push(configureOrigin(options, req));
headers.push(configureCredentials(options));
headers.push(configureExposedHeaders(options));
applyHeaders(headers, res);
next();
}
}
__name(cors2, "cors");
function middlewareWrapper(o) {
var optionsCallback = null;
if (typeof o === "function") {
optionsCallback = o;
} else {
optionsCallback = /* @__PURE__ */ __name(function(req, cb) {
cb(null, o);
}, "optionsCallback");
}
return /* @__PURE__ */ __name(function corsMiddleware(req, res, next) {
optionsCallback(req, function(err, options) {
if (err) {
next(err);
} else {
var corsOptions = assign({}, defaults, options);
var originCallback = null;
if (corsOptions.origin && typeof corsOptions.origin === "function") {
originCallback = corsOptions.origin;
} else if (corsOptions.origin) {
originCallback = /* @__PURE__ */ __name(function(origin, cb) {
cb(null, corsOptions.origin);
}, "originCallback");
}
if (originCallback) {
originCallback(req.headers.origin, function(err2, origin) {
if (err2 || !origin) {
next(err2);
} else {
corsOptions.origin = origin;
cors2(corsOptions, req, res, next);
}
});
} else {
next();
}
}
});
}, "corsMiddleware");
}
__name(middlewareWrapper, "middlewareWrapper");
module.exports = middlewareWrapper;
})();
}
});
// ../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js
var require_depd = __commonJS({
"../../node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js"(exports, module) {
var relative = __require("path").relative;
module.exports = depd;
var basePath = process.cwd();
function containsNamespace(str, namespace) {
var vals = str.split(/[ ,]+/);
var ns = String(namespace).toLowerCase();
for (var i = 0; i < vals.length; i++) {
var val = vals[i];
if (val && (val === "*" || val.toLowerCase() === ns)) {
return true;
}
}
return false;
}
__name(containsNamespace, "containsNamespace");
function convertDataDescriptorToAccessor(obj, prop, message) {
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
var value = descriptor.value;
descriptor.get = /* @__PURE__ */ __name(function getter() {
return value;
}, "getter");
if (descriptor.writable) {
descriptor.set = /* @__PURE__ */ __name(function setter(val) {
return value = val;
}, "setter");
}
delete descriptor.value;
delete descriptor.writable;
Object.defineProperty(obj, prop, descriptor);
return descriptor;
}
__name(convertDataDescriptorToAccessor, "convertDataDescriptorToAccessor");
function createArgumentsString(arity) {
var str = "";
for (var i = 0; i < arity; i++) {
str += ", arg" + i;
}
return str.substr(2);
}
__name(createArgumentsString, "createArgumentsString");
function createStackString(stack) {
var str = this.name + ": " + this.namespace;
if (this.message) {
str += " deprecated " + this.message;
}
for (var i = 0; i < stack.length; i++) {
str += "\n at " + stack[i].toString();
}
return str;
}
__name(createStackString, "createStackString");
function depd(namespace) {
if (!namespace) {
throw new TypeError("argument namespace is required");
}
var stack = getStack();
var site = callSiteLocation(stack[1]);
var file = site[0];
function deprecate(message) {
log.call(deprecate, message);
}
__name(deprecate, "deprecate");
deprecate._file = file;
deprecate._ignored = isignored(namespace);
deprecate._namespace = namespace;
deprecate._traced = istraced(namespace);
deprecate._warned = /* @__PURE__ */ Object.create(null);
deprecate.function = wrapfunction;
deprecate.property = wrapproperty;
return deprecate;
}
__name(depd, "depd");
function eehaslisteners(emitter, type) {
var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
return count > 0;
}
__name(eehaslisteners, "eehaslisteners");
function isignored(namespace) {
if (process.noDeprecation) {
return true;
}
var str = process.env.NO_DEPRECATION || "";
return containsNamespace(str, namespace);
}
__name(isignored, "isignored");
function istraced(namespace) {
if (process.traceDeprecation) {
return true;
}
var str = process.env.TRACE_DEPRECATION || "";
return containsNamespace(str, namespace);
}
__name(istraced, "istraced");
function log(message, site) {
var haslisteners = eehaslisteners(process, "deprecation");
if (!haslisteners && this._ignored) {
return;
}
var caller;
var callFile;
var callSite;
var depSite;
var i = 0;
var seen = false;
var stack = getStack();
var file = this._file;
if (site) {
depSite = site;
callSite = callSiteLocation(stack[1]);
callSite.name = depSite.name;
file = callSite[0];
} else {
i = 2;
depSite = callSiteLocation(stack[i]);
callSite = depSite;
}
for (; i < stack.length; i++) {
caller = callSiteLocation(stack[i]);
callFile = caller[0];
if (callFile === file) {
seen = true;
} else if (callFile === this._file) {
file = this._file;
} else if (seen) {
break;
}
}
var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0;
if (key !== void 0 && key in this._warned) {
return;
}
this._warned[key] = true;
var msg = message;
if (!msg) {
msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite);
}
if (haslisteners) {
var err = DeprecationError(this._namespace, msg, stack.slice(i));
process.emit("deprecation", err);
return;
}
var format = process.stderr.isTTY ? formatColor : formatPlain;
var output = format.call(this, msg, caller, stack.slice(i));
process.stderr.write(output + "\n", "utf8");
}
__name(log, "log");
function callSiteLocation(callSite) {
var file = callSite.getFileName() || "<anonymous>";
var line = callSite.getLineNumber();
var colm = callSite.getColumnNumber();
if (callSite.isEval()) {
file = callSite.getEvalOrigin() + ", " + file;
}
var site = [file, line, colm];
site.callSite = callSite;
site.name = callSite.getFunctionName();
return site;
}
__name(callSiteLocation, "callSiteLocation");
function defaultMessage(site) {
var callSite = site.callSite;
var funcName = site.name;
if (!funcName) {
funcName = "<anonymous@" + formatLocation(site) + ">";
}
var context = callSite.getThis();
var typeName = context && callSite.getTypeName();
if (typeName === "Object") {
typeName = void 0;
}
if (typeName === "Function") {
typeName = context.name || typeName;
}
return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName;
}
__name(defaultMessage, "defaultMessage");
function formatPlain(msg, caller, stack) {
var timestamp = (/* @__PURE__ */ new Date()).toUTCString();
var formatted = timestamp + " " + this._namespace + " deprecated " + msg;
if (this._traced) {
for (var i = 0; i < stack.length; i++) {
formatted += "\n at " + stack[i].toString();
}
return formatted;
}
if (caller) {
formatted += " at " + formatLocation(caller);
}
return formatted;
}
__name(formatPlain, "formatPlain");
function formatColor(msg, caller, stack) {
var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m";
if (this._traced) {
for (var i = 0; i < stack.length; i++) {
formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m";
}
return formatted;
}
if (caller) {
formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m";
}
return formatted;
}
__name(formatColor, "formatColor");
function formatLocation(callSite) {
return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
}
__name(formatLocation, "formatLocation");
function getStack() {
var limit = Error.stackTraceLimit;
var obj = {};
var prep = Error.prepareStackTrace;
Error.prepareStackTrace = prepareObjectStackTrace;
Error.stackTraceLimit = Math.max(10, limit);
Error.captureStackTrace(obj);
var stack = obj.stack.slice(1);
Error.prepareStackTrace = prep;
Error.stackTraceLimit = limit;
return stack;
}
__name(getStack, "getStack");
function prepareObjectStackTrace(obj, stack) {
return stack;
}
__name(prepareObjectStackTrace, "prepareObjectStackTrace");
function wrapfunction(fn, message) {
if (typeof fn !== "function") {
throw new TypeError("argument fn must be a function");
}
var args = createArgumentsString(fn.length);
var stack = getStack();
var site = callSiteLocation(stack[1]);
site.name = fn.name;
var deprecatedfn = new Function(
"fn",
"log",
"deprecate",
"message",
"site",
'"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}"
)(fn, log, this, message, site);
return deprecatedfn;
}
__name(wrapfunction, "wrapfunction");
function wrapproperty(obj, prop, message) {
if (!obj || typeof obj !== "object" && typeof obj !== "function") {
throw new TypeError("argument obj must be object");
}
var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
if (!descriptor) {
throw new TypeError("must call property on owner object");
}
if (!descriptor.configurable) {
throw new TypeError("property must be configurable");
}
var deprecate = this;
var stack = getStack();
var site = callSiteLocation(stack[1]);
site.name = prop;
if ("value" in descriptor) {
descriptor = convertDataDescriptorToAccessor(obj, prop, message);
}
var get = descriptor.get;
var set = descriptor.set;
if (typeof get === "function") {
descriptor.get = /* @__PURE__ */ __name(function getter() {
log.call(deprecate, message, site);
return get.apply(this, arguments);
}, "getter");
}
if (typeof set === "function") {
descriptor.set = /* @__PURE__ */ __name(function setter() {
log.call(deprecate, message, site);
return set.apply(this, arguments);
}, "setter");
}
Object.defineProperty(obj, prop, descriptor);
}
__name(wrapproperty, "wrapproperty");
function DeprecationError(namespace, message, stack) {
var error = new Error();
var stackString;
Object.defineProperty(error, "constructor", {
value: DeprecationError
});
Object.defineProperty(error, "message", {
configurable: true,
enumerable: false,
value: message,
writable: true
});
Object.defineProperty(error, "name", {
enumerable: false,
configurable: true,
value: "DeprecationError",
writable: true
});
Object.defineProperty(error, "namespace", {
configurable: true,
enumerable: false,
value: namespace,
writable: true
});
Object.defineProperty(error, "stack", {
configurable: true,
enumerable: false,
get: /* @__PURE__ */ __name(function() {
if (stackString !== void 0) {
return stackString;
}
return stackString = createStackString.call(this, stack);
}, "get"),
set: /* @__PURE__ */ __name(function setter(val) {
stackString = val;
}, "setter")
});
return error;
}
__name(DeprecationError, "DeprecationError");
}
});
// ../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js
var require_setprototypeof = __commonJS({
"../../node_modules/.pnpm/setprototypeof@1.2.0/node_modules/setprototypeof/index.js"(exports, module) {
"use strict";
module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);
function setProtoOf(obj, proto) {
obj.__proto__ = proto;
return obj;
}
__name(setProtoOf, "setProtoOf");
function mixinProperties(obj, proto) {
for (var prop in proto) {
if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
obj[prop] = proto[prop];
}
}
return obj;
}
__name(mixinProperties, "mixinProperties");
}
});
// ../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/codes.json
var require_codes = __commonJS({
"../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/codes.json"(exports, module) {
module.exports = {
"100": "Continue",
"101": "Switching Protocols",
"102": "Processing",
"103": "Early Hints",
"200": "OK",
"201": "Created",
"202": "Accepted",
"203": "Non-Authoritative Information",
"204": "No Content",
"205": "Reset Content",
"206": "Partial Content",
"207": "Multi-Status",
"208": "Already Reported",
"226": "IM Used",
"300": "Multiple Choices",
"301": "Moved Permanently",
"302": "Found",
"303": "See Other",
"304": "Not Modified",
"305": "Use Proxy",
"307": "Temporary Redirect",
"308": "Permanent Redirect",
"400": "Bad Request",
"401": "Unauthorized",
"402": "Payment Required",
"403": "Forbidden",
"404": "Not Found",
"405": "Method Not Allowed",
"406": "Not Acceptable",
"407": "Proxy Authentication Required",
"408": "Request Timeout",
"409": "Conflict",
"410": "Gone",
"411": "Length Required",
"412": "Precondition Failed",
"413": "Payload Too Large",
"414": "URI Too Long",
"415": "Unsupported Media Type",
"416": "Range Not Satisfiable",
"417": "Expectation Failed",
"418": "I'm a Teapot",
"421": "Misdirected Request",
"422": "Unprocessable Entity",
"423": "Locked",
"424": "Failed Dependency",
"425": "Too Early",
"426": "Upgrade Required",
"428": "Precondition Required",
"429": "Too Many Requests",
"431": "Request Header Fields Too Large",
"451": "Unavailable For Legal Reasons",
"500": "Internal Server Error",
"501": "Not Implemented",
"502": "Bad Gateway",
"503": "Service Unavailable",
"504": "Gateway Timeout",
"505": "HTTP Version Not Supported",
"506": "Variant Also Negotiates",
"507": "Insufficient Storage",
"508": "Loop Detected",
"509": "Bandwidth Limit Exceeded",
"510": "Not Extended",
"511": "Network Authentication Required"
};
}
});
// ../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js
var require_statuses = __commonJS({
"../../node_modules/.pnpm/statuses@2.0.2/node_modules/statuses/index.js"(exports, module) {
"use strict";
var codes = require_codes();
module.exports = status;
status.message = codes;
status.code = createMessageToStatusCodeMap(codes);
status.codes = createStatusCodeList(codes);
status.redirect = {
300: true,
301: true,
302: true,
303: true,
305: true,
307: true,
308: true
};
status.empty = {
204: true,
205: true,
304: true
};
status.retry = {
502: true,
503: true,
504: true
};
function createMessageToStatusCodeMap(codes2) {
var map2 = {};
Object.keys(codes2).forEach(/* @__PURE__ */ __name(function forEachCode(code) {
var message = codes2[code];
var status2 = Number(code);
map2[message.toLowerCase()] = status2;
}, "forEachCode"));
return map2;
}
__name(createMessageToStatusCodeMap, "createMessageToStatusCodeMap");
function createStatusCodeList(codes2) {
return Object.keys(codes2).map(/* @__PURE__ */ __name(function mapCode(code) {
return Number(code);
}, "mapCode"));
}
__name(createStatusCodeList, "createStatusCodeList");
function getStatusCode(message) {
var msg = message.toLowerCase();
if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {
throw new Error('invalid status message: "' + message + '"');
}
return status.code[msg];
}
__name(getStatusCode, "getStatusCode");
function getStatusMessage(code) {
if (!Object.prototype.hasOwnProperty.call(status.message, code)) {
throw new Error("invalid status code: " + code);
}
return status.message[code];
}
__name(getStatusMessage, "getStatusMessage");
function status(code) {
if (typeof code === "number") {
return getStatusMessage(code);
}
if (typeof code !== "string") {
throw new TypeError("code must be a number or string");
}
var n = parseInt(code, 10);
if (!isNaN(n)) {
return getStatusMessage(n);
}
return getStatusCode(code);
}
__name(status, "status");
}
});
// ../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js
var require_inherits_browser = __commonJS({
"../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js"(exports, module) {
if (typeof Object.create === "function") {
module.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor;
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
});
}
}, "inherits");
} else {
module.exports = /* @__PURE__ */ __name(function inherits(ctor, superCtor) {
if (superCtor) {
ctor.super_ = superCtor;
var TempCtor = /* @__PURE__ */ __name(function() {
}, "TempCtor");
TempCtor.prototype = superCtor.prototype;
ctor.prototype = new TempCtor();
ctor.prototype.constructor = ctor;
}
}, "inherits");
}
}
});
// ../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js
var require_inherits = __commonJS({
"../../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js"(exports, module) {
try {
util = __require("util");
if (typeof util.inherits !== "function") throw "";
module.exports = util.inherits;
} catch (e) {
module.exports = require_inherits_browser();
}
var util;
}
});
// ../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js
var require_toidentifier = __commonJS({
"../../node_modules/.pnpm/toidentifier@1.0.1/node_modules/toidentifier/index.js"(exports, module) {
"use strict";
module.exports = toIdentifier;
function toIdentifier(str) {
return str.split(" ").map(function(token) {
return token.slice(0, 1).toUpperCase() + token.slice(1);
}).join("").replace(/[^ _0-9a-z]/gi, "");
}
__name(toIdentifier, "toIdentifier");
}
});
// ../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js
var require_http_errors = __commonJS({
"../../node_modules/.pnpm/http-errors@2.0.1/node_modules/http-errors/index.js"(exports, module) {
"use strict";
var deprecate = require_depd()("http-errors");
var setPrototypeOf = require_setprototypeof();
var statuses = require_statuses();
var inherits = require_inherits();
var toIdentifier = require_toidentifier();
module.exports = createError;
module.exports.HttpError = createHttpErrorConstructor();
module.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError);
populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError);
function codeClass(status) {
return Number(String(status).charAt(0) + "00");
}
__name(codeClass, "codeClass");
function createError() {
var err;
var msg;
var status = 500;
var props = {};
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
var type = typeof arg;
if (type === "object" && arg instanceof Error) {
err = arg;
status = err.status || err.statusCode || status;
} else if (type === "number" && i === 0) {
status = arg;
} else if (type === "string") {
msg = arg;
} else if (type === "object") {
props = arg;
} else {
throw new TypeError("argument #" + (i + 1) + " unsupported type " + type);
}
}
if (typeof status === "number" && (status < 400 || status >= 600)) {
deprecate("non-error status code; use only 4xx or 5xx status codes");
}
if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) {
status = 500;
}
var HttpError = createError[status] || createError[codeClass(status)];
if (!err) {
err = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]);
Error.captureStackTrace(err, createError);
}
if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
err.expose = status < 500;
err.status = err.statusCode = status;
}
for (var key in props) {
if (key !== "status" && key !== "statusCode") {
err[key] = props[key];
}
}
return err;
}
__name(createError, "createError");
function createHttpErrorConstructor() {
function HttpError() {
throw new TypeError("cannot construct abstract class");
}
__name(HttpError, "HttpError");
inherits(HttpError, Error);
return HttpError;
}
__name(createHttpErrorConstructor, "createHttpErrorConstructor");
function createClientErrorConstructor(HttpError, name, code) {
var className = toClassName(name);
function ClientError(message) {
var msg = message != null ? message : statuses.message[code];
var err = new Error(msg);
Error.captureStackTrace(err, ClientError);
setPrototypeOf(err, ClientError.prototype);
Object.defineProperty(err, "message", {
enumerable: true,
configurable: true,
value: msg,
writable: true
});
Object.defineProperty(err, "name", {
enumerable: false,
configurable: true,
value: className,
writable: true
});
return err;
}
__name(ClientError, "ClientError");
inherits(ClientError, HttpError);
nameFunc(ClientError, className);
ClientError.prototype.status = code;
ClientError.prototype.statusCode = code;
ClientError.prototype.expose = true;
return ClientError;
}
__name(createClientErrorConstructor, "createClientErrorConstructor");
function createIsHttpErrorFunction(HttpError) {
return /* @__PURE__ */ __name(function isHttpError(val) {
if (!val || typeof val !== "object") {
return false;
}
if (val instanceof HttpError) {
return true;
}
return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode;
}, "isHttpError");
}
__name(createIsHttpErrorFunction, "createIsHttpErrorFunction");
function createServerErrorConstructor(HttpError, name, code) {
var className = toClassName(name);
function ServerError(message) {
var msg = message != null ? message : statuses.message[code];
var err = new Error(msg);
Error.captureStackTrace(err, ServerError);
setPrototypeOf(err, ServerError.prototype);
Object.defineProperty(err, "message", {
enumerable: true,
configurable: true,
value: msg,
writable: true
});
Object.defineProperty(err, "name", {
enumerable: false,
configurable: true,
value: className,
writable: true
});
return err;
}
__name(ServerError, "ServerError");
inherits(ServerError, HttpError);
nameFunc(ServerError, className);
ServerError.prototype.status = code;
ServerError.prototype.statusCode = code;
ServerError.prototype.expose = false;
return ServerError;
}
__name(createServerErrorConstructor, "createServerErrorConstructor");
function nameFunc(func, name) {
var desc = Object.getOwnPropertyDescriptor(func, "name");
if (desc && desc.configurable) {
desc.value = name;
Object.defineProperty(func, "name", desc);
}
}
__name(nameFunc, "nameFunc");
function populateConstructorExports(exports2, codes, HttpError) {
codes.forEach(/* @__PURE__ */ __name(function forEachCode(code) {
var CodeError;
var name = toIdentifier(statuses.message[code]);
switch (codeClass(code)) {
case 400:
CodeError = createClientErrorConstructor(HttpError, name, code);
break;
case 500:
CodeError = createServerErrorConstructor(HttpError, name, code);
break;
}
if (CodeError) {
exports2[code] = CodeError;
exports2[name] = CodeError;
}
}, "forEachCode"));
}
__name(populateConstructorExports, "populateConstructorExports");
function toClassName(name) {
return name.slice(-5) === "Error" ? name : name + "Error";
}
__name(toClassName, "toClassName");
}
});
// ../../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js
var require_bytes = __commonJS({
"../../node_modules/.pnpm/bytes@3.1.2/node_modules/bytes/index.js"(exports, module) {
"use strict";
module.exports = bytes;
module.exports.format = format;
module.exports.parse = parse;
var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
var map2 = {
b: 1,
kb: 1 << 10,
mb: 1 << 20,
gb: 1 << 30,
tb: Math.pow(1024, 4),
pb: Math.pow(1024, 5)
};
var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
function bytes(value, options) {
if (typeof value === "string") {
return parse(value);
}
if (typeof value === "number") {
return format(value, options);
}
return null;
}
__name(bytes, "bytes");
function format(value, options) {
if (!Number.isFinite(value)) {
return null;
}
var mag = Math.abs(value);
var thousandsSeparator = options && options.thousandsSeparator || "";
var unitSeparator = options && options.unitSeparator || "";
var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2;
var fixedDecimals = Boolean(options && options.fixedDecimals);
var unit = options && options.unit || "";
if (!unit || !map2[unit.toLowerCase()]) {
if (mag >= map2.pb) {
unit = "PB";
} else if (mag >= map2.tb) {
unit = "TB";
} else if (mag >= map2.gb) {
unit = "GB";
} else if (mag >= map2.mb) {
unit = "MB";
} else if (mag >= map2.kb) {
unit = "KB";
} else {
unit = "B";
}
}
var val = value / map2[unit.toLowerCase()];
var str = val.toFixed(decimalPlaces);
if (!fixedDecimals) {
str = str.replace(formatDecimalsRegExp, "$1");
}
if (thousandsSeparator) {
str = str.split(".").map(function(s, i) {
return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s;
}).join(".");
}
return str + unitSeparator + unit;
}
__name(format, "format");
function parse(val) {
if (typeof val === "number" && !isNaN(val)) {
return val;
}
if (typeof val !== "string") {
return null;
}
var results = parseRegExp.exec(val);
var floatValue;
var unit = "b";
if (!results) {
floatValue = parseInt(val, 10);
unit = "b";
} else {
floatValue = parseFloat(results[1]);
unit = results[4].toLowerCase();
}
if (isNaN(floatValue)) {
return null;
}
return Math.floor(map2[unit] * floatValue);
}
__name(parse, "parse");
}
});
// ../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js
var require_safer = __commonJS({
"../../node_modules/.pnpm/safer-buffer@2.1.2/node_modules/safer-buffer/safer.js"(exports, module) {
"use strict";
var buffer = __require("buffer");
var Buffer2 = buffer.Buffer;
var safer = {};
var key;
for (key in buffer) {
if (!buffer.hasOwnProperty(key)) continue;
if (key === "SlowBuffer" || key === "Buffer") continue;
safer[key] = buffer[key];
}
var Safer = safer.Buffer = {};
for (key in Buffer2) {
if (!Buffer2.hasOwnProperty(key)) continue;
if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
Safer[key] = Buffer2[key];
}
safer.Buffer.prototype = Buffer2.prototype;
if (!Safer.from || Safer.from === Uint8Array.from) {
Safer.from = function(value, encodingOrOffset, length) {
if (typeof value === "number") {
throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
}
if (value && typeof value.length === "undefined") {
throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
}
return Buffer2(value, encodingOrOffset, length);
};
}
if (!Safer.alloc) {
Safer.alloc = function(size, fill, encoding) {
if (typeof size !== "number") {
throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
}
if (size < 0 || size >= 2 * (1 << 30)) {
throw new RangeError('The value "' + size + '" is invalid for option "size"');
}
var buf = Buffer2(size);
if (!fill || fill.length === 0) {
buf.fill(0);
} else if (typeof encoding === "string") {
buf.fill(fill, encoding);
} else {
buf.fill(fill);
}
return buf;
};
}
if (!safer.kStringMaxLength) {
try {
safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
} catch (e) {
}
}
if (!safer.constants) {
safer.constants = {
MAX_LENGTH: safer.kMaxLength
};
if (safer.kStringMaxLength) {
safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
}
}
module.exports = safer;
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/bom-handling.js
var require_bom_handling = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/bom-handling.js"(exports) {
"use strict";
var BOMChar = "\uFEFF";
exports.PrependBOM = PrependBOMWrapper;
function PrependBOMWrapper(encoder, options) {
this.encoder = encoder;
this.addBOM = true;
}
__name(PrependBOMWrapper, "PrependBOMWrapper");
PrependBOMWrapper.prototype.write = function(str) {
if (this.addBOM) {
str = BOMChar + str;
this.addBOM = false;
}
return this.encoder.write(str);
};
PrependBOMWrapper.prototype.end = function() {
return this.encoder.end();
};
exports.StripBOM = StripBOMWrapper;
function StripBOMWrapper(decoder, options) {
this.decoder = decoder;
this.pass = false;
this.options = options || {};
}
__name(StripBOMWrapper, "StripBOMWrapper");
StripBOMWrapper.prototype.write = function(buf) {
var res = this.decoder.write(buf);
if (this.pass || !res) {
return res;
}
if (res[0] === BOMChar) {
res = res.slice(1);
if (typeof this.options.stripBOM === "function") {
this.options.stripBOM();
}
}
this.pass = true;
return res;
};
StripBOMWrapper.prototype.end = function() {
return this.decoder.end();
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/helpers/merge-exports.js
var require_merge_exports = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/helpers/merge-exports.js"(exports, module) {
"use strict";
var hasOwn = typeof Object.hasOwn === "undefined" ? Function.call.bind(Object.prototype.hasOwnProperty) : Object.hasOwn;
function mergeModules(target, module2) {
for (var key in module2) {
if (hasOwn(module2, key)) {
target[key] = module2[key];
}
}
}
__name(mergeModules, "mergeModules");
module.exports = mergeModules;
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/internal.js
var require_internal = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/internal.js"(exports, module) {
"use strict";
var Buffer2 = require_safer().Buffer;
module.exports = {
// Encodings
utf8: { type: "_internal", bomAware: true },
cesu8: { type: "_internal", bomAware: true },
unicode11utf8: "utf8",
ucs2: { type: "_internal", bomAware: true },
utf16le: "ucs2",
binary: { type: "_internal" },
base64: { type: "_internal" },
hex: { type: "_internal" },
// Codec.
_internal: InternalCodec
};
function InternalCodec(codecOptions, iconv) {
this.enc = codecOptions.encodingName;
this.bomAware = codecOptions.bomAware;
if (this.enc === "base64") {
this.encoder = InternalEncoderBase64;
} else if (this.enc === "utf8") {
this.encoder = InternalEncoderUtf8;
} else if (this.enc === "cesu8") {
this.enc = "utf8";
this.encoder = InternalEncoderCesu8;
if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
this.decoder = InternalDecoderCesu8;
this.defaultCharUnicode = iconv.defaultCharUnicode;
}
}
}
__name(InternalCodec, "InternalCodec");
InternalCodec.prototype.encoder = InternalEncoder;
InternalCodec.prototype.decoder = InternalDecoder;
var StringDecoder = __require("string_decoder").StringDecoder;
function InternalDecoder(options, codec) {
this.decoder = new StringDecoder(codec.enc);
}
__name(InternalDecoder, "InternalDecoder");
InternalDecoder.prototype.write = function(buf) {
if (!Buffer2.isBuffer(buf)) {
buf = Buffer2.from(buf);
}
return this.decoder.write(buf);
};
InternalDecoder.prototype.end = function() {
return this.decoder.end();
};
function InternalEncoder(options, codec) {
this.enc = codec.enc;
}
__name(InternalEncoder, "InternalEncoder");
InternalEncoder.prototype.write = function(str) {
return Buffer2.from(str, this.enc);
};
InternalEncoder.prototype.end = function() {
};
function InternalEncoderBase64(options, codec) {
this.prevStr = "";
}
__name(InternalEncoderBase64, "InternalEncoderBase64");
InternalEncoderBase64.prototype.write = function(str) {
str = this.prevStr + str;
var completeQuads = str.length - str.length % 4;
this.prevStr = str.slice(completeQuads);
str = str.slice(0, completeQuads);
return Buffer2.from(str, "base64");
};
InternalEncoderBase64.prototype.end = function() {
return Buffer2.from(this.prevStr, "base64");
};
function InternalEncoderCesu8(options, codec) {
}
__name(InternalEncoderCesu8, "InternalEncoderCesu8");
InternalEncoderCesu8.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length * 3);
var bufIdx = 0;
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i);
if (charCode < 128) {
buf[bufIdx++] = charCode;
} else if (charCode < 2048) {
buf[bufIdx++] = 192 + (charCode >>> 6);
buf[bufIdx++] = 128 + (charCode & 63);
} else {
buf[bufIdx++] = 224 + (charCode >>> 12);
buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
buf[bufIdx++] = 128 + (charCode & 63);
}
}
return buf.slice(0, bufIdx);
};
InternalEncoderCesu8.prototype.end = function() {
};
function InternalDecoderCesu8(options, codec) {
this.acc = 0;
this.contBytes = 0;
this.accBytes = 0;
this.defaultCharUnicode = codec.defaultCharUnicode;
}
__name(InternalDecoderCesu8, "InternalDecoderCesu8");
InternalDecoderCesu8.prototype.write = function(buf) {
var acc = this.acc;
var contBytes = this.contBytes;
var accBytes = this.accBytes;
var res = "";
for (var i = 0; i < buf.length; i++) {
var curByte = buf[i];
if ((curByte & 192) !== 128) {
if (contBytes > 0) {
res += this.defaultCharUnicode;
contBytes = 0;
}
if (curByte < 128) {
res += String.fromCharCode(curByte);
} else if (curByte < 224) {
acc = curByte & 31;
contBytes = 1;
accBytes = 1;
} else if (curByte < 240) {
acc = curByte & 15;
contBytes = 2;
accBytes = 1;
} else {
res += this.defaultCharUnicode;
}
} else {
if (contBytes > 0) {
acc = acc << 6 | curByte & 63;
contBytes--;
accBytes++;
if (contBytes === 0) {
if (accBytes === 2 && acc < 128 && acc > 0) {
res += this.defaultCharUnicode;
} else if (accBytes === 3 && acc < 2048) {
res += this.defaultCharUnicode;
} else {
res += String.fromCharCode(acc);
}
}
} else {
res += this.defaultCharUnicode;
}
}
}
this.acc = acc;
this.contBytes = contBytes;
this.accBytes = accBytes;
return res;
};
InternalDecoderCesu8.prototype.end = function() {
var res = 0;
if (this.contBytes > 0) {
res += this.defaultCharUnicode;
}
return res;
};
function InternalEncoderUtf8(options, codec) {
this.highSurrogate = "";
}
__name(InternalEncoderUtf8, "InternalEncoderUtf8");
InternalEncoderUtf8.prototype.write = function(str) {
if (this.highSurrogate) {
str = this.highSurrogate + str;
this.highSurrogate = "";
}
if (str.length > 0) {
var charCode = str.charCodeAt(str.length - 1);
if (charCode >= 55296 && charCode < 56320) {
this.highSurrogate = str[str.length - 1];
str = str.slice(0, str.length - 1);
}
}
return Buffer2.from(str, this.enc);
};
InternalEncoderUtf8.prototype.end = function() {
if (this.highSurrogate) {
var str = this.highSurrogate;
this.highSurrogate = "";
return Buffer2.from(str, this.enc);
}
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf32.js
var require_utf32 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf32.js"(exports) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports._utf32 = Utf32Codec;
function Utf32Codec(codecOptions, iconv) {
this.iconv = iconv;
this.bomAware = true;
this.isLE = codecOptions.isLE;
}
__name(Utf32Codec, "Utf32Codec");
exports.utf32le = { type: "_utf32", isLE: true };
exports.utf32be = { type: "_utf32", isLE: false };
exports.ucs4le = "utf32le";
exports.ucs4be = "utf32be";
Utf32Codec.prototype.encoder = Utf32Encoder;
Utf32Codec.prototype.decoder = Utf32Decoder;
function Utf32Encoder(options, codec) {
this.isLE = codec.isLE;
this.highSurrogate = 0;
}
__name(Utf32Encoder, "Utf32Encoder");
Utf32Encoder.prototype.write = function(str) {
var src = Buffer2.from(str, "ucs2");
var dst = Buffer2.alloc(src.length * 2 + 4);
var write32 = this.isLE ? dst.writeUInt32LE : dst.writeUInt32BE;
var offset = 0;
for (var i = 0; i < src.length; i += 2) {
var code = src.readUInt16LE(i);
var isHighSurrogate = code >= 55296 && code < 56320;
var isLowSurrogate = code >= 56320 && code < 57344;
if (this.highSurrogate) {
if (isHighSurrogate || !isLowSurrogate) {
write32.call(dst, this.highSurrogate, offset);
offset += 4;
} else {
var codepoint = (this.highSurrogate - 55296 << 10 | code - 56320) + 65536;
write32.call(dst, codepoint, offset);
offset += 4;
this.highSurrogate = 0;
continue;
}
}
if (isHighSurrogate) {
this.highSurrogate = code;
} else {
write32.call(dst, code, offset);
offset += 4;
this.highSurrogate = 0;
}
}
if (offset < dst.length) {
dst = dst.slice(0, offset);
}
return dst;
};
Utf32Encoder.prototype.end = function() {
if (!this.highSurrogate) {
return;
}
var buf = Buffer2.alloc(4);
if (this.isLE) {
buf.writeUInt32LE(this.highSurrogate, 0);
} else {
buf.writeUInt32BE(this.highSurrogate, 0);
}
this.highSurrogate = 0;
return buf;
};
function Utf32Decoder(options, codec) {
this.isLE = codec.isLE;
this.badChar = codec.iconv.defaultCharUnicode.charCodeAt(0);
this.overflow = [];
}
__name(Utf32Decoder, "Utf32Decoder");
Utf32Decoder.prototype.write = function(src) {
if (src.length === 0) {
return "";
}
var i = 0;
var codepoint = 0;
var dst = Buffer2.alloc(src.length + 4);
var offset = 0;
var isLE = this.isLE;
var overflow = this.overflow;
var badChar = this.badChar;
if (overflow.length > 0) {
for (; i < src.length && overflow.length < 4; i++) {
overflow.push(src[i]);
}
if (overflow.length === 4) {
if (isLE) {
codepoint = overflow[0] | overflow[1] << 8 | overflow[2] << 16 | overflow[3] << 24;
} else {
codepoint = overflow[3] | overflow[2] << 8 | overflow[1] << 16 | overflow[0] << 24;
}
overflow.length = 0;
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
}
for (; i < src.length - 3; i += 4) {
if (isLE) {
codepoint = src[i] | src[i + 1] << 8 | src[i + 2] << 16 | src[i + 3] << 24;
} else {
codepoint = src[i + 3] | src[i + 2] << 8 | src[i + 1] << 16 | src[i] << 24;
}
offset = _writeCodepoint(dst, offset, codepoint, badChar);
}
for (; i < src.length; i++) {
overflow.push(src[i]);
}
return dst.slice(0, offset).toString("ucs2");
};
function _writeCodepoint(dst, offset, codepoint, badChar) {
if (codepoint < 0 || codepoint > 1114111) {
codepoint = badChar;
}
if (codepoint >= 65536) {
codepoint -= 65536;
var high = 55296 | codepoint >> 10;
dst[offset++] = high & 255;
dst[offset++] = high >> 8;
var codepoint = 56320 | codepoint & 1023;
}
dst[offset++] = codepoint & 255;
dst[offset++] = codepoint >> 8;
return offset;
}
__name(_writeCodepoint, "_writeCodepoint");
Utf32Decoder.prototype.end = function() {
if (this.overflow.length === 0) {
return;
}
this.overflow.length = 0;
return String.fromCharCode(this.badChar);
};
exports.utf32 = Utf32AutoCodec;
exports.ucs4 = "utf32";
function Utf32AutoCodec(options, iconv) {
this.iconv = iconv;
}
__name(Utf32AutoCodec, "Utf32AutoCodec");
Utf32AutoCodec.prototype.encoder = Utf32AutoEncoder;
Utf32AutoCodec.prototype.decoder = Utf32AutoDecoder;
function Utf32AutoEncoder(options, codec) {
options = options || {};
if (options.addBOM === void 0) {
options.addBOM = true;
}
this.encoder = codec.iconv.getEncoder(options.defaultEncoding || "utf-32le", options);
}
__name(Utf32AutoEncoder, "Utf32AutoEncoder");
Utf32AutoEncoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf32AutoEncoder.prototype.end = function() {
return this.encoder.end();
};
function Utf32AutoDecoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
__name(Utf32AutoDecoder, "Utf32AutoDecoder");
Utf32AutoDecoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 32) {
return "";
}
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++) {
resStr += this.decoder.write(this.initialBufs[i]);
}
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf32AutoDecoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++) {
resStr += this.decoder.write(this.initialBufs[i]);
}
var trail = this.decoder.end();
if (trail) {
resStr += trail;
}
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var invalidLE = 0;
var invalidBE = 0;
var bmpCharsLE = 0;
var bmpCharsBE = 0;
outerLoop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 4) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254 && b[2] === 0 && b[3] === 0) {
return "utf-32le";
}
if (b[0] === 0 && b[1] === 0 && b[2] === 254 && b[3] === 255) {
return "utf-32be";
}
}
if (b[0] !== 0 || b[1] > 16) invalidBE++;
if (b[3] !== 0 || b[2] > 16) invalidLE++;
if (b[0] === 0 && b[1] === 0 && (b[2] !== 0 || b[3] !== 0)) bmpCharsBE++;
if ((b[0] !== 0 || b[1] !== 0) && b[2] === 0 && b[3] === 0) bmpCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outerLoop;
}
}
}
}
if (bmpCharsBE - invalidBE > bmpCharsLE - invalidLE) return "utf-32be";
if (bmpCharsBE - invalidBE < bmpCharsLE - invalidLE) return "utf-32le";
return defaultEncoding || "utf-32le";
}
__name(detectEncoding, "detectEncoding");
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf16.js
var require_utf16 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf16.js"(exports) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports.utf16be = Utf16BECodec;
function Utf16BECodec() {
}
__name(Utf16BECodec, "Utf16BECodec");
Utf16BECodec.prototype.encoder = Utf16BEEncoder;
Utf16BECodec.prototype.decoder = Utf16BEDecoder;
Utf16BECodec.prototype.bomAware = true;
function Utf16BEEncoder() {
}
__name(Utf16BEEncoder, "Utf16BEEncoder");
Utf16BEEncoder.prototype.write = function(str) {
var buf = Buffer2.from(str, "ucs2");
for (var i = 0; i < buf.length; i += 2) {
var tmp = buf[i];
buf[i] = buf[i + 1];
buf[i + 1] = tmp;
}
return buf;
};
Utf16BEEncoder.prototype.end = function() {
};
function Utf16BEDecoder() {
this.overflowByte = -1;
}
__name(Utf16BEDecoder, "Utf16BEDecoder");
Utf16BEDecoder.prototype.write = function(buf) {
if (buf.length == 0) {
return "";
}
var buf2 = Buffer2.alloc(buf.length + 1);
var i = 0;
var j = 0;
if (this.overflowByte !== -1) {
buf2[0] = buf[0];
buf2[1] = this.overflowByte;
i = 1;
j = 2;
}
for (; i < buf.length - 1; i += 2, j += 2) {
buf2[j] = buf[i + 1];
buf2[j + 1] = buf[i];
}
this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
return buf2.slice(0, j).toString("ucs2");
};
Utf16BEDecoder.prototype.end = function() {
this.overflowByte = -1;
};
exports.utf16 = Utf16Codec;
function Utf16Codec(codecOptions, iconv) {
this.iconv = iconv;
}
__name(Utf16Codec, "Utf16Codec");
Utf16Codec.prototype.encoder = Utf16Encoder;
Utf16Codec.prototype.decoder = Utf16Decoder;
function Utf16Encoder(options, codec) {
options = options || {};
if (options.addBOM === void 0) {
options.addBOM = true;
}
this.encoder = codec.iconv.getEncoder("utf-16le", options);
}
__name(Utf16Encoder, "Utf16Encoder");
Utf16Encoder.prototype.write = function(str) {
return this.encoder.write(str);
};
Utf16Encoder.prototype.end = function() {
return this.encoder.end();
};
function Utf16Decoder(options, codec) {
this.decoder = null;
this.initialBufs = [];
this.initialBufsLen = 0;
this.options = options || {};
this.iconv = codec.iconv;
}
__name(Utf16Decoder, "Utf16Decoder");
Utf16Decoder.prototype.write = function(buf) {
if (!this.decoder) {
this.initialBufs.push(buf);
this.initialBufsLen += buf.length;
if (this.initialBufsLen < 16) {
return "";
}
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++) {
resStr += this.decoder.write(this.initialBufs[i]);
}
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.write(buf);
};
Utf16Decoder.prototype.end = function() {
if (!this.decoder) {
var encoding = detectEncoding(this.initialBufs, this.options.defaultEncoding);
this.decoder = this.iconv.getDecoder(encoding, this.options);
var resStr = "";
for (var i = 0; i < this.initialBufs.length; i++) {
resStr += this.decoder.write(this.initialBufs[i]);
}
var trail = this.decoder.end();
if (trail) {
resStr += trail;
}
this.initialBufs.length = this.initialBufsLen = 0;
return resStr;
}
return this.decoder.end();
};
function detectEncoding(bufs, defaultEncoding) {
var b = [];
var charsProcessed = 0;
var asciiCharsLE = 0;
var asciiCharsBE = 0;
outerLoop:
for (var i = 0; i < bufs.length; i++) {
var buf = bufs[i];
for (var j = 0; j < buf.length; j++) {
b.push(buf[j]);
if (b.length === 2) {
if (charsProcessed === 0) {
if (b[0] === 255 && b[1] === 254) return "utf-16le";
if (b[0] === 254 && b[1] === 255) return "utf-16be";
}
if (b[0] === 0 && b[1] !== 0) asciiCharsBE++;
if (b[0] !== 0 && b[1] === 0) asciiCharsLE++;
b.length = 0;
charsProcessed++;
if (charsProcessed >= 100) {
break outerLoop;
}
}
}
}
if (asciiCharsBE > asciiCharsLE) return "utf-16be";
if (asciiCharsBE < asciiCharsLE) return "utf-16le";
return defaultEncoding || "utf-16le";
}
__name(detectEncoding, "detectEncoding");
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf7.js
var require_utf7 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/utf7.js"(exports) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports.utf7 = Utf7Codec;
exports.unicode11utf7 = "utf7";
function Utf7Codec(codecOptions, iconv) {
this.iconv = iconv;
}
__name(Utf7Codec, "Utf7Codec");
Utf7Codec.prototype.encoder = Utf7Encoder;
Utf7Codec.prototype.decoder = Utf7Decoder;
Utf7Codec.prototype.bomAware = true;
var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
function Utf7Encoder(options, codec) {
this.iconv = codec.iconv;
}
__name(Utf7Encoder, "Utf7Encoder");
Utf7Encoder.prototype.write = function(str) {
return Buffer2.from(str.replace(nonDirectChars, function(chunk) {
return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
}.bind(this)));
};
Utf7Encoder.prototype.end = function() {
};
function Utf7Decoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
__name(Utf7Decoder, "Utf7Decoder");
var base64Regex = /[A-Za-z0-9\/+]/;
var base64Chars = [];
for (i = 0; i < 256; i++) {
base64Chars[i] = base64Regex.test(String.fromCharCode(i));
}
var i;
var plusChar = "+".charCodeAt(0);
var minusChar = "-".charCodeAt(0);
var andChar = "&".charCodeAt(0);
Utf7Decoder.prototype.write = function(buf) {
var res = "";
var lastI = 0;
var inBase64 = this.inBase64;
var base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == plusChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64Chars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "+";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar) {
i2--;
}
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7Decoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0) {
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
}
this.inBase64 = false;
this.base64Accum = "";
return res;
};
exports.utf7imap = Utf7IMAPCodec;
function Utf7IMAPCodec(codecOptions, iconv) {
this.iconv = iconv;
}
__name(Utf7IMAPCodec, "Utf7IMAPCodec");
Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
Utf7IMAPCodec.prototype.bomAware = true;
function Utf7IMAPEncoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = Buffer2.alloc(6);
this.base64AccumIdx = 0;
}
__name(Utf7IMAPEncoder, "Utf7IMAPEncoder");
Utf7IMAPEncoder.prototype.write = function(str) {
var inBase64 = this.inBase64;
var base64Accum = this.base64Accum;
var base64AccumIdx = this.base64AccumIdx;
var buf = Buffer2.alloc(str.length * 5 + 10);
var bufIdx = 0;
for (var i2 = 0; i2 < str.length; i2++) {
var uChar = str.charCodeAt(i2);
if (uChar >= 32 && uChar <= 126) {
if (inBase64) {
if (base64AccumIdx > 0) {
bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
inBase64 = false;
}
if (!inBase64) {
buf[bufIdx++] = uChar;
if (uChar === andChar) {
buf[bufIdx++] = minusChar;
}
}
} else {
if (!inBase64) {
buf[bufIdx++] = andChar;
inBase64 = true;
}
if (inBase64) {
base64Accum[base64AccumIdx++] = uChar >> 8;
base64Accum[base64AccumIdx++] = uChar & 255;
if (base64AccumIdx == base64Accum.length) {
bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
base64AccumIdx = 0;
}
}
}
}
this.inBase64 = inBase64;
this.base64AccumIdx = base64AccumIdx;
return buf.slice(0, bufIdx);
};
Utf7IMAPEncoder.prototype.end = function() {
var buf = Buffer2.alloc(10);
var bufIdx = 0;
if (this.inBase64) {
if (this.base64AccumIdx > 0) {
bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
this.base64AccumIdx = 0;
}
buf[bufIdx++] = minusChar;
this.inBase64 = false;
}
return buf.slice(0, bufIdx);
};
function Utf7IMAPDecoder(options, codec) {
this.iconv = codec.iconv;
this.inBase64 = false;
this.base64Accum = "";
}
__name(Utf7IMAPDecoder, "Utf7IMAPDecoder");
var base64IMAPChars = base64Chars.slice();
base64IMAPChars[",".charCodeAt(0)] = true;
Utf7IMAPDecoder.prototype.write = function(buf) {
var res = "";
var lastI = 0;
var inBase64 = this.inBase64;
var base64Accum = this.base64Accum;
for (var i2 = 0; i2 < buf.length; i2++) {
if (!inBase64) {
if (buf[i2] == andChar) {
res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
lastI = i2 + 1;
inBase64 = true;
}
} else {
if (!base64IMAPChars[buf[i2]]) {
if (i2 == lastI && buf[i2] == minusChar) {
res += "&";
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI, i2), "ascii").replace(/,/g, "/");
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
if (buf[i2] != minusChar) {
i2--;
}
lastI = i2 + 1;
inBase64 = false;
base64Accum = "";
}
}
}
if (!inBase64) {
res += this.iconv.decode(buf.slice(lastI), "ascii");
} else {
var b64str = base64Accum + this.iconv.decode(buf.slice(lastI), "ascii").replace(/,/g, "/");
var canBeDecoded = b64str.length - b64str.length % 8;
base64Accum = b64str.slice(canBeDecoded);
b64str = b64str.slice(0, canBeDecoded);
res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
}
this.inBase64 = inBase64;
this.base64Accum = base64Accum;
return res;
};
Utf7IMAPDecoder.prototype.end = function() {
var res = "";
if (this.inBase64 && this.base64Accum.length > 0) {
res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
}
this.inBase64 = false;
this.base64Accum = "";
return res;
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-codec.js
var require_sbcs_codec = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-codec.js"(exports) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports._sbcs = SBCSCodec;
function SBCSCodec(codecOptions, iconv) {
if (!codecOptions) {
throw new Error("SBCS codec is called without the data.");
}
if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256) {
throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
}
if (codecOptions.chars.length === 128) {
var asciiString = "";
for (var i = 0; i < 128; i++) {
asciiString += String.fromCharCode(i);
}
codecOptions.chars = asciiString + codecOptions.chars;
}
this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2");
var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
for (var i = 0; i < codecOptions.chars.length; i++) {
encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
}
this.encodeBuf = encodeBuf;
}
__name(SBCSCodec, "SBCSCodec");
SBCSCodec.prototype.encoder = SBCSEncoder;
SBCSCodec.prototype.decoder = SBCSDecoder;
function SBCSEncoder(options, codec) {
this.encodeBuf = codec.encodeBuf;
}
__name(SBCSEncoder, "SBCSEncoder");
SBCSEncoder.prototype.write = function(str) {
var buf = Buffer2.alloc(str.length);
for (var i = 0; i < str.length; i++) {
buf[i] = this.encodeBuf[str.charCodeAt(i)];
}
return buf;
};
SBCSEncoder.prototype.end = function() {
};
function SBCSDecoder(options, codec) {
this.decodeBuf = codec.decodeBuf;
}
__name(SBCSDecoder, "SBCSDecoder");
SBCSDecoder.prototype.write = function(buf) {
var decodeBuf = this.decodeBuf;
var newBuf = Buffer2.alloc(buf.length * 2);
var idx1 = 0;
var idx2 = 0;
for (var i = 0; i < buf.length; i++) {
idx1 = buf[i] * 2;
idx2 = i * 2;
newBuf[idx2] = decodeBuf[idx1];
newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
}
return newBuf.toString("ucs2");
};
SBCSDecoder.prototype.end = function() {
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data.js
var require_sbcs_data = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data.js"(exports, module) {
"use strict";
module.exports = {
// Not supported by iconv, not sure why.
10029: "maccenteuro",
maccenteuro: {
type: "_sbcs",
chars: "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
},
808: "cp808",
ibm808: "cp808",
cp808: {
type: "_sbcs",
chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
},
mik: {
type: "_sbcs",
chars: "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
cp720: {
type: "_sbcs",
chars: "\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
// Aliases of generated encodings.
ascii8bit: "ascii",
usascii: "ascii",
ansix34: "ascii",
ansix341968: "ascii",
ansix341986: "ascii",
csascii: "ascii",
cp367: "ascii",
ibm367: "ascii",
isoir6: "ascii",
iso646us: "ascii",
iso646irv: "ascii",
us: "ascii",
latin1: "iso88591",
latin2: "iso88592",
latin3: "iso88593",
latin4: "iso88594",
latin5: "iso88599",
latin6: "iso885910",
latin7: "iso885913",
latin8: "iso885914",
latin9: "iso885915",
latin10: "iso885916",
csisolatin1: "iso88591",
csisolatin2: "iso88592",
csisolatin3: "iso88593",
csisolatin4: "iso88594",
csisolatincyrillic: "iso88595",
csisolatinarabic: "iso88596",
csisolatingreek: "iso88597",
csisolatinhebrew: "iso88598",
csisolatin5: "iso88599",
csisolatin6: "iso885910",
l1: "iso88591",
l2: "iso88592",
l3: "iso88593",
l4: "iso88594",
l5: "iso88599",
l6: "iso885910",
l7: "iso885913",
l8: "iso885914",
l9: "iso885915",
l10: "iso885916",
isoir14: "iso646jp",
isoir57: "iso646cn",
isoir100: "iso88591",
isoir101: "iso88592",
isoir109: "iso88593",
isoir110: "iso88594",
isoir144: "iso88595",
isoir127: "iso88596",
isoir126: "iso88597",
isoir138: "iso88598",
isoir148: "iso88599",
isoir157: "iso885910",
isoir166: "tis620",
isoir179: "iso885913",
isoir199: "iso885914",
isoir203: "iso885915",
isoir226: "iso885916",
cp819: "iso88591",
ibm819: "iso88591",
cyrillic: "iso88595",
arabic: "iso88596",
arabic8: "iso88596",
ecma114: "iso88596",
asmo708: "iso88596",
greek: "iso88597",
greek8: "iso88597",
ecma118: "iso88597",
elot928: "iso88597",
hebrew: "iso88598",
hebrew8: "iso88598",
iso88598i: "iso88598",
iso88598e: "iso88598",
turkish: "iso88599",
turkish8: "iso88599",
thai: "iso885911",
thai8: "iso885911",
celtic: "iso885914",
celtic8: "iso885914",
isoceltic: "iso885914",
tis6200: "tis620",
tis62025291: "tis620",
tis62025330: "tis620",
1e4: "macroman",
10006: "macgreek",
10007: "maccyrillic",
10079: "maciceland",
10081: "macturkish",
cspc8codepage437: "cp437",
cspc775baltic: "cp775",
cspc850multilingual: "cp850",
cspcp852: "cp852",
cspc862latinhebrew: "cp862",
cpgr: "cp869",
msee: "cp1250",
mscyrl: "cp1251",
msansi: "cp1252",
msgreek: "cp1253",
msturk: "cp1254",
mshebr: "cp1255",
msarab: "cp1256",
winbaltrim: "cp1257",
cp20866: "koi8r",
20866: "koi8r",
ibm878: "koi8r",
cskoi8r: "koi8r",
cp21866: "koi8u",
21866: "koi8u",
ibm1168: "koi8u",
strk10482002: "rk1048",
tcvn5712: "tcvn",
tcvn57121: "tcvn",
gb198880: "iso646cn",
cn: "iso646cn",
csiso14jisc6220ro: "iso646jp",
jisc62201969ro: "iso646jp",
jp: "iso646jp",
cshproman8: "hproman8",
r8: "hproman8",
roman8: "hproman8",
xroman8: "hproman8",
ibm1051: "hproman8",
mac: "macintosh",
csmacintosh: "macintosh"
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js
var require_sbcs_data_generated = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports, module) {
"use strict";
module.exports = {
"437": "cp437",
"737": "cp737",
"775": "cp775",
"850": "cp850",
"852": "cp852",
"855": "cp855",
"856": "cp856",
"857": "cp857",
"858": "cp858",
"860": "cp860",
"861": "cp861",
"862": "cp862",
"863": "cp863",
"864": "cp864",
"865": "cp865",
"866": "cp866",
"869": "cp869",
"874": "windows874",
"922": "cp922",
"1046": "cp1046",
"1124": "cp1124",
"1125": "cp1125",
"1129": "cp1129",
"1133": "cp1133",
"1161": "cp1161",
"1162": "cp1162",
"1163": "cp1163",
"1250": "windows1250",
"1251": "windows1251",
"1252": "windows1252",
"1253": "windows1253",
"1254": "windows1254",
"1255": "windows1255",
"1256": "windows1256",
"1257": "windows1257",
"1258": "windows1258",
"28591": "iso88591",
"28592": "iso88592",
"28593": "iso88593",
"28594": "iso88594",
"28595": "iso88595",
"28596": "iso88596",
"28597": "iso88597",
"28598": "iso88598",
"28599": "iso88599",
"28600": "iso885910",
"28601": "iso885911",
"28603": "iso885913",
"28604": "iso885914",
"28605": "iso885915",
"28606": "iso885916",
"windows874": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"win874": "windows874",
"cp874": "windows874",
"windows1250": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"win1250": "windows1250",
"cp1250": "windows1250",
"windows1251": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"win1251": "windows1251",
"cp1251": "windows1251",
"windows1252": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"win1252": "windows1252",
"cp1252": "windows1252",
"windows1253": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"win1253": "windows1253",
"cp1253": "windows1253",
"windows1254": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"win1254": "windows1254",
"cp1254": "windows1254",
"windows1255": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"win1255": "windows1255",
"cp1255": "windows1255",
"windows1256": {
"type": "_sbcs",
"chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
},
"win1256": "windows1256",
"cp1256": "windows1256",
"windows1257": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
},
"win1257": "windows1257",
"cp1257": "windows1257",
"windows1258": {
"type": "_sbcs",
"chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"win1258": "windows1258",
"cp1258": "windows1258",
"iso88591": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28591": "iso88591",
"iso88592": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
},
"cp28592": "iso88592",
"iso88593": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
},
"cp28593": "iso88593",
"iso88594": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
},
"cp28594": "iso88594",
"iso88595": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"cp28595": "iso88595",
"iso88596": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28596": "iso88596",
"iso88597": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
},
"cp28597": "iso88597",
"iso88598": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
},
"cp28598": "iso88598",
"iso88599": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
},
"cp28599": "iso88599",
"iso885910": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
},
"cp28600": "iso885910",
"iso885911": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"cp28601": "iso885911",
"iso885913": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
},
"cp28603": "iso885913",
"iso885914": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
},
"cp28604": "iso885914",
"iso885915": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"cp28605": "iso885915",
"iso885916": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
},
"cp28606": "iso885916",
"cp437": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm437": "cp437",
"csibm437": "cp437",
"cp737": {
"type": "_sbcs",
"chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm737": "cp737",
"csibm737": "cp737",
"cp775": {
"type": "_sbcs",
"chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm775": "cp775",
"csibm775": "cp775",
"cp850": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm850": "cp850",
"csibm850": "cp850",
"cp852": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
},
"ibm852": "cp852",
"csibm852": "cp852",
"cp855": {
"type": "_sbcs",
"chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
},
"ibm855": "cp855",
"csibm855": "cp855",
"cp856": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm856": "cp856",
"csibm856": "cp856",
"cp857": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm857": "cp857",
"csibm857": "cp857",
"cp858": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
},
"ibm858": "cp858",
"csibm858": "cp858",
"cp860": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm860": "cp860",
"csibm860": "cp860",
"cp861": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm861": "cp861",
"csibm861": "cp861",
"cp862": {
"type": "_sbcs",
"chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm862": "cp862",
"csibm862": "cp862",
"cp863": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm863": "cp863",
"csibm863": "cp863",
"cp864": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
},
"ibm864": "cp864",
"csibm864": "cp864",
"cp865": {
"type": "_sbcs",
"chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
},
"ibm865": "cp865",
"csibm865": "cp865",
"cp866": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm866": "cp866",
"csibm866": "cp866",
"cp869": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
},
"ibm869": "cp869",
"csibm869": "cp869",
"cp922": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
},
"ibm922": "cp922",
"csibm922": "cp922",
"cp1046": {
"type": "_sbcs",
"chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
},
"ibm1046": "cp1046",
"csibm1046": "cp1046",
"cp1124": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
},
"ibm1124": "cp1124",
"csibm1124": "cp1124",
"cp1125": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
},
"ibm1125": "cp1125",
"csibm1125": "cp1125",
"cp1129": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1129": "cp1129",
"csibm1129": "cp1129",
"cp1133": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
},
"ibm1133": "cp1133",
"csibm1133": "cp1133",
"cp1161": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
},
"ibm1161": "cp1161",
"csibm1161": "cp1161",
"cp1162": {
"type": "_sbcs",
"chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
},
"ibm1162": "cp1162",
"csibm1162": "cp1162",
"cp1163": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
},
"ibm1163": "cp1163",
"csibm1163": "cp1163",
"maccroatian": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
},
"maccyrillic": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"macgreek": {
"type": "_sbcs",
"chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
},
"maciceland": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macroman": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macromania": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macthai": {
"type": "_sbcs",
"chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
},
"macturkish": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"macukraine": {
"type": "_sbcs",
"chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
},
"koi8r": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8u": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8ru": {
"type": "_sbcs",
"chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"koi8t": {
"type": "_sbcs",
"chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
},
"armscii8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
},
"rk1048": {
"type": "_sbcs",
"chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"tcvn": {
"type": "_sbcs",
"chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
},
"georgianacademy": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"georgianps": {
"type": "_sbcs",
"chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
},
"pt154": {
"type": "_sbcs",
"chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
},
"viscii": {
"type": "_sbcs",
"chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
},
"iso646cn": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"iso646jp": {
"type": "_sbcs",
"chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"hproman8": {
"type": "_sbcs",
"chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
},
"macintosh": {
"type": "_sbcs",
"chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
},
"ascii": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
},
"tis620": {
"type": "_sbcs",
"chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
}
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-codec.js
var require_dbcs_codec = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-codec.js"(exports) {
"use strict";
var Buffer2 = require_safer().Buffer;
exports._dbcs = DBCSCodec;
var UNASSIGNED = -1;
var GB18030_CODE = -2;
var SEQ_START = -10;
var NODE_START = -1e3;
var UNASSIGNED_NODE = new Array(256);
var DEF_CHAR = -1;
for (i = 0; i < 256; i++) {
UNASSIGNED_NODE[i] = UNASSIGNED;
}
var i;
function DBCSCodec(codecOptions, iconv) {
this.encodingName = codecOptions.encodingName;
if (!codecOptions) {
throw new Error("DBCS codec is called without the data.");
}
if (!codecOptions.table) {
throw new Error("Encoding '" + this.encodingName + "' has no data.");
}
var mappingTable = codecOptions.table();
this.decodeTables = [];
this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
this.decodeTableSeq = [];
for (var i2 = 0; i2 < mappingTable.length; i2++) {
this._addDecodeChunk(mappingTable[i2]);
}
if (typeof codecOptions.gb18030 === "function") {
this.gb18030 = codecOptions.gb18030();
var commonThirdByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var commonFourthByteNodeIdx = this.decodeTables.length;
this.decodeTables.push(UNASSIGNED_NODE.slice(0));
var firstByteNode = this.decodeTables[0];
for (var i2 = 129; i2 <= 254; i2++) {
var secondByteNode = this.decodeTables[NODE_START - firstByteNode[i2]];
for (var j = 48; j <= 57; j++) {
if (secondByteNode[j] === UNASSIGNED) {
secondByteNode[j] = NODE_START - commonThirdByteNodeIdx;
} else if (secondByteNode[j] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 2");
}
var thirdByteNode = this.decodeTables[NODE_START - secondByteNode[j]];
for (var k = 129; k <= 254; k++) {
if (thirdByteNode[k] === UNASSIGNED) {
thirdByteNode[k] = NODE_START - commonFourthByteNodeIdx;
} else if (thirdByteNode[k] === NODE_START - commonFourthByteNodeIdx) {
continue;
} else if (thirdByteNode[k] > NODE_START) {
throw new Error("gb18030 decode tables conflict at byte 3");
}
var fourthByteNode = this.decodeTables[NODE_START - thirdByteNode[k]];
for (var l = 48; l <= 57; l++) {
if (fourthByteNode[l] === UNASSIGNED) {
fourthByteNode[l] = GB18030_CODE;
}
}
}
}
}
}
this.defaultCharUnicode = iconv.defaultCharUnicode;
this.encodeTable = [];
this.encodeTableSeq = [];
var skipEncodeChars = {};
if (codecOptions.encodeSkipVals) {
for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) {
var val = codecOptions.encodeSkipVals[i2];
if (typeof val === "number") {
skipEncodeChars[val] = true;
} else {
for (var j = val.from; j <= val.to; j++) {
skipEncodeChars[j] = true;
}
}
}
}
this._fillEncodeTable(0, 0, skipEncodeChars);
if (codecOptions.encodeAdd) {
for (var uChar in codecOptions.encodeAdd) {
if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar)) {
this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
}
}
}
this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]["?"];
if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
}
__name(DBCSCodec, "DBCSCodec");
DBCSCodec.prototype.encoder = DBCSEncoder;
DBCSCodec.prototype.decoder = DBCSDecoder;
DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
var bytes = [];
for (; addr > 0; addr >>>= 8) {
bytes.push(addr & 255);
}
if (bytes.length == 0) {
bytes.push(0);
}
var node = this.decodeTables[0];
for (var i2 = bytes.length - 1; i2 > 0; i2--) {
var val = node[bytes[i2]];
if (val == UNASSIGNED) {
node[bytes[i2]] = NODE_START - this.decodeTables.length;
this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
} else if (val <= NODE_START) {
node = this.decodeTables[NODE_START - val];
} else {
throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
}
}
return node;
};
DBCSCodec.prototype._addDecodeChunk = function(chunk) {
var curAddr = parseInt(chunk[0], 16);
var writeTable = this._getDecodeTrieNode(curAddr);
curAddr = curAddr & 255;
for (var k = 1; k < chunk.length; k++) {
var part = chunk[k];
if (typeof part === "string") {
for (var l = 0; l < part.length; ) {
var code = part.charCodeAt(l++);
if (code >= 55296 && code < 56320) {
var codeTrail = part.charCodeAt(l++);
if (codeTrail >= 56320 && codeTrail < 57344) {
writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
} else {
throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
}
} else if (code > 4080 && code <= 4095) {
var len = 4095 - code + 2;
var seq = [];
for (var m = 0; m < len; m++) {
seq.push(part.charCodeAt(l++));
}
writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
this.decodeTableSeq.push(seq);
} else {
writeTable[curAddr++] = code;
}
}
} else if (typeof part === "number") {
var charCode = writeTable[curAddr - 1] + 1;
for (var l = 0; l < part; l++) {
writeTable[curAddr++] = charCode++;
}
} else {
throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
}
}
if (curAddr > 255) {
throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
}
};
DBCSCodec.prototype._getEncodeBucket = function(uCode) {
var high = uCode >> 8;
if (this.encodeTable[high] === void 0) {
this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
}
return this.encodeTable[high];
};
DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
if (bucket[low] <= SEQ_START) {
this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
} else if (bucket[low] == UNASSIGNED) {
bucket[low] = dbcsCode;
}
};
DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
var uCode = seq[0];
var bucket = this._getEncodeBucket(uCode);
var low = uCode & 255;
var node;
if (bucket[low] <= SEQ_START) {
node = this.encodeTableSeq[SEQ_START - bucket[low]];
} else {
node = {};
if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low];
bucket[low] = SEQ_START - this.encodeTableSeq.length;
this.encodeTableSeq.push(node);
}
for (var j = 1; j < seq.length - 1; j++) {
var oldVal = node[uCode];
if (typeof oldVal === "object") {
node = oldVal;
} else {
node = node[uCode] = {};
if (oldVal !== void 0) {
node[DEF_CHAR] = oldVal;
}
}
}
uCode = seq[seq.length - 1];
node[uCode] = dbcsCode;
};
DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
var node = this.decodeTables[nodeIdx];
var hasValues = false;
var subNodeEmpty = {};
for (var i2 = 0; i2 < 256; i2++) {
var uCode = node[i2];
var mbCode = prefix + i2;
if (skipEncodeChars[mbCode]) {
continue;
}
if (uCode >= 0) {
this._setEncodeChar(uCode, mbCode);
hasValues = true;
} else if (uCode <= NODE_START) {
var subNodeIdx = NODE_START - uCode;
if (!subNodeEmpty[subNodeIdx]) {
var newPrefix = mbCode << 8 >>> 0;
if (this._fillEncodeTable(subNodeIdx, newPrefix, skipEncodeChars)) {
hasValues = true;
} else {
subNodeEmpty[subNodeIdx] = true;
}
}
} else if (uCode <= SEQ_START) {
this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
hasValues = true;
}
}
return hasValues;
};
function DBCSEncoder(options, codec) {
this.leadSurrogate = -1;
this.seqObj = void 0;
this.encodeTable = codec.encodeTable;
this.encodeTableSeq = codec.encodeTableSeq;
this.defaultCharSingleByte = codec.defCharSB;
this.gb18030 = codec.gb18030;
}
__name(DBCSEncoder, "DBCSEncoder");
DBCSEncoder.prototype.write = function(str) {
var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3));
var leadSurrogate = this.leadSurrogate;
var seqObj = this.seqObj;
var nextChar = -1;
var i2 = 0;
var j = 0;
while (true) {
if (nextChar === -1) {
if (i2 == str.length) break;
var uCode = str.charCodeAt(i2++);
} else {
var uCode = nextChar;
nextChar = -1;
}
if (uCode >= 55296 && uCode < 57344) {
if (uCode < 56320) {
if (leadSurrogate === -1) {
leadSurrogate = uCode;
continue;
} else {
leadSurrogate = uCode;
uCode = UNASSIGNED;
}
} else {
if (leadSurrogate !== -1) {
uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
leadSurrogate = -1;
} else {
uCode = UNASSIGNED;
}
}
} else if (leadSurrogate !== -1) {
nextChar = uCode;
uCode = UNASSIGNED;
leadSurrogate = -1;
}
var dbcsCode = UNASSIGNED;
if (seqObj !== void 0 && uCode != UNASSIGNED) {
var resCode = seqObj[uCode];
if (typeof resCode === "object") {
seqObj = resCode;
continue;
} else if (typeof resCode === "number") {
dbcsCode = resCode;
} else if (resCode == void 0) {
resCode = seqObj[DEF_CHAR];
if (resCode !== void 0) {
dbcsCode = resCode;
nextChar = uCode;
} else {
}
}
seqObj = void 0;
} else if (uCode >= 0) {
var subtable = this.encodeTable[uCode >> 8];
if (subtable !== void 0) {
dbcsCode = subtable[uCode & 255];
}
if (dbcsCode <= SEQ_START) {
seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
continue;
}
if (dbcsCode == UNASSIGNED && this.gb18030) {
var idx = findIdx(this.gb18030.uChars, uCode);
if (idx != -1) {
var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
dbcsCode = dbcsCode % 12600;
newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
dbcsCode = dbcsCode % 1260;
newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
dbcsCode = dbcsCode % 10;
newBuf[j++] = 48 + dbcsCode;
continue;
}
}
}
if (dbcsCode === UNASSIGNED) {
dbcsCode = this.defaultCharSingleByte;
}
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else if (dbcsCode < 65536) {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
} else if (dbcsCode < 16777216) {
newBuf[j++] = dbcsCode >> 16;
newBuf[j++] = dbcsCode >> 8 & 255;
newBuf[j++] = dbcsCode & 255;
} else {
newBuf[j++] = dbcsCode >>> 24;
newBuf[j++] = dbcsCode >>> 16 & 255;
newBuf[j++] = dbcsCode >>> 8 & 255;
newBuf[j++] = dbcsCode & 255;
}
}
this.seqObj = seqObj;
this.leadSurrogate = leadSurrogate;
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.end = function() {
if (this.leadSurrogate === -1 && this.seqObj === void 0) {
return;
}
var newBuf = Buffer2.alloc(10);
var j = 0;
if (this.seqObj) {
var dbcsCode = this.seqObj[DEF_CHAR];
if (dbcsCode !== void 0) {
if (dbcsCode < 256) {
newBuf[j++] = dbcsCode;
} else {
newBuf[j++] = dbcsCode >> 8;
newBuf[j++] = dbcsCode & 255;
}
} else {
}
this.seqObj = void 0;
}
if (this.leadSurrogate !== -1) {
newBuf[j++] = this.defaultCharSingleByte;
this.leadSurrogate = -1;
}
return newBuf.slice(0, j);
};
DBCSEncoder.prototype.findIdx = findIdx;
function DBCSDecoder(options, codec) {
this.nodeIdx = 0;
this.prevBytes = [];
this.decodeTables = codec.decodeTables;
this.decodeTableSeq = codec.decodeTableSeq;
this.defaultCharUnicode = codec.defaultCharUnicode;
this.gb18030 = codec.gb18030;
}
__name(DBCSDecoder, "DBCSDecoder");
DBCSDecoder.prototype.write = function(buf) {
var newBuf = Buffer2.alloc(buf.length * 2);
var nodeIdx = this.nodeIdx;
var prevBytes = this.prevBytes;
var prevOffset = this.prevBytes.length;
var seqStart = -this.prevBytes.length;
var uCode;
for (var i2 = 0, j = 0; i2 < buf.length; i2++) {
var curByte = i2 >= 0 ? buf[i2] : prevBytes[i2 + prevOffset];
var uCode = this.decodeTables[nodeIdx][curByte];
if (uCode >= 0) {
} else if (uCode === UNASSIGNED) {
uCode = this.defaultCharUnicode.charCodeAt(0);
i2 = seqStart;
} else if (uCode === GB18030_CODE) {
if (i2 >= 3) {
var ptr = (buf[i2 - 3] - 129) * 12600 + (buf[i2 - 2] - 48) * 1260 + (buf[i2 - 1] - 129) * 10 + (curByte - 48);
} else {
var ptr = (prevBytes[i2 - 3 + prevOffset] - 129) * 12600 + ((i2 - 2 >= 0 ? buf[i2 - 2] : prevBytes[i2 - 2 + prevOffset]) - 48) * 1260 + ((i2 - 1 >= 0 ? buf[i2 - 1] : prevBytes[i2 - 1 + prevOffset]) - 129) * 10 + (curByte - 48);
}
var idx = findIdx(this.gb18030.gbChars, ptr);
uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
} else if (uCode <= NODE_START) {
nodeIdx = NODE_START - uCode;
continue;
} else if (uCode <= SEQ_START) {
var seq = this.decodeTableSeq[SEQ_START - uCode];
for (var k = 0; k < seq.length - 1; k++) {
uCode = seq[k];
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
}
uCode = seq[seq.length - 1];
} else {
throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
}
if (uCode >= 65536) {
uCode -= 65536;
var uCodeLead = 55296 | uCode >> 10;
newBuf[j++] = uCodeLead & 255;
newBuf[j++] = uCodeLead >> 8;
uCode = 56320 | uCode & 1023;
}
newBuf[j++] = uCode & 255;
newBuf[j++] = uCode >> 8;
nodeIdx = 0;
seqStart = i2 + 1;
}
this.nodeIdx = nodeIdx;
this.prevBytes = seqStart >= 0 ? Array.prototype.slice.call(buf, seqStart) : prevBytes.slice(seqStart + prevOffset).concat(Array.prototype.slice.call(buf));
return newBuf.slice(0, j).toString("ucs2");
};
DBCSDecoder.prototype.end = function() {
var ret = "";
while (this.prevBytes.length > 0) {
ret += this.defaultCharUnicode;
var bytesArr = this.prevBytes.slice(1);
this.prevBytes = [];
this.nodeIdx = 0;
if (bytesArr.length > 0) {
ret += this.write(bytesArr);
}
}
this.prevBytes = [];
this.nodeIdx = 0;
return ret;
};
function findIdx(table, val) {
if (table[0] > val) {
return -1;
}
var l = 0;
var r = table.length;
while (l < r - 1) {
var mid = l + (r - l + 1 >> 1);
if (table[mid] <= val) {
l = mid;
} else {
r = mid;
}
}
return l;
}
__name(findIdx, "findIdx");
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/shiftjis.json
var require_shiftjis = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports, module) {
module.exports = [
["0", "\0", 128],
["a1", "\uFF61", 62],
["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["81fc", "\u25EF"],
["824f", "\uFF10", 9],
["8260", "\uFF21", 25],
["8281", "\uFF41", 25],
["829f", "\u3041", 82],
["8340", "\u30A1", 62],
["8380", "\u30E0", 22],
["839f", "\u0391", 16, "\u03A3", 6],
["83bf", "\u03B1", 16, "\u03C3", 6],
["8440", "\u0410", 5, "\u0401\u0416", 25],
["8470", "\u0430", 5, "\u0451\u0436", 7],
["8480", "\u043E", 17],
["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["8740", "\u2460", 19, "\u2160", 9],
["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["877e", "\u337B"],
["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["f040", "\uE000", 62],
["f080", "\uE03F", 124],
["f140", "\uE0BC", 62],
["f180", "\uE0FB", 124],
["f240", "\uE178", 62],
["f280", "\uE1B7", 124],
["f340", "\uE234", 62],
["f380", "\uE273", 124],
["f440", "\uE2F0", 62],
["f480", "\uE32F", 124],
["f540", "\uE3AC", 62],
["f580", "\uE3EB", 124],
["f640", "\uE468", 62],
["f680", "\uE4A7", 124],
["f740", "\uE524", 62],
["f780", "\uE563", 124],
["f840", "\uE5E0", 62],
["f880", "\uE61F", 124],
["f940", "\uE69C"],
["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/eucjp.json
var require_eucjp = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/eucjp.json"(exports, module) {
module.exports = [
["0", "\0", 127],
["8ea1", "\uFF61", 62],
["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
["a2fe", "\u25EF"],
["a3b0", "\uFF10", 9],
["a3c1", "\uFF21", 25],
["a3e1", "\uFF41", 25],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
["ada1", "\u2460", 19, "\u2160", 9],
["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
["8fa2c2", "\xA1\xA6\xBF"],
["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
["8fa6e7", "\u038C"],
["8fa6e9", "\u038E\u03AB"],
["8fa6ec", "\u038F"],
["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
["8fa7c2", "\u0402", 10, "\u040E\u040F"],
["8fa7f2", "\u0452", 10, "\u045E\u045F"],
["8fa9a1", "\xC6\u0110"],
["8fa9a4", "\u0126"],
["8fa9a6", "\u0132"],
["8fa9a8", "\u0141\u013F"],
["8fa9ab", "\u014A\xD8\u0152"],
["8fa9af", "\u0166\xDE"],
["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp936.json
var require_cp936 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp936.json"(exports, module) {
module.exports = [
["0", "\0", 127, "\u20AC"],
["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
["a2a1", "\u2170", 9],
["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
["a2e5", "\u3220", 9],
["a2f1", "\u2160", 11],
["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
["a4a1", "\u3041", 82],
["a5a1", "\u30A1", 85],
["a6a1", "\u0391", 16, "\u03A3", 6],
["a6c1", "\u03B1", 16, "\u03C3", 6],
["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
["a6f4", "\uFE33\uFE34"],
["a7a1", "\u0410", 5, "\u0401\u0416", 25],
["a7d1", "\u0430", 5, "\u0451\u0436", 25],
["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
["a8bd", "\u0144\u0148"],
["a8c0", "\u0261"],
["a8c5", "\u3105", 36],
["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
["a959", "\u2121\u3231"],
["a95c", "\u2010"],
["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
["a996", "\u3007"],
["a9a4", "\u2500", 75],
["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
["bd40", "\u7D37", 54, "\u7D6F", 7],
["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
["bf40", "\u7DFB", 62],
["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
["d640", "\u8AE4", 34, "\u8B08", 27],
["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
["d940", "\u8CAE", 62],
["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
["dd40", "\u8EE5", 62],
["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
["e240", "\u91E6", 62],
["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
["e340", "\u9246", 45, "\u9275", 16],
["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
["e540", "\u930A", 51, "\u933F", 10],
["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
["e640", "\u936C", 34, "\u9390", 27],
["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
["e740", "\u93CE", 7, "\u93D7", 54],
["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
["ee40", "\u980F", 62],
["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
["f240", "\u99FA", 62],
["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
["f540", "\u9B7C", 62],
["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
["f640", "\u9BDC", 62],
["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
["f740", "\u9C3C", 62],
["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
["f840", "\u9CE3", 62],
["f880", "\u9D22", 32],
["f940", "\u9D43", 62],
["f980", "\u9D82", 32],
["fa40", "\u9DA3", 62],
["fa80", "\u9DE2", 32],
["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gbk-added.json
var require_gbk_added = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports, module) {
module.exports = [
["a140", "\uE4C6", 62],
["a180", "\uE505", 32],
["a240", "\uE526", 62],
["a280", "\uE565", 32],
["a2ab", "\uE766", 5],
["a2e3", "\u20AC\uE76D"],
["a2ef", "\uE76E\uE76F"],
["a2fd", "\uE770\uE771"],
["a340", "\uE586", 62],
["a380", "\uE5C5", 31, "\u3000"],
["a440", "\uE5E6", 62],
["a480", "\uE625", 32],
["a4f4", "\uE772", 10],
["a540", "\uE646", 62],
["a580", "\uE685", 32],
["a5f7", "\uE77D", 7],
["a640", "\uE6A6", 62],
["a680", "\uE6E5", 32],
["a6b9", "\uE785", 7],
["a6d9", "\uE78D", 6],
["a6ec", "\uE794\uE795"],
["a6f3", "\uE796"],
["a6f6", "\uE797", 8],
["a740", "\uE706", 62],
["a780", "\uE745", 32],
["a7c2", "\uE7A0", 14],
["a7f2", "\uE7AF", 12],
["a896", "\uE7BC", 10],
["a8bc", "\u1E3F"],
["a8bf", "\u01F9"],
["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
["a8ea", "\uE7CD", 20],
["a958", "\uE7E2"],
["a95b", "\uE7E3"],
["a95d", "\uE7E4\uE7E5\uE7E6"],
["a989", "\u303E\u2FF0", 11],
["a997", "\uE7F4", 12],
["a9f0", "\uE801", 14],
["aaa1", "\uE000", 93],
["aba1", "\uE05E", 93],
["aca1", "\uE0BC", 93],
["ada1", "\uE11A", 93],
["aea1", "\uE178", 93],
["afa1", "\uE1D6", 93],
["d7fa", "\uE810", 4],
["f8a1", "\uE234", 93],
["f9a1", "\uE292", 93],
["faa1", "\uE2F0", 93],
["fba1", "\uE34E", 93],
["fca1", "\uE3AC", 93],
["fda1", "\uE40A", 93],
["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93],
["8135f437", "\uE7C7"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
var require_gb18030_ranges = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports, module) {
module.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp949.json
var require_cp949 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp949.json"(exports, module) {
module.exports = [
["0", "\0", 127],
["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
["8741", "\uB19E", 9, "\uB1A9", 15],
["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
["8d41", "\uB6C3", 16, "\uB6D5", 8],
["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
["8f41", "\uB885", 7, "\uB88E", 17],
["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
["9641", "\uBEB8", 23, "\uBED2\uBED3"],
["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
["9741", "\uBF83", 16, "\uBF95", 8],
["9761", "\uBF9E", 17, "\uBFB1", 7],
["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
["9b61", "\uC333", 17, "\uC346", 7],
["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
["9d61", "\uC4C6", 25],
["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
["a241", "\uC910\uC912", 5, "\uC919", 18],
["a261", "\uC92D", 6, "\uC935", 18],
["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
["a5b0", "\u2160", 9],
["a5c1", "\u0391", 16, "\u03A3", 6],
["a5e1", "\u03B1", 16, "\u03C3", 6],
["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
["a841", "\uCB6D", 10, "\uCB7A", 14],
["a861", "\uCB89", 18, "\uCB9D", 6],
["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
["a8a6", "\u0132"],
["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
["a941", "\uCBC5", 14, "\uCBD5", 10],
["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
["acd1", "\u0430", 5, "\u0451\u0436", 25],
["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
["b061", "\uCEBB", 5, "\uCEC2", 19],
["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
["b641", "\uD105", 7, "\uD10E", 17],
["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
["b841", "\uD1D0", 7, "\uD1D9", 17],
["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
["bf41", "\uD49E", 10, "\uD4AA", 14],
["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
["c061", "\uD51E", 25],
["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp950.json
var require_cp950 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/cp950.json"(exports, module) {
module.exports = [
["0", "\0", 127],
["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
["a3e1", "\u20AC"],
["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/big5-added.json
var require_big5_added = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/tables/big5-added.json"(exports, module) {
module.exports = [
["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
["8940", "\u{2A3A9}\u{21145}"],
["8943", "\u650A"],
["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
["89ab", "\u918C\u78B8\u915E\u80BC"],
["89b0", "\u8D0B\u80F6\u{209E7}"],
["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
["89c1", "\u6E9A\u823E\u7519"],
["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
["8a40", "\u{27D84}\u5525"],
["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
["8cc9", "\u9868\u676B\u4276\u573D"],
["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
["8d40", "\u{20B9F}"],
["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
["9fae", "\u9159\u9681\u915C"],
["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
["9fe7", "\u6BFA\u8818\u7F78"],
["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
["a055", "\u{2183B}\u{26E05}"],
["a058", "\u8A7E\u{2251B}"],
["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
["a0ae", "\u77FE"],
["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
["a3c0", "\u2400", 31, "\u2421"],
["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
["f9fe", "\uFFED"],
["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
];
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-data.js
var require_dbcs_data = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/dbcs-data.js"(exports, module) {
"use strict";
module.exports = {
// == Japanese/ShiftJIS ====================================================
// All japanese encodings are based on JIS X set of standards:
// JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
// JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
// Has several variations in 1978, 1983, 1990 and 1997.
// JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
// JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
// 2 planes, first is superset of 0208, second - revised 0212.
// Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
// Byte encodings are:
// * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
// encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
// Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
// * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
// 0x00-0x7F - lower part of 0201
// 0x8E, 0xA1-0xDF - upper part of 0201
// (0xA1-0xFE)x2 - 0208 plane (94x94).
// 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
// * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
// Used as-is in ISO2022 family.
// * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
// 0201-1976 Roman, 0208-1978, 0208-1983.
// * ISO2022-JP-1: Adds esc seq for 0212-1990.
// * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
// * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
// * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
//
// After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
//
// Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
shiftjis: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_shiftjis();
}, "table"),
encodeAdd: { "\xA5": 92, "\u203E": 126 },
encodeSkipVals: [{ from: 60736, to: 63808 }]
},
csshiftjis: "shiftjis",
mskanji: "shiftjis",
sjis: "shiftjis",
windows31j: "shiftjis",
ms31j: "shiftjis",
xsjis: "shiftjis",
windows932: "shiftjis",
ms932: "shiftjis",
932: "shiftjis",
cp932: "shiftjis",
eucjp: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_eucjp();
}, "table"),
encodeAdd: { "\xA5": 92, "\u203E": 126 }
},
// TODO: KDDI extension to Shift_JIS
// TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
// TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
// == Chinese/GBK ==========================================================
// http://en.wikipedia.org/wiki/GBK
// We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
// Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
gb2312: "cp936",
gb231280: "cp936",
gb23121980: "cp936",
csgb2312: "cp936",
csiso58gb231280: "cp936",
euccn: "cp936",
// Microsoft's CP936 is a subset and approximation of GBK.
windows936: "cp936",
ms936: "cp936",
936: "cp936",
cp936: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp936();
}, "table")
},
// GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
gbk: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp936().concat(require_gbk_added());
}, "table")
},
xgbk: "gbk",
isoir58: "gbk",
// GB18030 is an algorithmic extension of GBK.
// Main source: https://www.w3.org/TR/encoding/#gbk-encoder
// http://icu-project.org/docs/papers/gb18030.html
// http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
// http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
gb18030: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp936().concat(require_gbk_added());
}, "table"),
gb18030: /* @__PURE__ */ __name(function() {
return require_gb18030_ranges();
}, "gb18030"),
encodeSkipVals: [128],
encodeAdd: { "\u20AC": 41699 }
},
chinese: "gb18030",
// == Korean ===============================================================
// EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
windows949: "cp949",
ms949: "cp949",
949: "cp949",
cp949: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp949();
}, "table")
},
cseuckr: "cp949",
csksc56011987: "cp949",
euckr: "cp949",
isoir149: "cp949",
korean: "cp949",
ksc56011987: "cp949",
ksc56011989: "cp949",
ksc5601: "cp949",
// == Big5/Taiwan/Hong Kong ================================================
// There are lots of tables for Big5 and cp950. Please see the following links for history:
// http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
// Variations, in roughly number of defined chars:
// * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
// * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
// * Big5-2003 (Taiwan standard) almost superset of cp950.
// * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
// * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
// many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
// Plus, it has 4 combining sequences.
// 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
// because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
// Implementations are not consistent within browsers; sometimes labeled as just big5.
// MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
// Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
// In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
// Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
// http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
//
// Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
// Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
windows950: "cp950",
ms950: "cp950",
950: "cp950",
cp950: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp950();
}, "table")
},
// Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
big5: "big5hkscs",
big5hkscs: {
type: "_dbcs",
table: /* @__PURE__ */ __name(function() {
return require_cp950().concat(require_big5_added());
}, "table"),
encodeSkipVals: [
// Although Encoding Standard says we should avoid encoding to HKSCS area (See Step 1 of
// https://encoding.spec.whatwg.org/#index-big5-pointer), we still do it to increase compatibility with ICU.
// But if a single unicode point can be encoded both as HKSCS and regular Big5, we prefer the latter.
36457,
36463,
36478,
36523,
36532,
36557,
36560,
36695,
36713,
36718,
36811,
36862,
36973,
36986,
37060,
37084,
37105,
37311,
37551,
37552,
37553,
37554,
37585,
37959,
38090,
38361,
38652,
39285,
39798,
39800,
39803,
39878,
39902,
39916,
39926,
40002,
40019,
40034,
40040,
40043,
40055,
40124,
40125,
40144,
40279,
40282,
40388,
40431,
40443,
40617,
40687,
40701,
40800,
40907,
41079,
41180,
41183,
36812,
37576,
38468,
38637,
// 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
41636,
41637,
41639,
41638,
41676,
41678
]
},
cnbig5: "big5hkscs",
csbig5: "big5hkscs",
xxbig5: "big5hkscs"
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/index.js
var require_encodings = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/encodings/index.js"(exports, module) {
"use strict";
var mergeModules = require_merge_exports();
var modules = [
require_internal(),
require_utf32(),
require_utf16(),
require_utf7(),
require_sbcs_codec(),
require_sbcs_data(),
require_sbcs_data_generated(),
require_dbcs_codec(),
require_dbcs_data()
];
for (i = 0; i < modules.length; i++) {
module = modules[i];
mergeModules(exports, module);
}
var module;
var i;
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/streams.js
var require_streams = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/streams.js"(exports, module) {
"use strict";
var Buffer2 = require_safer().Buffer;
module.exports = function(streamModule) {
var Transform2 = streamModule.Transform;
function IconvLiteEncoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.decodeStrings = false;
Transform2.call(this, options);
}
__name(IconvLiteEncoderStream, "IconvLiteEncoderStream");
IconvLiteEncoderStream.prototype = Object.create(Transform2.prototype, {
constructor: { value: IconvLiteEncoderStream }
});
IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
if (typeof chunk !== "string") {
return done(new Error("Iconv encoding stream needs strings as its input."));
}
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res);
done();
} catch (e) {
done(e);
}
};
IconvLiteEncoderStream.prototype.collect = function(cb) {
var chunks = [];
this.on("error", cb);
this.on("data", function(chunk) {
chunks.push(chunk);
});
this.on("end", function() {
cb(null, Buffer2.concat(chunks));
});
return this;
};
function IconvLiteDecoderStream(conv, options) {
this.conv = conv;
options = options || {};
options.encoding = this.encoding = "utf8";
Transform2.call(this, options);
}
__name(IconvLiteDecoderStream, "IconvLiteDecoderStream");
IconvLiteDecoderStream.prototype = Object.create(Transform2.prototype, {
constructor: { value: IconvLiteDecoderStream }
});
IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
if (!Buffer2.isBuffer(chunk) && !(chunk instanceof Uint8Array)) {
return done(new Error("Iconv decoding stream needs buffers as its input."));
}
try {
var res = this.conv.write(chunk);
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype._flush = function(done) {
try {
var res = this.conv.end();
if (res && res.length) this.push(res, this.encoding);
done();
} catch (e) {
done(e);
}
};
IconvLiteDecoderStream.prototype.collect = function(cb) {
var res = "";
this.on("error", cb);
this.on("data", function(chunk) {
res += chunk;
});
this.on("end", function() {
cb(null, res);
});
return this;
};
return {
IconvLiteEncoderStream,
IconvLiteDecoderStream
};
};
}
});
// ../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/index.js
var require_lib3 = __commonJS({
"../../node_modules/.pnpm/iconv-lite@0.7.3/node_modules/iconv-lite/lib/index.js"(exports, module) {
"use strict";
var Buffer2 = require_safer().Buffer;
var bomHandling = require_bom_handling();
var mergeModules = require_merge_exports();
module.exports.encodings = null;
module.exports.defaultCharUnicode = "\uFFFD";
module.exports.defaultCharSingleByte = "?";
module.exports.encode = /* @__PURE__ */ __name(function encode(str, encoding, options) {
str = "" + (str || "");
var encoder = module.exports.getEncoder(encoding, options);
var res = encoder.write(str);
var trail = encoder.end();
return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res;
}, "encode");
module.exports.decode = /* @__PURE__ */ __name(function decode(buf, encoding, options) {
if (typeof buf === "string") {
if (!module.exports.skipDecodeWarning) {
console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
module.exports.skipDecodeWarning = true;
}
buf = Buffer2.from("" + (buf || ""), "binary");
}
var decoder = module.exports.getDecoder(encoding, options);
var res = decoder.write(buf);
var trail = decoder.end();
return trail ? res + trail : res;
}, "decode");
module.exports.encodingExists = /* @__PURE__ */ __name(function encodingExists(enc) {
try {
module.exports.getCodec(enc);
return true;
} catch (e) {
return false;
}
}, "encodingExists");
module.exports.toEncoding = module.exports.encode;
module.exports.fromEncoding = module.exports.decode;
module.exports._codecDataCache = { __proto__: null };
module.exports.getCodec = /* @__PURE__ */ __name(function getCodec(encoding) {
if (!module.exports.encodings) {
var raw = require_encodings();
module.exports.encodings = { __proto__: null };
mergeModules(module.exports.encodings, raw);
}
var enc = module.exports._canonicalizeEncoding(encoding);
var codecOptions = {};
while (true) {
var codec = module.exports._codecDataCache[enc];
if (codec) {
return codec;
}
var codecDef = module.exports.encodings[enc];
switch (typeof codecDef) {
case "string":
enc = codecDef;
break;
case "object":
for (var key in codecDef) {
codecOptions[key] = codecDef[key];
}
if (!codecOptions.encodingName) {
codecOptions.encodingName = enc;
}
enc = codecDef.type;
break;
case "function":
if (!codecOptions.encodingName) {
codecOptions.encodingName = enc;
}
codec = new codecDef(codecOptions, module.exports);
module.exports._codecDataCache[codecOptions.encodingName] = codec;
return codec;
default:
throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
}
}
}, "getCodec");
module.exports._canonicalizeEncoding = function(encoding) {
return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
};
module.exports.getEncoder = /* @__PURE__ */ __name(function getEncoder(encoding, options) {
var codec = module.exports.getCodec(encoding);
var encoder = new codec.encoder(options, codec);
if (codec.bomAware && options && options.addBOM) {
encoder = new bomHandling.PrependBOM(encoder, options);
}
return encoder;
}, "getEncoder");
module.exports.getDecoder = /* @__PURE__ */ __name(function getDecoder(encoding, options) {
var codec = module.exports.getCodec(encoding);
var decoder = new codec.decoder(options, codec);
if (codec.bomAware && !(options && options.stripBOM === false)) {
decoder = new bomHandling.StripBOM(decoder, options);
}
return decoder;
}, "getDecoder");
module.exports.enableStreamingAPI = /* @__PURE__ */ __name(function enableStreamingAPI(streamModule2) {
if (module.exports.supportsStreams) {
return;
}
var streams = require_streams()(streamModule2);
module.exports.IconvLiteEncoderStream = streams.IconvLiteEncoderStream;
module.exports.IconvLiteDecoderStream = streams.IconvLiteDecoderStream;
module.exports.encodeStream = /* @__PURE__ */ __name(function encodeStream(encoding, options) {
return new module.exports.IconvLiteEncoderStream(module.exports.getEncoder(encoding, options), options);
}, "encodeStream");
module.exports.decodeStream = /* @__PURE__ */ __name(function decodeStream(encoding, options) {
return new module.exports.IconvLiteDecoderStream(module.exports.getDecoder(encoding, options), options);
}, "decodeStream");
module.exports.supportsStreams = true;
}, "enableStreamingAPI");
var streamModule;
try {
streamModule = __require("stream");
} catch (e) {
}
if (streamModule && streamModule.Transform) {
module.exports.enableStreamingAPI(streamModule);
} else {
module.exports.encodeStream = module.exports.decodeStream = function() {
throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.");
};
}
if (false) {
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.");
}
}
});
// ../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js
var require_unpipe = __commonJS({
"../../node_modules/.pnpm/unpipe@1.0.0/node_modules/unpipe/index.js"(exports, module) {
"use strict";
module.exports = unpipe;
function hasPipeDataListeners(stream) {
var listeners = stream.listeners("data");
for (var i = 0; i < listeners.length; i++) {
if (listeners[i].name === "ondata") {
return true;
}
}
return false;
}
__name(hasPipeDataListeners, "hasPipeDataListeners");
function unpipe(stream) {
if (!stream) {
throw new TypeError("argument stream is required");
}
if (typeof stream.unpipe === "function") {
stream.unpipe();
return;
}
if (!hasPipeDataListeners(stream)) {
return;
}
var listener;
var listeners = stream.listeners("close");
for (var i = 0; i < listeners.length; i++) {
listener = listeners[i];
if (listener.name !== "cleanup" && listener.name !== "onclose") {
continue;
}
listener.call(stream);
}
}
__name(unpipe, "unpipe");
}
});
// ../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js
var require_raw_body = __commonJS({
"../../node_modules/.pnpm/raw-body@3.0.2/node_modules/raw-body/index.js"(exports, module) {
"use strict";
var asyncHooks = tryRequireAsyncHooks();
var bytes = require_bytes();
var createError = require_http_errors();
var iconv = require_lib3();
var unpipe = require_unpipe();
module.exports = getRawBody;
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
function getDecoder(encoding) {
if (!encoding) return null;
try {
return iconv.getDecoder(encoding);
} catch (e) {
if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e;
throw createError(415, "specified encoding unsupported", {
encoding,
type: "encoding.unsupported"
});
}
}
__name(getDecoder, "getDecoder");
function getRawBody(stream, options, callback) {
var done = callback;
var opts = options || {};
if (stream === void 0) {
throw new TypeError("argument stream is required");
} else if (typeof stream !== "object" || stream === null || typeof stream.on !== "function") {
throw new TypeError("argument stream must be a stream");
}
if (options === true || typeof options === "string") {
opts = {
encoding: options
};
}
if (typeof options === "function") {
done = options;
opts = {};
}
if (done !== void 0 && typeof done !== "function") {
throw new TypeError("argument callback must be a function");
}
if (!done && !global.Promise) {
throw new TypeError("argument callback is required");
}
var encoding = opts.encoding !== true ? opts.encoding : "utf-8";
var limit = bytes.parse(opts.limit);
var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null;
if (done) {
return readStream(stream, encoding, length, limit, wrap(done));
}
return new Promise(/* @__PURE__ */ __name(function executor(resolve, reject) {
readStream(stream, encoding, length, limit, /* @__PURE__ */ __name(function onRead(err, buf) {
if (err) return reject(err);
resolve(buf);
}, "onRead"));
}, "executor"));
}
__name(getRawBody, "getRawBody");
function halt(stream) {
unpipe(stream);
if (typeof stream.pause === "function") {
stream.pause();
}
}
__name(halt, "halt");
function readStream(stream, encoding, length, limit, callback) {
var complete = false;
var sync = true;
if (limit !== null && length !== null && length > limit) {
return done(createError(413, "request entity too large", {
expected: length,
length,
limit,
type: "entity.too.large"
}));
}
var state = stream._readableState;
if (stream._decoder || state && (state.encoding || state.decoder)) {
return done(createError(500, "stream encoding should not be set", {
type: "stream.encoding.set"
}));
}
if (typeof stream.readable !== "undefined" && !stream.readable) {
return done(createError(500, "stream is not readable", {
type: "stream.not.readable"
}));
}
var received = 0;
var decoder;
try {
decoder = getDecoder(encoding);
} catch (err) {
return done(err);
}
var buffer = decoder ? "" : [];
stream.on("aborted", onAborted);
stream.on("close", cleanup);
stream.on("data", onData);
stream.on("end", onEnd);
stream.on("error", onEnd);
sync = false;
function done() {
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
complete = true;
if (sync) {
process.nextTick(invokeCallback);
} else {
invokeCallback();
}
function invokeCallback() {
cleanup();
if (args[0]) {
halt(stream);
}
callback.apply(null, args);
}
__name(invokeCallback, "invokeCallback");
}
__name(done, "done");
function onAborted() {
if (complete) return;
done(createError(400, "request aborted", {
code: "ECONNABORTED",
expected: length,
length,
received,
type: "request.aborted"
}));
}
__name(onAborted, "onAborted");
function onData(chunk) {
if (complete) return;
received += chunk.length;
if (limit !== null && received > limit) {
done(createError(413, "request entity too large", {
limit,
received,
type: "entity.too.large"
}));
} else if (decoder) {
buffer += decoder.write(chunk);
} else {
buffer.push(chunk);
}
}
__name(onData, "onData");
function onEnd(err) {
if (complete) return;
if (err) return done(err);
if (length !== null && received !== length) {
done(createError(400, "request size did not match content length", {
expected: length,
length,
received,
type: "request.size.invalid"
}));
} else {
var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer);
done(null, string);
}
}
__name(onEnd, "onEnd");
function cleanup() {
buffer = null;
stream.removeListener("aborted", onAborted);
stream.removeListener("data", onData);
stream.removeListener("end", onEnd);
stream.removeListener("error", onEnd);
stream.removeListener("close", cleanup);
}
__name(cleanup, "cleanup");
}
__name(readStream, "readStream");
function tryRequireAsyncHooks() {
try {
return __require("async_hooks");
} catch (e) {
return {};
}
}
__name(tryRequireAsyncHooks, "tryRequireAsyncHooks");
function wrap(fn) {
var res;
if (asyncHooks.AsyncResource) {
res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
}
if (!res || !res.runInAsyncScope) {
return fn;
}
return res.runInAsyncScope.bind(res, fn, null);
}
__name(wrap, "wrap");
}
});
// ../../node_modules/.pnpm/ee-first@1.1.1/node_modules/ee-first/index.js
var require_ee_first = __commonJS({
"../../node_modules/.pnpm/ee-first@1.1.1/node_modules/ee-first/index.js"(exports, module) {
"use strict";
module.exports = first;
function first(stuff, done) {
if (!Array.isArray(stuff))
throw new TypeError("arg must be an array of [ee, events...] arrays");
var cleanups = [];
for (var i = 0; i < stuff.length; i++) {
var arr = stuff[i];
if (!Array.isArray(arr) || arr.length < 2)
throw new TypeError("each array member must be [ee, events...]");
var ee = arr[0];
for (var j = 1; j < arr.length; j++) {
var event = arr[j];
var fn = listener(event, callback);
ee.on(event, fn);
cleanups.push({
ee,
event,
fn
});
}
}
function callback() {
cleanup();
done.apply(null, arguments);
}
__name(callback, "callback");
function cleanup() {
var x;
for (var i2 = 0; i2 < cleanups.length; i2++) {
x = cleanups[i2];
x.ee.removeListener(x.event, x.fn);
}
}
__name(cleanup, "cleanup");
function thunk(fn2) {
done = fn2;
}
__name(thunk, "thunk");
thunk.cancel = cleanup;
return thunk;
}
__name(first, "first");
function listener(event, done) {
return /* @__PURE__ */ __name(function onevent(arg1) {
var args = new Array(arguments.length);
var ee = this;
var err = event === "error" ? arg1 : null;
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
done(err, ee, event, args);
}, "onevent");
}
__name(listener, "listener");
}
});
// ../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js
var require_on_finished = __commonJS({
"../../node_modules/.pnpm/on-finished@2.4.1/node_modules/on-finished/index.js"(exports, module) {
"use strict";
module.exports = onFinished;
module.exports.isFinished = isFinished;
var asyncHooks = tryRequireAsyncHooks();
var first = require_ee_first();
var defer2 = typeof setImmediate === "function" ? setImmediate : function(fn) {
process.nextTick(fn.bind.apply(fn, arguments));
};
function onFinished(msg, listener) {
if (isFinished(msg) !== false) {
defer2(listener, null, msg);
return msg;
}
attachListener(msg, wrap(listener));
return msg;
}
__name(onFinished, "onFinished");
function isFinished(msg) {
var socket = msg.socket;
if (typeof msg.finished === "boolean") {
return Boolean(msg.finished || socket && !socket.writable);
}
if (typeof msg.complete === "boolean") {
return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable);
}
return void 0;
}
__name(isFinished, "isFinished");
function attachFinishedListener(msg, callback) {
var eeMsg;
var eeSocket;
var finished3 = false;
function onFinish(error) {
eeMsg.cancel();
eeSocket.cancel();
finished3 = true;
callback(error);
}
__name(onFinish, "onFinish");
eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish);
function onSocket(socket) {
msg.removeListener("socket", onSocket);
if (finished3) return;
if (eeMsg !== eeSocket) return;
eeSocket = first([[socket, "error", "close"]], onFinish);
}
__name(onSocket, "onSocket");
if (msg.socket) {
onSocket(msg.socket);
return;
}
msg.on("socket", onSocket);
if (msg.socket === void 0) {
patchAssignSocket(msg, onSocket);
}
}
__name(attachFinishedListener, "attachFinishedListener");
function attachListener(msg, listener) {
var attached = msg.__onFinished;
if (!attached || !attached.queue) {
attached = msg.__onFinished = createListener(msg);
attachFinishedListener(msg, attached);
}
attached.queue.push(listener);
}
__name(attachListener, "attachListener");
function createListener(msg) {
function listener(err) {
if (msg.__onFinished === listener) msg.__onFinished = null;
if (!listener.queue) return;
var queue = listener.queue;
listener.queue = null;
for (var i = 0; i < queue.length; i++) {
queue[i](err, msg);
}
}
__name(listener, "listener");
listener.queue = [];
return listener;
}
__name(createListener, "createListener");
function patchAssignSocket(res, callback) {
var assignSocket = res.assignSocket;
if (typeof assignSocket !== "function") return;
res.assignSocket = /* @__PURE__ */ __name(function _assignSocket(socket) {
assignSocket.call(this, socket);
callback(socket);
}, "_assignSocket");
}
__name(patchAssignSocket, "patchAssignSocket");
function tryRequireAsyncHooks() {
try {
return __require("async_hooks");
} catch (e) {
return {};
}
}
__name(tryRequireAsyncHooks, "tryRequireAsyncHooks");
function wrap(fn) {
var res;
if (asyncHooks.AsyncResource) {
res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
}
if (!res || !res.runInAsyncScope) {
return fn;
}
return res.runInAsyncScope.bind(res, fn, null);
}
__name(wrap, "wrap");
}
});
// ../../node_modules/.pnpm/content-type@2.1.0/node_modules/content-type/dist/index.js
var require_dist = __commonJS({
"../../node_modules/.pnpm/content-type@2.1.0/node_modules/content-type/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.format = format;
exports.parse = parse;
var TEXT_REGEXP = /^[\u0009\u0020-\u007e\u0080-\u00ff]*$/;
var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
var QUOTE_REGEXP = /[\\"]/g;
var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
var NullObject = /* @__PURE__ */ (() => {
const C = /* @__PURE__ */ __name(function() {
}, "C");
C.prototype = /* @__PURE__ */ Object.create(null);
return C;
})();
function format(obj) {
const { type, parameters } = obj;
if (!type || !TYPE_REGEXP.test(type)) {
throw new TypeError(`Invalid type: ${type}`);
}
let result = type;
if (parameters) {
for (const param of Object.keys(parameters)) {
if (!TOKEN_REGEXP.test(param)) {
throw new TypeError(`Invalid parameter name: ${param}`);
}
result += `; ${param}=${qstring(parameters[param])}`;
}
}
return result;
}
__name(format, "format");
function parse(header, options) {
const stopChar = options?.comma === true ? COMMA : 65536;
const len = header.length;
let index = skipOWS(header, options?.start ?? 0, len);
const valueStart = index;
index = skipValue(header, index, len, stopChar);
const valueEnd = trailingOWS(header, valueStart, index);
const type = header.slice(valueStart, valueEnd).toLowerCase();
if (options?.parameters === false) {
return { type, index, parameters: new NullObject() };
}
return parseParameters(header, type, index, len, stopChar);
}
__name(parse, "parse");
var SP = 32;
var HTAB = 9;
var SEMI = 59;
var EQ = 61;
var DQUOTE = 34;
var BSLASH = 92;
var COMMA = 44;
function parseParameters(header, type, index, len, stopChar) {
const parameters = new NullObject();
parameter: while (index < len) {
if (header.charCodeAt(index) === stopChar)
break;
index = skipOWS(header, index + 1, len);
const keyStart = index;
while (index < len) {
const code = header.charCodeAt(index);
if (code === stopChar)
break parameter;
if (code === SEMI)
continue parameter;
if (code === EQ) {
const keyEnd = trailingOWS(header, keyStart, index);
const key = header.slice(keyStart, keyEnd).toLowerCase();
index = skipOWS(header, index + 1, len);
if (index < len && header.charCodeAt(index) === DQUOTE) {
index++;
let value = "";
while (index < len) {
const code2 = header.charCodeAt(index++);
if (code2 === DQUOTE) {
index = skipValue(header, index, len, stopChar);
if (parameters[key] === void 0)
parameters[key] = value;
break;
}
if (code2 === BSLASH && index < len) {
value += header[index++];
continue;
}
value += String.fromCharCode(code2);
}
continue parameter;
}
const valueStart = index;
index = skipValue(header, index, len, stopChar);
if (parameters[key] === void 0) {
const valueEnd = trailingOWS(header, valueStart, index);
parameters[key] = header.slice(valueStart, valueEnd);
}
continue parameter;
}
index++;
}
}
return { type, index, parameters };
}
__name(parseParameters, "parseParameters");
function skipValue(str, index, len, stopChar) {
while (index < len) {
const code = str.charCodeAt(index);
if (code === SEMI || code === stopChar)
break;
index++;
}
return index;
}
__name(skipValue, "skipValue");
function skipOWS(header, index, len) {
while (index < len) {
const char = header.charCodeAt(index);
if (char !== SP && char !== HTAB)
break;
index++;
}
return index;
}
__name(skipOWS, "skipOWS");
function trailingOWS(header, start, end) {
while (end > start) {
const char = header.charCodeAt(end - 1);
if (char !== SP && char !== HTAB)
break;
end--;
}
return end;
}
__name(trailingOWS, "trailingOWS");
function qstring(str) {
if (TOKEN_REGEXP.test(str))
return str;
if (TEXT_REGEXP.test(str))
return `"${str.replace(QUOTE_REGEXP, "\\$&")}"`;
throw new TypeError(`Invalid parameter value: ${str}`);
}
__name(qstring, "qstring");
}
});
// ../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/db.json
var require_db = __commonJS({
"../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/db.json"(exports, module) {
module.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/ace+json": {
source: "iana",
compressible: true
},
"application/ace-groupcomm+cbor": {
source: "iana"
},
"application/ace-trl+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/aif+cbor": {
source: "iana"
},
"application/aif+json": {
source: "iana",
compressible: true
},
"application/alto-cdni+json": {
source: "iana",
compressible: true
},
"application/alto-cdnifilter+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-propmap+json": {
source: "iana",
compressible: true
},
"application/alto-propmapparams+json": {
source: "iana",
compressible: true
},
"application/alto-tips+json": {
source: "iana",
compressible: true
},
"application/alto-tipsparams+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/appinstaller": {
compressible: false,
extensions: ["appinstaller"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/appx": {
compressible: false,
extensions: ["appx"]
},
"application/appxbundle": {
compressible: false,
extensions: ["appxbundle"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/automationml-aml+xml": {
source: "iana",
compressible: true,
extensions: ["aml"]
},
"application/automationml-amlx+zip": {
source: "iana",
compressible: false,
extensions: ["amlx"]
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/bufr": {
source: "iana"
},
"application/c2pa": {
source: "iana"
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/ce+cbor": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/cid-edhoc+cbor-seq": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/city+json-seq": {
source: "iana"
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-eap": {
source: "iana"
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/concise-problem-details+cbor": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cose-x509": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwl": {
source: "iana",
extensions: ["cwl"]
},
"application/cwl+json": {
source: "iana",
compressible: true
},
"application/cwl+yaml": {
source: "iana"
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana",
extensions: ["dcm"]
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dpop+jwt": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/eat+cwt": {
source: "iana"
},
"application/eat+jwt": {
source: "iana"
},
"application/eat-bun+cbor": {
source: "iana"
},
"application/eat-bun+json": {
source: "iana",
compressible: true
},
"application/eat-ucs+cbor": {
source: "iana"
},
"application/eat-ucs+json": {
source: "iana",
compressible: true
},
"application/ecmascript": {
source: "apache",
compressible: true,
extensions: ["ecma"]
},
"application/edhoc+cbor-seq": {
source: "iana"
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.legacyesn+json": {
source: "iana",
compressible: true
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/entity-statement+jwt": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geopose+json": {
source: "iana",
compressible: true
},
"application/geoxacml+json": {
source: "iana",
compressible: true
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gnap-binding-jws": {
source: "iana"
},
"application/gnap-binding-jwsd": {
source: "iana"
},
"application/gnap-binding-rotation-jws": {
source: "iana"
},
"application/gnap-binding-rotation-jwsd": {
source: "iana"
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/grib": {
source: "iana"
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "iana",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "apache",
charset: "UTF-8",
compressible: true,
extensions: ["js"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/jscontact+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jsonpath": {
source: "iana"
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwk-set+jwt": {
source: "iana"
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/linkset": {
source: "iana"
},
"application/linkset+json": {
source: "iana",
compressible: true
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/logout+jwt": {
source: "iana"
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4", "mpg4", "mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msix": {
compressible: false,
extensions: ["msix"]
},
"application/msixbundle": {
compressible: false,
extensions: ["msixbundle"]
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: true,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/ohttp-keys": {
source: "iana"
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["sig", "asc"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/private-token-issuer-directory": {
source: "iana"
},
"application/private-token-request": {
source: "iana"
},
"application/private-token-response": {
source: "iana"
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/provided-claims+jwt": {
source: "iana"
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.implied-document+xml": {
source: "iana",
compressible: true
},
"application/prs.implied-executable": {
source: "iana"
},
"application/prs.implied-object+json": {
source: "iana",
compressible: true
},
"application/prs.implied-object+json-seq": {
source: "iana"
},
"application/prs.implied-object+yaml": {
source: "iana"
},
"application/prs.implied-structure": {
source: "iana"
},
"application/prs.mayfile": {
source: "iana"
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.vcfbzip2": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true,
extensions: ["xsf"]
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "apache"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resolve-response+jwt": {
source: "iana"
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-checklist": {
source: "iana"
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-signed-tal": {
source: "iana"
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "apache"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana",
extensions: ["sql"]
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/sslkeylogfile": {
source: "iana"
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/st2110-41": {
source: "iana"
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/stratum": {
source: "iana"
},
"application/swid+cbor": {
source: "iana"
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tm+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/toc+cbor": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
source: "iana",
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/trust-chain+json": {
source: "iana",
compressible: true
},
"application/trust-mark+jwt": {
source: "iana"
},
"application/trust-mark-delegation+jwt": {
source: "iana"
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/uccs+cbor": {
source: "iana"
},
"application/ujcs+json": {
source: "iana",
compressible: true
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vc": {
source: "iana"
},
"application/vc+cose": {
source: "iana"
},
"application/vc+jwt": {
source: "iana"
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.1ob": {
source: "iana"
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3a+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ach+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc8+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x": {
source: "iana"
},
"application/vnd.3gpp.5gsa2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x": {
source: "iana"
},
"application/vnd.3gpp.5gsv2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.crs+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.current-location-discovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-msgstore-ctrl-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-regroup+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.pinapp-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.seal-group-doc+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-network-qos-management-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-ue-config-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-unicast-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.seal-user-profile-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.v2x": {
source: "iana"
},
"application/vnd.3gpp.vae-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acm.addressxfer+json": {
source: "iana",
compressible: true
},
"application/vnd.acm.chatbot+json": {
source: "iana",
compressible: true
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "apache",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "apache"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.parquet": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.apexlang": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "apache"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autodesk.fbx": {
extensions: ["fbx"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.belightsoft.lhzd+zip": {
source: "iana",
compressible: false
},
"application/vnd.belightsoft.lhzl+zip": {
source: "iana",
compressible: false
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.bzip3": {
source: "iana"
},
"application/vnd.c3voc.schedule+xml": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.cncf.helm.chart.content.v1.tar+gzip": {
source: "iana"
},
"application/vnd.cncf.helm.chart.provenance.v1.prov": {
source: "iana"
},
"application/vnd.cncf.helm.config.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datalog": {
source: "iana"
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.dcmp+xml": {
source: "iana",
compressible: true,
extensions: ["dcmp"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.eln+zip": {
source: "iana",
compressible: false
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.erofs": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "apache",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.fdsn.stationxml+xml": {
source: "iana",
charset: "XML-BASED",
compressible: true
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.freelog.comic": {
source: "iana"
},
"application/vnd.frogans.fnc": {
source: "apache",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "apache",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.ga4gh.passport+jwt": {
source: "iana"
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.genozip": {
source: "iana"
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.catmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.ebuild": {
source: "iana"
},
"application/vnd.gentoo.eclass": {
source: "iana"
},
"application/vnd.gentoo.gpkg": {
source: "iana"
},
"application/vnd.gentoo.manifest": {
source: "iana"
},
"application/vnd.gentoo.pkgmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.gentoo.xpak": {
source: "iana"
},
"application/vnd.geo+json": {
source: "apache",
compressible: true
},
"application/vnd.geocube+xml": {
source: "apache",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.pinboard": {
source: "iana"
},
"application/vnd.geogebra.slides": {
source: "iana",
extensions: ["ggs"]
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.gnu.taler.exchange+json": {
source: "iana",
compressible: true
},
"application/vnd.gnu.taler.merchant+json": {
source: "iana",
compressible: true
},
"application/vnd.google-apps.audio": {},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.drawing": {
compressible: false,
extensions: ["gdraw"]
},
"application/vnd.google-apps.drive-sdk": {
compressible: false
},
"application/vnd.google-apps.file": {},
"application/vnd.google-apps.folder": {
compressible: false
},
"application/vnd.google-apps.form": {
compressible: false,
extensions: ["gform"]
},
"application/vnd.google-apps.fusiontable": {},
"application/vnd.google-apps.jam": {
compressible: false,
extensions: ["gjam"]
},
"application/vnd.google-apps.mail-layout": {},
"application/vnd.google-apps.map": {
compressible: false,
extensions: ["gmap"]
},
"application/vnd.google-apps.photo": {},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.script": {
compressible: false,
extensions: ["gscript"]
},
"application/vnd.google-apps.shortcut": {},
"application/vnd.google-apps.site": {
compressible: false,
extensions: ["gsite"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-apps.unknown": {},
"application/vnd.google-apps.video": {},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "apache",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true,
extensions: ["xdcf"]
},
"application/vnd.gpxsee.map+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.hsl": {
source: "iana"
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "apache"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "apache",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "apache"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.ipfs.ipns-record": {
source: "iana"
},
"application/vnd.ipld.car": {
source: "iana"
},
"application/vnd.ipld.dag-cbor": {
source: "iana"
},
"application/vnd.ipld.dag-json": {
source: "iana"
},
"application/vnd.ipld.raw": {
source: "iana"
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kdl": {
source: "iana"
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.keyman.kmp+zip": {
source: "iana",
compressible: false
},
"application/vnd.keyman.kmx": {
source: "iana"
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.ldev.productlicensing": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.mdl": {
source: "iana"
},
"application/vnd.mdl-mbsdf": {
source: "iana"
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.medicalholodeck.recordxr": {
source: "iana"
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mermaid": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.modl": {
source: "iana"
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-visio.viewer": {
extensions: ["vdx"]
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msgpack": {
source: "iana"
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+cbor": {
source: "iana"
},
"application/vnd.nato.bindingdataobject+json": {
source: "iana",
compressible: true
},
"application/vnd.nato.bindingdataobject+xml": {
source: "iana",
compressible: true,
extensions: ["bdo"]
},
"application/vnd.nato.openxmlformats-package.iepd+zip": {
source: "iana",
compressible: false
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "apache",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oai.workflows": {
source: "iana"
},
"application/vnd.oai.workflows+json": {
source: "iana",
compressible: true
},
"application/vnd.oai.workflows+yaml": {
source: "iana"
},
"application/vnd.oasis.opendocument.base": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "apache",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-master-template": {
source: "iana"
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "apache",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.onvif.metadata": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openvpi.dspx+json": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.procrate.brushset": {
extensions: ["brushset"]
},
"application/vnd.procreate.brush": {
extensions: ["brush"]
},
"application/vnd.procreate.dream": {
extensions: ["drm"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.pt.mundusmundi": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true,
extensions: ["xhtm"]
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.relpipe": {
source: "iana"
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.sketchometry": {
source: "iana"
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.smintio.portals.archive": {
source: "iana"
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sybyl.mol2": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uic.osdm+json": {
source: "iana",
compressible: true
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml", "uo"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.veraison.tsm-report+cbor": {
source: "iana"
},
"application/vnd.veraison.tsm-report+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vocalshaper.vsp4": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.wasmflow.wafl": {
source: "iana"
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordlift": {
source: "iana"
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xarin.cpj": {
source: "iana"
},
"application/vnd.xecrets-encrypted": {
source: "iana"
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/voucher-jws+json": {
source: "iana",
compressible: true
},
"application/vp": {
source: "iana"
},
"application/vp+cose": {
source: "iana"
},
"application/vp+jwt": {
source: "iana"
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blender": {
extensions: ["blend"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-compressed": {
extensions: ["rar"]
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-ipynb+json": {
compressible: true,
extensions: ["ipynb"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zip-compressed": {
extensions: ["zip"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yaml": {
source: "iana"
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+cbor": {
source: "iana"
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yang-sid+json": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zip+dotlottie": {
extensions: ["lottie"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana",
extensions: ["adts", "aac"]
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flac": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/matroska": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/midi-clip": {
source: "iana"
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a", "m4b"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "apache"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
source: "iana",
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp", "dib"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/dpx": {
source: "iana",
extensions: ["dpx"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/j2c": {
source: "iana"
},
"image/jaii": {
source: "iana",
extensions: ["jaii"]
},
"image/jais": {
source: "iana",
extensions: ["jais"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpg", "jpeg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm", "jpgm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxl": {
source: "iana",
extensions: ["jxl"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false,
extensions: ["jfif"]
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif", "btf"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.clip": {
source: "iana"
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "iana",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-adobe-dng": {
extensions: ["dng"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-emf": {
source: "iana"
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-wmf": {
source: "iana"
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/bhttp": {
source: "iana"
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/mls": {
source: "iana"
},
"message/news": {
source: "apache"
},
"message/ohttp-req": {
source: "iana"
},
"message/ohttp-res": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime", "mht", "mhtml"]
},
"message/s-http": {
source: "apache"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "apache"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/jt": {
source: "iana",
extensions: ["jt"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/prc": {
source: "iana",
extensions: ["prc"]
},
"model/step": {
source: "iana",
extensions: ["step", "stp", "stpnc", "p21", "210"]
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/u3d": {
source: "iana",
extensions: ["u3d"]
},
"model/vnd.bary": {
source: "iana",
extensions: ["bary"]
},
"model/vnd.cld": {
source: "iana",
extensions: ["cld"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana",
extensions: ["pyo", "pyox"]
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usda": {
source: "iana",
extensions: ["usda"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "apache"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/hl7v2": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["md", "markdown"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/prs.texi": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.exchangeable": {
source: "iana"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "apache"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.vcf": {
source: "iana"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vnd.zoo.kcl": {
source: "iana"
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/wgsl": {
source: "iana",
extensions: ["wgsl"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/evc": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/h266": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/lottie+json": {
source: "iana",
compressible: true
},
"video/matroska": {
source: "iana"
},
"video/matroska-3d": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts", "m2t", "m2ts", "mts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.planar": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "apache"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
// ../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/index.js
var require_mime_db = __commonJS({
"../../node_modules/.pnpm/mime-db@1.54.0/node_modules/mime-db/index.js"(exports, module) {
module.exports = require_db();
}
});
// ../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/mimeScore.js
var require_mimeScore = __commonJS({
"../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/mimeScore.js"(exports, module) {
var FACET_SCORES = {
"prs.": 100,
"x-": 200,
"x.": 300,
"vnd.": 400,
default: 900
};
var SOURCE_SCORES = {
nginx: 10,
apache: 20,
iana: 40,
default: 30
// definitions added by `jshttp/mime-db` project?
};
var TYPE_SCORES = {
// prefer application/xml over text/xml
// prefer application/rtf over text/rtf
application: 1,
// prefer font/woff over application/font-woff
font: 2,
// prefer video/mp4 over audio/mp4 over application/mp4
// See https://www.rfc-editor.org/rfc/rfc4337.html#section-2
audio: 2,
video: 3,
default: 0
};
module.exports = /* @__PURE__ */ __name(function mimeScore(mimeType, source = "default") {
if (mimeType === "application/octet-stream") {
return 0;
}
const [type, subtype] = mimeType.split("/");
const facet = subtype.replace(/(\.|x-).*/, "$1");
const facetScore = FACET_SCORES[facet] || FACET_SCORES.default;
const sourceScore = SOURCE_SCORES[source] || SOURCE_SCORES.default;
const typeScore = TYPE_SCORES[type] || TYPE_SCORES.default;
const lengthScore = 1 - mimeType.length / 100;
return facetScore + sourceScore + typeScore + lengthScore;
}, "mimeScore");
}
});
// ../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/index.js
var require_mime_types = __commonJS({
"../../node_modules/.pnpm/mime-types@3.0.2/node_modules/mime-types/index.js"(exports) {
"use strict";
var db = require_mime_db();
var extname = __require("path").extname;
var mimeScore = require_mimeScore();
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports.charset = charset;
exports.charsets = { lookup: charset };
exports.contentType = contentType;
exports.extension = extension;
exports.extensions = /* @__PURE__ */ Object.create(null);
exports.lookup = lookup;
exports.types = /* @__PURE__ */ Object.create(null);
exports._extensionConflicts = [];
populateMaps(exports.extensions, exports.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
__name(charset, "charset");
function contentType(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
__name(contentType, "contentType");
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
__name(extension, "extension");
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().slice(1);
if (!extension2) {
return false;
}
return exports.types[extension2] || false;
}
__name(lookup, "lookup");
function populateMaps(extensions, types) {
Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
types[extension2] = _preferredType(extension2, types[extension2], type);
const legacyType = _preferredTypeLegacy(
extension2,
types[extension2],
type
);
if (legacyType !== types[extension2]) {
exports._extensionConflicts.push([extension2, legacyType, types[extension2]]);
}
}
}, "forEachMimeType"));
}
__name(populateMaps, "populateMaps");
function _preferredType(ext, type0, type1) {
var score0 = type0 ? mimeScore(type0, db[type0].source) : 0;
var score1 = type1 ? mimeScore(type1, db[type1].source) : 0;
return score0 > score1 ? type0 : type1;
}
__name(_preferredType, "_preferredType");
function _preferredTypeLegacy(ext, type0, type1) {
var SOURCE_RANK = ["nginx", "apache", void 0, "iana"];
var score0 = type0 ? SOURCE_RANK.indexOf(db[type0].source) : 0;
var score1 = type1 ? SOURCE_RANK.indexOf(db[type1].source) : 0;
if (exports.types[extension] !== "application/octet-stream" && (score0 > score1 || score0 === score1 && exports.types[extension]?.slice(0, 12) === "application/")) {
return type0;
}
return score0 > score1 ? type0 : type1;
}
__name(_preferredTypeLegacy, "_preferredTypeLegacy");
}
});
// ../../node_modules/.pnpm/media-typer@1.1.1/node_modules/media-typer/index.js
var require_media_typer = __commonJS({
"../../node_modules/.pnpm/media-typer@1.1.1/node_modules/media-typer/index.js"(exports) {
"use strict";
var SUBTYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
var TYPE_NAME_REGEXP = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
var TYPE_REGEXP = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
exports.format = format;
exports.parse = parse;
exports.test = test;
function format(obj) {
if (!obj || typeof obj !== "object") {
throw new TypeError("argument obj is required");
}
var subtype = obj.subtype;
var suffix = obj.suffix;
var type = obj.type;
if (!type || !TYPE_NAME_REGEXP.test(type)) {
throw new TypeError("invalid type");
}
if (!subtype || !SUBTYPE_NAME_REGEXP.test(subtype)) {
throw new TypeError("invalid subtype");
}
var string = type + "/" + subtype;
if (suffix) {
if (!TYPE_NAME_REGEXP.test(suffix)) {
throw new TypeError("invalid suffix");
}
string += "+" + suffix;
}
return string;
}
__name(format, "format");
function test(string) {
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
return TYPE_REGEXP.test(string.toLowerCase());
}
__name(test, "test");
function parse(string) {
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
var match = TYPE_REGEXP.exec(string.toLowerCase());
if (!match) {
throw new TypeError("invalid media type");
}
var type = match[1];
var subtype = match[2];
var suffix;
var index = subtype.lastIndexOf("+");
if (index !== -1) {
suffix = subtype.substr(index + 1);
subtype = subtype.substr(0, index);
}
return new MediaType(type, subtype, suffix);
}
__name(parse, "parse");
function MediaType(type, subtype, suffix) {
this.type = type;
this.subtype = subtype;
this.suffix = suffix;
}
__name(MediaType, "MediaType");
}
});
// ../../node_modules/.pnpm/type-is@2.1.0/node_modules/type-is/index.js
var require_type_is = __commonJS({
"../../node_modules/.pnpm/type-is@2.1.0/node_modules/type-is/index.js"(exports, module) {
"use strict";
var contentType = require_dist();
var mime = require_mime_types();
var typer = require_media_typer();
module.exports = typeofrequest;
module.exports.is = typeis;
module.exports.hasBody = hasbody;
module.exports.normalize = normalize;
module.exports.match = mimeMatch;
function typeis(value, types_) {
if (value && typeof value === "object") {
value = value.headers["content-type"];
}
var i;
var types = types_;
var val = normalizeType(value);
if (!val) {
return false;
}
if (types && !Array.isArray(types)) {
types = new Array(arguments.length - 1);
for (i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
if (!types || !types.length) {
return val;
}
var type;
for (i = 0; i < types.length; i++) {
if (mimeMatch(normalize(type = types[i]), val)) {
return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
}
}
return false;
}
__name(typeis, "typeis");
function hasbody(req) {
return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
}
__name(hasbody, "hasbody");
function typeofrequest(req, types_) {
if (!hasbody(req)) return null;
var types = arguments.length > 2 ? Array.prototype.slice.call(arguments, 1) : types_;
var value = req.headers["content-type"];
return typeis(value, types);
}
__name(typeofrequest, "typeofrequest");
function normalize(type) {
if (typeof type !== "string") {
return false;
}
switch (type) {
case "urlencoded":
return "application/x-www-form-urlencoded";
case "multipart":
return "multipart/*";
}
if (type[0] === "+") {
return "*/*" + type;
}
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
__name(normalize, "normalize");
function mimeMatch(expected, actual) {
if (expected === false) {
return false;
}
var actualParts = actual.split("/");
var expectedParts = expected.split("/");
if (actualParts.length !== 2 || expectedParts.length !== 2) {
return false;
}
if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
return false;
}
if (expectedParts[1].slice(0, 2) === "*+") {
return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].slice(1) === actualParts[1].slice(1 - expectedParts[1].length);
}
if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
return false;
}
return true;
}
__name(mimeMatch, "mimeMatch");
function normalizeType(value) {
if (!value) return null;
var type = contentType.parse(value, { parameters: false }).type;
return typer.test(type) ? type : null;
}
__name(normalizeType, "normalizeType");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/utils.js
var require_utils = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/utils.js"(exports, module) {
"use strict";
var bytes = require_bytes();
var contentType = require_dist();
var typeis = require_type_is();
module.exports = {
getCharset,
normalizeOptions,
passthrough
};
function getCharset(req) {
const header = req.headers["content-type"];
if (!header) return void 0;
return contentType.parse(header).parameters.charset?.toLowerCase();
}
__name(getCharset, "getCharset");
function typeChecker(type) {
return /* @__PURE__ */ __name(function checkType(req) {
return Boolean(typeis(req, type));
}, "checkType");
}
__name(typeChecker, "typeChecker");
function normalizeOptions(options, defaultType) {
if (!defaultType) {
throw new TypeError("defaultType must be provided");
}
const inflate = options?.inflate !== false;
const limit = typeof options?.limit === "undefined" || options?.limit === null ? 102400 : bytes.parse(options.limit);
const type = options?.type || defaultType;
const verify = options?.verify || false;
const defaultCharset = options?.defaultCharset || "utf-8";
if (limit === null) {
throw new TypeError(`option limit "${String(options.limit)}" is invalid`);
}
if (verify !== false && typeof verify !== "function") {
throw new TypeError("option verify must be function");
}
const shouldParse = typeof type !== "function" ? typeChecker(type) : type;
return {
inflate,
limit,
verify,
defaultCharset,
shouldParse
};
}
__name(normalizeOptions, "normalizeOptions");
function passthrough(value) {
return value;
}
__name(passthrough, "passthrough");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/read.js
var require_read = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/read.js"(exports, module) {
"use strict";
var createError = require_http_errors();
var getBody = require_raw_body();
var iconv = require_lib3();
var onFinished = require_on_finished();
var zlib = __require("node:zlib");
var hasBody = require_type_is().hasBody;
var { getCharset } = require_utils();
module.exports = read;
function read(req, res, next, parse, debug, options) {
if (onFinished.isFinished(req)) {
debug("body already parsed");
next();
return;
}
if (!("body" in req)) {
req.body = void 0;
}
if (!hasBody(req)) {
debug("skip empty body");
next();
return;
}
debug("content-type %j", req.headers["content-type"]);
if (!options.shouldParse(req)) {
debug("skip parsing");
next();
return;
}
let encoding = null;
if (options?.skipCharset !== true) {
encoding = getCharset(req) || options.defaultCharset;
if (!!options?.isValidCharset && !options.isValidCharset(encoding)) {
debug("invalid charset");
next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
charset: encoding,
type: "charset.unsupported"
}));
return;
}
}
let length;
const opts = options;
let stream;
const verify = opts.verify;
try {
stream = contentstream(req, debug, opts.inflate);
length = stream.length;
stream.length = void 0;
} catch (err) {
return next(err);
}
opts.length = length;
opts.encoding = verify ? null : encoding;
if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
charset: encoding.toLowerCase(),
type: "charset.unsupported"
}));
}
debug("read body");
getBody(stream, opts, function(error, body) {
if (error) {
let _error;
if (error.type === "encoding.unsupported") {
_error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
charset: encoding.toLowerCase(),
type: "charset.unsupported"
});
} else {
_error = createError(400, error);
}
if (stream !== req) {
req.unpipe();
stream.destroy();
}
dump(req, /* @__PURE__ */ __name(function onfinished() {
next(createError(400, _error));
}, "onfinished"));
return;
}
if (verify) {
try {
debug("verify body");
verify(req, res, body, encoding);
} catch (err) {
next(createError(403, err, {
body,
type: err.type || "entity.verify.failed"
}));
return;
}
}
let str = body;
try {
debug("parse body");
str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body;
req.body = parse(str, encoding);
} catch (err) {
next(createError(400, err, {
body: str,
type: err.type || "entity.parse.failed"
}));
return;
}
next();
});
}
__name(read, "read");
function contentstream(req, debug, inflate) {
const encoding = (req.headers["content-encoding"] || "identity").toLowerCase();
const length = req.headers["content-length"];
debug('content-encoding "%s"', encoding);
if (inflate === false && encoding !== "identity") {
throw createError(415, "content encoding unsupported", {
encoding,
type: "encoding.unsupported"
});
}
if (encoding === "identity") {
req.length = length;
return req;
}
const stream = createDecompressionStream(encoding, debug);
req.pipe(stream);
return stream;
}
__name(contentstream, "contentstream");
function createDecompressionStream(encoding, debug) {
switch (encoding) {
case "deflate":
debug("inflate body");
return zlib.createInflate();
case "gzip":
debug("gunzip body");
return zlib.createGunzip();
case "br":
debug("brotli decompress body");
return zlib.createBrotliDecompress();
default:
throw createError(415, 'unsupported content encoding "' + encoding + '"', {
encoding,
type: "encoding.unsupported"
});
}
}
__name(createDecompressionStream, "createDecompressionStream");
function dump(req, callback) {
if (onFinished.isFinished(req)) {
callback(null);
} else {
onFinished(req, callback);
req.resume();
}
}
__name(dump, "dump");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/json.js
var require_json = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/json.js"(exports, module) {
"use strict";
var debug = require_src()("body-parser:json");
var read = require_read();
var { normalizeOptions } = require_utils();
module.exports = json;
var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/;
var JSON_SYNTAX_CHAR = "#";
var JSON_SYNTAX_REGEXP = /#+/g;
function json(options) {
const normalizedOptions = normalizeOptions(options, "application/json");
const parse = createJsonParser(options);
const readOptions = {
...normalizedOptions,
// assert charset per RFC 7159 sec 8.1
isValidCharset: /* @__PURE__ */ __name((charset) => charset.slice(0, 4) === "utf-", "isValidCharset")
};
return /* @__PURE__ */ __name(function jsonParser(req, res, next) {
read(req, res, next, parse, debug, readOptions);
}, "jsonParser");
}
__name(json, "json");
function createJsonParser(options) {
const reviver = options?.reviver;
const strict = options?.strict !== false;
if (strict) {
return /* @__PURE__ */ __name(function parse(body) {
if (body.length === 0) {
return {};
}
const first = firstchar(body);
if (first !== "{" && first !== "[") {
debug("strict violation");
throw createStrictSyntaxError(body, first);
}
try {
debug("parse json");
return JSON.parse(body, reviver);
} catch (e) {
throw normalizeJsonSyntaxError(e, {
message: e.message,
stack: e.stack
});
}
}, "parse");
}
return /* @__PURE__ */ __name(function parse(body) {
if (body.length === 0) {
return {};
}
try {
debug("parse json");
return JSON.parse(body, reviver);
} catch (e) {
throw normalizeJsonSyntaxError(e, {
message: e.message,
stack: e.stack
});
}
}, "parse");
}
__name(createJsonParser, "createJsonParser");
function createStrictSyntaxError(str, char) {
const index = str.indexOf(char);
let partial = "";
if (index !== -1) {
partial = str.substring(0, index) + JSON_SYNTAX_CHAR.repeat(str.length - index);
}
try {
JSON.parse(partial);
throw new SyntaxError("strict violation");
} catch (e) {
return normalizeJsonSyntaxError(e, {
message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) {
return str.substring(index, index + placeholder.length);
}),
stack: e.stack
});
}
}
__name(createStrictSyntaxError, "createStrictSyntaxError");
function firstchar(str) {
const match = FIRST_CHAR_REGEXP.exec(str);
return match ? match[1] : void 0;
}
__name(firstchar, "firstchar");
function normalizeJsonSyntaxError(error, obj) {
const keys = Object.getOwnPropertyNames(error);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (key !== "stack" && key !== "message") {
delete error[key];
}
}
error.stack = obj.stack.replace(error.message, obj.message);
error.message = obj.message;
return error;
}
__name(normalizeJsonSyntaxError, "normalizeJsonSyntaxError");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/raw.js
var require_raw = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/raw.js"(exports, module) {
"use strict";
var debug = require_src()("body-parser:raw");
var read = require_read();
var { normalizeOptions, passthrough } = require_utils();
module.exports = raw;
function raw(options) {
const normalizedOptions = normalizeOptions(options, "application/octet-stream");
const readOptions = {
...normalizedOptions,
// Skip charset validation and parse the body as is
skipCharset: true
};
return /* @__PURE__ */ __name(function rawParser(req, res, next) {
read(req, res, next, passthrough, debug, readOptions);
}, "rawParser");
}
__name(raw, "raw");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/text.js
var require_text = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/text.js"(exports, module) {
"use strict";
var debug = require_src()("body-parser:text");
var read = require_read();
var { normalizeOptions, passthrough } = require_utils();
module.exports = text;
function text(options) {
const normalizedOptions = normalizeOptions(options, "text/plain");
return /* @__PURE__ */ __name(function textParser(req, res, next) {
read(req, res, next, passthrough, debug, normalizedOptions);
}, "textParser");
}
__name(text, "text");
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js
var require_type = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js"(exports, module) {
"use strict";
module.exports = TypeError;
}
});
// ../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/util.inspect.js
var require_util_inspect = __commonJS({
"../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/util.inspect.js"(exports, module) {
module.exports = __require("util").inspect;
}
});
// ../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js
var require_object_inspect = __commonJS({
"../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js"(exports, module) {
var hasMap = typeof Map === "function" && Map.prototype;
var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null;
var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null;
var mapForEach = hasMap && Map.prototype.forEach;
var hasSet = typeof Set === "function" && Set.prototype;
var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null;
var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null;
var setForEach = hasSet && Set.prototype.forEach;
var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype;
var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype;
var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype;
var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
var booleanValueOf = Boolean.prototype.valueOf;
var objectToString = Object.prototype.toString;
var functionToString = Function.prototype.toString;
var $match = String.prototype.match;
var $slice = String.prototype.slice;
var $replace = String.prototype.replace;
var $toUpperCase = String.prototype.toUpperCase;
var $toLowerCase = String.prototype.toLowerCase;
var $test = RegExp.prototype.test;
var $concat = Array.prototype.concat;
var $join = Array.prototype.join;
var $arrSlice = Array.prototype.slice;
var $floor = Math.floor;
var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null;
var gOPS = Object.getOwnPropertySymbols;
var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null;
var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object";
var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null;
var isEnumerable = Object.prototype.propertyIsEnumerable;
var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) {
return O.__proto__;
} : null);
function addNumericSeparator(num, str) {
if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) {
return str;
}
var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
if (typeof num === "number") {
var int = num < 0 ? -$floor(-num) : $floor(num);
if (int !== num) {
var intStr = String(int);
var dec = $slice.call(str, intStr.length + 1);
return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, "");
}
}
return $replace.call(str, sepRegex, "$&_");
}
__name(addNumericSeparator, "addNumericSeparator");
var utilInspect = require_util_inspect();
var inspectCustom = utilInspect.custom;
var inspectSymbol = isSymbol2(inspectCustom) ? inspectCustom : null;
var quotes = {
__proto__: null,
"double": '"',
single: "'"
};
var quoteREs = {
__proto__: null,
"double": /(["\\])/g,
single: /(['\\])/g
};
module.exports = /* @__PURE__ */ __name(function inspect_(obj, options, depth, seen) {
var opts = options || {};
if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) {
throw new TypeError('option "quoteStyle" must be "single" or "double"');
}
if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {
throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
}
var customInspect = has(opts, "customInspect") ? opts.customInspect : true;
if (typeof customInspect !== "boolean" && customInspect !== "symbol") {
throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
}
if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {
throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
}
if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") {
throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
}
var numericSeparator = opts.numericSeparator;
if (typeof obj === "undefined") {
return "undefined";
}
if (obj === null) {
return "null";
}
if (typeof obj === "boolean") {
return obj ? "true" : "false";
}
if (typeof obj === "string") {
return inspectString(obj, opts);
}
if (typeof obj === "number") {
if (obj === 0) {
return Infinity / obj > 0 ? "0" : "-0";
}
var str = String(obj);
return numericSeparator ? addNumericSeparator(obj, str) : str;
}
if (typeof obj === "bigint") {
var bigIntStr = String(obj) + "n";
return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
}
var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth;
if (typeof depth === "undefined") {
depth = 0;
}
if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") {
return isArray(obj) ? "[Array]" : "[Object]";
}
var indent = getIndent(opts, depth);
if (typeof seen === "undefined") {
seen = [];
} else if (indexOf(seen, obj) >= 0) {
return "[Circular]";
}
function inspect(value, from2, noIndent) {
if (from2) {
seen = $arrSlice.call(seen);
seen.push(from2);
}
if (noIndent) {
var newOpts = {
depth: opts.depth
};
if (has(opts, "quoteStyle")) {
newOpts.quoteStyle = opts.quoteStyle;
}
return inspect_(value, newOpts, depth + 1, seen);
}
return inspect_(value, opts, depth + 1, seen);
}
__name(inspect, "inspect");
if (typeof obj === "function" && !isRegExp(obj)) {
var name = nameOf(obj);
var keys = arrObjKeys(obj, inspect);
return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : "");
}
if (isSymbol2(obj)) {
var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj);
return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString;
}
if (isElement(obj)) {
var s = "<" + $toLowerCase.call(String(obj.nodeName));
var attrs = obj.attributes || [];
for (var i = 0; i < attrs.length; i++) {
s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts);
}
s += ">";
if (obj.childNodes && obj.childNodes.length) {
s += "...";
}
s += "</" + $toLowerCase.call(String(obj.nodeName)) + ">";
return s;
}
if (isArray(obj)) {
if (obj.length === 0) {
return "[]";
}
var xs = arrObjKeys(obj, inspect);
if (indent && !singleLineValues(xs)) {
return "[" + indentedJoin(xs, indent) + "]";
}
return "[ " + $join.call(xs, ", ") + " ]";
}
if (isError(obj)) {
var parts = arrObjKeys(obj, inspect);
if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) {
return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }";
}
if (parts.length === 0) {
return "[" + String(obj) + "]";
}
return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }";
}
if (typeof obj === "object" && customInspect) {
if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) {
return utilInspect(obj, { depth: maxDepth - depth });
} else if (customInspect !== "symbol" && typeof obj.inspect === "function") {
return obj.inspect();
}
}
if (isMap(obj)) {
var mapParts = [];
if (mapForEach) {
mapForEach.call(obj, function(value, key) {
mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj));
});
}
return collectionOf("Map", mapSize.call(obj), mapParts, indent);
}
if (isSet(obj)) {
var setParts = [];
if (setForEach) {
setForEach.call(obj, function(value) {
setParts.push(inspect(value, obj));
});
}
return collectionOf("Set", setSize.call(obj), setParts, indent);
}
if (isWeakMap(obj)) {
return weakCollectionOf("WeakMap");
}
if (isWeakSet(obj)) {
return weakCollectionOf("WeakSet");
}
if (isWeakRef(obj)) {
return weakCollectionOf("WeakRef");
}
if (isNumber(obj)) {
return markBoxed(inspect(Number(obj)));
}
if (isBigInt(obj)) {
return markBoxed(inspect(bigIntValueOf.call(obj)));
}
if (isBoolean(obj)) {
return markBoxed(booleanValueOf.call(obj));
}
if (isString2(obj)) {
return markBoxed(inspect(String(obj)));
}
if (typeof window !== "undefined" && obj === window) {
return "{ [object Window] }";
}
if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) {
return "{ [object globalThis] }";
}
if (!isDate(obj) && !isRegExp(obj)) {
var ys = arrObjKeys(obj, inspect);
var isPlainObject2 = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
var protoTag = obj instanceof Object ? "" : "null prototype";
var stringTag = !isPlainObject2 && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
var constructorTag = isPlainObject2 || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : "");
if (ys.length === 0) {
return tag + "{}";
}
if (indent) {
return tag + "{" + indentedJoin(ys, indent) + "}";
}
return tag + "{ " + $join.call(ys, ", ") + " }";
}
return String(obj);
}, "inspect_");
function wrapQuotes(s, defaultStyle, opts) {
var style = opts.quoteStyle || defaultStyle;
var quoteChar = quotes[style];
return quoteChar + s + quoteChar;
}
__name(wrapQuotes, "wrapQuotes");
function quote(s) {
return $replace.call(String(s), /"/g, "&quot;");
}
__name(quote, "quote");
function canTrustToString(obj) {
return !toStringTag || !(typeof obj === "object" && (toStringTag in obj || typeof obj[toStringTag] !== "undefined"));
}
__name(canTrustToString, "canTrustToString");
function isArray(obj) {
return toStr(obj) === "[object Array]" && canTrustToString(obj);
}
__name(isArray, "isArray");
function isDate(obj) {
return toStr(obj) === "[object Date]" && canTrustToString(obj);
}
__name(isDate, "isDate");
function isRegExp(obj) {
return toStr(obj) === "[object RegExp]" && canTrustToString(obj);
}
__name(isRegExp, "isRegExp");
function isError(obj) {
return toStr(obj) === "[object Error]" && canTrustToString(obj);
}
__name(isError, "isError");
function isString2(obj) {
return toStr(obj) === "[object String]" && canTrustToString(obj);
}
__name(isString2, "isString");
function isNumber(obj) {
return toStr(obj) === "[object Number]" && canTrustToString(obj);
}
__name(isNumber, "isNumber");
function isBoolean(obj) {
return toStr(obj) === "[object Boolean]" && canTrustToString(obj);
}
__name(isBoolean, "isBoolean");
function isSymbol2(obj) {
if (hasShammedSymbols) {
return obj && typeof obj === "object" && obj instanceof Symbol;
}
if (typeof obj === "symbol") {
return true;
}
if (!obj || typeof obj !== "object" || !symToString) {
return false;
}
try {
symToString.call(obj);
return true;
} catch (e) {
}
return false;
}
__name(isSymbol2, "isSymbol");
function isBigInt(obj) {
if (!obj || typeof obj !== "object" || !bigIntValueOf) {
return false;
}
try {
bigIntValueOf.call(obj);
return true;
} catch (e) {
}
return false;
}
__name(isBigInt, "isBigInt");
var hasOwn = Object.prototype.hasOwnProperty || function(key) {
return key in this;
};
function has(obj, key) {
return hasOwn.call(obj, key);
}
__name(has, "has");
function toStr(obj) {
return objectToString.call(obj);
}
__name(toStr, "toStr");
function nameOf(f) {
if (f.name) {
return f.name;
}
var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
if (m) {
return m[1];
}
return null;
}
__name(nameOf, "nameOf");
function indexOf(xs, x) {
if (xs.indexOf) {
return xs.indexOf(x);
}
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) {
return i;
}
}
return -1;
}
__name(indexOf, "indexOf");
function isMap(x) {
if (!mapSize || !x || typeof x !== "object") {
return false;
}
try {
mapSize.call(x);
try {
setSize.call(x);
} catch (s) {
return true;
}
return x instanceof Map;
} catch (e) {
}
return false;
}
__name(isMap, "isMap");
function isWeakMap(x) {
if (!weakMapHas || !x || typeof x !== "object") {
return false;
}
try {
weakMapHas.call(x, weakMapHas);
try {
weakSetHas.call(x, weakSetHas);
} catch (s) {
return true;
}
return x instanceof WeakMap;
} catch (e) {
}
return false;
}
__name(isWeakMap, "isWeakMap");
function isWeakRef(x) {
if (!weakRefDeref || !x || typeof x !== "object") {
return false;
}
try {
weakRefDeref.call(x);
return true;
} catch (e) {
}
return false;
}
__name(isWeakRef, "isWeakRef");
function isSet(x) {
if (!setSize || !x || typeof x !== "object") {
return false;
}
try {
setSize.call(x);
try {
mapSize.call(x);
} catch (m) {
return true;
}
return x instanceof Set;
} catch (e) {
}
return false;
}
__name(isSet, "isSet");
function isWeakSet(x) {
if (!weakSetHas || !x || typeof x !== "object") {
return false;
}
try {
weakSetHas.call(x, weakSetHas);
try {
weakMapHas.call(x, weakMapHas);
} catch (s) {
return true;
}
return x instanceof WeakSet;
} catch (e) {
}
return false;
}
__name(isWeakSet, "isWeakSet");
function isElement(x) {
if (!x || typeof x !== "object") {
return false;
}
if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) {
return true;
}
return typeof x.nodeName === "string" && typeof x.getAttribute === "function";
}
__name(isElement, "isElement");
function inspectString(str, opts) {
if (str.length > opts.maxStringLength) {
var remaining = str.length - opts.maxStringLength;
var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : "");
return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
}
var quoteRE = quoteREs[opts.quoteStyle || "single"];
quoteRE.lastIndex = 0;
var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte);
return wrapQuotes(s, "single", opts);
}
__name(inspectString, "inspectString");
function lowbyte(c) {
var n = c.charCodeAt(0);
var x = {
8: "b",
9: "t",
10: "n",
12: "f",
13: "r"
}[n];
if (x) {
return "\\" + x;
}
return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16));
}
__name(lowbyte, "lowbyte");
function markBoxed(str) {
return "Object(" + str + ")";
}
__name(markBoxed, "markBoxed");
function weakCollectionOf(type) {
return type + " { ? }";
}
__name(weakCollectionOf, "weakCollectionOf");
function collectionOf(type, size, entries, indent) {
var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", ");
return type + " (" + size + ") {" + joinedEntries + "}";
}
__name(collectionOf, "collectionOf");
function singleLineValues(xs) {
for (var i = 0; i < xs.length; i++) {
if (indexOf(xs[i], "\n") >= 0) {
return false;
}
}
return true;
}
__name(singleLineValues, "singleLineValues");
function getIndent(opts, depth) {
var baseIndent;
if (opts.indent === " ") {
baseIndent = " ";
} else if (typeof opts.indent === "number" && opts.indent > 0) {
baseIndent = $join.call(Array(opts.indent + 1), " ");
} else {
return null;
}
return {
base: baseIndent,
prev: $join.call(Array(depth + 1), baseIndent)
};
}
__name(getIndent, "getIndent");
function indentedJoin(xs, indent) {
if (xs.length === 0) {
return "";
}
var lineJoiner = "\n" + indent.prev + indent.base;
return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev;
}
__name(indentedJoin, "indentedJoin");
function arrObjKeys(obj, inspect) {
var isArr = isArray(obj);
var xs = [];
if (isArr) {
xs.length = obj.length;
for (var i = 0; i < obj.length; i++) {
xs[i] = has(obj, i) ? inspect(obj[i], obj) : "";
}
}
var syms = typeof gOPS === "function" ? gOPS(obj) : [];
var symMap;
if (hasShammedSymbols) {
symMap = {};
for (var k = 0; k < syms.length; k++) {
symMap["$" + syms[k]] = syms[k];
}
}
for (var key in obj) {
if (!has(obj, key)) {
continue;
}
if (isArr && String(Number(key)) === key && key < obj.length) {
continue;
}
if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) {
continue;
} else if ($test.call(/[^\w$]/, key)) {
xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj));
} else {
xs.push(key + ": " + inspect(obj[key], obj));
}
}
if (typeof gOPS === "function") {
for (var j = 0; j < syms.length; j++) {
if (isEnumerable.call(obj, syms[j])) {
xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj));
}
}
}
return xs;
}
__name(arrObjKeys, "arrObjKeys");
}
});
// ../../node_modules/.pnpm/side-channel-list@1.0.1/node_modules/side-channel-list/index.js
var require_side_channel_list = __commonJS({
"../../node_modules/.pnpm/side-channel-list@1.0.1/node_modules/side-channel-list/index.js"(exports, module) {
"use strict";
var inspect = require_object_inspect();
var $TypeError = require_type();
var listGetNode = /* @__PURE__ */ __name(function(list, key, isDelete) {
var prev = list;
var curr;
for (; (curr = prev.next) != null; prev = curr) {
if (curr.key === key) {
prev.next = curr.next;
if (!isDelete) {
curr.next = /** @type {NonNullable<typeof list.next>} */
list.next;
list.next = curr;
}
return curr;
}
}
}, "listGetNode");
var listGet = /* @__PURE__ */ __name(function(objects, key) {
if (!objects) {
return void 0;
}
var node = listGetNode(objects, key);
return node && node.value;
}, "listGet");
var listSet = /* @__PURE__ */ __name(function(objects, key, value) {
var node = listGetNode(objects, key);
if (node) {
node.value = value;
} else {
objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */
{
// eslint-disable-line no-param-reassign, no-extra-parens
key,
next: objects.next,
value
};
}
}, "listSet");
var listHas = /* @__PURE__ */ __name(function(objects, key) {
if (!objects) {
return false;
}
return !!listGetNode(objects, key);
}, "listHas");
var listDelete = /* @__PURE__ */ __name(function(objects, key) {
if (objects) {
return listGetNode(objects, key, true);
}
}, "listDelete");
module.exports = /* @__PURE__ */ __name(function getSideChannelList() {
var $o;
var channel = {
assert: /* @__PURE__ */ __name(function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
}, "assert"),
"delete": /* @__PURE__ */ __name(function(key) {
var deletedNode = listDelete($o, key);
if (deletedNode && $o && !$o.next) {
$o = void 0;
}
return !!deletedNode;
}, "delete"),
get: /* @__PURE__ */ __name(function(key) {
return listGet($o, key);
}, "get"),
has: /* @__PURE__ */ __name(function(key) {
return listHas($o, key);
}, "has"),
set: /* @__PURE__ */ __name(function(key, value) {
if (!$o) {
$o = {
next: void 0
};
}
listSet(
/** @type {NonNullable<typeof $o>} */
$o,
key,
value
);
}, "set")
};
return channel;
}, "getSideChannelList");
}
});
// ../../node_modules/.pnpm/es-object-atoms@1.1.2/node_modules/es-object-atoms/index.js
var require_es_object_atoms = __commonJS({
"../../node_modules/.pnpm/es-object-atoms@1.1.2/node_modules/es-object-atoms/index.js"(exports, module) {
"use strict";
module.exports = Object;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js
var require_es_errors = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js"(exports, module) {
"use strict";
module.exports = Error;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js
var require_eval = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js"(exports, module) {
"use strict";
module.exports = EvalError;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js
var require_range = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js"(exports, module) {
"use strict";
module.exports = RangeError;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js
var require_ref = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js"(exports, module) {
"use strict";
module.exports = ReferenceError;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js
var require_syntax = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js"(exports, module) {
"use strict";
module.exports = SyntaxError;
}
});
// ../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js
var require_uri = __commonJS({
"../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js"(exports, module) {
"use strict";
module.exports = URIError;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js
var require_abs = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js"(exports, module) {
"use strict";
module.exports = Math.abs;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js
var require_floor = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js"(exports, module) {
"use strict";
module.exports = Math.floor;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js
var require_max2 = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js"(exports, module) {
"use strict";
module.exports = Math.max;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js
var require_min2 = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js"(exports, module) {
"use strict";
module.exports = Math.min;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js
var require_pow = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js"(exports, module) {
"use strict";
module.exports = Math.pow;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js
var require_round = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js"(exports, module) {
"use strict";
module.exports = Math.round;
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js
var require_isNaN = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js"(exports, module) {
"use strict";
module.exports = Number.isNaN || /* @__PURE__ */ __name(function isNaN2(a) {
return a !== a;
}, "isNaN");
}
});
// ../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js
var require_sign = __commonJS({
"../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js"(exports, module) {
"use strict";
var $isNaN = require_isNaN();
module.exports = /* @__PURE__ */ __name(function sign(number) {
if ($isNaN(number) || number === 0) {
return number;
}
return number < 0 ? -1 : 1;
}, "sign");
}
});
// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js
var require_gOPD = __commonJS({
"../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js"(exports, module) {
"use strict";
module.exports = Object.getOwnPropertyDescriptor;
}
});
// ../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js
var require_gopd = __commonJS({
"../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js"(exports, module) {
"use strict";
var $gOPD = require_gOPD();
if ($gOPD) {
try {
$gOPD([], "length");
} catch (e) {
$gOPD = null;
}
}
module.exports = $gOPD;
}
});
// ../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js
var require_es_define_property = __commonJS({
"../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js"(exports, module) {
"use strict";
var $defineProperty = Object.defineProperty || false;
if ($defineProperty) {
try {
$defineProperty({}, "a", { value: 1 });
} catch (e) {
$defineProperty = false;
}
}
module.exports = $defineProperty;
}
});
// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js
var require_shams = __commonJS({
"../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js"(exports, module) {
"use strict";
module.exports = /* @__PURE__ */ __name(function hasSymbols() {
if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
return false;
}
if (typeof Symbol.iterator === "symbol") {
return true;
}
var obj = {};
var sym = /* @__PURE__ */ Symbol("test");
var symObj = Object(sym);
if (typeof sym === "string") {
return false;
}
if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
return false;
}
if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
return false;
}
var symVal = 42;
obj[sym] = symVal;
for (var _ in obj) {
return false;
}
if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
return false;
}
if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
return false;
}
var syms = Object.getOwnPropertySymbols(obj);
if (syms.length !== 1 || syms[0] !== sym) {
return false;
}
if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
return false;
}
if (typeof Object.getOwnPropertyDescriptor === "function") {
var descriptor = (
/** @type {PropertyDescriptor} */
Object.getOwnPropertyDescriptor(obj, sym)
);
if (descriptor.value !== symVal || descriptor.enumerable !== true) {
return false;
}
}
return true;
}, "hasSymbols");
}
});
// ../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js
var require_has_symbols = __commonJS({
"../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js"(exports, module) {
"use strict";
var origSymbol = typeof Symbol !== "undefined" && Symbol;
var hasSymbolSham = require_shams();
module.exports = /* @__PURE__ */ __name(function hasNativeSymbols() {
if (typeof origSymbol !== "function") {
return false;
}
if (typeof Symbol !== "function") {
return false;
}
if (typeof origSymbol("foo") !== "symbol") {
return false;
}
if (typeof /* @__PURE__ */ Symbol("bar") !== "symbol") {
return false;
}
return hasSymbolSham();
}, "hasNativeSymbols");
}
});
// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js
var require_Reflect_getPrototypeOf = __commonJS({
"../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js"(exports, module) {
"use strict";
module.exports = typeof Reflect !== "undefined" && Reflect.getPrototypeOf || null;
}
});
// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js
var require_Object_getPrototypeOf = __commonJS({
"../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js"(exports, module) {
"use strict";
var $Object = require_es_object_atoms();
module.exports = $Object.getPrototypeOf || null;
}
});
// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js
var require_implementation = __commonJS({
"../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports, module) {
"use strict";
var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
var toStr = Object.prototype.toString;
var max = Math.max;
var funcType = "[object Function]";
var concatty = /* @__PURE__ */ __name(function concatty2(a, b) {
var arr = [];
for (var i = 0; i < a.length; i += 1) {
arr[i] = a[i];
}
for (var j = 0; j < b.length; j += 1) {
arr[j + a.length] = b[j];
}
return arr;
}, "concatty");
var slicy = /* @__PURE__ */ __name(function slicy2(arrLike, offset) {
var arr = [];
for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
arr[j] = arrLike[i];
}
return arr;
}, "slicy");
var joiny = /* @__PURE__ */ __name(function(arr, joiner) {
var str = "";
for (var i = 0; i < arr.length; i += 1) {
str += arr[i];
if (i + 1 < arr.length) {
str += joiner;
}
}
return str;
}, "joiny");
module.exports = /* @__PURE__ */ __name(function bind(that) {
var target = this;
if (typeof target !== "function" || toStr.apply(target) !== funcType) {
throw new TypeError(ERROR_MESSAGE + target);
}
var args = slicy(arguments, 1);
var bound;
var binder = /* @__PURE__ */ __name(function() {
if (this instanceof bound) {
var result = target.apply(
this,
concatty(args, arguments)
);
if (Object(result) === result) {
return result;
}
return this;
}
return target.apply(
that,
concatty(args, arguments)
);
}, "binder");
var boundLength = max(0, target.length - args.length);
var boundArgs = [];
for (var i = 0; i < boundLength; i++) {
boundArgs[i] = "$" + i;
}
bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
if (target.prototype) {
var Empty = /* @__PURE__ */ __name(function Empty2() {
}, "Empty");
Empty.prototype = target.prototype;
bound.prototype = new Empty();
Empty.prototype = null;
}
return bound;
}, "bind");
}
});
// ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js
var require_function_bind = __commonJS({
"../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports, module) {
"use strict";
var implementation = require_implementation();
module.exports = Function.prototype.bind || implementation;
}
});
// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js
var require_functionCall = __commonJS({
"../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js"(exports, module) {
"use strict";
module.exports = Function.prototype.call;
}
});
// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js
var require_functionApply = __commonJS({
"../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js"(exports, module) {
"use strict";
module.exports = Function.prototype.apply;
}
});
// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js
var require_reflectApply = __commonJS({
"../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js"(exports, module) {
"use strict";
module.exports = typeof Reflect !== "undefined" && Reflect && Reflect.apply;
}
});
// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js
var require_actualApply = __commonJS({
"../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js"(exports, module) {
"use strict";
var bind = require_function_bind();
var $apply = require_functionApply();
var $call = require_functionCall();
var $reflectApply = require_reflectApply();
module.exports = $reflectApply || bind.call($call, $apply);
}
});
// ../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js
var require_call_bind_apply_helpers = __commonJS({
"../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js"(exports, module) {
"use strict";
var bind = require_function_bind();
var $TypeError = require_type();
var $call = require_functionCall();
var $actualApply = require_actualApply();
module.exports = /* @__PURE__ */ __name(function callBindBasic(args) {
if (args.length < 1 || typeof args[0] !== "function") {
throw new $TypeError("a function is required");
}
return $actualApply(bind, $call, args);
}, "callBindBasic");
}
});
// ../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js
var require_get = __commonJS({
"../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js"(exports, module) {
"use strict";
var callBind = require_call_bind_apply_helpers();
var gOPD = require_gopd();
var hasProtoAccessor;
try {
hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */
[].__proto__ === Array.prototype;
} catch (e) {
if (!e || typeof e !== "object" || !("code" in e) || e.code !== "ERR_PROTO_ACCESS") {
throw e;
}
}
var desc = !!hasProtoAccessor && gOPD && gOPD(
Object.prototype,
/** @type {keyof typeof Object.prototype} */
"__proto__"
);
var $Object = Object;
var $getPrototypeOf = $Object.getPrototypeOf;
module.exports = desc && typeof desc.get === "function" ? callBind([desc.get]) : typeof $getPrototypeOf === "function" ? (
/** @type {import('./get')} */
/* @__PURE__ */ __name(function getDunder(value) {
return $getPrototypeOf(value == null ? value : $Object(value));
}, "getDunder")
) : false;
}
});
// ../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js
var require_get_proto = __commonJS({
"../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js"(exports, module) {
"use strict";
var reflectGetProto = require_Reflect_getPrototypeOf();
var originalGetProto = require_Object_getPrototypeOf();
var getDunderProto = require_get();
module.exports = reflectGetProto ? /* @__PURE__ */ __name(function getProto(O) {
return reflectGetProto(O);
}, "getProto") : originalGetProto ? /* @__PURE__ */ __name(function getProto(O) {
if (!O || typeof O !== "object" && typeof O !== "function") {
throw new TypeError("getProto: not an object");
}
return originalGetProto(O);
}, "getProto") : getDunderProto ? /* @__PURE__ */ __name(function getProto(O) {
return getDunderProto(O);
}, "getProto") : null;
}
});
// ../../node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js
var require_hasown = __commonJS({
"../../node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js"(exports, module) {
"use strict";
var call = Function.prototype.call;
var $hasOwn = Object.prototype.hasOwnProperty;
var bind = require_function_bind();
module.exports = bind.call(call, $hasOwn);
}
});
// ../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js
var require_get_intrinsic = __commonJS({
"../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js"(exports, module) {
"use strict";
var undefined2;
var $Object = require_es_object_atoms();
var $Error = require_es_errors();
var $EvalError = require_eval();
var $RangeError = require_range();
var $ReferenceError = require_ref();
var $SyntaxError = require_syntax();
var $TypeError = require_type();
var $URIError = require_uri();
var abs = require_abs();
var floor = require_floor();
var max = require_max2();
var min = require_min2();
var pow = require_pow();
var round = require_round();
var sign = require_sign();
var $Function = Function;
var getEvalledConstructor = /* @__PURE__ */ __name(function(expressionSyntax) {
try {
return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
} catch (e) {
}
}, "getEvalledConstructor");
var $gOPD = require_gopd();
var $defineProperty = require_es_define_property();
var throwTypeError = /* @__PURE__ */ __name(function() {
throw new $TypeError();
}, "throwTypeError");
var ThrowTypeError = $gOPD ? (function() {
try {
arguments.callee;
return throwTypeError;
} catch (calleeThrows) {
try {
return $gOPD(arguments, "callee").get;
} catch (gOPDthrows) {
return throwTypeError;
}
}
})() : throwTypeError;
var hasSymbols = require_has_symbols()();
var getProto = require_get_proto();
var $ObjectGPO = require_Object_getPrototypeOf();
var $ReflectGPO = require_Reflect_getPrototypeOf();
var $apply = require_functionApply();
var $call = require_functionCall();
var needsEval = {};
var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
var INTRINSICS = {
__proto__: null,
"%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
"%Array%": Array,
"%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
"%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
"%AsyncFromSyncIteratorPrototype%": undefined2,
"%AsyncFunction%": needsEval,
"%AsyncGenerator%": needsEval,
"%AsyncGeneratorFunction%": needsEval,
"%AsyncIteratorPrototype%": needsEval,
"%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
"%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
"%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
"%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
"%Boolean%": Boolean,
"%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
"%Date%": Date,
"%decodeURI%": decodeURI,
"%decodeURIComponent%": decodeURIComponent,
"%encodeURI%": encodeURI,
"%encodeURIComponent%": encodeURIComponent,
"%Error%": $Error,
"%eval%": eval,
// eslint-disable-line no-eval
"%EvalError%": $EvalError,
"%Float16Array%": typeof Float16Array === "undefined" ? undefined2 : Float16Array,
"%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
"%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
"%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
"%Function%": $Function,
"%GeneratorFunction%": needsEval,
"%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
"%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
"%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
"%isFinite%": isFinite,
"%isNaN%": isNaN,
"%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
"%JSON%": typeof JSON === "object" ? JSON : undefined2,
"%Map%": typeof Map === "undefined" ? undefined2 : Map,
"%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
"%Math%": Math,
"%Number%": Number,
"%Object%": $Object,
"%Object.getOwnPropertyDescriptor%": $gOPD,
"%parseFloat%": parseFloat,
"%parseInt%": parseInt,
"%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
"%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
"%RangeError%": $RangeError,
"%ReferenceError%": $ReferenceError,
"%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
"%RegExp%": RegExp,
"%Set%": typeof Set === "undefined" ? undefined2 : Set,
"%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
"%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
"%String%": String,
"%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
"%Symbol%": hasSymbols ? Symbol : undefined2,
"%SyntaxError%": $SyntaxError,
"%ThrowTypeError%": ThrowTypeError,
"%TypedArray%": TypedArray,
"%TypeError%": $TypeError,
"%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
"%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
"%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
"%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
"%URIError%": $URIError,
"%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
"%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
"%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet,
"%Function.prototype.call%": $call,
"%Function.prototype.apply%": $apply,
"%Object.defineProperty%": $defineProperty,
"%Object.getPrototypeOf%": $ObjectGPO,
"%Math.abs%": abs,
"%Math.floor%": floor,
"%Math.max%": max,
"%Math.min%": min,
"%Math.pow%": pow,
"%Math.round%": round,
"%Math.sign%": sign,
"%Reflect.getPrototypeOf%": $ReflectGPO
};
if (getProto) {
try {
null.error;
} catch (e) {
errorProto = getProto(getProto(e));
INTRINSICS["%Error.prototype%"] = errorProto;
}
}
var errorProto;
var doEval = /* @__PURE__ */ __name(function doEval2(name) {
var value;
if (name === "%AsyncFunction%") {
value = getEvalledConstructor("async function () {}");
} else if (name === "%GeneratorFunction%") {
value = getEvalledConstructor("function* () {}");
} else if (name === "%AsyncGeneratorFunction%") {
value = getEvalledConstructor("async function* () {}");
} else if (name === "%AsyncGenerator%") {
var fn = doEval2("%AsyncGeneratorFunction%");
if (fn) {
value = fn.prototype;
}
} else if (name === "%AsyncIteratorPrototype%") {
var gen = doEval2("%AsyncGenerator%");
if (gen && getProto) {
value = getProto(gen.prototype);
}
}
INTRINSICS[name] = value;
return value;
}, "doEval");
var LEGACY_ALIASES = {
__proto__: null,
"%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
"%ArrayPrototype%": ["Array", "prototype"],
"%ArrayProto_entries%": ["Array", "prototype", "entries"],
"%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
"%ArrayProto_keys%": ["Array", "prototype", "keys"],
"%ArrayProto_values%": ["Array", "prototype", "values"],
"%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
"%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
"%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
"%BooleanPrototype%": ["Boolean", "prototype"],
"%DataViewPrototype%": ["DataView", "prototype"],
"%DatePrototype%": ["Date", "prototype"],
"%ErrorPrototype%": ["Error", "prototype"],
"%EvalErrorPrototype%": ["EvalError", "prototype"],
"%Float32ArrayPrototype%": ["Float32Array", "prototype"],
"%Float64ArrayPrototype%": ["Float64Array", "prototype"],
"%FunctionPrototype%": ["Function", "prototype"],
"%Generator%": ["GeneratorFunction", "prototype"],
"%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
"%Int8ArrayPrototype%": ["Int8Array", "prototype"],
"%Int16ArrayPrototype%": ["Int16Array", "prototype"],
"%Int32ArrayPrototype%": ["Int32Array", "prototype"],
"%JSONParse%": ["JSON", "parse"],
"%JSONStringify%": ["JSON", "stringify"],
"%MapPrototype%": ["Map", "prototype"],
"%NumberPrototype%": ["Number", "prototype"],
"%ObjectPrototype%": ["Object", "prototype"],
"%ObjProto_toString%": ["Object", "prototype", "toString"],
"%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
"%PromisePrototype%": ["Promise", "prototype"],
"%PromiseProto_then%": ["Promise", "prototype", "then"],
"%Promise_all%": ["Promise", "all"],
"%Promise_reject%": ["Promise", "reject"],
"%Promise_resolve%": ["Promise", "resolve"],
"%RangeErrorPrototype%": ["RangeError", "prototype"],
"%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
"%RegExpPrototype%": ["RegExp", "prototype"],
"%SetPrototype%": ["Set", "prototype"],
"%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
"%StringPrototype%": ["String", "prototype"],
"%SymbolPrototype%": ["Symbol", "prototype"],
"%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
"%TypedArrayPrototype%": ["TypedArray", "prototype"],
"%TypeErrorPrototype%": ["TypeError", "prototype"],
"%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
"%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
"%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
"%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
"%URIErrorPrototype%": ["URIError", "prototype"],
"%WeakMapPrototype%": ["WeakMap", "prototype"],
"%WeakSetPrototype%": ["WeakSet", "prototype"]
};
var bind = require_function_bind();
var hasOwn = require_hasown();
var $concat = bind.call($call, Array.prototype.concat);
var $spliceApply = bind.call($apply, Array.prototype.splice);
var $replace = bind.call($call, String.prototype.replace);
var $strSlice = bind.call($call, String.prototype.slice);
var $exec = bind.call($call, RegExp.prototype.exec);
var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
var reEscapeChar = /\\(\\)?/g;
var stringToPath = /* @__PURE__ */ __name(function stringToPath2(string) {
var first = $strSlice(string, 0, 1);
var last = $strSlice(string, -1);
if (first === "%" && last !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
} else if (last === "%" && first !== "%") {
throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
}
var result = [];
$replace(string, rePropName, function(match, number, quote, subString) {
result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
});
return result;
}, "stringToPath");
var getBaseIntrinsic = /* @__PURE__ */ __name(function getBaseIntrinsic2(name, allowMissing) {
var intrinsicName = name;
var alias;
if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
alias = LEGACY_ALIASES[intrinsicName];
intrinsicName = "%" + alias[0] + "%";
}
if (hasOwn(INTRINSICS, intrinsicName)) {
var value = INTRINSICS[intrinsicName];
if (value === needsEval) {
value = doEval(intrinsicName);
}
if (typeof value === "undefined" && !allowMissing) {
throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
}
return {
alias,
name: intrinsicName,
value
};
}
throw new $SyntaxError("intrinsic " + name + " does not exist!");
}, "getBaseIntrinsic");
module.exports = /* @__PURE__ */ __name(function GetIntrinsic(name, allowMissing) {
if (typeof name !== "string" || name.length === 0) {
throw new $TypeError("intrinsic name must be a non-empty string");
}
if (arguments.length > 1 && typeof allowMissing !== "boolean") {
throw new $TypeError('"allowMissing" argument must be a boolean');
}
if ($exec(/^%?[^%]*%?$/, name) === null) {
throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
}
var parts = stringToPath(name);
var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
var intrinsicRealName = intrinsic.name;
var value = intrinsic.value;
var skipFurtherCaching = false;
var alias = intrinsic.alias;
if (alias) {
intrinsicBaseName = alias[0];
$spliceApply(parts, $concat([0, 1], alias));
}
for (var i = 1, isOwn = true; i < parts.length; i += 1) {
var part = parts[i];
var first = $strSlice(part, 0, 1);
var last = $strSlice(part, -1);
if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) {
throw new $SyntaxError("property names with quotes must have matching quotes");
}
if (part === "constructor" || !isOwn) {
skipFurtherCaching = true;
}
intrinsicBaseName += "." + part;
intrinsicRealName = "%" + intrinsicBaseName + "%";
if (hasOwn(INTRINSICS, intrinsicRealName)) {
value = INTRINSICS[intrinsicRealName];
} else if (value != null) {
if (!(part in value)) {
if (!allowMissing) {
throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
}
return void undefined2;
}
if ($gOPD && i + 1 >= parts.length) {
var desc = $gOPD(value, part);
isOwn = !!desc;
if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
value = desc.get;
} else {
value = value[part];
}
} else {
isOwn = hasOwn(value, part);
value = value[part];
}
if (isOwn && !skipFurtherCaching) {
INTRINSICS[intrinsicRealName] = value;
}
}
}
return value;
}, "GetIntrinsic");
}
});
// ../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js
var require_call_bound = __commonJS({
"../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js"(exports, module) {
"use strict";
var GetIntrinsic = require_get_intrinsic();
var callBindBasic = require_call_bind_apply_helpers();
var $indexOf = callBindBasic([GetIntrinsic("%String.prototype.indexOf%")]);
module.exports = /* @__PURE__ */ __name(function callBoundIntrinsic(name, allowMissing) {
var intrinsic = (
/** @type {(this: unknown, ...args: unknown[]) => unknown} */
GetIntrinsic(name, !!allowMissing)
);
if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) {
return callBindBasic(
/** @type {const} */
[intrinsic]
);
}
return intrinsic;
}, "callBoundIntrinsic");
}
});
// ../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js
var require_side_channel_map = __commonJS({
"../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js"(exports, module) {
"use strict";
var GetIntrinsic = require_get_intrinsic();
var callBound = require_call_bound();
var inspect = require_object_inspect();
var $TypeError = require_type();
var $Map = GetIntrinsic("%Map%", true);
var $mapGet = callBound("Map.prototype.get", true);
var $mapSet = callBound("Map.prototype.set", true);
var $mapHas = callBound("Map.prototype.has", true);
var $mapDelete = callBound("Map.prototype.delete", true);
var $mapSize = callBound("Map.prototype.size", true);
module.exports = !!$Map && /** @type {Exclude<import('.'), false>} */
/* @__PURE__ */ __name(function getSideChannelMap() {
var $m;
var channel = {
assert: /* @__PURE__ */ __name(function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
}, "assert"),
"delete": /* @__PURE__ */ __name(function(key) {
if ($m) {
var result = $mapDelete($m, key);
if ($mapSize($m) === 0) {
$m = void 0;
}
return result;
}
return false;
}, "delete"),
get: /* @__PURE__ */ __name(function(key) {
if ($m) {
return $mapGet($m, key);
}
}, "get"),
has: /* @__PURE__ */ __name(function(key) {
if ($m) {
return $mapHas($m, key);
}
return false;
}, "has"),
set: /* @__PURE__ */ __name(function(key, value) {
if (!$m) {
$m = new $Map();
}
$mapSet($m, key, value);
}, "set")
};
return channel;
}, "getSideChannelMap");
}
});
// ../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js
var require_side_channel_weakmap = __commonJS({
"../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js"(exports, module) {
"use strict";
var GetIntrinsic = require_get_intrinsic();
var callBound = require_call_bound();
var inspect = require_object_inspect();
var getSideChannelMap = require_side_channel_map();
var $TypeError = require_type();
var $WeakMap = GetIntrinsic("%WeakMap%", true);
var $weakMapGet = callBound("WeakMap.prototype.get", true);
var $weakMapSet = callBound("WeakMap.prototype.set", true);
var $weakMapHas = callBound("WeakMap.prototype.has", true);
var $weakMapDelete = callBound("WeakMap.prototype.delete", true);
module.exports = $WeakMap ? (
/** @type {Exclude<import('.'), false>} */
/* @__PURE__ */ __name(function getSideChannelWeakMap() {
var $wm;
var $m;
var channel = {
assert: /* @__PURE__ */ __name(function(key) {
if (!channel.has(key)) {
throw new $TypeError("Side channel does not contain " + inspect(key));
}
}, "assert"),
"delete": /* @__PURE__ */ __name(function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapDelete($wm, key);
}
} else if (getSideChannelMap) {
if ($m) {
return $m["delete"](key);
}
}
return false;
}, "delete"),
get: /* @__PURE__ */ __name(function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapGet($wm, key);
}
}
return $m && $m.get(key);
}, "get"),
has: /* @__PURE__ */ __name(function(key) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if ($wm) {
return $weakMapHas($wm, key);
}
}
return !!$m && $m.has(key);
}, "has"),
set: /* @__PURE__ */ __name(function(key, value) {
if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
if (!$wm) {
$wm = new $WeakMap();
}
$weakMapSet($wm, key, value);
} else if (getSideChannelMap) {
if (!$m) {
$m = getSideChannelMap();
}
$m.set(key, value);
}
}, "set")
};
return channel;
}, "getSideChannelWeakMap")
) : getSideChannelMap;
}
});
// ../../node_modules/.pnpm/side-channel@1.1.1/node_modules/side-channel/index.js
var require_side_channel = __commonJS({
"../../node_modules/.pnpm/side-channel@1.1.1/node_modules/side-channel/index.js"(exports, module) {
"use strict";
var $TypeError = require_type();
var inspect = require_object_inspect();
var getSideChannelList = require_side_channel_list();
var getSideChannelMap = require_side_channel_map();
var getSideChannelWeakMap = require_side_channel_weakmap();
var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;
module.exports = /* @__PURE__ */ __name(function getSideChannel() {
var $channelData;
var channel = {
assert: /* @__PURE__ */ __name(function(key) {
if (!channel.has(key)) {
var keyDesc = key && Object(key) === key ? "the given object key" : inspect(key);
throw new $TypeError("Side channel does not contain " + keyDesc);
}
}, "assert"),
"delete": /* @__PURE__ */ __name(function(key) {
return !!$channelData && $channelData["delete"](key);
}, "delete"),
get: /* @__PURE__ */ __name(function(key) {
return $channelData && $channelData.get(key);
}, "get"),
has: /* @__PURE__ */ __name(function(key) {
return !!$channelData && $channelData.has(key);
}, "has"),
set: /* @__PURE__ */ __name(function(key, value) {
if (!$channelData) {
$channelData = makeChannel();
}
$channelData.set(key, value);
}, "set")
};
return channel;
}, "getSideChannel");
}
});
// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/formats.js
var require_formats = __commonJS({
"../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/formats.js"(exports, module) {
"use strict";
var replace = String.prototype.replace;
var percentTwenties = /%20/g;
var Format = {
RFC1738: "RFC1738",
RFC3986: "RFC3986"
};
module.exports = {
"default": Format.RFC3986,
formatters: {
RFC1738: /* @__PURE__ */ __name(function(value) {
return replace.call(value, percentTwenties, "+");
}, "RFC1738"),
RFC3986: /* @__PURE__ */ __name(function(value) {
return String(value);
}, "RFC3986")
},
RFC1738: Format.RFC1738,
RFC3986: Format.RFC3986
};
}
});
// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/utils.js
var require_utils2 = __commonJS({
"../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/utils.js"(exports, module) {
"use strict";
var formats = require_formats();
var getSideChannel = require_side_channel();
var defineProperty = require_es_define_property();
var has = Object.prototype.hasOwnProperty;
var isArray = Array.isArray;
var overflowChannel = getSideChannel();
var markOverflow = /* @__PURE__ */ __name(function markOverflow2(obj, maxIndex) {
overflowChannel.set(obj, maxIndex);
return obj;
}, "markOverflow");
var isOverflow = /* @__PURE__ */ __name(function isOverflow2(obj) {
return overflowChannel.has(obj);
}, "isOverflow");
var getMaxIndex = /* @__PURE__ */ __name(function getMaxIndex2(obj) {
return overflowChannel.get(obj);
}, "getMaxIndex");
var setMaxIndex = /* @__PURE__ */ __name(function setMaxIndex2(obj, maxIndex) {
overflowChannel.set(obj, maxIndex);
}, "setMaxIndex");
var conflictChannel = getSideChannel();
var markConflict = /* @__PURE__ */ __name(function markConflict2(obj, maxIndex) {
conflictChannel.set(obj, maxIndex);
return obj;
}, "markConflict");
var isConflict = /* @__PURE__ */ __name(function isConflict2(obj) {
return conflictChannel.has(obj);
}, "isConflict");
var getConflictIndex = /* @__PURE__ */ __name(function getConflictIndex2(obj) {
return conflictChannel.get(obj);
}, "getConflictIndex");
var hexTable = (function() {
var array = [];
for (var i = 0; i < 256; ++i) {
array[array.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
}
return array;
})();
var compactQueue = /* @__PURE__ */ __name(function compactQueue2(queue) {
while (queue.length > 1) {
var item = queue.pop();
var obj = item.obj[item.prop];
if (isArray(obj)) {
var compacted = [];
for (var j = 0; j < obj.length; ++j) {
if (typeof obj[j] !== "undefined") {
compacted[compacted.length] = obj[j];
}
}
item.obj[item.prop] = compacted;
}
}
}, "compactQueue");
var arrayToObject = /* @__PURE__ */ __name(function arrayToObject2(source, options) {
var obj = options && options.plainObjects ? { __proto__: null } : {};
for (var i = 0; i < source.length; ++i) {
if (typeof source[i] !== "undefined") {
obj[i] = source[i];
}
}
return obj;
}, "arrayToObject");
var setProperty = /* @__PURE__ */ __name(function setProperty2(obj, key, value) {
if (key === "__proto__" && defineProperty) {
defineProperty(obj, key, {
configurable: true,
enumerable: true,
value,
writable: true
});
} else {
obj[key] = value;
}
}, "setProperty");
var maxNumericIndex = /* @__PURE__ */ __name(function maxNumericIndex2(obj, min) {
var max = min;
var keys = Object.keys(obj);
for (var i = 0; i < keys.length; ++i) {
var num = parseInt(keys[i], 10);
if (String(num) === keys[i] && num > max) {
max = num;
}
}
return max;
}, "maxNumericIndex");
var limitedPair = /* @__PURE__ */ __name(function limitedPair2(first, second, options) {
var pair = [first, second];
if (options && typeof options.arrayLimit === "number" && pair.length > options.arrayLimit) {
if (options.throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return markOverflow(arrayToObject(pair, options), 1);
}
return pair;
}, "limitedPair");
var merge = /* @__PURE__ */ __name(function merge2(target, source, options) {
if (!source) {
return target;
}
if (typeof source !== "object" && typeof source !== "function") {
if (isArray(target)) {
var nextIndex = target.length;
if (options && typeof options.arrayLimit === "number" && nextIndex >= options.arrayLimit) {
if (options.throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return markOverflow(arrayToObject(target.concat(source), options), nextIndex);
}
target[nextIndex] = source;
} else if (target && typeof target === "object") {
if (isOverflow(target)) {
var newIndex = getMaxIndex(target) + 1;
target[newIndex] = source;
setMaxIndex(target, newIndex);
} else if (options && options.strictMerge && isConflict(target)) {
var nextConflict = getConflictIndex(target) + 1;
if (options.throwOnLimitExceeded && typeof options.arrayLimit === "number" && nextConflict >= options.arrayLimit) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
target[nextConflict] = source;
markConflict(target, nextConflict);
} else if (options && options.strictMerge) {
var conflict = limitedPair(target, source, options);
return isArray(conflict) ? markConflict(conflict, 1) : conflict;
} else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
target[source] = true;
}
} else {
return limitedPair(target, source, options);
}
return target;
}
if (!target || typeof target !== "object") {
if (isOverflow(source)) {
var sourceKeys = Object.keys(source);
var result = options && options.plainObjects ? { __proto__: null, 0: target } : { 0: target };
for (var m = 0; m < sourceKeys.length; m++) {
var oldKey = parseInt(sourceKeys[m], 10);
result[oldKey + 1] = source[sourceKeys[m]];
}
return markOverflow(result, getMaxIndex(source) + 1);
}
var combined = [target].concat(source);
if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) {
if (options.throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return markOverflow(arrayToObject(combined, options), combined.length - 1);
}
return combined;
}
var mergeTarget = target;
if (isArray(target) && !isArray(source)) {
mergeTarget = arrayToObject(target, options);
if (isConflict(target)) {
markConflict(mergeTarget, target.length - 1);
}
}
if (isArray(target) && isArray(source)) {
source.forEach(function(item, i) {
if (has.call(target, i)) {
var targetItem = target[i];
if (targetItem && typeof targetItem === "object" && item && typeof item === "object") {
target[i] = merge2(targetItem, item, options);
} else {
target[target.length] = item;
}
} else {
target[i] = item;
}
});
if (options && typeof options.arrayLimit === "number" && target.length > options.arrayLimit) {
if (options.throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return markOverflow(arrayToObject(target, options), target.length - 1);
}
return target;
}
return Object.keys(source).reduce(function(acc, key) {
var value = source[key];
if (has.call(acc, key)) {
setProperty(acc, key, merge2(acc[key], value, options));
} else {
setProperty(acc, key, value);
}
if (isOverflow(source) && !isOverflow(acc)) {
markOverflow(acc, maxNumericIndex(acc, getMaxIndex(source)));
}
if (isOverflow(acc)) {
var keyNum = parseInt(key, 10);
if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {
setMaxIndex(acc, keyNum);
}
}
if (isConflict(acc)) {
var conflictKey = parseInt(key, 10);
if (String(conflictKey) === key && conflictKey > getConflictIndex(acc)) {
markConflict(acc, conflictKey);
}
}
return acc;
}, mergeTarget);
}, "merge");
var assign = /* @__PURE__ */ __name(function assignSingleSource(target, source) {
return Object.keys(source).reduce(function(acc, key) {
setProperty(acc, key, source[key]);
return acc;
}, target);
}, "assignSingleSource");
var decode = /* @__PURE__ */ __name(function(str, defaultDecoder, charset) {
if (typeof str === "string" && str.indexOf("%") === -1) {
return str.indexOf("+") === -1 ? str : str.replace(/\+/g, " ");
}
var strWithoutPlus = str.replace(/\+/g, " ");
if (charset === "iso-8859-1") {
return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
}
try {
return decodeURIComponent(strWithoutPlus);
} catch (e) {
return strWithoutPlus;
}
}, "decode");
var hasToPrimitive = typeof Symbol === "function" && typeof Symbol.toPrimitive === "symbol";
var arrayJoin = Array.prototype.join;
var arrayToString = Array.prototype.toString;
var objectToString = Object.prototype.toString;
var toCoercible = /* @__PURE__ */ __name(function toCoercible2(value, joining) {
if (!value || typeof value !== "object" && typeof value !== "function") {
return value;
}
if (hasToPrimitive && value[Symbol.toPrimitive] != null) {
return value;
}
if (isArray(value) && value.toString === arrayToString && value.join === arrayJoin) {
var ancestors = joining || getSideChannel();
if (ancestors.has(value)) {
return "";
}
ancestors.set(value, true);
var copy;
for (var i = 0; i < value.length; i += 1) {
var item = value[i];
var coerced = toCoercible2(item, ancestors);
if (!copy && coerced !== item) {
copy = [];
for (var j = 0; j < i; j += 1) {
copy[j] = value[j];
}
}
if (copy) {
copy[i] = coerced;
}
}
ancestors["delete"](value);
return copy || value;
}
if (typeof value.toString === "function") {
return value;
}
var valueOf = value.valueOf;
if (typeof valueOf === "function") {
var primitive = valueOf.call(value);
if (!primitive || typeof primitive !== "object" && typeof primitive !== "function") {
return String(primitive);
}
}
return objectToString.call(value);
}, "toCoercible");
var limit = 1024;
var encode = /* @__PURE__ */ __name(function encode2(str, defaultEncoder, charset, kind, format) {
if (str.length === 0) {
return str;
}
var string = str;
if (typeof str === "symbol") {
string = Symbol.prototype.toString.call(str);
} else if (typeof str !== "string") {
string = String(toCoercible(str));
}
if (charset === "iso-8859-1") {
return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) {
return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
}).replace(/\+/g, "%2B");
}
var out = "";
for (var j = 0; j < string.length; j += limit) {
var segment = string.length >= limit ? string.slice(j, j + limit) : string;
if (j + limit < string.length) {
var last = segment.charCodeAt(segment.length - 1);
if (last >= 55296 && last <= 56319) {
segment = segment.slice(0, -1);
j -= 1;
}
}
var arr = [];
for (var i = 0; i < segment.length; ++i) {
var c = segment.charCodeAt(i);
if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
arr[arr.length] = segment.charAt(i);
continue;
}
if (c < 128) {
arr[arr.length] = hexTable[c];
continue;
}
if (c < 2048) {
arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
continue;
}
if (c < 55296 || c >= 57344) {
arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
continue;
}
i += 1;
c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
}
out += arr.join("");
}
return out;
}, "encode");
var compact = /* @__PURE__ */ __name(function compact2(value) {
var queue = [{ obj: { o: value }, prop: "o" }];
var refs = getSideChannel();
for (var i = 0; i < queue.length; ++i) {
var item = queue[i];
var obj = item.obj[item.prop];
var keys = Object.keys(obj);
for (var j = 0; j < keys.length; ++j) {
var key = keys[j];
var val = obj[key];
if (typeof val === "object" && val !== null && !refs.has(val)) {
queue[queue.length] = { obj, prop: key };
refs.set(val, true);
}
}
}
compactQueue(queue);
return value;
}, "compact");
var isRegExp = /* @__PURE__ */ __name(function isRegExp2(obj) {
return Object.prototype.toString.call(obj) === "[object RegExp]";
}, "isRegExp");
var isBuffer = /* @__PURE__ */ __name(function isBuffer2(obj) {
if (!obj || typeof obj !== "object") {
return false;
}
return !!(obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj));
}, "isBuffer");
var combine = /* @__PURE__ */ __name(function combine2(a, b, arrayLimit, plainObjects, throwOnLimitExceeded) {
if (isOverflow(a)) {
if (throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
var bValues = isArray(b) ? b : [b];
var newIndex = getMaxIndex(a);
for (var i = 0; i < bValues.length; ++i) {
newIndex += 1;
a[newIndex] = bValues[i];
}
setMaxIndex(a, newIndex);
return a;
}
var result = [].concat(a, b);
if (result.length > arrayLimit) {
if (throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return markOverflow(arrayToObject(result, { plainObjects }), result.length - 1);
}
return result;
}, "combine");
var maybeMap = /* @__PURE__ */ __name(function maybeMap2(val, fn) {
if (isArray(val)) {
var mapped = [];
for (var i = 0; i < val.length; i += 1) {
mapped[mapped.length] = fn(val[i]);
}
return mapped;
}
return fn(val);
}, "maybeMap");
module.exports = {
arrayToObject,
assign,
combine,
compact,
decode,
encode,
isBuffer,
isOverflow,
isRegExp,
markOverflow,
maybeMap,
merge,
toCoercible
};
}
});
// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/stringify.js
var require_stringify = __commonJS({
"../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/stringify.js"(exports, module) {
"use strict";
var getSideChannel = require_side_channel();
var utils = require_utils2();
var formats = require_formats();
var has = Object.prototype.hasOwnProperty;
var arrayPrefixGenerators = {
brackets: /* @__PURE__ */ __name(function brackets(prefix) {
return prefix + "[]";
}, "brackets"),
comma: "comma",
indices: /* @__PURE__ */ __name(function indices(prefix, key) {
return prefix + "[" + key + "]";
}, "indices"),
repeat: /* @__PURE__ */ __name(function repeat(prefix) {
return prefix;
}, "repeat")
};
var isArray = Array.isArray;
var push = Array.prototype.push;
var pushToArray = /* @__PURE__ */ __name(function(arr, valueOrArray) {
push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
}, "pushToArray");
var toISO = Date.prototype.toISOString;
var defaultFormat = formats["default"];
var defaults = {
addQueryPrefix: false,
allowDots: false,
allowEmptyArrays: false,
arrayFormat: "indices",
charset: "utf-8",
charsetSentinel: false,
commaRoundTrip: false,
delimiter: "&",
depth: Infinity,
encode: true,
encodeDotInKeys: false,
encoder: utils.encode,
encodeValuesOnly: false,
filter: void 0,
format: defaultFormat,
formatter: formats.formatters[defaultFormat],
// deprecated
indices: false,
serializeDate: /* @__PURE__ */ __name(function serializeDate(date) {
return toISO.call(date);
}, "serializeDate"),
skipNulls: false,
strictNullHandling: false
};
var isNonNullishPrimitive = /* @__PURE__ */ __name(function isNonNullishPrimitive2(v) {
return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint";
}, "isNonNullishPrimitive");
var sentinel = {};
var stringify2 = /* @__PURE__ */ __name(function stringify3(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel, depth, currentDepth) {
var obj = object;
if (currentDepth > depth) {
throw new RangeError("Input depth exceeded depth option of " + depth);
}
var tmpSc = sideChannel;
var step = 0;
var findFlag = false;
while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) {
var pos = tmpSc.get(object);
step += 1;
if (typeof pos !== "undefined") {
if (pos === step) {
throw new RangeError("Cyclic object value");
} else {
findFlag = true;
}
}
if (typeof tmpSc.get(sentinel) === "undefined") {
step = 0;
}
}
obj = typeof filter === "function" ? filter(prefix, obj) : obj;
if (obj instanceof Date) {
obj = serializeDate(obj);
} else if (generateArrayPrefix === "comma" && isArray(obj)) {
obj = utils.maybeMap(obj, function(value2) {
if (value2 instanceof Date) {
return serializeDate(value2);
}
return value2;
});
}
if (obj === null) {
if (strictNullHandling) {
return formatter(encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix);
}
obj = "";
}
if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
if (encoder) {
var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format);
return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))];
}
return [formatter(prefix) + "=" + formatter(String(obj))];
}
var values = [];
if (typeof obj === "undefined") {
return values;
}
var objKeys;
if (generateArrayPrefix === "comma" && isArray(obj)) {
if (encodeValuesOnly && encoder) {
obj = utils.maybeMap(obj, function(v) {
return v == null ? v : encoder(v, defaults.encoder, charset, "value", format);
});
}
objKeys = [{ value: obj.length > 0 ? utils.toCoercible(obj).join(",") || null : void 0 }];
} else if (isArray(filter)) {
objKeys = filter;
} else {
var keys = Object.keys(obj);
objKeys = sort ? keys.sort(sort) : keys;
}
var encodedPrefix = String(prefix);
var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
if (allowEmptyArrays && isArray(obj) && obj.length === 0 && Object.keys(obj).length === 0) {
return adjustedPrefix + "[]";
}
for (var j = 0; j < objKeys.length; ++j) {
var key = objKeys[j];
var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
if (skipNulls && value === null) {
continue;
}
var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
sideChannel.set(object, step);
var valueSideChannel = getSideChannel();
valueSideChannel.set(sentinel, sideChannel);
pushToArray(values, stringify3(
value,
keyPrefix,
generateArrayPrefix,
commaRoundTrip,
allowEmptyArrays,
strictNullHandling,
skipNulls,
encodeDotInKeys,
generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder,
filter,
sort,
allowDots,
serializeDate,
format,
formatter,
encodeValuesOnly,
charset,
valueSideChannel,
depth,
currentDepth + 1
));
}
return values;
}, "stringify");
var normalizeStringifyOptions = /* @__PURE__ */ __name(function normalizeStringifyOptions2(opts) {
if (!opts) {
return defaults;
}
if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
}
if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
}
if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
throw new TypeError("Encoder has to be a function.");
}
var charset = opts.charset || defaults.charset;
if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
}
var format = formats["default"];
if (typeof opts.format !== "undefined") {
if (!has.call(formats.formatters, opts.format)) {
throw new TypeError("Unknown format option provided.");
}
format = opts.format;
}
var formatter = formats.formatters[format];
var filter = defaults.filter;
if (typeof opts.filter === "function" || isArray(opts.filter)) {
filter = opts.filter;
}
var arrayFormat;
if (has.call(arrayPrefixGenerators, opts.arrayFormat)) {
arrayFormat = opts.arrayFormat;
} else if ("indices" in opts) {
arrayFormat = opts.indices ? "indices" : "repeat";
} else {
arrayFormat = defaults.arrayFormat;
}
if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
}
var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
return {
addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix,
allowDots,
allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
arrayFormat,
charset,
charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
commaRoundTrip: !!opts.commaRoundTrip,
delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
depth: typeof opts.depth === "number" ? opts.depth : defaults.depth,
encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
filter,
format,
formatter,
serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate,
skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls,
sort: typeof opts.sort === "function" ? opts.sort : null,
strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
};
}, "normalizeStringifyOptions");
module.exports = function(object, opts) {
var obj = object;
var options = normalizeStringifyOptions(opts);
var objKeys;
var filter;
if (typeof options.filter === "function") {
filter = options.filter;
obj = filter("", obj);
} else if (isArray(options.filter)) {
filter = options.filter;
objKeys = filter;
}
var keys = [];
if (typeof obj !== "object" || obj === null) {
return "";
}
var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
if (!objKeys) {
objKeys = Object.keys(obj);
}
if (options.sort) {
objKeys.sort(options.sort);
}
var sideChannel = getSideChannel();
for (var i = 0; i < objKeys.length; ++i) {
var key = objKeys[i];
if (typeof key === "undefined" || key === null) {
continue;
}
var value = obj[key];
if (options.skipNulls && value === null) {
continue;
}
var encodedKey = options.encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
pushToArray(keys, stringify2(
value,
encodedKey,
generateArrayPrefix,
commaRoundTrip,
options.allowEmptyArrays,
options.strictNullHandling,
options.skipNulls,
options.encodeDotInKeys,
options.encode ? options.encoder : null,
options.filter,
options.sort,
options.allowDots,
options.serializeDate,
options.format,
options.formatter,
options.encodeValuesOnly,
options.charset,
sideChannel,
options.depth,
0
));
}
var joined = keys.join(options.delimiter);
var prefix = options.addQueryPrefix === true ? "?" : "";
if (options.charsetSentinel) {
if (options.charset === "iso-8859-1") {
prefix += "utf8=%26%2310003%3B" + options.delimiter;
} else {
prefix += "utf8=%E2%9C%93" + options.delimiter;
}
}
return joined.length > 0 ? prefix + joined : "";
};
}
});
// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/parse.js
var require_parse = __commonJS({
"../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/parse.js"(exports, module) {
"use strict";
var getSideChannel = require_side_channel();
var utils = require_utils2();
var has = Object.prototype.hasOwnProperty;
var isArray = Array.isArray;
var getPrototypeOf = Object.getPrototypeOf;
var isPlainContainer = /* @__PURE__ */ __name(function isPlainContainer2(value) {
if (!value || typeof value !== "object") {
return false;
}
if (isArray(value)) {
return true;
}
var proto = getPrototypeOf(value);
return proto === Object.prototype || proto === null;
}, "isPlainContainer");
var emptyCopyOf = /* @__PURE__ */ __name(function emptyCopyOf2(value) {
if (isArray(value)) {
var arr = [];
arr.length = value.length;
return arr;
}
return getPrototypeOf(value) === null ? { __proto__: null } : {};
}, "emptyCopyOf");
var copyInput = /* @__PURE__ */ __name(function copyInput2(input) {
var copies = getSideChannel();
var result = {};
var queue = [{ source: input, target: result }];
for (var i = 0; i < queue.length; ++i) {
var source = queue[i].source;
var target = queue[i].target;
var keys = Object.keys(source);
for (var j = 0; j < keys.length; ++j) {
var value = source[keys[j]];
if (isPlainContainer(value)) {
if (!copies.has(value)) {
var copy = emptyCopyOf(value);
copies.set(value, copy);
queue[queue.length] = { source: value, target: copy };
}
target[keys[j]] = copies.get(value);
} else {
target[keys[j]] = value;
}
}
}
return result;
}, "copyInput");
var defaults = {
allowDots: false,
allowEmptyArrays: false,
allowPrototypes: false,
allowSparse: false,
arrayLimit: 20,
charset: "utf-8",
charsetSentinel: false,
comma: false,
decodeDotInKeys: false,
decoder: utils.decode,
delimiter: "&",
depth: 5,
duplicates: "combine",
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1e3,
parseArrays: true,
plainObjects: false,
strictDepth: false,
strictMerge: true,
strictNullHandling: false,
throwOnLimitExceeded: false
};
var interpretNumericEntities = /* @__PURE__ */ __name(function(str) {
return str.replace(/&#(\d+);/g, function($0, numberStr) {
return String.fromCharCode(parseInt(numberStr, 10));
});
}, "interpretNumericEntities");
var parseArrayValue = /* @__PURE__ */ __name(function(val, options, currentArrayLength) {
if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
if (options.throwOnLimitExceeded) {
var commaCount = 0;
var commaIndex = val.indexOf(",");
while (commaIndex > -1) {
commaCount += 1;
if (commaCount >= options.arrayLimit) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
commaIndex = val.indexOf(",", commaIndex + 1);
}
}
return val.split(",");
}
if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
}
return val;
}, "parseArrayValue");
var isoSentinel = "utf8=%26%2310003%3B";
var charsetSentinel = "utf8=%E2%9C%93";
var parseValues = /* @__PURE__ */ __name(function parseQueryStringValues(str, options) {
var obj = { __proto__: null };
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
var parts = cleanStr.split(
options.delimiter,
options.throwOnLimitExceeded && typeof limit !== "undefined" ? limit + 1 : limit
);
if (options.throwOnLimitExceeded && typeof limit !== "undefined" && parts.length > limit) {
throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed.");
}
var skipIndex = -1;
var i;
var charset = options.charset;
if (options.charsetSentinel) {
for (i = 0; i < parts.length; ++i) {
if (parts[i].indexOf("utf8=") === 0) {
if (parts[i] === charsetSentinel) {
charset = "utf-8";
} else if (parts[i] === isoSentinel) {
charset = "iso-8859-1";
}
skipIndex = i;
i = parts.length;
}
}
}
for (i = 0; i < parts.length; ++i) {
if (i === skipIndex) {
continue;
}
var part = parts[i];
var bracketEqualsPos = part.indexOf("]=");
var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
var isEmptyBracketKey = pos > 1 && part.slice(pos - 2, pos) === "[]";
var key;
var val;
if (pos === -1) {
key = options.decoder(part, defaults.decoder, charset, "key");
val = options.strictNullHandling ? null : "";
} else {
key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
if (key !== null) {
val = utils.maybeMap(
parseArrayValue(
part.slice(pos + 1),
options,
isArray(obj[key]) ? obj[key].length : 0
),
function(encodedVal) {
return options.decoder(encodedVal, defaults.decoder, charset, "value");
}
);
}
}
if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
val = interpretNumericEntities(String(val));
}
if (isEmptyBracketKey) {
val = isArray(val) ? [val] : val;
}
if (options.comma && isArray(val) && val.length > options.arrayLimit) {
val = utils.combine([], val, options.arrayLimit, options.plainObjects, options.throwOnLimitExceeded);
}
if (key !== null) {
var existing = has.call(obj, key);
if (existing && (options.duplicates === "combine" || isEmptyBracketKey)) {
obj[key] = utils.combine(
obj[key],
val,
options.arrayLimit,
options.plainObjects,
options.throwOnLimitExceeded
);
} else if (!existing || options.duplicates === "last") {
obj[key] = val;
}
}
}
return obj;
}, "parseQueryStringValues");
var parseObject = /* @__PURE__ */ __name(function(chain, val, options, valuesParsed) {
var currentArrayLength = 0;
if (chain.length > 0 && chain[chain.length - 1] === "[]") {
var parentKey = chain.slice(0, -1).join("");
currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
}
var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
for (var i = chain.length - 1; i >= 0; --i) {
var obj;
var root = chain[i];
if (root === "[]" && options.parseArrays) {
if (utils.isOverflow(leaf)) {
obj = leaf;
} else {
obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine(
[],
leaf,
options.arrayLimit,
options.plainObjects,
options.throwOnLimitExceeded
);
}
} else {
obj = options.plainObjects ? { __proto__: null } : {};
var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
var index = parseInt(decodedRoot, 10);
var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays;
if (!options.parseArrays && decodedRoot === "") {
obj = { 0: leaf };
} else if (isValidArrayIndex && index < options.arrayLimit) {
obj = [];
obj[index] = leaf;
} else if (isValidArrayIndex && options.throwOnLimitExceeded) {
throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
} else if (isValidArrayIndex) {
obj[index] = leaf;
utils.markOverflow(obj, index);
} else if (decodedRoot !== "__proto__") {
obj[decodedRoot] = leaf;
}
}
leaf = obj;
}
return leaf;
}, "parseObject");
var topLevelDotsToBrackets = /* @__PURE__ */ __name(function topLevelDotsToBrackets2(key) {
var result = "";
var depth = 0;
for (var i = 0; i < key.length; i += 1) {
var cu = key.charCodeAt(i);
if (cu === 91) {
depth += 1;
result += "[";
} else if (cu === 93) {
if (depth > 0) {
depth -= 1;
}
result += "]";
} else if (cu === 46 && depth === 0 && i + 1 < key.length && key.charCodeAt(i + 1) !== 46 && key.charCodeAt(i + 1) !== 91) {
var start = i + 1;
var j = start;
while (j < key.length && key.charCodeAt(j) !== 46 && key.charCodeAt(j) !== 91) {
j += 1;
}
result += "[" + key.slice(start, j) + "]";
i = j - 1;
} else {
result += key.charAt(i);
}
}
return result;
}, "topLevelDotsToBrackets");
var splitKeyIntoSegments = /* @__PURE__ */ __name(function splitKeyIntoSegments2(originalKey, options) {
var key = options.allowDots ? topLevelDotsToBrackets(originalKey) : originalKey;
if (options.depth <= 0) {
if (!options.plainObjects && has.call(Object.prototype, key)) {
if (!options.allowPrototypes) {
return;
}
}
return [key];
}
var segments = [];
var first = key.indexOf("[");
var parent = first >= 0 ? key.slice(0, first) : key;
if (parent) {
if (!options.plainObjects && has.call(Object.prototype, parent)) {
if (!options.allowPrototypes) {
return;
}
}
segments[segments.length] = parent;
}
var n = key.length;
var open = first;
var collected = 0;
while (open >= 0 && collected < options.depth) {
var level = 1;
var i = open + 1;
var close = -1;
while (i < n && close < 0) {
var cu = key.charCodeAt(i);
if (cu === 91) {
level += 1;
} else if (cu === 93) {
level -= 1;
if (level === 0) {
close = i;
}
}
i += 1;
}
if (close < 0) {
segments[segments.length] = "[" + key.slice(open) + "]";
return segments;
}
var seg = key.slice(open, close + 1);
var content = seg.slice(1, -1);
if (!options.plainObjects && has.call(Object.prototype, content) && !options.allowPrototypes) {
return;
}
segments[segments.length] = seg;
collected += 1;
open = key.indexOf("[", close + 1);
}
if (open >= 0) {
if (options.strictDepth === true) {
throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
}
segments[segments.length] = "[" + key.slice(open) + "]";
}
return segments;
}, "splitKeyIntoSegments");
var parseKeys = /* @__PURE__ */ __name(function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
if (!givenKey) {
return;
}
var keys = splitKeyIntoSegments(givenKey, options);
if (!keys) {
return;
}
return parseObject(keys, val, options, valuesParsed);
}, "parseQueryStringKeys");
var normalizeParseOptions = /* @__PURE__ */ __name(function normalizeParseOptions2(opts) {
if (!opts) {
return defaults;
}
if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
}
if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
}
if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
throw new TypeError("Decoder has to be a function.");
}
if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
}
if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
}
var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
throw new TypeError("The duplicates option must be either combine, first, or last");
}
var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
return {
allowDots,
allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
charset,
charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
// eslint-disable-next-line no-implicit-coercion, no-extra-parens
depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
duplicates,
ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
parseArrays: opts.parseArrays !== false,
plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
strictMerge: typeof opts.strictMerge === "boolean" ? !!opts.strictMerge : defaults.strictMerge,
strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling,
throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
};
}, "normalizeParseOptions");
module.exports = function(str, opts) {
var options = normalizeParseOptions(opts);
if (str === "" || str === null || typeof str === "undefined") {
return options.plainObjects ? { __proto__: null } : {};
}
var tempObj = typeof str === "string" ? parseValues(str, options) : copyInput(str);
var obj = options.plainObjects ? { __proto__: null } : {};
var keys = Object.keys(tempObj);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
obj = utils.merge(obj, newObj, options);
}
if (options.allowSparse === true) {
return obj;
}
return utils.compact(obj);
};
}
});
// ../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/index.js
var require_lib4 = __commonJS({
"../../node_modules/.pnpm/qs@6.16.1/node_modules/qs/lib/index.js"(exports, module) {
"use strict";
var stringify2 = require_stringify();
var parse = require_parse();
var formats = require_formats();
module.exports = {
formats,
parse,
stringify: stringify2
};
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/urlencoded.js
var require_urlencoded = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/lib/types/urlencoded.js"(exports, module) {
"use strict";
var createError = require_http_errors();
var debug = require_src()("body-parser:urlencoded");
var read = require_read();
var qs = require_lib4();
var { normalizeOptions } = require_utils();
module.exports = urlencoded;
function urlencoded(options) {
const normalizedOptions = normalizeOptions(options, "application/x-www-form-urlencoded");
if (normalizedOptions.defaultCharset !== "utf-8" && normalizedOptions.defaultCharset !== "iso-8859-1") {
throw new TypeError("option defaultCharset must be either utf-8 or iso-8859-1");
}
const parse = createQueryParser(options);
const readOptions = {
...normalizedOptions,
// assert charset
isValidCharset: /* @__PURE__ */ __name((charset) => charset === "utf-8" || charset === "iso-8859-1", "isValidCharset")
};
return /* @__PURE__ */ __name(function urlencodedParser(req, res, next) {
read(req, res, next, parse, debug, readOptions);
}, "urlencodedParser");
}
__name(urlencoded, "urlencoded");
function createQueryParser(options) {
const extended = Boolean(options?.extended);
let parameterLimit = options?.parameterLimit !== void 0 ? options?.parameterLimit : 1e3;
const charsetSentinel = options?.charsetSentinel;
const interpretNumericEntities = options?.interpretNumericEntities;
const depth = extended ? options?.depth !== void 0 ? options?.depth : 32 : 0;
if (isNaN(parameterLimit) || parameterLimit < 1) {
throw new TypeError("option parameterLimit must be a positive number");
}
if (isNaN(depth) || depth < 0) {
throw new TypeError("option depth must be a zero or a positive number");
}
if (isFinite(parameterLimit)) {
parameterLimit = parameterLimit | 0;
}
return /* @__PURE__ */ __name(function parse(body, encoding) {
if (!body.length) return {};
const paramCount = parameterCount(body, parameterLimit);
if (paramCount === void 0) {
debug("too many parameters");
throw createError(413, "too many parameters", {
type: "parameters.too.many"
});
}
const arrayLimit = extended ? Math.max(100, paramCount) : paramCount;
debug("parse " + (extended ? "extended " : "") + "urlencoding");
try {
return qs.parse(body, {
allowPrototypes: true,
arrayLimit,
depth,
charsetSentinel,
interpretNumericEntities,
charset: encoding,
parameterLimit,
strictDepth: true
});
} catch (err) {
if (err instanceof RangeError) {
throw createError(400, "The input exceeded the depth", {
type: "querystring.parse.rangeError"
});
} else {
throw err;
}
}
}, "parse");
}
__name(createQueryParser, "createQueryParser");
function parameterCount(body, limit) {
let count = 0;
let index = -1;
do {
count++;
if (count > limit) return void 0;
index = body.indexOf("&", index + 1);
} while (index !== -1);
return count;
}
__name(parameterCount, "parameterCount");
}
});
// ../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/index.js
var require_body_parser = __commonJS({
"../../node_modules/.pnpm/body-parser@2.3.0/node_modules/body-parser/index.js"(exports, module) {
"use strict";
exports = module.exports = bodyParser;
exports.json = require_json();
exports.raw = require_raw();
exports.text = require_text();
exports.urlencoded = require_urlencoded();
function bodyParser() {
throw new Error("The bodyParser() generic has been split into individual middleware to use instead.");
}
__name(bodyParser, "bodyParser");
}
});
// ../../node_modules/.pnpm/merge-descriptors@2.0.0/node_modules/merge-descriptors/index.js
var require_merge_descriptors = __commonJS({
"../../node_modules/.pnpm/merge-descriptors@2.0.0/node_modules/merge-descriptors/index.js"(exports, module) {
"use strict";
function mergeDescriptors(destination, source, overwrite = true) {
if (!destination) {
throw new TypeError("The `destination` argument is required.");
}
if (!source) {
throw new TypeError("The `source` argument is required.");
}
for (const name of Object.getOwnPropertyNames(source)) {
if (!overwrite && Object.hasOwn(destination, name)) {
continue;
}
const descriptor = Object.getOwnPropertyDescriptor(source, name);
Object.defineProperty(destination, name, descriptor);
}
return destination;
}
__name(mergeDescriptors, "mergeDescriptors");
module.exports = mergeDescriptors;
}
});
// ../../node_modules/.pnpm/encodeurl@2.0.0/node_modules/encodeurl/index.js
var require_encodeurl = __commonJS({
"../../node_modules/.pnpm/encodeurl@2.0.0/node_modules/encodeurl/index.js"(exports, module) {
"use strict";
module.exports = encodeUrl;
var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
function encodeUrl(url) {
return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
}
__name(encodeUrl, "encodeUrl");
}
});
// ../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js
var require_escape_html = __commonJS({
"../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js"(exports, module) {
"use strict";
var matchHtmlRegExp = /["'&<>]/;
module.exports = escapeHtml;
function escapeHtml(string) {
var str = "" + string;
var match = matchHtmlRegExp.exec(str);
if (!match) {
return str;
}
var escape2;
var html = "";
var index = 0;
var lastIndex = 0;
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34:
escape2 = "&quot;";
break;
case 38:
escape2 = "&amp;";
break;
case 39:
escape2 = "&#39;";
break;
case 60:
escape2 = "&lt;";
break;
case 62:
escape2 = "&gt;";
break;
default:
continue;
}
if (lastIndex !== index) {
html += str.substring(lastIndex, index);
}
lastIndex = index + 1;
html += escape2;
}
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
}
__name(escapeHtml, "escapeHtml");
}
});
// ../../node_modules/.pnpm/parseurl@1.3.3/node_modules/parseurl/index.js
var require_parseurl = __commonJS({
"../../node_modules/.pnpm/parseurl@1.3.3/node_modules/parseurl/index.js"(exports, module) {
"use strict";
var url = __require("url");
var parse = url.parse;
var Url = url.Url;
module.exports = parseurl;
module.exports.original = originalurl;
function parseurl(req) {
var url2 = req.url;
if (url2 === void 0) {
return void 0;
}
var parsed = req._parsedUrl;
if (fresh(url2, parsed)) {
return parsed;
}
parsed = fastparse(url2);
parsed._raw = url2;
return req._parsedUrl = parsed;
}
__name(parseurl, "parseurl");
function originalurl(req) {
var url2 = req.originalUrl;
if (typeof url2 !== "string") {
return parseurl(req);
}
var parsed = req._parsedOriginalUrl;
if (fresh(url2, parsed)) {
return parsed;
}
parsed = fastparse(url2);
parsed._raw = url2;
return req._parsedOriginalUrl = parsed;
}
__name(originalurl, "originalurl");
function fastparse(str) {
if (typeof str !== "string" || str.charCodeAt(0) !== 47) {
return parse(str);
}
var pathname = str;
var query = null;
var search = null;
for (var i = 1; i < str.length; i++) {
switch (str.charCodeAt(i)) {
case 63:
if (search === null) {
pathname = str.substring(0, i);
query = str.substring(i + 1);
search = str.substring(i);
}
break;
case 9:
/* \t */
case 10:
/* \n */
case 12:
/* \f */
case 13:
/* \r */
case 32:
/* */
case 35:
/* # */
case 160:
case 65279:
return parse(str);
}
}
var url2 = Url !== void 0 ? new Url() : {};
url2.path = str;
url2.href = str;
url2.pathname = pathname;
if (search !== null) {
url2.query = query;
url2.search = search;
}
return url2;
}
__name(fastparse, "fastparse");
function fresh(url2, parsedUrl) {
return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2;
}
__name(fresh, "fresh");
}
});
// ../../node_modules/.pnpm/finalhandler@2.1.1/node_modules/finalhandler/index.js
var require_finalhandler = __commonJS({
"../../node_modules/.pnpm/finalhandler@2.1.1/node_modules/finalhandler/index.js"(exports, module) {
"use strict";
var debug = require_src()("finalhandler");
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var onFinished = require_on_finished();
var parseUrl = require_parseurl();
var statuses = require_statuses();
var isFinished = onFinished.isFinished;
function createHtmlDocument(message) {
var body = escapeHtml(message).replaceAll("\n", "<br>").replaceAll(" ", " &nbsp;");
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>Error</title>\n</head>\n<body>\n<pre>' + body + "</pre>\n</body>\n</html>\n";
}
__name(createHtmlDocument, "createHtmlDocument");
module.exports = finalhandler;
function finalhandler(req, res, options) {
var opts = options || {};
var env = opts.env || process.env.NODE_ENV || "development";
var onerror = opts.onerror;
return function(err) {
var headers;
var msg;
var status;
if (!err && res.headersSent) {
debug("cannot 404 after headers sent");
return;
}
if (err) {
status = getErrorStatusCode(err);
if (status === void 0) {
status = getResponseStatusCode(res);
} else {
headers = getErrorHeaders(err);
}
msg = getErrorMessage(err, status, env);
} else {
status = 404;
msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req));
}
debug("default %s", status);
if (err && onerror) {
setImmediate(onerror, err, req, res);
}
if (res.headersSent) {
debug("cannot %d after headers sent", status);
if (req.socket) {
req.socket.destroy();
}
return;
}
send(req, res, status, headers, msg);
};
}
__name(finalhandler, "finalhandler");
function getErrorHeaders(err) {
if (!err.headers || typeof err.headers !== "object") {
return void 0;
}
return { ...err.headers };
}
__name(getErrorHeaders, "getErrorHeaders");
function getErrorMessage(err, status, env) {
var msg;
if (env !== "production") {
msg = err.stack;
if (!msg && typeof err.toString === "function") {
msg = err.toString();
}
}
return msg || statuses.message[status];
}
__name(getErrorMessage, "getErrorMessage");
function getErrorStatusCode(err) {
if (typeof err.status === "number" && err.status >= 400 && err.status < 600) {
return err.status;
}
if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) {
return err.statusCode;
}
return void 0;
}
__name(getErrorStatusCode, "getErrorStatusCode");
function getResourceName(req) {
try {
return parseUrl.original(req).pathname;
} catch (e) {
return "resource";
}
}
__name(getResourceName, "getResourceName");
function getResponseStatusCode(res) {
var status = res.statusCode;
if (typeof status !== "number" || status < 400 || status > 599) {
status = 500;
}
return status;
}
__name(getResponseStatusCode, "getResponseStatusCode");
function send(req, res, status, headers, message) {
function write() {
var body = createHtmlDocument(message);
res.statusCode = status;
if (req.httpVersionMajor < 2) {
res.statusMessage = statuses.message[status];
}
res.removeHeader("Content-Encoding");
res.removeHeader("Content-Language");
res.removeHeader("Content-Range");
for (const [key, value] of Object.entries(headers ?? {})) {
res.setHeader(key, value);
}
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Content-Type", "text/html; charset=utf-8");
res.setHeader("Content-Length", Buffer.byteLength(body, "utf8"));
if (req.method === "HEAD") {
res.end();
return;
}
res.end(body, "utf8");
}
__name(write, "write");
if (isFinished(req)) {
write();
return;
}
req.unpipe();
onFinished(req, write);
req.resume();
}
__name(send, "send");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/view.js
var require_view = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/view.js"(exports, module) {
"use strict";
var debug = require_src()("express:view");
var path = __require("node:path");
var fs = __require("node:fs");
var dirname = path.dirname;
var basename = path.basename;
var extname = path.extname;
var join = path.join;
var resolve = path.resolve;
module.exports = View;
function View(name, options) {
var opts = options || {};
this.defaultEngine = opts.defaultEngine;
this.ext = extname(name);
this.name = name;
this.root = opts.root;
if (!this.ext && !this.defaultEngine) {
throw new Error("No default engine was specified and no extension was provided.");
}
var fileName = name;
if (!this.ext) {
this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine;
fileName += this.ext;
}
if (!opts.engines[this.ext]) {
var mod = this.ext.slice(1);
debug('require "%s"', mod);
var fn = __require(mod).__express;
if (typeof fn !== "function") {
throw new Error('Module "' + mod + '" does not provide a view engine.');
}
opts.engines[this.ext] = fn;
}
this.engine = opts.engines[this.ext];
this.path = this.lookup(fileName);
}
__name(View, "View");
View.prototype.lookup = /* @__PURE__ */ __name(function lookup(name) {
var path2;
var roots = [].concat(this.root);
debug('lookup "%s"', name);
for (var i = 0; i < roots.length && !path2; i++) {
var root = roots[i];
var loc = resolve(root, name);
var dir = dirname(loc);
var file = basename(loc);
path2 = this.resolve(dir, file);
}
return path2;
}, "lookup");
View.prototype.render = /* @__PURE__ */ __name(function render(options, callback) {
var sync = true;
debug('render "%s"', this.path);
this.engine(this.path, options, /* @__PURE__ */ __name(function onRender() {
if (!sync) {
return callback.apply(this, arguments);
}
var args = new Array(arguments.length);
var cntx = this;
for (var i = 0; i < arguments.length; i++) {
args[i] = arguments[i];
}
return process.nextTick(/* @__PURE__ */ __name(function renderTick() {
return callback.apply(cntx, args);
}, "renderTick"));
}, "onRender"));
sync = false;
}, "render");
View.prototype.resolve = /* @__PURE__ */ __name(function resolve2(dir, file) {
var ext = this.ext;
var path2 = join(dir, file);
var stat = tryStat(path2);
if (stat && stat.isFile()) {
return path2;
}
path2 = join(dir, basename(file, ext), "index" + ext);
stat = tryStat(path2);
if (stat && stat.isFile()) {
return path2;
}
}, "resolve");
function tryStat(path2) {
debug('stat "%s"', path2);
try {
return fs.statSync(path2);
} catch (e) {
return void 0;
}
}
__name(tryStat, "tryStat");
}
});
// ../../node_modules/.pnpm/etag@1.8.1/node_modules/etag/index.js
var require_etag = __commonJS({
"../../node_modules/.pnpm/etag@1.8.1/node_modules/etag/index.js"(exports, module) {
"use strict";
module.exports = etag;
var crypto = __require("crypto");
var Stats = __require("fs").Stats;
var toString = Object.prototype.toString;
function entitytag(entity) {
if (entity.length === 0) {
return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
}
var hash = crypto.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27);
var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length;
return '"' + len.toString(16) + "-" + hash + '"';
}
__name(entitytag, "entitytag");
function etag(entity, options) {
if (entity == null) {
throw new TypeError("argument entity is required");
}
var isStats = isstats(entity);
var weak = options && typeof options.weak === "boolean" ? options.weak : isStats;
if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) {
throw new TypeError("argument entity must be string, Buffer, or fs.Stats");
}
var tag = isStats ? stattag(entity) : entitytag(entity);
return weak ? "W/" + tag : tag;
}
__name(etag, "etag");
function isstats(obj) {
if (typeof Stats === "function" && obj instanceof Stats) {
return true;
}
return obj && typeof obj === "object" && "ctime" in obj && toString.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number";
}
__name(isstats, "isstats");
function stattag(stat) {
var mtime = stat.mtime.getTime().toString(16);
var size = stat.size.toString(16);
return '"' + size + "-" + mtime + '"';
}
__name(stattag, "stattag");
}
});
// ../../node_modules/.pnpm/forwarded@0.2.0/node_modules/forwarded/index.js
var require_forwarded = __commonJS({
"../../node_modules/.pnpm/forwarded@0.2.0/node_modules/forwarded/index.js"(exports, module) {
"use strict";
module.exports = forwarded;
function forwarded(req) {
if (!req) {
throw new TypeError("argument req is required");
}
var proxyAddrs = parse(req.headers["x-forwarded-for"] || "");
var socketAddr = getSocketAddr(req);
var addrs = [socketAddr].concat(proxyAddrs);
return addrs;
}
__name(forwarded, "forwarded");
function getSocketAddr(req) {
return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress;
}
__name(getSocketAddr, "getSocketAddr");
function parse(header) {
var end = header.length;
var list = [];
var start = header.length;
for (var i = header.length - 1; i >= 0; i--) {
switch (header.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i;
}
break;
case 44:
if (start !== end) {
list.push(header.substring(start, end));
}
start = end = i;
break;
default:
start = i;
break;
}
}
if (start !== end) {
list.push(header.substring(start, end));
}
return list;
}
__name(parse, "parse");
}
});
// ../../node_modules/.pnpm/ipaddr.js@1.9.1/node_modules/ipaddr.js/lib/ipaddr.js
var require_ipaddr = __commonJS({
"../../node_modules/.pnpm/ipaddr.js@1.9.1/node_modules/ipaddr.js/lib/ipaddr.js"(exports, module) {
(function() {
var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex;
ipaddr = {};
root = this;
if (typeof module !== "undefined" && module !== null && module.exports) {
module.exports = ipaddr;
} else {
root["ipaddr"] = ipaddr;
}
matchCIDR = /* @__PURE__ */ __name(function(first, second, partSize, cidrBits) {
var part, shift;
if (first.length !== second.length) {
throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
}
part = 0;
while (cidrBits > 0) {
shift = partSize - cidrBits;
if (shift < 0) {
shift = 0;
}
if (first[part] >> shift !== second[part] >> shift) {
return false;
}
cidrBits -= partSize;
part += 1;
}
return true;
}, "matchCIDR");
ipaddr.subnetMatch = function(address, rangeList, defaultName) {
var k, len, rangeName, rangeSubnets, subnet;
if (defaultName == null) {
defaultName = "unicast";
}
for (rangeName in rangeList) {
rangeSubnets = rangeList[rangeName];
if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
rangeSubnets = [rangeSubnets];
}
for (k = 0, len = rangeSubnets.length; k < len; k++) {
subnet = rangeSubnets[k];
if (address.kind() === subnet[0].kind()) {
if (address.match.apply(address, subnet)) {
return rangeName;
}
}
}
}
return defaultName;
};
ipaddr.IPv4 = (function() {
function IPv4(octets) {
var k, len, octet;
if (octets.length !== 4) {
throw new Error("ipaddr: ipv4 octet count should be 4");
}
for (k = 0, len = octets.length; k < len; k++) {
octet = octets[k];
if (!(0 <= octet && octet <= 255)) {
throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
}
}
this.octets = octets;
}
__name(IPv4, "IPv4");
IPv4.prototype.kind = function() {
return "ipv4";
};
IPv4.prototype.toString = function() {
return this.octets.join(".");
};
IPv4.prototype.toNormalizedString = function() {
return this.toString();
};
IPv4.prototype.toByteArray = function() {
return this.octets.slice(0);
};
IPv4.prototype.match = function(other, cidrRange) {
var ref;
if (cidrRange === void 0) {
ref = other, other = ref[0], cidrRange = ref[1];
}
if (other.kind() !== "ipv4") {
throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
}
return matchCIDR(this.octets, other.octets, 8, cidrRange);
};
IPv4.prototype.SpecialRanges = {
unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
multicast: [[new IPv4([224, 0, 0, 0]), 4]],
linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
loopback: [[new IPv4([127, 0, 0, 0]), 8]],
carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]],
"private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
};
IPv4.prototype.range = function() {
return ipaddr.subnetMatch(this, this.SpecialRanges);
};
IPv4.prototype.toIPv4MappedAddress = function() {
return ipaddr.IPv6.parse("::ffff:" + this.toString());
};
IPv4.prototype.prefixLengthFromSubnetMask = function() {
var cidr, i, k, octet, stop, zeros, zerotable;
zerotable = {
0: 8,
128: 7,
192: 6,
224: 5,
240: 4,
248: 3,
252: 2,
254: 1,
255: 0
};
cidr = 0;
stop = false;
for (i = k = 3; k >= 0; i = k += -1) {
octet = this.octets[i];
if (octet in zerotable) {
zeros = zerotable[octet];
if (stop && zeros !== 0) {
return null;
}
if (zeros !== 8) {
stop = true;
}
cidr += zeros;
} else {
return null;
}
}
return 32 - cidr;
};
return IPv4;
})();
ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
ipv4Regexes = {
fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"),
longValue: new RegExp("^" + ipv4Part + "$", "i")
};
ipaddr.IPv4.parser = function(string) {
var match, parseIntAuto, part, shift, value;
parseIntAuto = /* @__PURE__ */ __name(function(string2) {
if (string2[0] === "0" && string2[1] !== "x") {
return parseInt(string2, 8);
} else {
return parseInt(string2);
}
}, "parseIntAuto");
if (match = string.match(ipv4Regexes.fourOctet)) {
return (function() {
var k, len, ref, results;
ref = match.slice(1, 6);
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(parseIntAuto(part));
}
return results;
})();
} else if (match = string.match(ipv4Regexes.longValue)) {
value = parseIntAuto(match[1]);
if (value > 4294967295 || value < 0) {
throw new Error("ipaddr: address outside defined range");
}
return (function() {
var k, results;
results = [];
for (shift = k = 0; k <= 24; shift = k += 8) {
results.push(value >> shift & 255);
}
return results;
})().reverse();
} else {
return null;
}
};
ipaddr.IPv6 = (function() {
function IPv6(parts, zoneId) {
var i, k, l, len, part, ref;
if (parts.length === 16) {
this.parts = [];
for (i = k = 0; k <= 14; i = k += 2) {
this.parts.push(parts[i] << 8 | parts[i + 1]);
}
} else if (parts.length === 8) {
this.parts = parts;
} else {
throw new Error("ipaddr: ipv6 part count should be 8 or 16");
}
ref = this.parts;
for (l = 0, len = ref.length; l < len; l++) {
part = ref[l];
if (!(0 <= part && part <= 65535)) {
throw new Error("ipaddr: ipv6 part should fit in 16 bits");
}
}
if (zoneId) {
this.zoneId = zoneId;
}
}
__name(IPv6, "IPv6");
IPv6.prototype.kind = function() {
return "ipv6";
};
IPv6.prototype.toString = function() {
return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::");
};
IPv6.prototype.toRFC5952String = function() {
var bestMatchIndex, bestMatchLength, match, regex, string;
regex = /((^|:)(0(:|$)){2,})/g;
string = this.toNormalizedString();
bestMatchIndex = 0;
bestMatchLength = -1;
while (match = regex.exec(string)) {
if (match[0].length > bestMatchLength) {
bestMatchIndex = match.index;
bestMatchLength = match[0].length;
}
}
if (bestMatchLength < 0) {
return string;
}
return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength);
};
IPv6.prototype.toByteArray = function() {
var bytes, k, len, part, ref;
bytes = [];
ref = this.parts;
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
bytes.push(part >> 8);
bytes.push(part & 255);
}
return bytes;
};
IPv6.prototype.toNormalizedString = function() {
var addr, part, suffix;
addr = (function() {
var k, len, ref, results;
ref = this.parts;
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(part.toString(16));
}
return results;
}).call(this).join(":");
suffix = "";
if (this.zoneId) {
suffix = "%" + this.zoneId;
}
return addr + suffix;
};
IPv6.prototype.toFixedLengthString = function() {
var addr, part, suffix;
addr = (function() {
var k, len, ref, results;
ref = this.parts;
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(part.toString(16).padStart(4, "0"));
}
return results;
}).call(this).join(":");
suffix = "";
if (this.zoneId) {
suffix = "%" + this.zoneId;
}
return addr + suffix;
};
IPv6.prototype.match = function(other, cidrRange) {
var ref;
if (cidrRange === void 0) {
ref = other, other = ref[0], cidrRange = ref[1];
}
if (other.kind() !== "ipv6") {
throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
}
return matchCIDR(this.parts, other.parts, 16, cidrRange);
};
IPv6.prototype.SpecialRanges = {
unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10],
multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8],
loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7],
ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96],
rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96],
rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96],
"6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16],
teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32],
reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]]
};
IPv6.prototype.range = function() {
return ipaddr.subnetMatch(this, this.SpecialRanges);
};
IPv6.prototype.isIPv4MappedAddress = function() {
return this.range() === "ipv4Mapped";
};
IPv6.prototype.toIPv4Address = function() {
var high, low, ref;
if (!this.isIPv4MappedAddress()) {
throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
}
ref = this.parts.slice(-2), high = ref[0], low = ref[1];
return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]);
};
IPv6.prototype.prefixLengthFromSubnetMask = function() {
var cidr, i, k, part, stop, zeros, zerotable;
zerotable = {
0: 16,
32768: 15,
49152: 14,
57344: 13,
61440: 12,
63488: 11,
64512: 10,
65024: 9,
65280: 8,
65408: 7,
65472: 6,
65504: 5,
65520: 4,
65528: 3,
65532: 2,
65534: 1,
65535: 0
};
cidr = 0;
stop = false;
for (i = k = 7; k >= 0; i = k += -1) {
part = this.parts[i];
if (part in zerotable) {
zeros = zerotable[part];
if (stop && zeros !== 0) {
return null;
}
if (zeros !== 16) {
stop = true;
}
cidr += zeros;
} else {
return null;
}
}
return 128 - cidr;
};
return IPv6;
})();
ipv6Part = "(?:[0-9a-f]+::?)+";
zoneIndex = "%[0-9a-z]{1,}";
ipv6Regexes = {
zoneIndex: new RegExp(zoneIndex, "i"),
"native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"),
transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i")
};
expandIPv6 = /* @__PURE__ */ __name(function(string, parts) {
var colonCount, lastColon, part, replacement, replacementCount, zoneId;
if (string.indexOf("::") !== string.lastIndexOf("::")) {
return null;
}
zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0];
if (zoneId) {
zoneId = zoneId.substring(1);
string = string.replace(/%.+$/, "");
}
colonCount = 0;
lastColon = -1;
while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) {
colonCount++;
}
if (string.substr(0, 2) === "::") {
colonCount--;
}
if (string.substr(-2, 2) === "::") {
colonCount--;
}
if (colonCount > parts) {
return null;
}
replacementCount = parts - colonCount;
replacement = ":";
while (replacementCount--) {
replacement += "0:";
}
string = string.replace("::", replacement);
if (string[0] === ":") {
string = string.slice(1);
}
if (string[string.length - 1] === ":") {
string = string.slice(0, -1);
}
parts = (function() {
var k, len, ref, results;
ref = string.split(":");
results = [];
for (k = 0, len = ref.length; k < len; k++) {
part = ref[k];
results.push(parseInt(part, 16));
}
return results;
})();
return {
parts,
zoneId
};
}, "expandIPv6");
ipaddr.IPv6.parser = function(string) {
var addr, k, len, match, octet, octets, zoneId;
if (ipv6Regexes["native"].test(string)) {
return expandIPv6(string, 8);
} else if (match = string.match(ipv6Regexes["transitional"])) {
zoneId = match[6] || "";
addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6);
if (addr.parts) {
octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
for (k = 0, len = octets.length; k < len; k++) {
octet = octets[k];
if (!(0 <= octet && octet <= 255)) {
return null;
}
}
addr.parts.push(octets[0] << 8 | octets[1]);
addr.parts.push(octets[2] << 8 | octets[3]);
return {
parts: addr.parts,
zoneId: addr.zoneId
};
}
}
return null;
};
ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) {
return this.parser(string) !== null;
};
ipaddr.IPv4.isValid = function(string) {
var e;
try {
new this(this.parser(string));
return true;
} catch (error1) {
e = error1;
return false;
}
};
ipaddr.IPv4.isValidFourPartDecimal = function(string) {
if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) {
return true;
} else {
return false;
}
};
ipaddr.IPv6.isValid = function(string) {
var addr, e;
if (typeof string === "string" && string.indexOf(":") === -1) {
return false;
}
try {
addr = this.parser(string);
new this(addr.parts, addr.zoneId);
return true;
} catch (error1) {
e = error1;
return false;
}
};
ipaddr.IPv4.parse = function(string) {
var parts;
parts = this.parser(string);
if (parts === null) {
throw new Error("ipaddr: string is not formatted like ip address");
}
return new this(parts);
};
ipaddr.IPv6.parse = function(string) {
var addr;
addr = this.parser(string);
if (addr.parts === null) {
throw new Error("ipaddr: string is not formatted like ip address");
}
return new this(addr.parts, addr.zoneId);
};
ipaddr.IPv4.parseCIDR = function(string) {
var maskLength, match, parsed;
if (match = string.match(/^(.+)\/(\d+)$/)) {
maskLength = parseInt(match[2]);
if (maskLength >= 0 && maskLength <= 32) {
parsed = [this.parse(match[1]), maskLength];
Object.defineProperty(parsed, "toString", {
value: /* @__PURE__ */ __name(function() {
return this.join("/");
}, "value")
});
return parsed;
}
}
throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range");
};
ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) {
var filledOctetCount, j, octets;
prefix = parseInt(prefix);
if (prefix < 0 || prefix > 32) {
throw new Error("ipaddr: invalid IPv4 prefix length");
}
octets = [0, 0, 0, 0];
j = 0;
filledOctetCount = Math.floor(prefix / 8);
while (j < filledOctetCount) {
octets[j] = 255;
j++;
}
if (filledOctetCount < 4) {
octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8;
}
return new this(octets);
};
ipaddr.IPv4.broadcastAddressFromCIDR = function(string) {
var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
try {
cidr = this.parseCIDR(string);
ipInterfaceOctets = cidr[0].toByteArray();
subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
octets = [];
i = 0;
while (i < 4) {
octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255);
i++;
}
return new this(octets);
} catch (error1) {
error = error1;
throw new Error("ipaddr: the address does not have IPv4 CIDR format");
}
};
ipaddr.IPv4.networkAddressFromCIDR = function(string) {
var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
try {
cidr = this.parseCIDR(string);
ipInterfaceOctets = cidr[0].toByteArray();
subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
octets = [];
i = 0;
while (i < 4) {
octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10));
i++;
}
return new this(octets);
} catch (error1) {
error = error1;
throw new Error("ipaddr: the address does not have IPv4 CIDR format");
}
};
ipaddr.IPv6.parseCIDR = function(string) {
var maskLength, match, parsed;
if (match = string.match(/^(.+)\/(\d+)$/)) {
maskLength = parseInt(match[2]);
if (maskLength >= 0 && maskLength <= 128) {
parsed = [this.parse(match[1]), maskLength];
Object.defineProperty(parsed, "toString", {
value: /* @__PURE__ */ __name(function() {
return this.join("/");
}, "value")
});
return parsed;
}
}
throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range");
};
ipaddr.isValid = function(string) {
return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string);
};
ipaddr.parse = function(string) {
if (ipaddr.IPv6.isValid(string)) {
return ipaddr.IPv6.parse(string);
} else if (ipaddr.IPv4.isValid(string)) {
return ipaddr.IPv4.parse(string);
} else {
throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
}
};
ipaddr.parseCIDR = function(string) {
var e;
try {
return ipaddr.IPv6.parseCIDR(string);
} catch (error1) {
e = error1;
try {
return ipaddr.IPv4.parseCIDR(string);
} catch (error12) {
e = error12;
throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format");
}
}
};
ipaddr.fromByteArray = function(bytes) {
var length;
length = bytes.length;
if (length === 4) {
return new ipaddr.IPv4(bytes);
} else if (length === 16) {
return new ipaddr.IPv6(bytes);
} else {
throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address");
}
};
ipaddr.process = function(string) {
var addr;
addr = this.parse(string);
if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) {
return addr.toIPv4Address();
} else {
return addr;
}
};
}).call(exports);
}
});
// ../../node_modules/.pnpm/proxy-addr@2.0.8/node_modules/proxy-addr/index.js
var require_proxy_addr = __commonJS({
"../../node_modules/.pnpm/proxy-addr@2.0.8/node_modules/proxy-addr/index.js"(exports, module) {
"use strict";
module.exports = proxyaddr;
module.exports.all = alladdrs;
module.exports.compile = compile;
var forwarded = require_forwarded();
var ipaddr = require_ipaddr();
var DIGIT_REGEXP = /^[0-9]+$/;
var isip = ipaddr.isValid;
var parseip = ipaddr.parse;
var IP_RANGES = {
linklocal: ["169.254.0.0/16", "fe80::/10"],
loopback: ["127.0.0.1/8", "::1/128"],
uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"]
};
function alladdrs(req, trust) {
var addrs = forwarded(req);
if (!trust) {
return addrs;
}
if (typeof trust !== "function") {
trust = compile(trust);
}
for (var i = 0; i < addrs.length - 1; i++) {
if (trust(addrs[i], i)) continue;
addrs.length = i + 1;
}
return addrs;
}
__name(alladdrs, "alladdrs");
function compile(val) {
if (!val) {
throw new TypeError("argument is required");
}
var trust;
if (typeof val === "string") {
trust = [val];
} else if (Array.isArray(val)) {
trust = val.slice();
} else {
throw new TypeError("unsupported trust argument");
}
for (var i = 0; i < trust.length; i++) {
val = trust[i];
if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) {
continue;
}
val = IP_RANGES[val];
trust.splice.apply(trust, [i, 1].concat(val));
i += val.length - 1;
}
return compileTrust(compileRangeSubnets(trust));
}
__name(compile, "compile");
function compileRangeSubnets(arr) {
var rangeSubnets = new Array(arr.length);
for (var i = 0; i < arr.length; i++) {
rangeSubnets[i] = parseipNotation(arr[i]);
}
return rangeSubnets;
}
__name(compileRangeSubnets, "compileRangeSubnets");
function compileTrust(rangeSubnets) {
var len = rangeSubnets.length;
return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets);
}
__name(compileTrust, "compileTrust");
function parseipNotation(note) {
var pos = note.lastIndexOf("/");
var str = pos !== -1 ? note.substring(0, pos) : note;
if (!isip(str)) {
throw new TypeError("invalid IP address: " + str);
}
var ip = parseip(str);
if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
ip = ip.toIPv4Address();
}
var max = ip.kind() === "ipv6" ? 128 : 32;
var range = pos !== -1 ? note.substring(pos + 1, note.length) : null;
if (range === null) {
range = max;
} else if (DIGIT_REGEXP.test(range)) {
range = parseInt(range, 10);
} else if (ip.kind() === "ipv4" && isip(range)) {
range = parseNetmask(range);
} else {
range = null;
}
if (range <= 0 || range > max) {
throw new TypeError("invalid range on address: " + note);
}
return [ip, range];
}
__name(parseipNotation, "parseipNotation");
function parseNetmask(netmask) {
var ip = parseip(netmask);
var kind = ip.kind();
return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null;
}
__name(parseNetmask, "parseNetmask");
function proxyaddr(req, trust) {
if (!req) {
throw new TypeError("req argument is required");
}
if (!trust) {
throw new TypeError("trust argument is required");
}
var addrs = alladdrs(req, trust);
var addr = addrs[addrs.length - 1];
return addr;
}
__name(proxyaddr, "proxyaddr");
function trustNone() {
return false;
}
__name(trustNone, "trustNone");
function trustMulti(subnets) {
return /* @__PURE__ */ __name(function trust(addr) {
if (!isip(addr)) return false;
var ip = parseip(addr);
if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
ip = ip.toIPv4Address();
}
var ipconv;
var kind = ip.kind();
for (var i = 0; i < subnets.length; i++) {
var subnet = subnets[i];
var subnetip = subnet[0];
var subnetkind = subnetip.kind();
var subnetrange = subnet[1];
var trusted = ip;
if (kind !== subnetkind) {
if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) {
continue;
}
if (subnetkind !== "ipv4" && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
continue;
}
if (!ipconv) {
ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
}
trusted = ipconv;
} else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) {
continue;
}
if (trusted.match(subnetip, subnetrange)) {
return true;
}
}
return false;
}, "trust");
}
__name(trustMulti, "trustMulti");
function trustSingle(subnet) {
var subnetip = subnet[0];
var subnetkind = subnetip.kind();
var subnetisipv4 = subnetkind === "ipv4";
var subnetrange = subnet[1];
return /* @__PURE__ */ __name(function trust(addr) {
if (!isip(addr)) return false;
var ip = parseip(addr);
if (ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
ip = ip.toIPv4Address();
}
var kind = ip.kind();
if (kind !== subnetkind) {
if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
return false;
}
if (!subnetisipv4 && !(subnetrange >= 96 && subnetip.isIPv4MappedAddress())) {
return false;
}
ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
} else if (kind === "ipv6" && subnetip.isIPv4MappedAddress()) {
return false;
}
return ip.match(subnetip, subnetrange);
}, "trust");
}
__name(trustSingle, "trustSingle");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/utils.js
var require_utils3 = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/utils.js"(exports) {
"use strict";
var { METHODS } = __require("node:http");
var contentType = require_dist();
var etag = require_etag();
var mime = require_mime_types();
var proxyaddr = require_proxy_addr();
var qs = require_lib4();
var querystring = __require("node:querystring");
var { Buffer: Buffer2 } = __require("node:buffer");
exports.methods = METHODS.map((method) => method.toLowerCase());
exports.etag = createETagGenerator({ weak: false });
exports.wetag = createETagGenerator({ weak: true });
exports.normalizeType = function(type) {
return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type) || "application/octet-stream", params: {} };
};
exports.normalizeTypes = function(types) {
return types.map(exports.normalizeType);
};
function acceptParams(str) {
var length = str.length;
var colonIndex = str.indexOf(";");
var index = colonIndex === -1 ? length : colonIndex;
var ret = { value: str.slice(0, index).trim(), quality: 1, params: {} };
while (index < length) {
var splitIndex = str.indexOf("=", index);
if (splitIndex === -1) break;
var colonIndex = str.indexOf(";", index);
var endIndex = colonIndex === -1 ? length : colonIndex;
if (splitIndex > endIndex) {
index = str.lastIndexOf(";", splitIndex - 1) + 1;
continue;
}
var key = str.slice(index, splitIndex).trim();
var value = str.slice(splitIndex + 1, endIndex).trim();
if (key === "q") {
ret.quality = parseFloat(value);
} else {
ret.params[key] = value;
}
index = endIndex + 1;
}
return ret;
}
__name(acceptParams, "acceptParams");
exports.compileETag = function(val) {
var fn;
if (typeof val === "function") {
return val;
}
switch (val) {
case true:
case "weak":
fn = exports.wetag;
break;
case false:
break;
case "strong":
fn = exports.etag;
break;
default:
throw new TypeError("unknown value for etag function: " + val);
}
return fn;
};
exports.compileQueryParser = /* @__PURE__ */ __name(function compileQueryParser(val) {
var fn;
if (typeof val === "function") {
return val;
}
switch (val) {
case true:
case "simple":
fn = querystring.parse;
break;
case false:
break;
case "extended":
fn = parseExtendedQueryString;
break;
default:
throw new TypeError("unknown value for query parser function: " + val);
}
return fn;
}, "compileQueryParser");
exports.compileTrust = function(val) {
if (typeof val === "function") return val;
if (val === true) {
return function() {
return true;
};
}
if (typeof val === "number") {
return function(a, i) {
return i < val;
};
}
if (typeof val === "string") {
val = val.split(",").map(function(v) {
return v.trim();
});
}
return proxyaddr.compile(val || []);
};
exports.setCharset = /* @__PURE__ */ __name(function setCharset(type, charset) {
if (!type || !charset) {
return type;
}
var parsed = contentType.parse(type);
parsed.parameters.charset = charset;
return contentType.format(parsed);
}, "setCharset");
function createETagGenerator(options) {
return /* @__PURE__ */ __name(function generateETag(body, encoding) {
var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body;
return etag(buf, options);
}, "generateETag");
}
__name(createETagGenerator, "createETagGenerator");
function parseExtendedQueryString(str) {
return qs.parse(str, {
allowPrototypes: true
});
}
__name(parseExtendedQueryString, "parseExtendedQueryString");
}
});
// ../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js
var require_wrappy = __commonJS({
"../../node_modules/.pnpm/wrappy@1.0.2/node_modules/wrappy/wrappy.js"(exports, module) {
module.exports = wrappy;
function wrappy(fn, cb) {
if (fn && cb) return wrappy(fn)(cb);
if (typeof fn !== "function")
throw new TypeError("need wrapper function");
Object.keys(fn).forEach(function(k) {
wrapper[k] = fn[k];
});
return wrapper;
function wrapper() {
var args = new Array(arguments.length);
for (var i = 0; i < args.length; i++) {
args[i] = arguments[i];
}
var ret = fn.apply(this, args);
var cb2 = args[args.length - 1];
if (typeof ret === "function" && ret !== cb2) {
Object.keys(cb2).forEach(function(k) {
ret[k] = cb2[k];
});
}
return ret;
}
__name(wrapper, "wrapper");
}
__name(wrappy, "wrappy");
}
});
// ../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js
var require_once = __commonJS({
"../../node_modules/.pnpm/once@1.4.0/node_modules/once/once.js"(exports, module) {
var wrappy = require_wrappy();
module.exports = wrappy(once);
module.exports.strict = wrappy(onceStrict);
once.proto = once(function() {
Object.defineProperty(Function.prototype, "once", {
value: /* @__PURE__ */ __name(function() {
return once(this);
}, "value"),
configurable: true
});
Object.defineProperty(Function.prototype, "onceStrict", {
value: /* @__PURE__ */ __name(function() {
return onceStrict(this);
}, "value"),
configurable: true
});
});
function once(fn) {
var f = /* @__PURE__ */ __name(function() {
if (f.called) return f.value;
f.called = true;
return f.value = fn.apply(this, arguments);
}, "f");
f.called = false;
return f;
}
__name(once, "once");
function onceStrict(fn) {
var f = /* @__PURE__ */ __name(function() {
if (f.called)
throw new Error(f.onceError);
f.called = true;
return f.value = fn.apply(this, arguments);
}, "f");
var name = fn.name || "Function wrapped with `once`";
f.onceError = name + " shouldn't be called more than once";
f.called = false;
return f;
}
__name(onceStrict, "onceStrict");
}
});
// ../../node_modules/.pnpm/is-promise@4.0.0/node_modules/is-promise/index.js
var require_is_promise = __commonJS({
"../../node_modules/.pnpm/is-promise@4.0.0/node_modules/is-promise/index.js"(exports, module) {
module.exports = isPromise;
module.exports.default = isPromise;
function isPromise(obj) {
return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
}
__name(isPromise, "isPromise");
}
});
// ../../node_modules/.pnpm/path-to-regexp@8.4.2/node_modules/path-to-regexp/dist/index.js
var require_dist2 = __commonJS({
"../../node_modules/.pnpm/path-to-regexp@8.4.2/node_modules/path-to-regexp/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PathError = exports.TokenData = void 0;
exports.parse = parse;
exports.compile = compile;
exports.match = match;
exports.pathToRegexp = pathToRegexp7;
exports.stringify = stringify2;
var DEFAULT_DELIMITER = "/";
var NOOP_VALUE = /* @__PURE__ */ __name((value) => value, "NOOP_VALUE");
var ID_START = /^[$_\p{ID_Start}]$/u;
var ID_CONTINUE = /^[$\u200c\u200d\p{ID_Continue}]$/u;
var ID = /^[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*$/u;
function escapeText(str) {
return str.replace(/[{}()\[\]+?!:*\\]/g, "\\$&");
}
__name(escapeText, "escapeText");
function escape2(str) {
return str.replace(/[.+*?^${}()[\]|/\\]/g, "\\$&");
}
__name(escape2, "escape");
var TokenData = class {
static {
__name(this, "TokenData");
}
constructor(tokens, originalPath) {
this.tokens = tokens;
this.originalPath = originalPath;
}
};
exports.TokenData = TokenData;
var PathError = class extends TypeError {
static {
__name(this, "PathError");
}
constructor(message, originalPath) {
let text = message;
if (originalPath)
text += `: ${originalPath}`;
text += `; visit https://git.new/pathToRegexpError for info`;
super(text);
this.originalPath = originalPath;
}
};
exports.PathError = PathError;
function parse(str, options = {}) {
const { encodePath = NOOP_VALUE } = options;
const chars = [...str];
let index = 0;
function consumeUntil(end) {
const output = [];
let path = "";
function writePath() {
if (!path)
return;
output.push({
type: "text",
value: encodePath(path)
});
path = "";
}
__name(writePath, "writePath");
while (index < chars.length) {
const value = chars[index++];
if (value === end) {
writePath();
return output;
}
if (value === "\\") {
if (index === chars.length) {
throw new PathError(`Unexpected end after \\ at index ${index}`, str);
}
path += chars[index++];
continue;
}
if (value === ":" || value === "*") {
const type = value === ":" ? "param" : "wildcard";
let name = "";
if (ID_START.test(chars[index])) {
do {
name += chars[index++];
} while (ID_CONTINUE.test(chars[index]));
} else if (chars[index] === '"') {
let quoteStart = index;
while (index < chars.length) {
if (chars[++index] === '"') {
index++;
quoteStart = 0;
break;
}
if (chars[index] === "\\")
index++;
name += chars[index];
}
if (quoteStart) {
throw new PathError(`Unterminated quote at index ${quoteStart}`, str);
}
}
if (!name) {
throw new PathError(`Missing parameter name at index ${index}`, str);
}
writePath();
output.push({ type, name });
continue;
}
if (value === "{") {
writePath();
output.push({
type: "group",
tokens: consumeUntil("}")
});
continue;
}
if (value === "}" || value === "(" || value === ")" || value === "[" || value === "]" || value === "+" || value === "?" || value === "!") {
throw new PathError(`Unexpected ${value} at index ${index - 1}`, str);
}
path += value;
}
if (end) {
throw new PathError(`Unexpected end at index ${index}, expected ${end}`, str);
}
writePath();
return output;
}
__name(consumeUntil, "consumeUntil");
return new TokenData(consumeUntil(""), str);
}
__name(parse, "parse");
function compile(path, options = {}) {
const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
const data = typeof path === "object" ? path : parse(path, options);
const fn = tokensToFunction(data.tokens, delimiter, encode);
return /* @__PURE__ */ __name(function path2(params = {}) {
const missing = [];
const path3 = fn(params, missing);
if (missing.length) {
throw new TypeError(`Missing parameters: ${missing.join(", ")}`);
}
return path3;
}, "path");
}
__name(compile, "compile");
function tokensToFunction(tokens, delimiter, encode) {
const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));
return (data, missing) => {
let result = "";
for (const encoder of encoders) {
result += encoder(data, missing);
}
return result;
};
}
__name(tokensToFunction, "tokensToFunction");
function tokenToFunction(token, delimiter, encode) {
if (token.type === "text")
return () => token.value;
if (token.type === "group") {
const fn = tokensToFunction(token.tokens, delimiter, encode);
return (data, missing) => {
const len = missing.length;
const value = fn(data, missing);
if (missing.length === len)
return value;
missing.length = len;
return "";
};
}
const encodeValue = encode || NOOP_VALUE;
if (token.type === "wildcard" && encode !== false) {
return (data, missing) => {
const value = data[token.name];
if (value == null) {
missing.push(token.name);
return "";
}
if (!Array.isArray(value) || value.length === 0) {
throw new TypeError(`Expected "${token.name}" to be a non-empty array`);
}
let result = "";
for (let i = 0; i < value.length; i++) {
if (typeof value[i] !== "string") {
throw new TypeError(`Expected "${token.name}/${i}" to be a string`);
}
if (i > 0)
result += delimiter;
result += encodeValue(value[i]);
}
return result;
};
}
return (data, missing) => {
const value = data[token.name];
if (value == null) {
missing.push(token.name);
return "";
}
if (typeof value !== "string") {
throw new TypeError(`Expected "${token.name}" to be a string`);
}
return encodeValue(value);
};
}
__name(tokenToFunction, "tokenToFunction");
function match(path, options = {}) {
const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;
const { regexp, keys } = pathToRegexp7(path, options);
const decoders = keys.map((key) => {
if (decode === false)
return NOOP_VALUE;
if (key.type === "param")
return decode;
return (value) => value.split(delimiter).map(decode);
});
return /* @__PURE__ */ __name(function match2(input) {
const m = regexp.exec(input);
if (!m)
return false;
const path2 = m[0];
const params = /* @__PURE__ */ Object.create(null);
for (let i = 1; i < m.length; i++) {
if (m[i] === void 0)
continue;
const key = keys[i - 1];
const decoder = decoders[i - 1];
params[key.name] = decoder(m[i]);
}
return { path: path2, params };
}, "match");
}
__name(match, "match");
function pathToRegexp7(path, options = {}) {
const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true } = options;
const keys = [];
let source = "";
let combinations = 0;
function process2(path2) {
if (Array.isArray(path2)) {
for (const p of path2)
process2(p);
return;
}
const data = typeof path2 === "object" ? path2 : parse(path2, options);
flatten2(data.tokens, 0, [], (tokens) => {
if (combinations >= 256) {
throw new PathError("Too many path combinations", data.originalPath);
}
if (combinations > 0)
source += "|";
source += toRegExpSource(tokens, delimiter, keys, data.originalPath);
combinations++;
});
}
__name(process2, "process");
process2(path);
let pattern = `^(?:${source})`;
if (trailing)
pattern += "(?:" + escape2(delimiter) + "$)?";
pattern += end ? "$" : "(?=" + escape2(delimiter) + "|$)";
return { regexp: new RegExp(pattern, sensitive ? "" : "i"), keys };
}
__name(pathToRegexp7, "pathToRegexp");
function flatten2(tokens, index, result, callback) {
while (index < tokens.length) {
const token = tokens[index++];
if (token.type === "group") {
const len = result.length;
flatten2(token.tokens, 0, result, (seq) => flatten2(tokens, index, seq, callback));
result.length = len;
continue;
}
result.push(token);
}
callback(result);
}
__name(flatten2, "flatten");
function toRegExpSource(tokens, delimiter, keys, originalPath) {
let result = "";
let backtrack = "";
let wildcardBacktrack = "";
let prevCaptureType = 0;
let hasSegmentCapture = 0;
let index = 0;
function hasInSegment(index2, type) {
while (index2 < tokens.length) {
const token = tokens[index2++];
if (token.type === type)
return true;
if (token.type === "text") {
if (token.value.includes(delimiter))
break;
}
}
return false;
}
__name(hasInSegment, "hasInSegment");
function peekText(index2) {
let result2 = "";
while (index2 < tokens.length) {
const token = tokens[index2++];
if (token.type !== "text")
break;
result2 += token.value;
}
return result2;
}
__name(peekText, "peekText");
while (index < tokens.length) {
const token = tokens[index++];
if (token.type === "text") {
result += escape2(token.value);
backtrack += token.value;
if (prevCaptureType === 2)
wildcardBacktrack += token.value;
if (token.value.includes(delimiter))
hasSegmentCapture = 0;
continue;
}
if (token.type === "param" || token.type === "wildcard") {
if (prevCaptureType && !backtrack) {
throw new PathError(`Missing text before "${token.name}" ${token.type}`, originalPath);
}
if (token.type === "param") {
result += hasSegmentCapture & 2 ? `(${negate(delimiter, backtrack)}+)` : hasInSegment(index, "wildcard") ? `(${negate(delimiter, peekText(index))}+)` : hasSegmentCapture & 1 ? `(${negate(delimiter, backtrack)}+|${escape2(backtrack)})` : `(${negate(delimiter, "")}+)`;
hasSegmentCapture |= prevCaptureType = 1;
} else {
result += hasSegmentCapture & 2 ? `(${negate(backtrack, "")}+)` : wildcardBacktrack ? `(${negate(wildcardBacktrack, "")}+|${negate(delimiter, "")}+)` : `([^]+)`;
wildcardBacktrack = "";
hasSegmentCapture |= prevCaptureType = 2;
}
keys.push(token);
backtrack = "";
continue;
}
throw new TypeError(`Unknown token type: ${token.type}`);
}
return result;
}
__name(toRegExpSource, "toRegExpSource");
function negate(a, b) {
if (b.length > a.length)
return negate(b, a);
if (a === b)
b = "";
if (b.length > 1)
return `(?:(?!${escape2(a)}|${escape2(b)})[^])`;
if (a.length > 1)
return `(?:(?!${escape2(a)})[^${escape2(b)}])`;
return `[^${escape2(a + b)}]`;
}
__name(negate, "negate");
function stringifyTokens(tokens, index) {
let value = "";
while (index < tokens.length) {
const token = tokens[index++];
if (token.type === "text") {
value += escapeText(token.value);
continue;
}
if (token.type === "group") {
value += "{" + stringifyTokens(token.tokens, 0) + "}";
continue;
}
if (token.type === "param") {
value += ":" + stringifyName(token.name, tokens[index]);
continue;
}
if (token.type === "wildcard") {
value += "*" + stringifyName(token.name, tokens[index]);
continue;
}
throw new TypeError(`Unknown token type: ${token.type}`);
}
return value;
}
__name(stringifyTokens, "stringifyTokens");
function stringify2(data) {
return stringifyTokens(data.tokens, 0);
}
__name(stringify2, "stringify");
function stringifyName(name, next) {
if (!ID.test(name))
return JSON.stringify(name);
if ((next === null || next === void 0 ? void 0 : next.type) === "text" && ID_CONTINUE.test(next.value[0])) {
return JSON.stringify(name);
}
return name;
}
__name(stringifyName, "stringifyName");
}
});
// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/layer.js
var require_layer = __commonJS({
"../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/layer.js"(exports, module) {
"use strict";
var isPromise = require_is_promise();
var pathRegexp = require_dist2();
var debug = require_src()("router:layer");
var deprecate = require_depd()("router");
var TRAILING_SLASH_REGEXP = /\/+$/;
var MATCHING_GROUP_REGEXP = /\((?:\?<(.*?)>)?(?!\?)/g;
module.exports = Layer;
function Layer(path, options, fn) {
if (!(this instanceof Layer)) {
return new Layer(path, options, fn);
}
debug("new %o", path);
const opts = options || {};
this.handle = fn;
this.keys = [];
this.name = fn.name || "<anonymous>";
this.params = void 0;
this.path = void 0;
this.slash = path === "/" && opts.end === false;
function matcher(_path) {
if (_path instanceof RegExp) {
const keys = [];
let name = 0;
let m;
while (m = MATCHING_GROUP_REGEXP.exec(_path.source)) {
keys.push({
name: m[1] || name++,
offset: m.index
});
}
return /* @__PURE__ */ __name(function regexpMatcher(p) {
const match = _path.exec(p);
if (!match) {
return false;
}
const params = {};
for (let i = 1; i < match.length; i++) {
const key = keys[i - 1];
const prop = key.name;
const val = decodeParam(match[i]);
if (val !== void 0) {
params[prop] = val;
}
}
return {
params,
path: match[0]
};
}, "regexpMatcher");
}
return pathRegexp.match(opts.strict ? _path : loosen(_path), {
sensitive: opts.sensitive,
end: opts.end,
trailing: !opts.strict,
decode: decodeParam
});
}
__name(matcher, "matcher");
this.matchers = Array.isArray(path) ? path.map(matcher) : [matcher(path)];
}
__name(Layer, "Layer");
Layer.prototype.handleError = /* @__PURE__ */ __name(function handleError(error, req, res, next) {
const fn = this.handle;
if (fn.length !== 4) {
return next(error);
}
try {
const ret = fn(error, req, res, next);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error2) {
next(error2 || new Error("Rejected promise"));
});
}
} catch (err) {
next(err);
}
}, "handleError");
Layer.prototype.handleRequest = /* @__PURE__ */ __name(function handleRequest(req, res, next) {
const fn = this.handle;
if (fn.length > 3) {
return next();
}
try {
const ret = fn(req, res, next);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("handlers that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error) {
next(error || new Error("Rejected promise"));
});
}
} catch (err) {
next(err);
}
}, "handleRequest");
Layer.prototype.match = /* @__PURE__ */ __name(function match(path) {
let match2;
if (path != null) {
if (this.slash) {
this.params = {};
this.path = "";
return true;
}
let i = 0;
while (!match2 && i < this.matchers.length) {
match2 = this.matchers[i](path);
i++;
}
}
if (!match2) {
this.params = void 0;
this.path = void 0;
return false;
}
this.params = match2.params;
this.path = match2.path;
this.keys = Object.keys(match2.params);
return true;
}, "match");
function decodeParam(val) {
if (typeof val !== "string" || val.length === 0) {
return val;
}
try {
return decodeURIComponent(val);
} catch (err) {
if (err instanceof URIError) {
err.message = "Failed to decode param '" + val + "'";
err.status = 400;
}
throw err;
}
}
__name(decodeParam, "decodeParam");
function loosen(path) {
if (path instanceof RegExp || path === "/") {
return path;
}
return Array.isArray(path) ? path.map(function(p) {
return loosen(p);
}) : String(path).replace(TRAILING_SLASH_REGEXP, "");
}
__name(loosen, "loosen");
}
});
// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/route.js
var require_route = __commonJS({
"../../node_modules/.pnpm/router@2.2.0/node_modules/router/lib/route.js"(exports, module) {
"use strict";
var debug = require_src()("router:route");
var Layer = require_layer();
var { METHODS } = __require("node:http");
var slice = Array.prototype.slice;
var flatten2 = Array.prototype.flat;
var methods = METHODS.map((method) => method.toLowerCase());
module.exports = Route;
function Route(path) {
debug("new %o", path);
this.path = path;
this.stack = [];
this.methods = /* @__PURE__ */ Object.create(null);
}
__name(Route, "Route");
Route.prototype._handlesMethod = /* @__PURE__ */ __name(function _handlesMethod(method) {
if (this.methods._all) {
return true;
}
let name = typeof method === "string" ? method.toLowerCase() : method;
if (name === "head" && !this.methods.head) {
name = "get";
}
return Boolean(this.methods[name]);
}, "_handlesMethod");
Route.prototype._methods = /* @__PURE__ */ __name(function _methods() {
const methods2 = Object.keys(this.methods);
if (this.methods.get && !this.methods.head) {
methods2.push("head");
}
for (let i = 0; i < methods2.length; i++) {
methods2[i] = methods2[i].toUpperCase();
}
return methods2;
}, "_methods");
Route.prototype.dispatch = /* @__PURE__ */ __name(function dispatch(req, res, done) {
let idx = 0;
const stack = this.stack;
let sync = 0;
if (stack.length === 0) {
return done();
}
let method = typeof req.method === "string" ? req.method.toLowerCase() : req.method;
if (method === "head" && !this.methods.head) {
method = "get";
}
req.route = this;
next();
function next(err) {
if (err && err === "route") {
return done();
}
if (err && err === "router") {
return done(err);
}
if (idx >= stack.length) {
return done(err);
}
if (++sync > 100) {
return setImmediate(next, err);
}
let layer;
let match;
while (match !== true && idx < stack.length) {
layer = stack[idx++];
match = !layer.method || layer.method === method;
}
if (match !== true) {
return done(err);
}
if (err) {
layer.handleError(err, req, res, next);
} else {
layer.handleRequest(req, res, next);
}
sync = 0;
}
__name(next, "next");
}, "dispatch");
Route.prototype.all = /* @__PURE__ */ __name(function all(handler) {
const callbacks = flatten2.call(slice.call(arguments), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
const layer = Layer("/", {}, fn);
layer.method = void 0;
this.methods._all = true;
this.stack.push(layer);
}
return this;
}, "all");
methods.forEach(function(method) {
Route.prototype[method] = function(handler) {
const callbacks = flatten2.call(slice.call(arguments), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
debug("%s %s", method, this.path);
const layer = Layer("/", {}, fn);
layer.method = method;
this.methods[method] = true;
this.stack.push(layer);
}
return this;
};
});
}
});
// ../../node_modules/.pnpm/router@2.2.0/node_modules/router/index.js
var require_router = __commonJS({
"../../node_modules/.pnpm/router@2.2.0/node_modules/router/index.js"(exports, module) {
"use strict";
var isPromise = require_is_promise();
var Layer = require_layer();
var { METHODS } = __require("node:http");
var parseUrl = require_parseurl();
var Route = require_route();
var debug = require_src()("router");
var deprecate = require_depd()("router");
var slice = Array.prototype.slice;
var flatten2 = Array.prototype.flat;
var methods = METHODS.map((method) => method.toLowerCase());
module.exports = Router;
module.exports.Route = Route;
function Router(options) {
if (!(this instanceof Router)) {
return new Router(options);
}
const opts = options || {};
function router(req, res, next) {
router.handle(req, res, next);
}
__name(router, "router");
Object.setPrototypeOf(router, this);
router.caseSensitive = opts.caseSensitive;
router.mergeParams = opts.mergeParams;
router.params = {};
router.strict = opts.strict;
router.stack = [];
return router;
}
__name(Router, "Router");
Router.prototype = function() {
};
Router.prototype.param = /* @__PURE__ */ __name(function param(name, fn) {
if (!name) {
throw new TypeError("argument name is required");
}
if (typeof name !== "string") {
throw new TypeError("argument name must be a string");
}
if (!fn) {
throw new TypeError("argument fn is required");
}
if (typeof fn !== "function") {
throw new TypeError("argument fn must be a function");
}
let params = this.params[name];
if (!params) {
params = this.params[name] = [];
}
params.push(fn);
return this;
}, "param");
Router.prototype.handle = /* @__PURE__ */ __name(function handle(req, res, callback) {
if (!callback) {
throw new TypeError("argument callback is required");
}
debug("dispatching %s %s", req.method, req.url);
let idx = 0;
let methods2;
const protohost = getProtohost(req.url) || "";
let removed = "";
const self = this;
let slashAdded = false;
let sync = 0;
const paramcalled = {};
const stack = this.stack;
const parentParams = req.params;
const parentUrl = req.baseUrl || "";
let done = restore(callback, req, "baseUrl", "next", "params");
req.next = next;
if (req.method === "OPTIONS") {
methods2 = [];
done = wrap(done, generateOptionsResponder(res, methods2));
}
req.baseUrl = parentUrl;
req.originalUrl = req.originalUrl || req.url;
next();
function next(err) {
let layerError = err === "route" ? null : err;
if (slashAdded) {
req.url = req.url.slice(1);
slashAdded = false;
}
if (removed.length !== 0) {
req.baseUrl = parentUrl;
req.url = protohost + removed + req.url.slice(protohost.length);
removed = "";
}
if (layerError === "router") {
setImmediate(done, null);
return;
}
if (idx >= stack.length) {
setImmediate(done, layerError);
return;
}
if (++sync > 100) {
return setImmediate(next, err);
}
const path = getPathname(req);
if (path == null) {
return done(layerError);
}
let layer;
let match;
let route;
while (match !== true && idx < stack.length) {
layer = stack[idx++];
match = matchLayer(layer, path);
route = layer.route;
if (typeof match !== "boolean") {
layerError = layerError || match;
}
if (match !== true) {
continue;
}
if (!route) {
continue;
}
if (layerError) {
match = false;
continue;
}
const method = req.method;
const hasMethod = route._handlesMethod(method);
if (!hasMethod && method === "OPTIONS" && methods2) {
methods2.push.apply(methods2, route._methods());
}
if (!hasMethod && method !== "HEAD") {
match = false;
}
}
if (match !== true) {
return done(layerError);
}
if (route) {
req.route = route;
}
req.params = self.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
const layerPath = layer.path;
processParams(self.params, layer, paramcalled, req, res, function(err2) {
if (err2) {
next(layerError || err2);
} else if (route) {
layer.handleRequest(req, res, next);
} else {
trimPrefix(layer, layerError, layerPath, path);
}
sync = 0;
});
}
__name(next, "next");
function trimPrefix(layer, layerError, layerPath, path) {
if (layerPath.length !== 0) {
if (layerPath !== path.substring(0, layerPath.length)) {
next(layerError);
return;
}
const c = path[layerPath.length];
if (c && c !== "/") {
next(layerError);
return;
}
debug("trim prefix (%s) from url %s", layerPath, req.url);
removed = layerPath;
req.url = protohost + req.url.slice(protohost.length + removed.length);
if (!protohost && req.url[0] !== "/") {
req.url = "/" + req.url;
slashAdded = true;
}
req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
}
debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
if (layerError) {
layer.handleError(layerError, req, res, next);
} else {
layer.handleRequest(req, res, next);
}
}
__name(trimPrefix, "trimPrefix");
}, "handle");
Router.prototype.use = /* @__PURE__ */ __name(function use(handler) {
let offset = 0;
let path = "/";
if (typeof handler !== "function") {
let arg = handler;
while (Array.isArray(arg) && arg.length !== 0) {
arg = arg[0];
}
if (typeof arg !== "function") {
offset = 1;
path = handler;
}
}
const callbacks = flatten2.call(slice.call(arguments, offset), Infinity);
if (callbacks.length === 0) {
throw new TypeError("argument handler is required");
}
for (let i = 0; i < callbacks.length; i++) {
const fn = callbacks[i];
if (typeof fn !== "function") {
throw new TypeError("argument handler must be a function");
}
debug("use %o %s", path, fn.name || "<anonymous>");
const layer = new Layer(path, {
sensitive: this.caseSensitive,
strict: false,
end: false
}, fn);
layer.route = void 0;
this.stack.push(layer);
}
return this;
}, "use");
Router.prototype.route = /* @__PURE__ */ __name(function route(path) {
const route2 = new Route(path);
const layer = new Layer(path, {
sensitive: this.caseSensitive,
strict: this.strict,
end: true
}, handle);
function handle(req, res, next) {
route2.dispatch(req, res, next);
}
__name(handle, "handle");
layer.route = route2;
this.stack.push(layer);
return route2;
}, "route");
methods.concat("all").forEach(function(method) {
Router.prototype[method] = function(path) {
const route = this.route(path);
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});
function generateOptionsResponder(res, methods2) {
return /* @__PURE__ */ __name(function onDone(fn, err) {
if (err || methods2.length === 0) {
return fn(err);
}
trySendOptionsResponse(res, methods2, fn);
}, "onDone");
}
__name(generateOptionsResponder, "generateOptionsResponder");
function getPathname(req) {
try {
return parseUrl(req).pathname;
} catch (err) {
return void 0;
}
}
__name(getPathname, "getPathname");
function getProtohost(url) {
if (typeof url !== "string" || url.length === 0 || url[0] === "/") {
return void 0;
}
const searchIndex = url.indexOf("?");
const pathLength = searchIndex !== -1 ? searchIndex : url.length;
const fqdnIndex = url.substring(0, pathLength).indexOf("://");
return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0;
}
__name(getProtohost, "getProtohost");
function matchLayer(layer, path) {
try {
return layer.match(path);
} catch (err) {
return err;
}
}
__name(matchLayer, "matchLayer");
function mergeParams(params, parent) {
if (typeof parent !== "object" || !parent) {
return params;
}
const obj = Object.assign({}, parent);
if (!(0 in params) || !(0 in parent)) {
return Object.assign(obj, params);
}
let i = 0;
let o = 0;
while (i in params) {
i++;
}
while (o in parent) {
o++;
}
for (i--; i >= 0; i--) {
params[i + o] = params[i];
if (i < o) {
delete params[i];
}
}
return Object.assign(obj, params);
}
__name(mergeParams, "mergeParams");
function processParams(params, layer, called, req, res, done) {
const keys = layer.keys;
if (!keys || keys.length === 0) {
return done();
}
let i = 0;
let paramIndex = 0;
let key;
let paramVal;
let paramCallbacks;
let paramCalled;
function param(err) {
if (err) {
return done(err);
}
if (i >= keys.length) {
return done();
}
paramIndex = 0;
key = keys[i++];
paramVal = req.params[key];
paramCallbacks = params[key];
paramCalled = called[key];
if (paramVal === void 0 || !paramCallbacks) {
return param();
}
if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
req.params[key] = paramCalled.value;
return param(paramCalled.error);
}
called[key] = paramCalled = {
error: null,
match: paramVal,
value: paramVal
};
paramCallback();
}
__name(param, "param");
function paramCallback(err) {
const fn = paramCallbacks[paramIndex++];
paramCalled.value = req.params[key];
if (err) {
paramCalled.error = err;
param(err);
return;
}
if (!fn) return param();
try {
const ret = fn(req, res, paramCallback, paramVal, key);
if (isPromise(ret)) {
if (!(ret instanceof Promise)) {
deprecate("parameters that are Promise-like are deprecated, use a native Promise instead");
}
ret.then(null, function(error) {
paramCallback(error || new Error("Rejected promise"));
});
}
} catch (e) {
paramCallback(e);
}
}
__name(paramCallback, "paramCallback");
param();
}
__name(processParams, "processParams");
function restore(fn, obj) {
const props = new Array(arguments.length - 2);
const vals = new Array(arguments.length - 2);
for (let i = 0; i < props.length; i++) {
props[i] = arguments[i + 2];
vals[i] = obj[props[i]];
}
return function() {
for (let i = 0; i < props.length; i++) {
obj[props[i]] = vals[i];
}
return fn.apply(this, arguments);
};
}
__name(restore, "restore");
function sendOptionsResponse(res, methods2) {
const options = /* @__PURE__ */ Object.create(null);
for (let i = 0; i < methods2.length; i++) {
options[methods2[i]] = true;
}
const allow = Object.keys(options).sort().join(", ");
res.setHeader("Allow", allow);
res.setHeader("Content-Length", Buffer.byteLength(allow));
res.setHeader("Content-Type", "text/plain");
res.setHeader("X-Content-Type-Options", "nosniff");
res.end(allow);
}
__name(sendOptionsResponse, "sendOptionsResponse");
function trySendOptionsResponse(res, methods2, next) {
try {
sendOptionsResponse(res, methods2);
} catch (err) {
next(err);
}
}
__name(trySendOptionsResponse, "trySendOptionsResponse");
function wrap(old, fn) {
return /* @__PURE__ */ __name(function proxy() {
const args = new Array(arguments.length + 1);
args[0] = old;
for (let i = 0, len = arguments.length; i < len; i++) {
args[i + 1] = arguments[i];
}
fn.apply(this, args);
}, "proxy");
}
__name(wrap, "wrap");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/application.js
var require_application = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/application.js"(exports, module) {
"use strict";
var finalhandler = require_finalhandler();
var debug = require_src()("express:application");
var View = require_view();
var http2 = __require("node:http");
var methods = require_utils3().methods;
var compileETag = require_utils3().compileETag;
var compileQueryParser = require_utils3().compileQueryParser;
var compileTrust = require_utils3().compileTrust;
var resolve = __require("node:path").resolve;
var once = require_once();
var Router = require_router();
var slice = Array.prototype.slice;
var flatten2 = Array.prototype.flat;
var app = exports = module.exports = {};
var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default";
app.init = /* @__PURE__ */ __name(function init() {
var router = null;
this.cache = /* @__PURE__ */ Object.create(null);
this.engines = /* @__PURE__ */ Object.create(null);
this.settings = /* @__PURE__ */ Object.create(null);
this.defaultConfiguration();
Object.defineProperty(this, "router", {
configurable: true,
enumerable: true,
get: /* @__PURE__ */ __name(function getrouter() {
if (router === null) {
router = new Router({
caseSensitive: this.enabled("case sensitive routing"),
strict: this.enabled("strict routing")
});
}
return router;
}, "getrouter")
});
}, "init");
app.defaultConfiguration = /* @__PURE__ */ __name(function defaultConfiguration() {
var env = process.env.NODE_ENV || "development";
this.enable("x-powered-by");
this.set("etag", "weak");
this.set("env", env);
this.set("query parser", "simple");
this.set("subdomain offset", 2);
this.set("trust proxy", false);
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
configurable: true,
value: true
});
debug("booting in %s mode", env);
this.on("mount", /* @__PURE__ */ __name(function onmount(parent) {
if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") {
delete this.settings["trust proxy"];
delete this.settings["trust proxy fn"];
}
Object.setPrototypeOf(this.request, parent.request);
Object.setPrototypeOf(this.response, parent.response);
Object.setPrototypeOf(this.engines, parent.engines);
Object.setPrototypeOf(this.settings, parent.settings);
}, "onmount"));
this.locals = /* @__PURE__ */ Object.create(null);
this.mountpath = "/";
this.locals.settings = this.settings;
this.set("view", View);
this.set("views", resolve("views"));
this.set("jsonp callback name", "callback");
if (env === "production") {
this.enable("view cache");
}
}, "defaultConfiguration");
app.handle = /* @__PURE__ */ __name(function handle(req, res, callback) {
var done = callback || finalhandler(req, res, {
env: this.get("env"),
onerror: logerror.bind(this)
});
if (this.enabled("x-powered-by")) {
res.setHeader("X-Powered-By", "Express");
}
req.res = res;
res.req = req;
Object.setPrototypeOf(req, this.request);
Object.setPrototypeOf(res, this.response);
if (!res.locals) {
res.locals = /* @__PURE__ */ Object.create(null);
}
this.router.handle(req, res, done);
}, "handle");
app.use = /* @__PURE__ */ __name(function use(fn) {
var offset = 0;
var path = "/";
if (typeof fn !== "function") {
var arg = fn;
while (Array.isArray(arg) && arg.length !== 0) {
arg = arg[0];
}
if (typeof arg !== "function") {
offset = 1;
path = fn;
}
}
var fns = flatten2.call(slice.call(arguments, offset), Infinity);
if (fns.length === 0) {
throw new TypeError("app.use() requires a middleware function");
}
var router = this.router;
fns.forEach(function(fn2) {
if (!fn2 || !fn2.handle || !fn2.set) {
return router.use(path, fn2);
}
debug(".use app under %s", path);
fn2.mountpath = path;
fn2.parent = this;
router.use(path, /* @__PURE__ */ __name(function mounted_app(req, res, next) {
var orig = req.app;
fn2.handle(req, res, function(err) {
Object.setPrototypeOf(req, orig.request);
Object.setPrototypeOf(res, orig.response);
next(err);
});
}, "mounted_app"));
fn2.emit("mount", this);
}, this);
return this;
}, "use");
app.route = /* @__PURE__ */ __name(function route(path) {
return this.router.route(path);
}, "route");
app.engine = /* @__PURE__ */ __name(function engine(ext, fn) {
if (typeof fn !== "function") {
throw new Error("callback function required");
}
var extension = ext[0] !== "." ? "." + ext : ext;
this.engines[extension] = fn;
return this;
}, "engine");
app.param = /* @__PURE__ */ __name(function param(name, fn) {
if (Array.isArray(name)) {
for (var i = 0; i < name.length; i++) {
this.param(name[i], fn);
}
return this;
}
this.router.param(name, fn);
return this;
}, "param");
app.set = /* @__PURE__ */ __name(function set(setting, val) {
if (arguments.length === 1) {
return this.settings[setting];
}
debug('set "%s" to %o', setting, val);
this.settings[setting] = val;
switch (setting) {
case "etag":
this.set("etag fn", compileETag(val));
break;
case "query parser":
this.set("query parser fn", compileQueryParser(val));
break;
case "trust proxy":
this.set("trust proxy fn", compileTrust(val));
Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
configurable: true,
value: false
});
break;
}
return this;
}, "set");
app.path = /* @__PURE__ */ __name(function path() {
return this.parent ? this.parent.path() + this.mountpath : "";
}, "path");
app.enabled = /* @__PURE__ */ __name(function enabled(setting) {
return Boolean(this.set(setting));
}, "enabled");
app.disabled = /* @__PURE__ */ __name(function disabled(setting) {
return !this.set(setting);
}, "disabled");
app.enable = /* @__PURE__ */ __name(function enable(setting) {
return this.set(setting, true);
}, "enable");
app.disable = /* @__PURE__ */ __name(function disable(setting) {
return this.set(setting, false);
}, "disable");
methods.forEach(function(method) {
app[method] = function(path) {
if (method === "get" && arguments.length === 1) {
return this.set(path);
}
var route = this.route(path);
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});
app.all = /* @__PURE__ */ __name(function all(path) {
var route = this.route(path);
var args = slice.call(arguments, 1);
for (var i = 0; i < methods.length; i++) {
route[methods[i]].apply(route, args);
}
return this;
}, "all");
app.render = /* @__PURE__ */ __name(function render(name, options, callback) {
var cache = this.cache;
var done = callback;
var engines = this.engines;
var opts = options || {};
var view;
if (typeof options === "function") {
done = options;
opts = {};
}
var renderOptions = { ...this.locals, ...opts._locals, ...opts };
if (renderOptions.cache == null) {
renderOptions.cache = this.enabled("view cache");
}
if (renderOptions.cache) {
view = cache[name];
}
if (!view) {
var View2 = this.get("view");
view = new View2(name, {
defaultEngine: this.get("view engine"),
root: this.get("views"),
engines
});
if (!view.path) {
var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"';
var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
err.view = view;
return done(err);
}
if (renderOptions.cache) {
cache[name] = view;
}
}
tryRender(view, renderOptions, done);
}, "render");
app.listen = /* @__PURE__ */ __name(function listen() {
var server = http2.createServer(this);
var args = slice.call(arguments);
if (typeof args[args.length - 1] === "function") {
var done = args[args.length - 1] = once(args[args.length - 1]);
server.once("error", done);
}
return server.listen.apply(server, args);
}, "listen");
function logerror(err) {
if (this.get("env") !== "test") console.error(err);
}
__name(logerror, "logerror");
function tryRender(view, options, callback) {
try {
view.render(options, callback);
} catch (err) {
callback(err);
}
}
__name(tryRender, "tryRender");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/accept.js
var require_accept = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/accept.js"(exports, module) {
"use strict";
var contentType = require_dist();
module.exports = parseAccept;
function parseAccept(header) {
var values = [];
var index = 0;
while (index < header.length) {
var start = skipOptionalWhitespace(header, index);
var parsed = contentType.parse(header, { comma: true, start });
parsed.type = header.slice(start, start + parsed.type.length);
values.push(parsed);
index = parsed.index + 1;
}
return values;
}
__name(parseAccept, "parseAccept");
function skipOptionalWhitespace(header, index) {
var cursor = index;
while (header.charCodeAt(cursor) === 32 || header.charCodeAt(cursor) === 9) {
cursor++;
}
return cursor;
}
__name(skipOptionalWhitespace, "skipOptionalWhitespace");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/charset.js
var require_charset = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/charset.js"(exports, module) {
"use strict";
var parseAccept = require_accept();
module.exports = preferredCharsets;
module.exports.preferredCharsets = preferredCharsets;
function parseAcceptCharset(accept) {
var accepts = parseAccept(accept);
for (var i = 0, j = 0; i < accepts.length; i++) {
var charset = formatCharset(accepts[i], i);
if (charset) accepts[j++] = charset;
}
accepts.length = j;
return accepts;
}
__name(parseAcceptCharset, "parseAcceptCharset");
function formatCharset(parsed, i) {
if (!parsed.type) return null;
return {
charset: parsed.type,
q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1,
i
};
}
__name(formatCharset, "formatCharset");
function getCharsetPriority(charset, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(charset, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
__name(getCharsetPriority, "getCharsetPriority");
function specify(charset, spec, index) {
var s = 0;
if (spec.charset.toLowerCase() === charset.toLowerCase()) {
s |= 1;
} else if (spec.charset !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
__name(specify, "specify");
function preferredCharsets(accept, provided) {
var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset);
}
var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) {
return getCharsetPriority(type, accepts, index);
}, "getPriority"));
return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getCharset(priority) {
return provided[priorities.indexOf(priority)];
}, "getCharset"));
}
__name(preferredCharsets, "preferredCharsets");
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
__name(compareSpecs, "compareSpecs");
function getFullCharset(spec) {
return spec.charset;
}
__name(getFullCharset, "getFullCharset");
function isQuality(spec) {
return spec.q > 0;
}
__name(isQuality, "isQuality");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/encoding.js
var require_encoding = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/encoding.js"(exports, module) {
"use strict";
var parseAccept = require_accept();
module.exports = preferredEncodings;
module.exports.preferredEncodings = preferredEncodings;
function parseAcceptEncoding(accept) {
var accepts = parseAccept(accept);
var hasIdentity = false;
var minQuality = 1;
for (var i = 0, j = 0; i < accepts.length; i++) {
var encoding = formatEncoding(accepts[i], i);
if (encoding) {
accepts[j++] = encoding;
hasIdentity = hasIdentity || specify("identity", encoding);
minQuality = Math.min(minQuality, encoding.q || 1);
}
}
if (!hasIdentity) {
accepts[j++] = {
encoding: "identity",
q: minQuality,
i
};
}
accepts.length = j;
return accepts;
}
__name(parseAcceptEncoding, "parseAcceptEncoding");
function formatEncoding(parsed, i) {
if (!parsed.type) return null;
return {
encoding: parsed.type,
q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1,
i
};
}
__name(formatEncoding, "formatEncoding");
function getEncodingPriority(encoding, accepted, index) {
var priority = { encoding, o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(encoding, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
__name(getEncodingPriority, "getEncodingPriority");
function specify(encoding, spec, index) {
var s = 0;
if (spec.encoding.toLowerCase() === encoding.toLowerCase()) {
s |= 1;
} else if (spec.encoding !== "*") {
return null;
}
return {
encoding,
i: index,
o: spec.i,
q: spec.q,
s
};
}
__name(specify, "specify");
function preferredEncodings(accept, provided, preferred) {
var accepts = parseAcceptEncoding(accept || "");
var comparator = preferred ? /* @__PURE__ */ __name(function comparator2(a, b) {
if (a.q !== b.q) {
return b.q - a.q;
}
var aPreferred = preferred.indexOf(a.encoding);
var bPreferred = preferred.indexOf(b.encoding);
if (aPreferred === -1 && bPreferred === -1) {
return b.s - a.s || a.o - b.o || a.i - b.i;
}
if (aPreferred !== -1 && bPreferred !== -1) {
return aPreferred - bPreferred;
}
return aPreferred === -1 ? 1 : -1;
}, "comparator") : compareSpecs;
if (!provided) {
return accepts.filter(isQuality).sort(comparator).map(getFullEncoding);
}
var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) {
return getEncodingPriority(type, accepts, index);
}, "getPriority"));
return priorities.filter(isQuality).sort(comparator).map(/* @__PURE__ */ __name(function getEncoding(priority) {
return provided[priorities.indexOf(priority)];
}, "getEncoding"));
}
__name(preferredEncodings, "preferredEncodings");
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i;
}
__name(compareSpecs, "compareSpecs");
function getFullEncoding(spec) {
return spec.encoding;
}
__name(getFullEncoding, "getFullEncoding");
function isQuality(spec) {
return spec.q > 0;
}
__name(isQuality, "isQuality");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/language.js
var require_language = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/language.js"(exports, module) {
"use strict";
var contentType = require_dist();
var parseAccept = require_accept();
module.exports = preferredLanguages;
module.exports.preferredLanguages = preferredLanguages;
function parseAcceptLanguage(accept) {
var accepts = parseAccept(accept);
for (var i = 0, j = 0; i < accepts.length; i++) {
var language = formatLanguage(accepts[i], i);
if (language) accepts[j++] = language;
}
accepts.length = j;
return accepts;
}
__name(parseAcceptLanguage, "parseAcceptLanguage");
function formatLanguage(parsed, i) {
if (!parsed.type) return null;
var hyphen = parsed.type.indexOf("-");
var prefix = hyphen === -1 ? parsed.type : parsed.type.slice(0, hyphen);
var suffix = hyphen === -1 ? void 0 : parsed.type.slice(hyphen + 1);
return {
prefix,
suffix,
q: parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1,
i,
full: parsed.type
};
}
__name(formatLanguage, "formatLanguage");
function getLanguagePriority(language, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(language, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
__name(getLanguagePriority, "getLanguagePriority");
function specify(language, spec, index) {
var p = formatLanguage(contentType.parse(language), 0);
if (!p) return null;
var s = 0;
if (spec.full.toLowerCase() === p.full.toLowerCase()) {
s |= 4;
} else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
s |= 2;
} else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
s |= 1;
} else if (spec.full !== "*") {
return null;
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
__name(specify, "specify");
function preferredLanguages(accept, provided) {
var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage);
}
var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) {
return getLanguagePriority(type, accepts, index);
}, "getPriority"));
return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getLanguage(priority) {
return provided[priorities.indexOf(priority)];
}, "getLanguage"));
}
__name(preferredLanguages, "preferredLanguages");
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
__name(compareSpecs, "compareSpecs");
function getFullLanguage(spec) {
return spec.full;
}
__name(getFullLanguage, "getFullLanguage");
function isQuality(spec) {
return spec.q > 0;
}
__name(isQuality, "isQuality");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/mediaType.js
var require_mediaType = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/lib/mediaType.js"(exports, module) {
"use strict";
var contentType = require_dist();
var parseAcceptHeader = require_accept();
module.exports = preferredMediaTypes;
module.exports.preferredMediaTypes = preferredMediaTypes;
function parseAccept(accept) {
var accepts = parseAcceptHeader(accept);
for (var i = 0, j = 0; i < accepts.length; i++) {
var mediaType = formatMediaType(accepts[i], i);
if (mediaType) accepts[j++] = mediaType;
}
accepts.length = j;
return accepts;
}
__name(parseAccept, "parseAccept");
function formatMediaType(parsed, i) {
var slash = parsed.type.indexOf("/");
if (slash === -1) return null;
var q = parsed.parameters.q ? parseFloat(parsed.parameters.q) : 1;
delete parsed.parameters.q;
return {
type: parsed.type.slice(0, slash),
subtype: parsed.type.slice(slash + 1),
params: parsed.parameters,
q,
i
};
}
__name(formatMediaType, "formatMediaType");
function getMediaTypePriority(type, accepted, index) {
var priority = { o: -1, q: 0, s: 0 };
for (var i = 0; i < accepted.length; i++) {
var spec = specify(type, accepted[i], index);
if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
priority = spec;
}
}
return priority;
}
__name(getMediaTypePriority, "getMediaTypePriority");
function specify(type, spec, index) {
var p = formatMediaType(contentType.parse(type), 0);
var s = 0;
if (!p) {
return null;
}
if (spec.type.toLowerCase() == p.type.toLowerCase()) {
s |= 4;
} else if (spec.type != "*") {
return null;
}
if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
s |= 2;
} else if (spec.subtype != "*") {
return null;
}
var keys = Object.keys(spec.params);
if (keys.length > 0) {
if (keys.every(function(k) {
return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase();
})) {
s |= 1;
} else {
return null;
}
}
return {
i: index,
o: spec.i,
q: spec.q,
s
};
}
__name(specify, "specify");
function preferredMediaTypes(accept, provided) {
var accepts = parseAccept(accept === void 0 ? "*/*" : accept || "");
if (!provided) {
return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
}
var priorities = provided.map(/* @__PURE__ */ __name(function getPriority(type, index) {
return getMediaTypePriority(type, accepts, index);
}, "getPriority"));
return priorities.filter(isQuality).sort(compareSpecs).map(/* @__PURE__ */ __name(function getType(priority) {
return provided[priorities.indexOf(priority)];
}, "getType"));
}
__name(preferredMediaTypes, "preferredMediaTypes");
function compareSpecs(a, b) {
return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
}
__name(compareSpecs, "compareSpecs");
function getFullType(spec) {
return spec.type + "/" + spec.subtype;
}
__name(getFullType, "getFullType");
function isQuality(spec) {
return spec.q > 0;
}
__name(isQuality, "isQuality");
}
});
// ../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/index.js
var require_negotiator = __commonJS({
"../../node_modules/.pnpm/negotiator@1.1.0/node_modules/negotiator/index.js"(exports, module) {
"use strict";
var preferredCharsets = require_charset();
var preferredEncodings = require_encoding();
var preferredLanguages = require_language();
var preferredMediaTypes = require_mediaType();
module.exports = Negotiator;
module.exports.Negotiator = Negotiator;
function Negotiator(request) {
if (!(this instanceof Negotiator)) {
return new Negotiator(request);
}
this.request = request;
}
__name(Negotiator, "Negotiator");
Negotiator.prototype.charset = /* @__PURE__ */ __name(function charset(available) {
var set = this.charsets(available);
return set && set[0];
}, "charset");
Negotiator.prototype.charsets = /* @__PURE__ */ __name(function charsets(available) {
return preferredCharsets(this.request.headers["accept-charset"], available);
}, "charsets");
Negotiator.prototype.encoding = /* @__PURE__ */ __name(function encoding(available, opts) {
var set = this.encodings(available, opts);
return set && set[0];
}, "encoding");
Negotiator.prototype.encodings = /* @__PURE__ */ __name(function encodings(available, options) {
var opts = options || {};
return preferredEncodings(this.request.headers["accept-encoding"], available, opts.preferred);
}, "encodings");
Negotiator.prototype.language = /* @__PURE__ */ __name(function language(available) {
var set = this.languages(available);
return set && set[0];
}, "language");
Negotiator.prototype.languages = /* @__PURE__ */ __name(function languages(available) {
return preferredLanguages(this.request.headers["accept-language"], available);
}, "languages");
Negotiator.prototype.mediaType = /* @__PURE__ */ __name(function mediaType(available) {
var set = this.mediaTypes(available);
return set && set[0];
}, "mediaType");
Negotiator.prototype.mediaTypes = /* @__PURE__ */ __name(function mediaTypes(available) {
return preferredMediaTypes(this.request.headers.accept, available);
}, "mediaTypes");
Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
}
});
// ../../node_modules/.pnpm/accepts@2.0.0/node_modules/accepts/index.js
var require_accepts = __commonJS({
"../../node_modules/.pnpm/accepts@2.0.0/node_modules/accepts/index.js"(exports, module) {
"use strict";
var Negotiator = require_negotiator();
var mime = require_mime_types();
module.exports = Accepts;
function Accepts(req) {
if (!(this instanceof Accepts)) {
return new Accepts(req);
}
this.headers = req.headers;
this.negotiator = new Negotiator(req);
}
__name(Accepts, "Accepts");
Accepts.prototype.type = Accepts.prototype.types = function(types_) {
var types = types_;
if (types && !Array.isArray(types)) {
types = new Array(arguments.length);
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i];
}
}
if (!types || types.length === 0) {
return this.negotiator.mediaTypes();
}
if (!this.headers.accept) {
return types[0];
}
var mimes = types.map(extToMime);
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
var first = accepts[0];
return first ? types[mimes.indexOf(first)] : false;
};
Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) {
var encodings = encodings_;
if (encodings && !Array.isArray(encodings)) {
encodings = new Array(arguments.length);
for (var i = 0; i < encodings.length; i++) {
encodings[i] = arguments[i];
}
}
if (!encodings || encodings.length === 0) {
return this.negotiator.encodings();
}
return this.negotiator.encodings(encodings)[0] || false;
};
Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) {
var charsets = charsets_;
if (charsets && !Array.isArray(charsets)) {
charsets = new Array(arguments.length);
for (var i = 0; i < charsets.length; i++) {
charsets[i] = arguments[i];
}
}
if (!charsets || charsets.length === 0) {
return this.negotiator.charsets();
}
return this.negotiator.charsets(charsets)[0] || false;
};
Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) {
var languages = languages_;
if (languages && !Array.isArray(languages)) {
languages = new Array(arguments.length);
for (var i = 0; i < languages.length; i++) {
languages[i] = arguments[i];
}
}
if (!languages || languages.length === 0) {
return this.negotiator.languages();
}
return this.negotiator.languages(languages)[0] || false;
};
function extToMime(type) {
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
__name(extToMime, "extToMime");
function validMime(type) {
return typeof type === "string";
}
__name(validMime, "validMime");
}
});
// ../../node_modules/.pnpm/fresh@2.0.0/node_modules/fresh/index.js
var require_fresh = __commonJS({
"../../node_modules/.pnpm/fresh@2.0.0/node_modules/fresh/index.js"(exports, module) {
"use strict";
var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/;
module.exports = fresh;
function fresh(reqHeaders, resHeaders) {
var modifiedSince = reqHeaders["if-modified-since"];
var noneMatch = reqHeaders["if-none-match"];
if (!modifiedSince && !noneMatch) {
return false;
}
var cacheControl = reqHeaders["cache-control"];
if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
return false;
}
if (noneMatch) {
if (noneMatch === "*") {
return true;
}
var etag = resHeaders.etag;
if (!etag) {
return false;
}
var matches = parseTokenList(noneMatch);
for (var i = 0; i < matches.length; i++) {
var match = matches[i];
if (match === etag || match === "W/" + etag || "W/" + match === etag) {
return true;
}
}
return false;
}
if (modifiedSince) {
var lastModified = resHeaders["last-modified"];
var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince));
if (modifiedStale) {
return false;
}
}
return true;
}
__name(fresh, "fresh");
function parseHttpDate(date) {
var timestamp = date && Date.parse(date);
return typeof timestamp === "number" ? timestamp : NaN;
}
__name(parseHttpDate, "parseHttpDate");
function parseTokenList(str) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = str.length; i < len; i++) {
switch (str.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
list.push(str.substring(start, end));
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
list.push(str.substring(start, end));
return list;
}
__name(parseTokenList, "parseTokenList");
}
});
// ../../node_modules/.pnpm/range-parser@1.3.0/node_modules/range-parser/index.js
var require_range_parser = __commonJS({
"../../node_modules/.pnpm/range-parser@1.3.0/node_modules/range-parser/index.js"(exports, module) {
"use strict";
module.exports = rangeParser;
function rangeParser(size, str, options) {
if (typeof str !== "string") {
throw new TypeError("argument str must be a string");
}
var index = str.indexOf("=");
if (index === -1) {
return -2;
}
var arr = str.slice(index + 1).split(",");
var ranges = [];
ranges.type = str.slice(0, index);
for (var i = 0; i < arr.length; i++) {
var indexOf = arr[i].indexOf("-");
if (indexOf === -1) {
return -2;
}
var startStr = arr[i].slice(0, indexOf).trim();
var endStr = arr[i].slice(indexOf + 1).trim();
var start = parsePos(startStr);
var end = parsePos(endStr);
if (startStr.length === 0) {
start = size - end;
end = size - 1;
} else if (endStr.length === 0) {
end = size - 1;
}
if (end > size - 1) {
end = size - 1;
}
if (isNaN(start) || isNaN(end)) {
return -2;
}
if (start > end || start < 0) {
continue;
}
ranges.push({
start,
end
});
}
if (ranges.length < 1) {
return -1;
}
return options && options.combine ? combineRanges(ranges) : ranges;
}
__name(rangeParser, "rangeParser");
function parsePos(str) {
if (/^\d+$/.test(str)) return Number(str);
return NaN;
}
__name(parsePos, "parsePos");
function combineRanges(ranges) {
var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
for (var j = 0, i = 1; i < ordered.length; i++) {
var range = ordered[i];
var current = ordered[j];
if (range.start > current.end + 1) {
ordered[++j] = range;
} else if (range.end > current.end) {
current.end = range.end;
current.index = Math.min(current.index, range.index);
}
}
ordered.length = j + 1;
var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
combined.type = ranges.type;
return combined;
}
__name(combineRanges, "combineRanges");
function mapWithIndex(range, index) {
return {
start: range.start,
end: range.end,
index
};
}
__name(mapWithIndex, "mapWithIndex");
function mapWithoutIndex(range) {
return {
start: range.start,
end: range.end
};
}
__name(mapWithoutIndex, "mapWithoutIndex");
function sortByRangeIndex(a, b) {
return a.index - b.index;
}
__name(sortByRangeIndex, "sortByRangeIndex");
function sortByRangeStart(a, b) {
return a.start - b.start;
}
__name(sortByRangeStart, "sortByRangeStart");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/request.js
var require_request = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/request.js"(exports, module) {
"use strict";
var accepts = require_accepts();
var isIP = __require("node:net").isIP;
var typeis = require_type_is();
var http2 = __require("node:http");
var fresh = require_fresh();
var parseRange = require_range_parser();
var parse = require_parseurl();
var proxyaddr = require_proxy_addr();
var req = Object.create(http2.IncomingMessage.prototype);
module.exports = req;
req.get = req.header = /* @__PURE__ */ __name(function header(name) {
if (!name) {
throw new TypeError("name argument is required to req.get");
}
if (typeof name !== "string") {
throw new TypeError("name must be a string to req.get");
}
var lc = name.toLowerCase();
switch (lc) {
case "referer":
case "referrer":
return this.headers.referrer || this.headers.referer;
default:
return this.headers[lc];
}
}, "header");
req.accepts = function() {
var accept = accepts(this);
return accept.types.apply(accept, arguments);
};
req.acceptsEncodings = function() {
var accept = accepts(this);
return accept.encodings.apply(accept, arguments);
};
req.acceptsCharsets = function(...charsets) {
const accept = accepts(this);
return accept.charsets(...charsets);
};
req.acceptsLanguages = function(...languages) {
return accepts(this).languages(...languages);
};
req.range = /* @__PURE__ */ __name(function range(size, options) {
var range2 = this.get("Range");
if (!range2) return;
return parseRange(size, range2, options);
}, "range");
defineGetter(req, "query", /* @__PURE__ */ __name(function query() {
var queryparse = this.app.get("query parser fn");
if (!queryparse) {
return /* @__PURE__ */ Object.create(null);
}
var querystring = parse(this).query;
return queryparse(querystring);
}, "query"));
req.is = /* @__PURE__ */ __name(function is(types) {
var arr = types;
if (!Array.isArray(types)) {
arr = new Array(arguments.length);
for (var i = 0; i < arr.length; i++) {
arr[i] = arguments[i];
}
}
return typeis(this, arr);
}, "is");
defineGetter(req, "protocol", /* @__PURE__ */ __name(function protocol() {
var proto = this.socket.encrypted ? "https" : "http";
var trust = this.app.get("trust proxy fn");
if (!trust(this.socket.remoteAddress, 0)) {
return proto;
}
var header = this.get("X-Forwarded-Proto") || proto;
var index = header.indexOf(",");
return index !== -1 ? header.substring(0, index).trim() : header.trim();
}, "protocol"));
defineGetter(req, "secure", /* @__PURE__ */ __name(function secure() {
return this.protocol === "https";
}, "secure"));
defineGetter(req, "ip", /* @__PURE__ */ __name(function ip() {
var trust = this.app.get("trust proxy fn");
return proxyaddr(this, trust);
}, "ip"));
defineGetter(req, "ips", /* @__PURE__ */ __name(function ips() {
var trust = this.app.get("trust proxy fn");
var addrs = proxyaddr.all(this, trust);
addrs.reverse().pop();
return addrs;
}, "ips"));
defineGetter(req, "subdomains", /* @__PURE__ */ __name(function subdomains() {
var hostname = this.hostname;
if (!hostname) return [];
var offset = this.app.get("subdomain offset");
var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname];
return subdomains2.slice(offset);
}, "subdomains"));
defineGetter(req, "path", /* @__PURE__ */ __name(function path() {
return parse(this).pathname;
}, "path"));
defineGetter(req, "host", /* @__PURE__ */ __name(function host() {
var trust = this.app.get("trust proxy fn");
var val = this.get("X-Forwarded-Host");
if (!val || !trust(this.socket.remoteAddress, 0)) {
val = this.get("Host");
} else if (val.indexOf(",") !== -1) {
val = val.substring(0, val.indexOf(",")).trimEnd();
}
return val || void 0;
}, "host"));
defineGetter(req, "hostname", /* @__PURE__ */ __name(function hostname() {
var host = this.host;
if (!host) return;
var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0;
var index = host.indexOf(":", offset);
return index !== -1 ? host.substring(0, index) : host;
}, "hostname"));
defineGetter(req, "fresh", function() {
var method = this.method;
var res = this.res;
var status = res.statusCode;
if ("GET" !== method && "HEAD" !== method && "QUERY" !== method) return false;
if (status >= 200 && status < 300 || 304 === status) {
return fresh(this.headers, {
"etag": res.get("ETag"),
"last-modified": res.get("Last-Modified")
});
}
return false;
});
defineGetter(req, "stale", /* @__PURE__ */ __name(function stale() {
return !this.fresh;
}, "stale"));
defineGetter(req, "xhr", /* @__PURE__ */ __name(function xhr() {
var val = this.get("X-Requested-With") || "";
return val.toLowerCase() === "xmlhttprequest";
}, "xhr"));
function defineGetter(obj, name, getter) {
Object.defineProperty(obj, name, {
configurable: true,
enumerable: true,
get: getter
});
}
__name(defineGetter, "defineGetter");
}
});
// ../../node_modules/.pnpm/content-disposition@2.0.1/node_modules/content-disposition/dist/index.js
var require_dist3 = __commonJS({
"../../node_modules/.pnpm/content-disposition@2.0.1/node_modules/content-disposition/dist/index.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.create = create;
exports.parse = parse;
exports.decodeExtended = decodeExtended;
exports.format = format;
exports.encodeExtended = encodeExtended;
var NullObject = /* @__PURE__ */ (() => {
const C = /* @__PURE__ */ __name(function() {
}, "C");
C.prototype = /* @__PURE__ */ Object.create(null);
return C;
})();
function create(filename, options) {
const type = options?.type || "attachment";
const parameters = createParameters(filename, options?.fallback);
return format({ type, parameters }, { extended: false });
}
__name(create, "create");
var SP = 32;
var HTAB = 9;
var SEMI = 59;
var EQ = 61;
var DQUOTE = 34;
var BSLASH = 92;
var ASTERISK = 42;
function parse(header, options) {
const len = header.length;
const multipart = options?.multipart === true;
const extended = options?.extended !== false;
let index = skipOWS(header, 0, header.length);
const typeStart = index;
index = parseToken(header, index, len);
const typeEnd = trailingOWS(header, typeStart, index);
const type = header.slice(typeStart, typeEnd).toLowerCase();
const parameters = new NullObject();
parameter: while (index < len) {
index = skipOWS(header, index + 1, len);
const keyStart = index;
while (index < len) {
const char = header.charCodeAt(index);
if (char === SEMI)
continue parameter;
if (char === EQ) {
const keyEnd = trailingOWS(header, keyStart, index);
const key = header.slice(keyStart, keyEnd).toLowerCase();
index = skipOWS(header, index + 1, len);
if (index < len && header.charCodeAt(index) === DQUOTE) {
index++;
let value2 = "";
if (multipart) {
while (index < len) {
const code = header.charCodeAt(index++);
if (code === DQUOTE) {
index = parseToken(header, index, len);
if (parameters[key] === void 0)
parameters[key] = value2;
break;
}
if (code === /* % */
37 && index + 1 < len) {
const code2 = header.charCodeAt(index);
const code3 = header.charCodeAt(index + 1);
if (code2 === 50 && code3 === 50) {
value2 += '"';
index += 2;
continue;
}
if (code2 === 48) {
if (code3 === 100 || code3 === 68) {
value2 += "\r";
index += 2;
continue;
}
if (code3 === 97 || code3 === 65) {
value2 += "\n";
index += 2;
continue;
}
}
}
value2 += String.fromCharCode(code);
}
} else {
while (index < len) {
const code = header.charCodeAt(index++);
if (code === DQUOTE) {
index = parseToken(header, index, len);
if (parameters[key] === void 0)
parameters[key] = value2;
break;
}
if (code === BSLASH && index < len) {
value2 += header[index++];
continue;
}
value2 += String.fromCharCode(code);
}
}
continue parameter;
}
const valueStart = index;
index = parseToken(header, index, len);
const valueEnd = trailingOWS(header, valueStart, index);
const value = header.slice(valueStart, valueEnd);
if (parameters[key] === void 0) {
parameters[key] = value;
if (extended && key.charCodeAt(key.length - 1) === ASTERISK) {
const normalizedKey = key.slice(0, -1);
const decoded = decodeExtended(value);
if (decoded !== void 0)
parameters[normalizedKey] = decoded;
}
}
continue parameter;
}
index++;
}
}
return { type, parameters };
}
__name(parse, "parse");
var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
var NON_ASCII_REGEXP = /[^\x20-\x7e]/g;
var QUOTE_REGEXP = /[\\"]/g;
var INVALID_FILENAME_REGEXP = /%[0-9A-Fa-f]{2}/;
var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]*$/;
var ASCII_TEXT_REGEXP = /^[\x20-\x7e]*$/;
var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/;
function createParameters(filename, fallback = true) {
if (filename === void 0)
return;
if (typeof fallback === "string") {
if (!ASCII_TEXT_REGEXP.test(fallback)) {
throw new TypeError("Fallback must be valid US-ASCII: " + fallback);
}
if (fallback === filename)
return { filename };
return { filename: fallback, "filename*": encodeExtended(filename) };
}
if (ASCII_TEXT_REGEXP.test(filename) && !INVALID_FILENAME_REGEXP.test(filename)) {
return { filename };
}
if (fallback === false) {
return { "filename*": encodeExtended(filename) };
}
return {
filename: getAscii(filename),
"filename*": encodeExtended(filename)
};
}
__name(createParameters, "createParameters");
function decodeExtended(str) {
const charsetEnd = str.indexOf("'");
if (charsetEnd <= 0) {
return void 0;
}
const languageEnd = str.indexOf("'", charsetEnd + 1);
if (languageEnd === -1) {
return void 0;
}
const charset = str.slice(0, charsetEnd).toLowerCase();
const encoded = str.slice(languageEnd + 1);
switch (charset) {
case "iso-8859-1": {
return decodeHexEscapes(encoded);
}
case "utf-8":
case "utf8": {
return tryDecodeURIComponent(encoded);
}
}
return void 0;
}
__name(decodeExtended, "decodeExtended");
function tryDecodeURIComponent(str) {
try {
return decodeURIComponent(str);
} catch {
return void 0;
}
}
__name(tryDecodeURIComponent, "tryDecodeURIComponent");
function parseToken(str, index, len) {
while (index < len) {
const char = str.charCodeAt(index);
if (char === SEMI)
break;
index++;
}
return index;
}
__name(parseToken, "parseToken");
function skipOWS(str, index, len) {
while (index < len) {
const char = str.charCodeAt(index);
if (char !== SP && char !== HTAB)
break;
index++;
}
return index;
}
__name(skipOWS, "skipOWS");
function trailingOWS(str, start, end) {
while (end > start) {
const char = str.charCodeAt(end - 1);
if (char !== SP && char !== HTAB)
break;
end--;
}
return end;
}
__name(trailingOWS, "trailingOWS");
function format(obj, options) {
const { type, parameters } = obj;
const multipart = options?.multipart === true;
const extended = options?.extended !== false;
if (!type || !TOKEN_REGEXP.test(type)) {
throw new TypeError("Invalid type: " + type);
}
let result = type;
if (parameters) {
for (const param of Object.keys(parameters)) {
const value = parameters[param];
if (!TOKEN_REGEXP.test(param)) {
throw new TypeError("Invalid parameter name: " + param);
}
if (multipart) {
result += "; " + param + "=" + qmultipart(value);
continue;
}
if (TOKEN_REGEXP.test(value)) {
result += "; " + param + "=" + value;
continue;
}
if (TEXT_REGEXP.test(value)) {
result += "; " + param + "=" + qstring(value);
continue;
}
if (!extended) {
throw new TypeError("Invalid parameter value: " + value);
}
result += "; " + param + "*=" + encodeExtended(value);
}
}
return result;
}
__name(format, "format");
function getAscii(val) {
return val.replace(NON_ASCII_REGEXP, "?");
}
__name(getAscii, "getAscii");
function pencode(char) {
return "%" + char.charCodeAt(0).toString(16).toUpperCase();
}
__name(pencode, "pencode");
function qstring(str) {
return '"' + str.replace(QUOTE_REGEXP, "\\$&") + '"';
}
__name(qstring, "qstring");
function qmultipart(str) {
return '"' + str.replace(/[\n\r"]/g, multipartEscape) + '"';
}
__name(qmultipart, "qmultipart");
function multipartEscape(char) {
if (char === "\n")
return "%0A";
if (char === "\r")
return "%0D";
return "%22";
}
__name(multipartEscape, "multipartEscape");
function encodeExtended(str) {
const encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode);
return "UTF-8''" + encoded;
}
__name(encodeExtended, "encodeExtended");
function isHexDigit(char) {
const code = char.charCodeAt(0);
return code >= 48 && code <= 57 || // 0-9
code >= 65 && code <= 70 || // A-F
code >= 97 && code <= 102;
}
__name(isHexDigit, "isHexDigit");
function decodeHexEscapes(str) {
const firstEscape = str.indexOf("%");
if (firstEscape === -1)
return str;
let result = str.slice(0, firstEscape);
for (let idx = firstEscape; idx < str.length; idx++) {
if (str[idx] === "%" && idx + 2 < str.length && isHexDigit(str[idx + 1]) && isHexDigit(str[idx + 2])) {
result += String.fromCharCode(Number.parseInt(str[idx + 1] + str[idx + 2], 16));
idx += 2;
} else {
result += str[idx];
}
}
return result;
}
__name(decodeHexEscapes, "decodeHexEscapes");
}
});
// ../../node_modules/.pnpm/cookie-signature@1.2.2/node_modules/cookie-signature/index.js
var require_cookie_signature = __commonJS({
"../../node_modules/.pnpm/cookie-signature@1.2.2/node_modules/cookie-signature/index.js"(exports) {
var crypto = __require("crypto");
exports.sign = function(val, secret) {
if ("string" != typeof val) throw new TypeError("Cookie value must be provided as a string.");
if (null == secret) throw new TypeError("Secret key must be provided.");
return val + "." + crypto.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, "");
};
exports.unsign = function(input, secret) {
if ("string" != typeof input) throw new TypeError("Signed cookie string must be provided.");
if (null == secret) throw new TypeError("Secret key must be provided.");
var tentativeValue = input.slice(0, input.lastIndexOf(".")), expectedInput = exports.sign(tentativeValue, secret), expectedBuffer = Buffer.from(expectedInput), inputBuffer = Buffer.from(input);
return expectedBuffer.length === inputBuffer.length && crypto.timingSafeEqual(expectedBuffer, inputBuffer) ? tentativeValue : false;
};
}
});
// ../../node_modules/.pnpm/cookie@0.7.2/node_modules/cookie/index.js
var require_cookie = __commonJS({
"../../node_modules/.pnpm/cookie@0.7.2/node_modules/cookie/index.js"(exports) {
"use strict";
exports.parse = parse;
exports.serialize = serialize;
var __toString = Object.prototype.toString;
var __hasOwnProperty = Object.prototype.hasOwnProperty;
var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/;
var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
function parse(str, opt) {
if (typeof str !== "string") {
throw new TypeError("argument str must be a string");
}
var obj = {};
var len = str.length;
if (len < 2) return obj;
var dec = opt && opt.decode || decode;
var index = 0;
var eqIdx = 0;
var endIdx = 0;
do {
eqIdx = str.indexOf("=", index);
if (eqIdx === -1) break;
endIdx = str.indexOf(";", index);
if (endIdx === -1) {
endIdx = len;
} else if (eqIdx > endIdx) {
index = str.lastIndexOf(";", eqIdx - 1) + 1;
continue;
}
var keyStartIdx = startIndex(str, index, eqIdx);
var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
var key = str.slice(keyStartIdx, keyEndIdx);
if (!__hasOwnProperty.call(obj, key)) {
var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
var valEndIdx = endIndex(str, endIdx, valStartIdx);
if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {
valStartIdx++;
valEndIdx--;
}
var val = str.slice(valStartIdx, valEndIdx);
obj[key] = tryDecode(val, dec);
}
index = endIdx + 1;
} while (index < len);
return obj;
}
__name(parse, "parse");
function startIndex(str, index, max) {
do {
var code = str.charCodeAt(index);
if (code !== 32 && code !== 9) return index;
} while (++index < max);
return max;
}
__name(startIndex, "startIndex");
function endIndex(str, index, min) {
while (index > min) {
var code = str.charCodeAt(--index);
if (code !== 32 && code !== 9) return index + 1;
}
return min;
}
__name(endIndex, "endIndex");
function serialize(name, val, opt) {
var enc = opt && opt.encode || encodeURIComponent;
if (typeof enc !== "function") {
throw new TypeError("option encode is invalid");
}
if (!cookieNameRegExp.test(name)) {
throw new TypeError("argument name is invalid");
}
var value = enc(val);
if (!cookieValueRegExp.test(value)) {
throw new TypeError("argument val is invalid");
}
var str = name + "=" + value;
if (!opt) return str;
if (null != opt.maxAge) {
var maxAge = Math.floor(opt.maxAge);
if (!isFinite(maxAge)) {
throw new TypeError("option maxAge is invalid");
}
str += "; Max-Age=" + maxAge;
}
if (opt.domain) {
if (!domainValueRegExp.test(opt.domain)) {
throw new TypeError("option domain is invalid");
}
str += "; Domain=" + opt.domain;
}
if (opt.path) {
if (!pathValueRegExp.test(opt.path)) {
throw new TypeError("option path is invalid");
}
str += "; Path=" + opt.path;
}
if (opt.expires) {
var expires = opt.expires;
if (!isDate(expires) || isNaN(expires.valueOf())) {
throw new TypeError("option expires is invalid");
}
str += "; Expires=" + expires.toUTCString();
}
if (opt.httpOnly) {
str += "; HttpOnly";
}
if (opt.secure) {
str += "; Secure";
}
if (opt.partitioned) {
str += "; Partitioned";
}
if (opt.priority) {
var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
switch (priority) {
case "low":
str += "; Priority=Low";
break;
case "medium":
str += "; Priority=Medium";
break;
case "high":
str += "; Priority=High";
break;
default:
throw new TypeError("option priority is invalid");
}
}
if (opt.sameSite) {
var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
switch (sameSite) {
case true:
str += "; SameSite=Strict";
break;
case "lax":
str += "; SameSite=Lax";
break;
case "strict":
str += "; SameSite=Strict";
break;
case "none":
str += "; SameSite=None";
break;
default:
throw new TypeError("option sameSite is invalid");
}
}
return str;
}
__name(serialize, "serialize");
function decode(str) {
return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
}
__name(decode, "decode");
function isDate(val) {
return __toString.call(val) === "[object Date]";
}
__name(isDate, "isDate");
function tryDecode(str, decode2) {
try {
return decode2(str);
} catch (e) {
return str;
}
}
__name(tryDecode, "tryDecode");
}
});
// ../../node_modules/.pnpm/send@1.2.1/node_modules/send/index.js
var require_send = __commonJS({
"../../node_modules/.pnpm/send@1.2.1/node_modules/send/index.js"(exports, module) {
"use strict";
var createError = require_http_errors();
var debug = require_src()("send");
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var etag = require_etag();
var fresh = require_fresh();
var fs = __require("fs");
var mime = require_mime_types();
var ms = require_ms();
var onFinished = require_on_finished();
var parseRange = require_range_parser();
var path = __require("path");
var statuses = require_statuses();
var Stream = __require("stream");
var util = __require("util");
var extname = path.extname;
var join = path.join;
var normalize = path.normalize;
var resolve = path.resolve;
var sep = path.sep;
var BYTES_RANGE_REGEXP = /^ *bytes=/;
var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
module.exports = send;
function send(req, path2, options) {
return new SendStream(req, path2, options);
}
__name(send, "send");
function SendStream(req, path2, options) {
Stream.call(this);
var opts = options || {};
this.options = opts;
this.path = path2;
this.req = req;
this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true;
this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true;
this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true;
this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore";
if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") {
throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');
}
this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : [];
this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false;
this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"];
this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true;
this._maxage = opts.maxAge || opts.maxage;
this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage);
this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0;
this._root = opts.root ? resolve(opts.root) : null;
}
__name(SendStream, "SendStream");
util.inherits(SendStream, Stream);
SendStream.prototype.error = /* @__PURE__ */ __name(function error(status, err) {
if (hasListeners(this, "error")) {
return this.emit("error", createHttpError(status, err));
}
var res = this.res;
var msg = statuses.message[status] || String(status);
var doc = createHtmlDocument("Error", escapeHtml(msg));
clearHeaders(res);
if (err && err.headers) {
setHeaders(res, err.headers);
}
res.statusCode = status;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.end(doc);
}, "error");
SendStream.prototype.hasTrailingSlash = /* @__PURE__ */ __name(function hasTrailingSlash() {
return this.path[this.path.length - 1] === "/";
}, "hasTrailingSlash");
SendStream.prototype.isConditionalGET = /* @__PURE__ */ __name(function isConditionalGET() {
return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"];
}, "isConditionalGET");
SendStream.prototype.isPreconditionFailure = /* @__PURE__ */ __name(function isPreconditionFailure() {
var req = this.req;
var res = this.res;
var match = req.headers["if-match"];
if (match) {
var etag2 = res.getHeader("ETag");
return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) {
return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2;
});
}
var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]);
if (!isNaN(unmodifiedSince)) {
var lastModified = parseHttpDate(res.getHeader("Last-Modified"));
return isNaN(lastModified) || lastModified > unmodifiedSince;
}
return false;
}, "isPreconditionFailure");
SendStream.prototype.removeContentHeaderFields = /* @__PURE__ */ __name(function removeContentHeaderFields() {
var res = this.res;
res.removeHeader("Content-Encoding");
res.removeHeader("Content-Language");
res.removeHeader("Content-Length");
res.removeHeader("Content-Range");
res.removeHeader("Content-Type");
}, "removeContentHeaderFields");
SendStream.prototype.notModified = /* @__PURE__ */ __name(function notModified() {
var res = this.res;
debug("not modified");
this.removeContentHeaderFields();
res.statusCode = 304;
res.end();
}, "notModified");
SendStream.prototype.headersAlreadySent = /* @__PURE__ */ __name(function headersAlreadySent() {
var err = new Error("Can't set headers after they are sent.");
debug("headers already sent");
this.error(500, err);
}, "headersAlreadySent");
SendStream.prototype.isCachable = /* @__PURE__ */ __name(function isCachable() {
var statusCode = this.res.statusCode;
return statusCode >= 200 && statusCode < 300 || statusCode === 304;
}, "isCachable");
SendStream.prototype.onStatError = /* @__PURE__ */ __name(function onStatError(error) {
switch (error.code) {
case "ENAMETOOLONG":
case "ENOENT":
case "ENOTDIR":
this.error(404, error);
break;
default:
this.error(500, error);
break;
}
}, "onStatError");
SendStream.prototype.isFresh = /* @__PURE__ */ __name(function isFresh() {
return fresh(this.req.headers, {
etag: this.res.getHeader("ETag"),
"last-modified": this.res.getHeader("Last-Modified")
});
}, "isFresh");
SendStream.prototype.isRangeFresh = /* @__PURE__ */ __name(function isRangeFresh() {
var ifRange = this.req.headers["if-range"];
if (!ifRange) {
return true;
}
if (ifRange.indexOf('"') !== -1) {
var etag2 = this.res.getHeader("ETag");
return Boolean(etag2 && ifRange.indexOf(etag2) !== -1);
}
var lastModified = this.res.getHeader("Last-Modified");
return parseHttpDate(lastModified) <= parseHttpDate(ifRange);
}, "isRangeFresh");
SendStream.prototype.redirect = /* @__PURE__ */ __name(function redirect(path2) {
var res = this.res;
if (hasListeners(this, "directory")) {
this.emit("directory", res, path2);
return;
}
if (this.hasTrailingSlash()) {
this.error(403);
return;
}
var loc = encodeUrl(collapseLeadingSlashes(this.path + "/"));
var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
res.statusCode = 301;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Location", loc);
res.end(doc);
}, "redirect");
SendStream.prototype.pipe = /* @__PURE__ */ __name(function pipe(res) {
var root = this._root;
this.res = res;
var path2 = decode(this.path);
if (path2 === -1) {
this.error(400);
return res;
}
if (~path2.indexOf("\0")) {
this.error(400);
return res;
}
var parts;
if (root !== null) {
if (path2) {
path2 = normalize("." + sep + path2);
}
if (UP_PATH_REGEXP.test(path2)) {
debug('malicious path "%s"', path2);
this.error(403);
return res;
}
parts = path2.split(sep);
path2 = normalize(join(root, path2));
} else {
if (UP_PATH_REGEXP.test(path2)) {
debug('malicious path "%s"', path2);
this.error(403);
return res;
}
parts = normalize(path2).split(sep);
path2 = resolve(path2);
}
if (containsDotFile(parts)) {
debug('%s dotfile "%s"', this._dotfiles, path2);
switch (this._dotfiles) {
case "allow":
break;
case "deny":
this.error(403);
return res;
case "ignore":
default:
this.error(404);
return res;
}
}
if (this._index.length && this.hasTrailingSlash()) {
this.sendIndex(path2);
return res;
}
this.sendFile(path2);
return res;
}, "pipe");
SendStream.prototype.send = /* @__PURE__ */ __name(function send2(path2, stat) {
var len = stat.size;
var options = this.options;
var opts = {};
var res = this.res;
var req = this.req;
var ranges = req.headers.range;
var offset = options.start || 0;
if (res.headersSent) {
this.headersAlreadySent();
return;
}
debug('pipe "%s"', path2);
this.setHeader(path2, stat);
this.type(path2);
if (this.isConditionalGET()) {
if (this.isPreconditionFailure()) {
this.error(412);
return;
}
if (this.isCachable() && this.isFresh()) {
this.notModified();
return;
}
}
len = Math.max(0, len - offset);
if (options.end !== void 0) {
var bytes = options.end - offset + 1;
if (len > bytes) len = bytes;
}
if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
ranges = parseRange(len, ranges, {
combine: true
});
if (!this.isRangeFresh()) {
debug("range stale");
ranges = -2;
}
if (ranges === -1) {
debug("range unsatisfiable");
res.setHeader("Content-Range", contentRange("bytes", len));
return this.error(416, {
headers: { "Content-Range": res.getHeader("Content-Range") }
});
}
if (ranges !== -2 && ranges.length === 1) {
debug("range %j", ranges);
res.statusCode = 206;
res.setHeader("Content-Range", contentRange("bytes", len, ranges[0]));
offset += ranges[0].start;
len = ranges[0].end - ranges[0].start + 1;
}
}
for (var prop in options) {
opts[prop] = options[prop];
}
opts.start = offset;
opts.end = Math.max(offset, offset + len - 1);
res.setHeader("Content-Length", len);
if (req.method === "HEAD") {
res.end();
return;
}
this.stream(path2, opts);
}, "send");
SendStream.prototype.sendFile = /* @__PURE__ */ __name(function sendFile(path2) {
var i = 0;
var self = this;
debug('stat "%s"', path2);
fs.stat(path2, /* @__PURE__ */ __name(function onstat(err, stat) {
var pathEndsWithSep = path2[path2.length - 1] === sep;
if (err && err.code === "ENOENT" && !extname(path2) && !pathEndsWithSep) {
return next(err);
}
if (err) return self.onStatError(err);
if (stat.isDirectory()) return self.redirect(path2);
if (pathEndsWithSep) return self.error(404);
self.emit("file", path2, stat);
self.send(path2, stat);
}, "onstat"));
function next(err) {
if (self._extensions.length <= i) {
return err ? self.onStatError(err) : self.error(404);
}
var p = path2 + "." + self._extensions[i++];
debug('stat "%s"', p);
fs.stat(p, function(err2, stat) {
if (err2) return next(err2);
if (stat.isDirectory()) return next();
self.emit("file", p, stat);
self.send(p, stat);
});
}
__name(next, "next");
}, "sendFile");
SendStream.prototype.sendIndex = /* @__PURE__ */ __name(function sendIndex(path2) {
var i = -1;
var self = this;
function next(err) {
if (++i >= self._index.length) {
if (err) return self.onStatError(err);
return self.error(404);
}
var p = join(path2, self._index[i]);
debug('stat "%s"', p);
fs.stat(p, function(err2, stat) {
if (err2) return next(err2);
if (stat.isDirectory()) return next();
self.emit("file", p, stat);
self.send(p, stat);
});
}
__name(next, "next");
next();
}, "sendIndex");
SendStream.prototype.stream = /* @__PURE__ */ __name(function stream(path2, options) {
var self = this;
var res = this.res;
var stream2 = fs.createReadStream(path2, options);
this.emit("stream", stream2);
stream2.pipe(res);
function cleanup() {
stream2.destroy();
}
__name(cleanup, "cleanup");
onFinished(res, cleanup);
stream2.on("error", /* @__PURE__ */ __name(function onerror(err) {
cleanup();
self.onStatError(err);
}, "onerror"));
stream2.on("end", /* @__PURE__ */ __name(function onend() {
self.emit("end");
}, "onend"));
}, "stream");
SendStream.prototype.type = /* @__PURE__ */ __name(function type(path2) {
var res = this.res;
if (res.getHeader("Content-Type")) return;
var ext = extname(path2);
var type2 = mime.contentType(ext) || "application/octet-stream";
debug("content-type %s", type2);
res.setHeader("Content-Type", type2);
}, "type");
SendStream.prototype.setHeader = /* @__PURE__ */ __name(function setHeader(path2, stat) {
var res = this.res;
this.emit("headers", res, path2, stat);
if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
debug("accept ranges");
res.setHeader("Accept-Ranges", "bytes");
}
if (this._cacheControl && !res.getHeader("Cache-Control")) {
var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3);
if (this._immutable) {
cacheControl += ", immutable";
}
debug("cache-control %s", cacheControl);
res.setHeader("Cache-Control", cacheControl);
}
if (this._lastModified && !res.getHeader("Last-Modified")) {
var modified = stat.mtime.toUTCString();
debug("modified %s", modified);
res.setHeader("Last-Modified", modified);
}
if (this._etag && !res.getHeader("ETag")) {
var val = etag(stat);
debug("etag %s", val);
res.setHeader("ETag", val);
}
}, "setHeader");
function clearHeaders(res) {
for (const header of res.getHeaderNames()) {
res.removeHeader(header);
}
}
__name(clearHeaders, "clearHeaders");
function collapseLeadingSlashes(str) {
for (var i = 0; i < str.length; i++) {
if (str[i] !== "/") {
break;
}
}
return i > 1 ? "/" + str.substr(i) : str;
}
__name(collapseLeadingSlashes, "collapseLeadingSlashes");
function containsDotFile(parts) {
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
if (part.length > 1 && part[0] === ".") {
return true;
}
}
return false;
}
__name(containsDotFile, "containsDotFile");
function contentRange(type, size, range) {
return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size;
}
__name(contentRange, "contentRange");
function createHtmlDocument(title, body) {
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
}
__name(createHtmlDocument, "createHtmlDocument");
function createHttpError(status, err) {
if (!err) {
return createError(status);
}
return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err);
}
__name(createHttpError, "createHttpError");
function decode(path2) {
try {
return decodeURIComponent(path2);
} catch (err) {
return -1;
}
}
__name(decode, "decode");
function hasListeners(emitter, type) {
var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
return count > 0;
}
__name(hasListeners, "hasListeners");
function normalizeList(val, name) {
var list = [].concat(val || []);
for (var i = 0; i < list.length; i++) {
if (typeof list[i] !== "string") {
throw new TypeError(name + " must be array of strings or false");
}
}
return list;
}
__name(normalizeList, "normalizeList");
function parseHttpDate(date) {
var timestamp = date && Date.parse(date);
return typeof timestamp === "number" ? timestamp : NaN;
}
__name(parseHttpDate, "parseHttpDate");
function parseTokenList(str) {
var end = 0;
var list = [];
var start = 0;
for (var i = 0, len = str.length; i < len; i++) {
switch (str.charCodeAt(i)) {
case 32:
if (start === end) {
start = end = i + 1;
}
break;
case 44:
if (start !== end) {
list.push(str.substring(start, end));
}
start = end = i + 1;
break;
default:
end = i + 1;
break;
}
}
if (start !== end) {
list.push(str.substring(start, end));
}
return list;
}
__name(parseTokenList, "parseTokenList");
function setHeaders(res, headers) {
var keys = Object.keys(headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
res.setHeader(key, headers[key]);
}
}
__name(setHeaders, "setHeaders");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/response.js
var require_response = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/response.js"(exports, module) {
"use strict";
var contentDisposition = require_dist3();
var createError = require_http_errors();
var deprecate = require_depd()("express");
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var http2 = __require("node:http");
var onFinished = require_on_finished();
var mime = require_mime_types();
var path = __require("node:path");
var pathIsAbsolute = __require("node:path").isAbsolute;
var statuses = require_statuses();
var sign = require_cookie_signature().sign;
var normalizeType = require_utils3().normalizeType;
var normalizeTypes = require_utils3().normalizeTypes;
var setCharset = require_utils3().setCharset;
var cookie = require_cookie();
var send = require_send();
var extname = path.extname;
var resolve = path.resolve;
var basename = path.basename;
var vary = require_vary();
var { Buffer: Buffer2 } = __require("node:buffer");
var res = Object.create(http2.ServerResponse.prototype);
module.exports = res;
res.status = /* @__PURE__ */ __name(function status(code) {
if (!Number.isInteger(code)) {
throw new TypeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be an integer.`);
}
if (code < 100 || code > 999) {
throw new RangeError(`Invalid status code: ${JSON.stringify(code)}. Status code must be greater than 99 and less than 1000.`);
}
this.statusCode = code;
return this;
}, "status");
res.links = function(links) {
var link = this.get("Link") || "";
if (link) link += ", ";
return this.set("Link", link + Object.keys(links).map(function(rel) {
if (Array.isArray(links[rel])) {
return links[rel].map(function(singleLink) {
return `<${singleLink}>; rel="${rel}"`;
}).join(", ");
} else {
return `<${links[rel]}>; rel="${rel}"`;
}
}).join(", "));
};
res.send = /* @__PURE__ */ __name(function send2(body) {
var chunk = body;
var encoding;
var req = this.req;
var app = this.app;
switch (typeof chunk) {
// string defaulting to html
case "string":
encoding = "utf8";
const type = this.get("Content-Type");
if (typeof type === "string") {
this.set("Content-Type", setCharset(type, "utf-8"));
} else {
this.type("html");
}
break;
case "boolean":
case "number":
case "object":
if (chunk === null) {
chunk = "";
} else if (ArrayBuffer.isView(chunk)) {
if (!this.get("Content-Type")) {
this.type("bin");
}
} else {
return this.json(chunk);
}
break;
}
var etagFn = app.get("etag fn");
var generateETag = !this.get("ETag") && typeof etagFn === "function";
var len;
if (chunk !== void 0) {
if (Buffer2.isBuffer(chunk)) {
len = chunk.length;
} else if (!generateETag && chunk.length < 1e3) {
len = Buffer2.byteLength(chunk, encoding);
} else {
chunk = Buffer2.from(chunk, encoding);
encoding = void 0;
len = chunk.length;
}
if (!this.get("Transfer-Encoding")) {
this.set("Content-Length", len);
}
}
var etag;
if (generateETag && len !== void 0) {
if (etag = etagFn(chunk, encoding)) {
this.set("ETag", etag);
}
}
if (req.fresh) this.status(304);
if (204 === this.statusCode || 304 === this.statusCode) {
this.removeHeader("Content-Type");
this.removeHeader("Content-Length");
this.removeHeader("Transfer-Encoding");
chunk = "";
}
if (this.statusCode === 205) {
this.set("Content-Length", "0");
this.removeHeader("Transfer-Encoding");
chunk = "";
}
if (req.method === "HEAD") {
this.end();
} else {
this.end(chunk, encoding);
}
return this;
}, "send");
res.json = /* @__PURE__ */ __name(function json(obj) {
var app = this.app;
var escape2 = app.get("json escape");
var replacer = app.get("json replacer");
var spaces = app.get("json spaces");
var body = stringify2(obj, replacer, spaces, escape2);
if (!this.get("Content-Type")) {
this.set("Content-Type", "application/json");
}
return this.send(body);
}, "json");
res.jsonp = /* @__PURE__ */ __name(function jsonp(obj) {
var app = this.app;
var escape2 = app.get("json escape");
var replacer = app.get("json replacer");
var spaces = app.get("json spaces");
var body = stringify2(obj, replacer, spaces, escape2);
var callback = this.req.query[app.get("jsonp callback name")];
if (!this.get("Content-Type")) {
this.set("X-Content-Type-Options", "nosniff");
this.set("Content-Type", "application/json");
}
if (Array.isArray(callback)) {
callback = callback[0];
}
if (typeof callback === "string" && callback.length !== 0) {
this.set("X-Content-Type-Options", "nosniff");
this.set("Content-Type", "text/javascript");
callback = callback.replace(/[^\[\]\w$.]/g, "");
if (body === void 0) {
body = "";
} else if (typeof body === "string") {
body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
}
body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");";
}
return this.send(body);
}, "jsonp");
res.sendStatus = /* @__PURE__ */ __name(function sendStatus(statusCode) {
var body = statuses.message[statusCode] || String(statusCode);
this.status(statusCode);
this.type("txt");
return this.send(body);
}, "sendStatus");
res.sendFile = /* @__PURE__ */ __name(function sendFile(path2, options, callback) {
var done = callback;
var req = this.req;
var res2 = this;
var next = req.next;
var opts = options || {};
if (!path2) {
throw new TypeError("path argument is required to res.sendFile");
}
if (typeof path2 !== "string") {
throw new TypeError("path must be a string to res.sendFile");
}
if (typeof options === "function") {
done = options;
opts = {};
}
if (!opts.root && !pathIsAbsolute(path2)) {
throw new TypeError("path must be absolute or specify root to res.sendFile");
}
var pathname = encodeURI(path2);
opts.etag = this.app.enabled("etag");
var file = send(req, pathname, opts);
sendfile(res2, file, opts, function(err) {
if (done) return done(err);
if (err && err.code === "EISDIR") return next();
if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") {
next(err);
}
});
}, "sendFile");
res.download = /* @__PURE__ */ __name(function download(path2, filename, options, callback) {
var done = callback;
var name = filename;
var opts = options || null;
if (typeof filename === "function") {
done = filename;
name = null;
opts = null;
} else if (typeof options === "function") {
done = options;
opts = null;
}
if (typeof filename === "object" && (typeof options === "function" || options === void 0)) {
name = null;
opts = filename;
}
var headers = {
"Content-Disposition": contentDisposition.create(basename(name || path2))
};
if (opts && opts.headers) {
var keys = Object.keys(opts.headers);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (key.toLowerCase() !== "content-disposition") {
headers[key] = opts.headers[key];
}
}
}
opts = Object.create(opts);
opts.headers = headers;
var fullPath = !opts.root ? resolve(path2) : path2;
return this.sendFile(fullPath, opts, done);
}, "download");
res.contentType = res.type = /* @__PURE__ */ __name(function contentType(type) {
var ct = type.indexOf("/") === -1 ? mime.contentType(type) || "application/octet-stream" : type;
return this.set("Content-Type", ct);
}, "contentType");
res.format = function(obj) {
var req = this.req;
var next = req.next;
var keys = Object.keys(obj).filter(function(v) {
return v !== "default";
});
var key = keys.length > 0 ? req.accepts(keys) : false;
this.vary("Accept");
if (key) {
this.set("Content-Type", normalizeType(key).value);
obj[key](req, this, next);
} else if (obj.default) {
obj.default(req, this, next);
} else {
next(createError(406, {
types: normalizeTypes(keys).map(function(o) {
return o.value;
})
}));
}
return this;
};
res.attachment = /* @__PURE__ */ __name(function attachment(filename) {
const name = filename !== void 0 ? basename(filename) : void 0;
if (name) {
this.type(extname(name));
}
this.set("Content-Disposition", contentDisposition.create(name));
return this;
}, "attachment");
res.append = /* @__PURE__ */ __name(function append(field, val) {
var prev = this.get(field);
var value = val;
if (prev) {
value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val];
}
return this.set(field, value);
}, "append");
res.set = res.header = /* @__PURE__ */ __name(function header(field, val) {
if (arguments.length === 2) {
var value = Array.isArray(val) ? val.map(String) : String(val);
if (field.toLowerCase() === "content-type") {
if (Array.isArray(value)) {
throw new TypeError("Content-Type cannot be set to an Array");
}
value = mime.contentType(value);
}
this.setHeader(field, value);
} else {
for (var key in field) {
this.set(key, field[key]);
}
}
return this;
}, "header");
res.get = function(field) {
return this.getHeader(field);
};
res.clearCookie = /* @__PURE__ */ __name(function clearCookie(name, options) {
const opts = { path: "/", ...options, expires: /* @__PURE__ */ new Date(1) };
delete opts.maxAge;
return this.cookie(name, "", opts);
}, "clearCookie");
res.cookie = function(name, value, options) {
var opts = { ...options };
var secret = this.req.secret;
var signed = opts.signed;
if (signed && !secret) {
throw new Error('cookieParser("secret") required for signed cookies');
}
var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value);
if (signed) {
val = "s:" + sign(val, secret);
}
if (opts.maxAge != null) {
var maxAge = opts.maxAge - 0;
if (!isNaN(maxAge)) {
opts.expires = new Date(Date.now() + maxAge);
opts.maxAge = Math.floor(maxAge / 1e3);
}
}
if (opts.path == null) {
opts.path = "/";
}
this.append("Set-Cookie", cookie.serialize(name, String(val), opts));
return this;
};
res.location = /* @__PURE__ */ __name(function location(url) {
return this.set("Location", encodeUrl(url));
}, "location");
res.redirect = /* @__PURE__ */ __name(function redirect(url) {
var address = url;
var body;
var status = 302;
if (arguments.length === 2) {
status = arguments[0];
address = arguments[1];
}
if (!address) {
deprecate("Provide a url argument");
}
if (typeof address !== "string") {
deprecate("Url must be a string");
}
if (typeof status !== "number") {
deprecate("Status must be a number");
}
address = this.location(address).get("Location");
this.format({
text: /* @__PURE__ */ __name(function() {
body = statuses.message[status] + ". Redirecting to " + address;
}, "text"),
html: /* @__PURE__ */ __name(function() {
var u = escapeHtml(address);
body = "<!DOCTYPE html><head><title>" + statuses.message[status] + "</title></head><body><p>" + statuses.message[status] + ". Redirecting to " + u + "</p></body>";
}, "html"),
default: /* @__PURE__ */ __name(function() {
body = "";
}, "default")
});
this.status(status);
this.set("Content-Length", Buffer2.byteLength(body));
if (this.req.method === "HEAD") {
this.end();
} else {
this.end(body);
}
}, "redirect");
res.vary = function(field) {
vary(this, field);
return this;
};
res.render = /* @__PURE__ */ __name(function render(view, options, callback) {
var app = this.req.app;
var done = callback;
var opts = options || {};
var req = this.req;
var self = this;
if (typeof options === "function") {
done = options;
opts = {};
}
opts._locals = self.locals;
done = done || function(err, str) {
if (err) return req.next(err);
self.send(str);
};
app.render(view, opts, done);
}, "render");
function sendfile(res2, file, options, callback) {
var done = false;
var streaming;
function onaborted() {
if (done) return;
done = true;
var err = new Error("Request aborted");
err.code = "ECONNABORTED";
callback(err);
}
__name(onaborted, "onaborted");
function ondirectory() {
if (done) return;
done = true;
var err = new Error("EISDIR, read");
err.code = "EISDIR";
callback(err);
}
__name(ondirectory, "ondirectory");
function onerror(err) {
if (done) return;
done = true;
callback(err);
}
__name(onerror, "onerror");
function onend() {
if (done) return;
done = true;
callback();
}
__name(onend, "onend");
function onfile() {
streaming = false;
}
__name(onfile, "onfile");
function onfinish(err) {
if (err && err.code === "ECONNRESET") return onaborted();
if (err) return onerror(err);
if (done) return;
setImmediate(function() {
if (streaming !== false && !done) {
onaborted();
return;
}
if (done) return;
done = true;
callback();
});
}
__name(onfinish, "onfinish");
function onstream() {
streaming = true;
}
__name(onstream, "onstream");
file.on("directory", ondirectory);
file.on("end", onend);
file.on("error", onerror);
file.on("file", onfile);
file.on("stream", onstream);
onFinished(res2, onfinish);
if (options.headers) {
file.on("headers", /* @__PURE__ */ __name(function headers(res3) {
var obj = options.headers;
var keys = Object.keys(obj);
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
res3.setHeader(k, obj[k]);
}
}, "headers"));
}
file.pipe(res2);
}
__name(sendfile, "sendfile");
function stringify2(value, replacer, spaces, escape2) {
var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value);
if (escape2 && typeof json === "string") {
json = json.replace(/[<>&]/g, function(c) {
switch (c.charCodeAt(0)) {
case 60:
return "\\u003c";
case 62:
return "\\u003e";
case 38:
return "\\u0026";
/* istanbul ignore next: unreachable default */
default:
return c;
}
});
}
return json;
}
__name(stringify2, "stringify");
}
});
// ../../node_modules/.pnpm/serve-static@2.2.1/node_modules/serve-static/index.js
var require_serve_static = __commonJS({
"../../node_modules/.pnpm/serve-static@2.2.1/node_modules/serve-static/index.js"(exports, module) {
"use strict";
var encodeUrl = require_encodeurl();
var escapeHtml = require_escape_html();
var parseUrl = require_parseurl();
var resolve = __require("path").resolve;
var send = require_send();
var url = __require("url");
module.exports = serveStatic;
function serveStatic(root, options) {
if (!root) {
throw new TypeError("root path required");
}
if (typeof root !== "string") {
throw new TypeError("root path must be a string");
}
var opts = Object.create(options || null);
var fallthrough = opts.fallthrough !== false;
var redirect = opts.redirect !== false;
var setHeaders = opts.setHeaders;
if (setHeaders && typeof setHeaders !== "function") {
throw new TypeError("option setHeaders must be function");
}
opts.maxage = opts.maxage || opts.maxAge || 0;
opts.root = resolve(root);
var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener();
return /* @__PURE__ */ __name(function serveStatic2(req, res, next) {
if (req.method !== "GET" && req.method !== "HEAD") {
if (fallthrough) {
return next();
}
res.statusCode = 405;
res.setHeader("Allow", "GET, HEAD");
res.setHeader("Content-Length", "0");
res.end();
return;
}
var forwardError = !fallthrough;
var originalUrl = parseUrl.original(req);
var path = parseUrl(req).pathname;
if (path === "/" && originalUrl.pathname.substr(-1) !== "/") {
path = "";
}
var stream = send(req, path, opts);
stream.on("directory", onDirectory);
if (setHeaders) {
stream.on("headers", setHeaders);
}
if (fallthrough) {
stream.on("file", /* @__PURE__ */ __name(function onFile() {
forwardError = true;
}, "onFile"));
}
stream.on("error", /* @__PURE__ */ __name(function error(err) {
if (forwardError || !(err.statusCode < 500)) {
next(err);
return;
}
next();
}, "error"));
stream.pipe(res);
}, "serveStatic");
}
__name(serveStatic, "serveStatic");
function collapseLeadingSlashes(str) {
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) !== 47) {
break;
}
}
return i > 1 ? "/" + str.substr(i) : str;
}
__name(collapseLeadingSlashes, "collapseLeadingSlashes");
function createHtmlDocument(title, body) {
return '<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>' + title + "</title>\n</head>\n<body>\n<pre>" + body + "</pre>\n</body>\n</html>\n";
}
__name(createHtmlDocument, "createHtmlDocument");
function createNotFoundDirectoryListener() {
return /* @__PURE__ */ __name(function notFound() {
this.error(404);
}, "notFound");
}
__name(createNotFoundDirectoryListener, "createNotFoundDirectoryListener");
function createRedirectDirectoryListener() {
return /* @__PURE__ */ __name(function redirect(res) {
if (this.hasTrailingSlash()) {
this.error(404);
return;
}
var originalUrl = parseUrl.original(this.req);
originalUrl.path = null;
originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/");
var loc = encodeUrl(url.format(originalUrl));
var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
res.statusCode = 301;
res.setHeader("Content-Type", "text/html; charset=UTF-8");
res.setHeader("Content-Length", Buffer.byteLength(doc));
res.setHeader("Content-Security-Policy", "default-src 'none'");
res.setHeader("X-Content-Type-Options", "nosniff");
res.setHeader("Location", loc);
res.end(doc);
}, "redirect");
}
__name(createRedirectDirectoryListener, "createRedirectDirectoryListener");
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/express.js
var require_express = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/lib/express.js"(exports, module) {
"use strict";
var bodyParser = require_body_parser();
var EventEmitter = __require("node:events").EventEmitter;
var mixin2 = require_merge_descriptors();
var proto = require_application();
var Router = require_router();
var req = require_request();
var res = require_response();
exports = module.exports = createApplication;
function createApplication() {
var app = /* @__PURE__ */ __name(function(req2, res2, next) {
app.handle(req2, res2, next);
}, "app");
mixin2(app, EventEmitter.prototype, false);
mixin2(app, proto, false);
app.request = Object.create(req, {
app: { configurable: true, enumerable: true, writable: true, value: app }
});
app.response = Object.create(res, {
app: { configurable: true, enumerable: true, writable: true, value: app }
});
app.init();
return app;
}
__name(createApplication, "createApplication");
exports.application = proto;
exports.request = req;
exports.response = res;
exports.Route = Router.Route;
exports.Router = Router;
exports.json = bodyParser.json;
exports.raw = bodyParser.raw;
exports.static = require_serve_static();
exports.text = bodyParser.text;
exports.urlencoded = bodyParser.urlencoded;
}
});
// ../../node_modules/.pnpm/express@5.3.0/node_modules/express/index.js
var require_express2 = __commonJS({
"../../node_modules/.pnpm/express@5.3.0/node_modules/express/index.js"(exports, module) {
"use strict";
module.exports = require_express();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js
function getBodyParserOptions(parser, rawBody, options) {
if (rawBody === true) {
return {
...options,
verify: rawBodyParser
};
}
return options || {};
}
var rawBodyParser;
var init_get_body_parser_options_util = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-body-parser-options.util.js"() {
rawBodyParser = /* @__PURE__ */ __name((req, _res, buffer) => {
if (Buffer.isBuffer(buffer)) {
req.rawBody = buffer;
}
return true;
}, "rawBodyParser");
__name(getBodyParserOptions, "getBodyParserOptions");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-media-type-version.util.js
function getMediaTypeVersion(acceptHeader, key) {
const mediaRanges = [].concat(acceptHeader ?? []).flatMap((value) => splitOutsideQuotes(value, ","));
for (const mediaRange of mediaRanges) {
const [, ...parameters] = splitOutsideQuotes(mediaRange, ";");
for (const parameter of parameters) {
const trimmedParameter = parameter.trim();
if (trimmedParameter.startsWith(key)) {
const version = trimmedParameter.slice(key.length);
if (version.startsWith('"') && version.endsWith('"')) {
return version.slice(1, -1).replace(/\\([\s\S])/g, "$1");
}
return version;
}
}
}
return void 0;
}
var splitOutsideQuotes;
var init_get_media_type_version_util = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/utils/get-media-type-version.util.js"() {
splitOutsideQuotes = /* @__PURE__ */ __name((value, separator) => {
const parts = [];
let start = 0;
let isQuoted = false;
const len = value.length;
for (let index = 0; index < len; index++) {
const character = value[index];
if (isQuoted && character === "\\") {
index++;
} else if (character === '"') {
isQuoted = !isQuoted;
} else if (character === separator && !isQuoted) {
parts.push(value.slice(start, index));
start = index + 1;
}
}
parts.push(value.slice(start));
return parts;
}, "splitOutsideQuotes");
__name(getMediaTypeVersion, "getMediaTypeVersion");
}
});
// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js
var selectExceptionFilterMetadata;
var init_select_exception_filter_metadata_util = __esm({
"../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/utils/select-exception-filter-metadata.util.js"() {
selectExceptionFilterMetadata = /* @__PURE__ */ __name((filters, exception) => filters.find(({ exceptionMetatypes }) => !exceptionMetatypes.length || exceptionMetatypes.some((ExceptionMetaType) => exception instanceof ExceptionMetaType)), "selectExceptionFilterMetadata");
}
});
// ../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/internal.js
var init_internal = __esm({
"../../node_modules/.pnpm/@nestjs+common@12.2.0_reflect-metadata@0.2.2_rxjs@7.8.2/node_modules/@nestjs/common/internal.js"() {
init_constants();
init_route_paramtypes_enum();
init_shared_utils();
init_parameter_decorator_options_util();
init_load_package_util();
init_cli_colors_util();
init_random_string_generator_util();
init_select_exception_filter_metadata_util();
init_route_params_decorator();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/serialize-cookie.js
function serializeCookie(name, value, options = {}) {
if (typeof name !== "string" || !COOKIE_NAME_REGEXP.test(name)) {
throw new TypeError(`Invalid cookie name: ${JSON.stringify(name)}`);
}
if (typeof value !== "string") {
throw new TypeError(`Invalid value for cookie "${name}": expected a string, received ${typeof value}`);
}
let encodedValue;
try {
encodedValue = encodeURIComponent(value);
} catch {
throw new TypeError(`Invalid value for cookie "${name}": not a well-formed string`);
}
let header = `${name}=${encodedValue}`;
const path = options.path ?? "/";
if (typeof path !== "string" || !COOKIE_PATH_REGEXP.test(path)) {
throw new TypeError(`Invalid path for cookie "${name}"`);
}
header += `; Path=${path}`;
if (options.domain !== void 0) {
if (typeof options.domain !== "string" || !COOKIE_DOMAIN_REGEXP.test(options.domain)) {
throw new TypeError(`Invalid domain for cookie "${name}"`);
}
header += `; Domain=${options.domain}`;
}
if (options.maxAge !== void 0) {
if (!Number.isSafeInteger(options.maxAge)) {
throw new TypeError(`Invalid maxAge for cookie "${name}": expected an integer number of seconds`);
}
header += `; Max-Age=${options.maxAge}`;
}
if (options.expires !== void 0) {
if (!(options.expires instanceof Date) || Number.isNaN(options.expires.getTime())) {
throw new TypeError(`Invalid expires date for cookie "${name}"`);
}
header += `; Expires=${options.expires.toUTCString()}`;
}
if (options.httpOnly) {
header += "; HttpOnly";
}
if (options.secure) {
header += "; Secure";
}
if (options.partitioned) {
if (!options.secure) {
throw new TypeError(`Invalid options for cookie "${name}": "partitioned" requires "secure: true"`);
}
header += "; Partitioned";
}
if (options.priority !== void 0) {
const priority = PRIORITY_VALUES.get(String(options.priority).toLowerCase());
if (!priority) {
throw new TypeError(`Invalid priority for cookie "${name}"`);
}
header += `; Priority=${priority}`;
}
if (options.sameSite !== void 0) {
const sameSite = SAME_SITE_VALUES.get(String(options.sameSite).toLowerCase());
if (!sameSite) {
throw new TypeError(`Invalid sameSite for cookie "${name}"`);
}
if (sameSite === "None" && !options.secure) {
throw new TypeError(`Invalid options for cookie "${name}": "sameSite: 'none'" requires "secure: true"`);
}
header += `; SameSite=${sameSite}`;
}
return header;
}
var COOKIE_NAME_REGEXP, COOKIE_DOMAIN_REGEXP, COOKIE_PATH_REGEXP, SAME_SITE_VALUES, PRIORITY_VALUES;
var init_serialize_cookie = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/serialize-cookie.js"() {
COOKIE_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
COOKIE_DOMAIN_REGEXP = /^\.?[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i;
COOKIE_PATH_REGEXP = /^[ -:<-~]*$/;
SAME_SITE_VALUES = /* @__PURE__ */ new Map([
["strict", "Strict"],
["lax", "Lax"],
["none", "None"]
]);
PRIORITY_VALUES = /* @__PURE__ */ new Map([
["low", "Low"],
["medium", "Medium"],
["high", "High"]
]);
__name(serializeCookie, "serializeCookie");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/http-adapter.js
var AbstractHttpAdapter;
var init_http_adapter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/http-adapter.js"() {
init_serialize_cookie();
AbstractHttpAdapter = class {
static {
__name(this, "AbstractHttpAdapter");
}
instance;
/**
* Native HTTP server created by {@link AbstractHttpAdapter.initHttpServer}
* and returned by {@link AbstractHttpAdapter.getHttpServer}.
*/
httpServer;
/**
* Callback registered through
* {@link AbstractHttpAdapter.setOnRouteTriggered}, if any.
*/
onRouteTriggered;
/**
* Signer built from the `cookies.secret` application option, used by
* {@link AbstractHttpAdapter.setCookie} for `signed` cookies.
*/
cookieSigner;
/**
* @param instance The framework application instance to delegate to (e.g.
* an Express `Application`). Subclasses typically create a default one
* when none is given.
*/
constructor(instance) {
this.instance = instance;
}
/**
* Asynchronous setup hook, awaited by `NestFactory.create()` and again by
* `app.init()`, so overrides must be idempotent. No-op by default.
*
* @see {@link HttpServer.init}
*/
async init() {
}
/**
* Registers a global middleware by delegating to `instance.use(...args)`.
*
* @see {@link HttpServer.use}
*/
use(...args) {
return this.instance.use(...args);
}
get(...args) {
return this.instance.get(...args);
}
post(...args) {
return this.instance.post(...args);
}
head(...args) {
return this.instance.head(...args);
}
delete(...args) {
return this.instance.delete(...args);
}
put(...args) {
return this.instance.put(...args);
}
patch(...args) {
return this.instance.patch(...args);
}
propfind(...args) {
return this.instance.propfind(...args);
}
proppatch(...args) {
return this.instance.proppatch(...args);
}
mkcol(...args) {
return this.instance.mkcol(...args);
}
copy(...args) {
return this.instance.copy(...args);
}
move(...args) {
return this.instance.move(...args);
}
lock(...args) {
return this.instance.lock(...args);
}
unlock(...args) {
return this.instance.unlock(...args);
}
all(...args) {
return this.instance.all(...args);
}
search(...args) {
return this.instance.search(...args);
}
query(...args) {
return this.instance.query(...args);
}
options(...args) {
return this.instance.options(...args);
}
listen(port, hostname, callback) {
return this.instance.listen(port, hostname, callback);
}
/**
* Returns the native HTTP server stored by
* {@link AbstractHttpAdapter.initHttpServer} (or
* {@link AbstractHttpAdapter.setHttpServer}).
*
* @see {@link HttpServer.getHttpServer}
*/
getHttpServer() {
return this.httpServer;
}
/**
* Replaces the native HTTP server returned by
* {@link AbstractHttpAdapter.getHttpServer}. Mostly useful for tests and
* for adapters that obtain the server from elsewhere.
*/
setHttpServer(httpServer) {
this.httpServer = httpServer;
}
/**
* Replaces the framework application instance that the default method
* implementations delegate to.
*/
setInstance(instance) {
this.instance = instance;
}
/**
* Returns the framework application instance passed to the constructor
* (or set through {@link AbstractHttpAdapter.setInstance}).
*
* @see {@link HttpServer.getInstance}
*/
getInstance() {
return this.instance;
}
/**
* Converts and validates a route path before registration. Returns the
* path unchanged by default; override to translate Nest's path syntax to
* the router's and to throw on invalid paths.
*
* @see {@link HttpServer.normalizePath}
*/
normalizePath(path) {
return path;
}
/**
* Registers a callback that the router invokes right before each route
* handler runs, with the resolved `RequestMethod` and the route path as
* declared (before {@link AbstractHttpAdapter.normalizePath}). The router
* wraps every handler at registration time, so the callback must be set
* before `app.init()` to take effect. Intended for instrumentation and
* devtools; there is no need to override it.
*/
setOnRouteTriggered(onRouteTriggered) {
this.onRouteTriggered = onRouteTriggered;
}
/**
* Returns the callback registered through
* {@link AbstractHttpAdapter.setOnRouteTriggered}, if any. Read by the
* router when registering routes.
*/
getOnRouteTriggered() {
return this.onRouteTriggered;
}
/**
* Registers a hook to run at the start of every request. No-op by default;
* the built-in adapters accept a `(req, res, done) => void | Promise<void>`
* function and call `done()` to continue processing. Intended for
* instrumentation and devtools.
*/
setOnRequestHook(onRequestHook) {
}
/**
* Registers a hook to run once a response has been sent. No-op by default;
* the built-in adapters accept a `(req, res) => void | Promise<void>`
* function. Intended for instrumentation and devtools.
*/
setOnResponseHook(onResponseHook) {
}
/**
* Called by `app.close()` before the shutdown hooks run. No-op by default;
* override to enter a "shutting down" state.
*
* @see {@link HttpServer.beforeClose}
*/
beforeClose() {
}
/**
* Translates a framework-native error into something the exception filters
* understand. Invoked by the global exception layer with every error it
* receives, before it reaches the filters; the returned value is what the
* filters see. Returns the error unchanged by default. The built-in
* adapters map, for instance, body-parser `SyntaxError`s to
* `BadRequestException`.
*/
mapException(error) {
return error;
}
/**
* Installs the request hook of the built-in HTTP security features as a
* global middleware (`use()`), which fits Express-like frameworks: the hook
* gets the request and the response, and a rejection is handed to
* `next(error)`, i.e. to the exception layer. Override when the framework
* offers an earlier request hook (the Fastify adapter uses `onRequest`).
*
* @see {@link HttpServer.registerSecurityHook}
*/
registerSecurityHook(hook) {
return this.use((request, response, next) => {
const error = hook(request, response);
return error ? next(error) : next();
});
}
/**
* Appends a `Set-Cookie` header through {@link AbstractHttpAdapter.appendHeader},
* so every cookie set during a request is sent, on every platform. The
* value is percent-encoded, `path` defaults to `/` and `maxAge` is in
* seconds (not milliseconds, unlike Express' `res.cookie()`); with
* `signed: true`, the value is signed with the first `cookies.secret`.
*
* Throws a `TypeError` when the name, the value or an attribute is not
* valid per RFC 6265 (which rules out header injection through `;`, CR or
* LF) or when `sameSite: 'none'` or `partitioned` is set without `secure`,
* and an `Error` when `signed` is set but no secret is configured.
*
* @see {@link HttpServer.setCookie}
*/
setCookie(response, name, value, options = {}) {
let cookieValue = value;
if (options.signed) {
if (!this.cookieSigner) {
throw new Error(`Cannot sign cookie "${name}": no cookie secret is configured. Pass "cookies: { secret }" to NestFactory.create().`);
}
if (typeof value !== "string") {
throw new TypeError(`Invalid value for cookie "${name}": expected a string, received ${typeof value}`);
}
cookieValue = this.cookieSigner.sign(value);
}
return this.appendHeader(response, "Set-Cookie", serializeCookie(name, cookieValue, options));
}
/**
* Appends a `Set-Cookie` header that expires the cookie immediately.
* `path` and `domain` must match the ones the cookie was set with; `maxAge`,
* `expires` and `signed` are ignored.
*
* @see {@link HttpServer.clearCookie}
*/
clearCookie(response, name, options = {}) {
return this.appendHeader(response, "Set-Cookie", serializeCookie(name, "", {
...options,
maxAge: 0,
expires: /* @__PURE__ */ new Date(0)
}));
}
/**
* Sets the signer used for `signed` cookies. Called by `NestApplication`
* with the signer it builds from the `cookies.secret` application option;
* configure that option instead of calling this method.
*
* @internal
*/
setCookieSigner(signer) {
this.cookieSigner = signer;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/index.js
var init_adapters = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/adapters/index.js"() {
init_http_adapter();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/application-config.js
var ApplicationConfig;
var init_application_config = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/application-config.js"() {
ApplicationConfig = class {
static {
__name(this, "ApplicationConfig");
}
ioAdapter;
globalPrefix = "";
globalPrefixOptions = {};
globalPipes = [];
globalFilters = [];
globalInterceptors = [];
globalGuards = [];
globalPreRequestHooks = [];
versioningOptions;
routeConflictPolicy;
routeResolutionStrategy;
cookieSigner;
globalRequestPipes = [];
globalRequestFilters = [];
globalRequestInterceptors = [];
globalRequestGuards = [];
constructor(ioAdapter = null) {
this.ioAdapter = ioAdapter;
}
setGlobalPrefix(prefix) {
this.globalPrefix = prefix;
}
getGlobalPrefix() {
return this.globalPrefix;
}
setGlobalPrefixOptions(options) {
this.globalPrefixOptions = options;
}
getGlobalPrefixOptions() {
return this.globalPrefixOptions;
}
setIoAdapter(ioAdapter) {
this.ioAdapter = ioAdapter;
}
getIoAdapter() {
return this.ioAdapter;
}
addGlobalPipe(pipe) {
this.globalPipes.push(pipe);
}
useGlobalPipes(...pipes) {
this.globalPipes = this.globalPipes.concat(pipes);
}
getGlobalFilters() {
return this.globalFilters;
}
addGlobalFilter(filter) {
this.globalFilters.push(filter);
}
useGlobalFilters(...filters) {
this.globalFilters = this.globalFilters.concat(filters);
}
getGlobalPipes() {
return this.globalPipes;
}
getGlobalInterceptors() {
return this.globalInterceptors;
}
addGlobalInterceptor(interceptor) {
this.globalInterceptors.push(interceptor);
}
useGlobalInterceptors(...interceptors) {
this.globalInterceptors = this.globalInterceptors.concat(interceptors);
}
getGlobalGuards() {
return this.globalGuards;
}
addGlobalGuard(guard) {
this.globalGuards.push(guard);
}
useGlobalGuards(...guards) {
this.globalGuards = this.globalGuards.concat(guards);
}
addGlobalRequestInterceptor(wrapper) {
this.globalRequestInterceptors.push(wrapper);
}
getGlobalRequestInterceptors() {
return this.globalRequestInterceptors;
}
addGlobalRequestPipe(wrapper) {
this.globalRequestPipes.push(wrapper);
}
getGlobalRequestPipes() {
return this.globalRequestPipes;
}
addGlobalRequestFilter(wrapper) {
this.globalRequestFilters.push(wrapper);
}
getGlobalRequestFilters() {
return this.globalRequestFilters;
}
addGlobalRequestGuard(wrapper) {
this.globalRequestGuards.push(wrapper);
}
getGlobalRequestGuards() {
return this.globalRequestGuards;
}
registerPreRequestHook(...hooks) {
this.globalPreRequestHooks = this.globalPreRequestHooks.concat(hooks);
}
getGlobalPreRequestHooks() {
return this.globalPreRequestHooks;
}
enableVersioning(options) {
if (Array.isArray(options.defaultVersion)) {
options.defaultVersion = Array.from(new Set(options.defaultVersion));
}
this.versioningOptions = options;
}
getVersioning() {
return this.versioningOptions;
}
setRouteConflictPolicy(policy) {
this.routeConflictPolicy = policy;
}
getRouteConflictPolicy() {
return this.routeConflictPolicy;
}
setRouteResolutionStrategy(strategy) {
this.routeResolutionStrategy = strategy;
}
getRouteResolutionStrategy() {
return this.routeResolutionStrategy;
}
setCookieSigner(signer) {
this.cookieSigner = signer;
}
getCookieSigner() {
return this.cookieSigner;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/constants.js
var MESSAGES, APP_INTERCEPTOR, APP_PIPE, APP_GUARD, APP_FILTER, ENHANCER_TOKEN_TO_SUBTYPE_MAP;
var init_constants2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/constants.js"() {
MESSAGES = {
APPLICATION_START: `Starting Nest application...`,
APPLICATION_READY: `Nest application successfully started`,
MICROSERVICE_READY: `Nest microservice successfully started`,
UNKNOWN_EXCEPTION_MESSAGE: "Internal server error",
ERROR_DURING_SHUTDOWN: "Error happened during shutdown",
CALL_LISTEN_FIRST: "app.listen() needs to be called before calling app.getUrl()"
};
APP_INTERCEPTOR = "APP_INTERCEPTOR";
APP_PIPE = "APP_PIPE";
APP_GUARD = "APP_GUARD";
APP_FILTER = "APP_FILTER";
ENHANCER_TOKEN_TO_SUBTYPE_MAP = {
[APP_GUARD]: "guard",
[APP_INTERCEPTOR]: "interceptor",
[APP_PIPE]: "pipe",
[APP_FILTER]: "filter"
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/metadata-scanner.js
var MetadataScanner;
var init_metadata_scanner = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/metadata-scanner.js"() {
init_internal();
MetadataScanner = class {
static {
__name(this, "MetadataScanner");
}
cachedScannedPrototypes = /* @__PURE__ */ new Map();
/**
* @deprecated
* @see {@link getAllMethodNames}
* @see getAllMethodNames
*/
scanFromPrototype(instance, prototype, callback) {
if (!prototype) {
return [];
}
const visitedNames = /* @__PURE__ */ new Map();
const result = [];
do {
for (const property of Object.getOwnPropertyNames(prototype)) {
if (visitedNames.has(property)) {
continue;
}
visitedNames.set(property, true);
const descriptor = Object.getOwnPropertyDescriptor(prototype, property);
if (descriptor.set || descriptor.get || isConstructor(property) || !isFunction(prototype[property])) {
continue;
}
const value = callback(property);
if (isNil(value)) {
continue;
}
result.push(value);
}
} while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype);
return result;
}
/**
* @deprecated
* @see {@link getAllMethodNames}
* @see getAllMethodNames
*/
*getAllFilteredMethodNames(prototype) {
yield* this.getAllMethodNames(prototype);
}
getAllMethodNames(prototype) {
if (!prototype) {
return [];
}
if (this.cachedScannedPrototypes.has(prototype)) {
return this.cachedScannedPrototypes.get(prototype);
}
const visitedNames = /* @__PURE__ */ new Map();
const result = [];
this.cachedScannedPrototypes.set(prototype, result);
do {
for (const property of Object.getOwnPropertyNames(prototype)) {
if (visitedNames.has(property)) {
continue;
}
visitedNames.set(property, true);
const descriptor = Object.getOwnPropertyDescriptor(prototype, property);
if (descriptor.set || descriptor.get || isConstructor(property) || !isFunction(prototype[property])) {
continue;
}
result.push(property);
}
} while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype);
return result;
}
};
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js
var require_performanceTimestampProvider = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/performanceTimestampProvider.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.performanceTimestampProvider = void 0;
exports.performanceTimestampProvider = {
now: /* @__PURE__ */ __name(function() {
return (exports.performanceTimestampProvider.delegate || performance).now();
}, "now"),
delegate: void 0
};
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js
var require_animationFrameProvider = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrameProvider.js"(exports) {
"use strict";
var __read = exports && exports.__read || function(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} catch (error) {
e = { error };
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
};
var __spreadArray = exports && exports.__spreadArray || function(to, from2) {
for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++)
to[j] = from2[i];
return to;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.animationFrameProvider = void 0;
var Subscription_1 = require_Subscription();
exports.animationFrameProvider = {
schedule: /* @__PURE__ */ __name(function(callback) {
var request = requestAnimationFrame;
var cancel = cancelAnimationFrame;
var delegate = exports.animationFrameProvider.delegate;
if (delegate) {
request = delegate.requestAnimationFrame;
cancel = delegate.cancelAnimationFrame;
}
var handle = request(function(timestamp) {
cancel = void 0;
callback(timestamp);
});
return new Subscription_1.Subscription(function() {
return cancel === null || cancel === void 0 ? void 0 : cancel(handle);
});
}, "schedule"),
requestAnimationFrame: /* @__PURE__ */ __name(function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var delegate = exports.animationFrameProvider.delegate;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
}, "requestAnimationFrame"),
cancelAnimationFrame: /* @__PURE__ */ __name(function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var delegate = exports.animationFrameProvider.delegate;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
}, "cancelAnimationFrame"),
delegate: void 0
};
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js
var require_animationFrames = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/dom/animationFrames.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.animationFrames = void 0;
var Observable_1 = require_Observable();
var performanceTimestampProvider_1 = require_performanceTimestampProvider();
var animationFrameProvider_1 = require_animationFrameProvider();
function animationFrames(timestampProvider) {
return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES;
}
__name(animationFrames, "animationFrames");
exports.animationFrames = animationFrames;
function animationFramesFactory(timestampProvider) {
return new Observable_1.Observable(function(subscriber) {
var provider = timestampProvider || performanceTimestampProvider_1.performanceTimestampProvider;
var start = provider.now();
var id = 0;
var run = /* @__PURE__ */ __name(function() {
if (!subscriber.closed) {
id = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function(timestamp) {
id = 0;
var now = provider.now();
subscriber.next({
timestamp: timestampProvider ? now : timestamp,
elapsed: now - start
});
run();
});
}
}, "run");
run();
return function() {
if (id) {
animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id);
}
};
});
}
__name(animationFramesFactory, "animationFramesFactory");
var DEFAULT_ANIMATION_FRAMES = animationFramesFactory();
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/Immediate.js
var require_Immediate = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/Immediate.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestTools = exports.Immediate = void 0;
var nextHandle = 1;
var resolved;
var activeHandles = {};
function findAndClearHandle(handle) {
if (handle in activeHandles) {
delete activeHandles[handle];
return true;
}
return false;
}
__name(findAndClearHandle, "findAndClearHandle");
exports.Immediate = {
setImmediate: /* @__PURE__ */ __name(function(cb) {
var handle = nextHandle++;
activeHandles[handle] = true;
if (!resolved) {
resolved = Promise.resolve();
}
resolved.then(function() {
return findAndClearHandle(handle) && cb();
});
return handle;
}, "setImmediate"),
clearImmediate: /* @__PURE__ */ __name(function(handle) {
findAndClearHandle(handle);
}, "clearImmediate")
};
exports.TestTools = {
pending: /* @__PURE__ */ __name(function() {
return Object.keys(activeHandles).length;
}, "pending")
};
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js
var require_immediateProvider = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/immediateProvider.js"(exports) {
"use strict";
var __read = exports && exports.__read || function(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} catch (error) {
e = { error };
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
};
var __spreadArray = exports && exports.__spreadArray || function(to, from2) {
for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++)
to[j] = from2[i];
return to;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.immediateProvider = void 0;
var Immediate_1 = require_Immediate();
var setImmediate2 = Immediate_1.Immediate.setImmediate;
var clearImmediate = Immediate_1.Immediate.clearImmediate;
exports.immediateProvider = {
setImmediate: /* @__PURE__ */ __name(function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var delegate = exports.immediateProvider.delegate;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate2).apply(void 0, __spreadArray([], __read(args)));
}, "setImmediate"),
clearImmediate: /* @__PURE__ */ __name(function(handle) {
var delegate = exports.immediateProvider.delegate;
return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);
}, "clearImmediate"),
delegate: void 0
};
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js
var require_AsapAction = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapAction.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsapAction = void 0;
var AsyncAction_1 = require_AsyncAction();
var immediateProvider_1 = require_immediateProvider();
var AsapAction = (function(_super) {
__extends(AsapAction2, _super);
function AsapAction2(scheduler, work) {
var _this = _super.call(this, scheduler, work) || this;
_this.scheduler = scheduler;
_this.work = work;
return _this;
}
__name(AsapAction2, "AsapAction");
AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay) {
if (delay === void 0) {
delay = 0;
}
if (delay !== null && delay > 0) {
return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
}
scheduler.actions.push(this);
return scheduler._scheduled || (scheduler._scheduled = immediateProvider_1.immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0)));
};
AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay) {
var _a;
if (delay === void 0) {
delay = 0;
}
if (delay != null ? delay > 0 : this.delay > 0) {
return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
}
var actions = scheduler.actions;
if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
immediateProvider_1.immediateProvider.clearImmediate(id);
if (scheduler._scheduled === id) {
scheduler._scheduled = void 0;
}
}
return void 0;
};
return AsapAction2;
})(AsyncAction_1.AsyncAction);
exports.AsapAction = AsapAction;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js
var require_AsapScheduler = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AsapScheduler.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AsapScheduler = void 0;
var AsyncScheduler_1 = require_AsyncScheduler();
var AsapScheduler = (function(_super) {
__extends(AsapScheduler2, _super);
function AsapScheduler2() {
return _super !== null && _super.apply(this, arguments) || this;
}
__name(AsapScheduler2, "AsapScheduler");
AsapScheduler2.prototype.flush = function(action) {
this._active = true;
var flushId = this._scheduled;
this._scheduled = void 0;
var actions = this.actions;
var error;
action = action || actions.shift();
do {
if (error = action.execute(action.state, action.delay)) {
break;
}
} while ((action = actions[0]) && action.id === flushId && actions.shift());
this._active = false;
if (error) {
while ((action = actions[0]) && action.id === flushId && actions.shift()) {
action.unsubscribe();
}
throw error;
}
};
return AsapScheduler2;
})(AsyncScheduler_1.AsyncScheduler);
exports.AsapScheduler = AsapScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/asap.js
var require_asap = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/asap.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.asap = exports.asapScheduler = void 0;
var AsapAction_1 = require_AsapAction();
var AsapScheduler_1 = require_AsapScheduler();
exports.asapScheduler = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);
exports.asap = exports.asapScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js
var require_QueueAction = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueAction.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueueAction = void 0;
var AsyncAction_1 = require_AsyncAction();
var QueueAction = (function(_super) {
__extends(QueueAction2, _super);
function QueueAction2(scheduler, work) {
var _this = _super.call(this, scheduler, work) || this;
_this.scheduler = scheduler;
_this.work = work;
return _this;
}
__name(QueueAction2, "QueueAction");
QueueAction2.prototype.schedule = function(state, delay) {
if (delay === void 0) {
delay = 0;
}
if (delay > 0) {
return _super.prototype.schedule.call(this, state, delay);
}
this.delay = delay;
this.state = state;
this.scheduler.flush(this);
return this;
};
QueueAction2.prototype.execute = function(state, delay) {
return delay > 0 || this.closed ? _super.prototype.execute.call(this, state, delay) : this._execute(state, delay);
};
QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay) {
if (delay === void 0) {
delay = 0;
}
if (delay != null && delay > 0 || delay == null && this.delay > 0) {
return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
}
scheduler.flush(this);
return 0;
};
return QueueAction2;
})(AsyncAction_1.AsyncAction);
exports.QueueAction = QueueAction;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js
var require_QueueScheduler = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/QueueScheduler.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueueScheduler = void 0;
var AsyncScheduler_1 = require_AsyncScheduler();
var QueueScheduler = (function(_super) {
__extends(QueueScheduler2, _super);
function QueueScheduler2() {
return _super !== null && _super.apply(this, arguments) || this;
}
__name(QueueScheduler2, "QueueScheduler");
return QueueScheduler2;
})(AsyncScheduler_1.AsyncScheduler);
exports.QueueScheduler = QueueScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/queue.js
var require_queue = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/queue.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.queue = exports.queueScheduler = void 0;
var QueueAction_1 = require_QueueAction();
var QueueScheduler_1 = require_QueueScheduler();
exports.queueScheduler = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);
exports.queue = exports.queueScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js
var require_AnimationFrameAction = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameAction.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AnimationFrameAction = void 0;
var AsyncAction_1 = require_AsyncAction();
var animationFrameProvider_1 = require_animationFrameProvider();
var AnimationFrameAction = (function(_super) {
__extends(AnimationFrameAction2, _super);
function AnimationFrameAction2(scheduler, work) {
var _this = _super.call(this, scheduler, work) || this;
_this.scheduler = scheduler;
_this.work = work;
return _this;
}
__name(AnimationFrameAction2, "AnimationFrameAction");
AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay) {
if (delay === void 0) {
delay = 0;
}
if (delay !== null && delay > 0) {
return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);
}
scheduler.actions.push(this);
return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider_1.animationFrameProvider.requestAnimationFrame(function() {
return scheduler.flush(void 0);
}));
};
AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay) {
var _a;
if (delay === void 0) {
delay = 0;
}
if (delay != null ? delay > 0 : this.delay > 0) {
return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);
}
var actions = scheduler.actions;
if (id != null && id === scheduler._scheduled && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
animationFrameProvider_1.animationFrameProvider.cancelAnimationFrame(id);
scheduler._scheduled = void 0;
}
return void 0;
};
return AnimationFrameAction2;
})(AsyncAction_1.AsyncAction);
exports.AnimationFrameAction = AnimationFrameAction;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js
var require_AnimationFrameScheduler = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/AnimationFrameScheduler.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AnimationFrameScheduler = void 0;
var AsyncScheduler_1 = require_AsyncScheduler();
var AnimationFrameScheduler = (function(_super) {
__extends(AnimationFrameScheduler2, _super);
function AnimationFrameScheduler2() {
return _super !== null && _super.apply(this, arguments) || this;
}
__name(AnimationFrameScheduler2, "AnimationFrameScheduler");
AnimationFrameScheduler2.prototype.flush = function(action) {
this._active = true;
var flushId;
if (action) {
flushId = action.id;
} else {
flushId = this._scheduled;
this._scheduled = void 0;
}
var actions = this.actions;
var error;
action = action || actions.shift();
do {
if (error = action.execute(action.state, action.delay)) {
break;
}
} while ((action = actions[0]) && action.id === flushId && actions.shift());
this._active = false;
if (error) {
while ((action = actions[0]) && action.id === flushId && actions.shift()) {
action.unsubscribe();
}
throw error;
}
};
return AnimationFrameScheduler2;
})(AsyncScheduler_1.AsyncScheduler);
exports.AnimationFrameScheduler = AnimationFrameScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js
var require_animationFrame = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/animationFrame.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.animationFrame = exports.animationFrameScheduler = void 0;
var AnimationFrameAction_1 = require_AnimationFrameAction();
var AnimationFrameScheduler_1 = require_AnimationFrameScheduler();
exports.animationFrameScheduler = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction);
exports.animationFrame = exports.animationFrameScheduler;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js
var require_VirtualTimeScheduler = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js"(exports) {
"use strict";
var __extends = exports && exports.__extends || /* @__PURE__ */ (function() {
var extendStatics = /* @__PURE__ */ __name(function(d, b) {
extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
d2.__proto__ = b2;
} || function(d2, b2) {
for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p];
};
return extendStatics(d, b);
}, "extendStatics");
return function(d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() {
this.constructor = d;
}
__name(__, "__");
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.VirtualAction = exports.VirtualTimeScheduler = void 0;
var AsyncAction_1 = require_AsyncAction();
var Subscription_1 = require_Subscription();
var AsyncScheduler_1 = require_AsyncScheduler();
var VirtualTimeScheduler = (function(_super) {
__extends(VirtualTimeScheduler2, _super);
function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) {
if (schedulerActionCtor === void 0) {
schedulerActionCtor = VirtualAction;
}
if (maxFrames === void 0) {
maxFrames = Infinity;
}
var _this = _super.call(this, schedulerActionCtor, function() {
return _this.frame;
}) || this;
_this.maxFrames = maxFrames;
_this.frame = 0;
_this.index = -1;
return _this;
}
__name(VirtualTimeScheduler2, "VirtualTimeScheduler");
VirtualTimeScheduler2.prototype.flush = function() {
var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
var error;
var action;
while ((action = actions[0]) && action.delay <= maxFrames) {
actions.shift();
this.frame = action.delay;
if (error = action.execute(action.state, action.delay)) {
break;
}
}
if (error) {
while (action = actions.shift()) {
action.unsubscribe();
}
throw error;
}
};
VirtualTimeScheduler2.frameTimeFactor = 10;
return VirtualTimeScheduler2;
})(AsyncScheduler_1.AsyncScheduler);
exports.VirtualTimeScheduler = VirtualTimeScheduler;
var VirtualAction = (function(_super) {
__extends(VirtualAction2, _super);
function VirtualAction2(scheduler, work, index) {
if (index === void 0) {
index = scheduler.index += 1;
}
var _this = _super.call(this, scheduler, work) || this;
_this.scheduler = scheduler;
_this.work = work;
_this.index = index;
_this.active = true;
_this.index = scheduler.index = index;
return _this;
}
__name(VirtualAction2, "VirtualAction");
VirtualAction2.prototype.schedule = function(state, delay) {
if (delay === void 0) {
delay = 0;
}
if (Number.isFinite(delay)) {
if (!this.id) {
return _super.prototype.schedule.call(this, state, delay);
}
this.active = false;
var action = new VirtualAction2(this.scheduler, this.work);
this.add(action);
return action.schedule(state, delay);
} else {
return Subscription_1.Subscription.EMPTY;
}
};
VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay) {
if (delay === void 0) {
delay = 0;
}
this.delay = scheduler.frame + delay;
var actions = scheduler.actions;
actions.push(this);
actions.sort(VirtualAction2.sortActions);
return 1;
};
VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay) {
if (delay === void 0) {
delay = 0;
}
return void 0;
};
VirtualAction2.prototype._execute = function(state, delay) {
if (this.active === true) {
return _super.prototype._execute.call(this, state, delay);
}
};
VirtualAction2.sortActions = function(a, b) {
if (a.delay === b.delay) {
if (a.index === b.index) {
return 0;
} else if (a.index > b.index) {
return 1;
} else {
return -1;
}
} else if (a.delay > b.delay) {
return 1;
} else {
return -1;
}
};
return VirtualAction2;
})(AsyncAction_1.AsyncAction);
exports.VirtualAction = VirtualAction;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isObservable.js
var require_isObservable = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/util/isObservable.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isObservable = void 0;
var Observable_1 = require_Observable();
var isFunction_1 = require_isFunction();
function isObservable6(obj) {
return !!obj && (obj instanceof Observable_1.Observable || isFunction_1.isFunction(obj.lift) && isFunction_1.isFunction(obj.subscribe));
}
__name(isObservable6, "isObservable");
exports.isObservable = isObservable6;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/lastValueFrom.js
var require_lastValueFrom = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/lastValueFrom.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.lastValueFrom = void 0;
var EmptyError_1 = require_EmptyError();
function lastValueFrom4(source, config) {
var hasConfig = typeof config === "object";
return new Promise(function(resolve, reject) {
var _hasValue = false;
var _value;
source.subscribe({
next: /* @__PURE__ */ __name(function(value) {
_value = value;
_hasValue = true;
}, "next"),
error: reject,
complete: /* @__PURE__ */ __name(function() {
if (_hasValue) {
resolve(_value);
} else if (hasConfig) {
resolve(config.defaultValue);
} else {
reject(new EmptyError_1.EmptyError());
}
}, "complete")
});
});
}
__name(lastValueFrom4, "lastValueFrom");
exports.lastValueFrom = lastValueFrom4;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/firstValueFrom.js
var require_firstValueFrom = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/firstValueFrom.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.firstValueFrom = void 0;
var EmptyError_1 = require_EmptyError();
var Subscriber_1 = require_Subscriber();
function firstValueFrom(source, config) {
var hasConfig = typeof config === "object";
return new Promise(function(resolve, reject) {
var subscriber = new Subscriber_1.SafeSubscriber({
next: /* @__PURE__ */ __name(function(value) {
resolve(value);
subscriber.unsubscribe();
}, "next"),
error: reject,
complete: /* @__PURE__ */ __name(function() {
if (hasConfig) {
resolve(config.defaultValue);
} else {
reject(new EmptyError_1.EmptyError());
}
}, "complete")
});
source.subscribe(subscriber);
});
}
__name(firstValueFrom, "firstValueFrom");
exports.firstValueFrom = firstValueFrom;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js
var require_bindCallbackInternals = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallbackInternals.js"(exports) {
"use strict";
var __read = exports && exports.__read || function(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} catch (error) {
e = { error };
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
};
var __spreadArray = exports && exports.__spreadArray || function(to, from2) {
for (var i = 0, il = from2.length, j = to.length; i < il; i++, j++)
to[j] = from2[i];
return to;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.bindCallbackInternals = void 0;
var isScheduler_1 = require_isScheduler();
var Observable_1 = require_Observable();
var subscribeOn_1 = require_subscribeOn();
var mapOneOrManyArgs_1 = require_mapOneOrManyArgs();
var observeOn_1 = require_observeOn();
var AsyncSubject_1 = require_AsyncSubject();
function bindCallbackInternals(isNodeStyle, callbackFunc, resultSelector, scheduler) {
if (resultSelector) {
if (isScheduler_1.isScheduler(resultSelector)) {
scheduler = resultSelector;
} else {
return function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return bindCallbackInternals(isNodeStyle, callbackFunc, scheduler).apply(this, args).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));
};
}
}
if (scheduler) {
return function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return bindCallbackInternals(isNodeStyle, callbackFunc).apply(this, args).pipe(subscribeOn_1.subscribeOn(scheduler), observeOn_1.observeOn(scheduler));
};
}
return function() {
var _this = this;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var subject = new AsyncSubject_1.AsyncSubject();
var uninitialized = true;
return new Observable_1.Observable(function(subscriber) {
var subs = subject.subscribe(subscriber);
if (uninitialized) {
uninitialized = false;
var isAsync_1 = false;
var isComplete_1 = false;
callbackFunc.apply(_this, __spreadArray(__spreadArray([], __read(args)), [
function() {
var results = [];
for (var _i2 = 0; _i2 < arguments.length; _i2++) {
results[_i2] = arguments[_i2];
}
if (isNodeStyle) {
var err = results.shift();
if (err != null) {
subject.error(err);
return;
}
}
subject.next(1 < results.length ? results : results[0]);
isComplete_1 = true;
if (isAsync_1) {
subject.complete();
}
}
]));
if (isComplete_1) {
subject.complete();
}
isAsync_1 = true;
}
return subs;
});
};
}
__name(bindCallbackInternals, "bindCallbackInternals");
exports.bindCallbackInternals = bindCallbackInternals;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js
var require_bindCallback = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindCallback.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.bindCallback = void 0;
var bindCallbackInternals_1 = require_bindCallbackInternals();
function bindCallback(callbackFunc, resultSelector, scheduler) {
return bindCallbackInternals_1.bindCallbackInternals(false, callbackFunc, resultSelector, scheduler);
}
__name(bindCallback, "bindCallback");
exports.bindCallback = bindCallback;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js
var require_bindNodeCallback = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/bindNodeCallback.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.bindNodeCallback = void 0;
var bindCallbackInternals_1 = require_bindCallbackInternals();
function bindNodeCallback(callbackFunc, resultSelector, scheduler) {
return bindCallbackInternals_1.bindCallbackInternals(true, callbackFunc, resultSelector, scheduler);
}
__name(bindNodeCallback, "bindNodeCallback");
exports.bindNodeCallback = bindNodeCallback;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/defer.js
var require_defer = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/defer.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.defer = void 0;
var Observable_1 = require_Observable();
var innerFrom_1 = require_innerFrom();
function defer2(observableFactory) {
return new Observable_1.Observable(function(subscriber) {
innerFrom_1.innerFrom(observableFactory()).subscribe(subscriber);
});
}
__name(defer2, "defer");
exports.defer = defer2;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/connectable.js
var require_connectable = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/connectable.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectable = void 0;
var Subject_1 = require_Subject();
var Observable_1 = require_Observable();
var defer_1 = require_defer();
var DEFAULT_CONFIG = {
connector: /* @__PURE__ */ __name(function() {
return new Subject_1.Subject();
}, "connector"),
resetOnDisconnect: true
};
function connectable(source, config) {
if (config === void 0) {
config = DEFAULT_CONFIG;
}
var connection = null;
var connector = config.connector, _a = config.resetOnDisconnect, resetOnDisconnect = _a === void 0 ? true : _a;
var subject = connector();
var result = new Observable_1.Observable(function(subscriber) {
return subject.subscribe(subscriber);
});
result.connect = function() {
if (!connection || connection.closed) {
connection = defer_1.defer(function() {
return source;
}).subscribe(subject);
if (resetOnDisconnect) {
connection.add(function() {
return subject = connector();
});
}
}
return connection;
};
return result;
}
__name(connectable, "connectable");
exports.connectable = connectable;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js
var require_forkJoin = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/forkJoin.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.forkJoin = void 0;
var Observable_1 = require_Observable();
var argsArgArrayOrObject_1 = require_argsArgArrayOrObject();
var innerFrom_1 = require_innerFrom();
var args_1 = require_args();
var OperatorSubscriber_1 = require_OperatorSubscriber();
var mapOneOrManyArgs_1 = require_mapOneOrManyArgs();
var createObject_1 = require_createObject();
function forkJoin() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var resultSelector = args_1.popResultSelector(args);
var _a = argsArgArrayOrObject_1.argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;
var result = new Observable_1.Observable(function(subscriber) {
var length = sources.length;
if (!length) {
subscriber.complete();
return;
}
var values = new Array(length);
var remainingCompletions = length;
var remainingEmissions = length;
var _loop_1 = /* @__PURE__ */ __name(function(sourceIndex2) {
var hasValue = false;
innerFrom_1.innerFrom(sources[sourceIndex2]).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function(value) {
if (!hasValue) {
hasValue = true;
remainingEmissions--;
}
values[sourceIndex2] = value;
}, function() {
return remainingCompletions--;
}, void 0, function() {
if (!remainingCompletions || !hasValue) {
if (!remainingEmissions) {
subscriber.next(keys ? createObject_1.createObject(keys, values) : values);
}
subscriber.complete();
}
}));
}, "_loop_1");
for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {
_loop_1(sourceIndex);
}
});
return resultSelector ? result.pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector)) : result;
}
__name(forkJoin, "forkJoin");
exports.forkJoin = forkJoin;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js
var require_fromEvent = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEvent.js"(exports) {
"use strict";
var __read = exports && exports.__read || function(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
} catch (error) {
e = { error };
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromEvent = void 0;
var innerFrom_1 = require_innerFrom();
var Observable_1 = require_Observable();
var mergeMap_1 = require_mergeMap();
var isArrayLike_1 = require_isArrayLike();
var isFunction_1 = require_isFunction();
var mapOneOrManyArgs_1 = require_mapOneOrManyArgs();
var nodeEventEmitterMethods = ["addListener", "removeListener"];
var eventTargetMethods = ["addEventListener", "removeEventListener"];
var jqueryMethods = ["on", "off"];
function fromEvent(target, eventName, options, resultSelector) {
if (isFunction_1.isFunction(options)) {
resultSelector = options;
options = void 0;
}
if (resultSelector) {
return fromEvent(target, eventName, options).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));
}
var _a = __read(isEventTarget(target) ? eventTargetMethods.map(function(methodName) {
return function(handler) {
return target[methodName](eventName, handler, options);
};
}) : isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : [], 2), add = _a[0], remove = _a[1];
if (!add) {
if (isArrayLike_1.isArrayLike(target)) {
return mergeMap_1.mergeMap(function(subTarget) {
return fromEvent(subTarget, eventName, options);
})(innerFrom_1.innerFrom(target));
}
}
if (!add) {
throw new TypeError("Invalid event target");
}
return new Observable_1.Observable(function(subscriber) {
var handler = /* @__PURE__ */ __name(function() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return subscriber.next(1 < args.length ? args : args[0]);
}, "handler");
add(handler);
return function() {
return remove(handler);
};
});
}
__name(fromEvent, "fromEvent");
exports.fromEvent = fromEvent;
function toCommonHandlerRegistry(target, eventName) {
return function(methodName) {
return function(handler) {
return target[methodName](eventName, handler);
};
};
}
__name(toCommonHandlerRegistry, "toCommonHandlerRegistry");
function isNodeStyleEventEmitter(target) {
return isFunction_1.isFunction(target.addListener) && isFunction_1.isFunction(target.removeListener);
}
__name(isNodeStyleEventEmitter, "isNodeStyleEventEmitter");
function isJQueryStyleEventEmitter(target) {
return isFunction_1.isFunction(target.on) && isFunction_1.isFunction(target.off);
}
__name(isJQueryStyleEventEmitter, "isJQueryStyleEventEmitter");
function isEventTarget(target) {
return isFunction_1.isFunction(target.addEventListener) && isFunction_1.isFunction(target.removeEventListener);
}
__name(isEventTarget, "isEventTarget");
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js
var require_fromEventPattern = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/fromEventPattern.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fromEventPattern = void 0;
var Observable_1 = require_Observable();
var isFunction_1 = require_isFunction();
var mapOneOrManyArgs_1 = require_mapOneOrManyArgs();
function fromEventPattern(addHandler, removeHandler, resultSelector) {
if (resultSelector) {
return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs_1.mapOneOrManyArgs(resultSelector));
}
return new Observable_1.Observable(function(subscriber) {
var handler = /* @__PURE__ */ __name(function() {
var e = [];
for (var _i = 0; _i < arguments.length; _i++) {
e[_i] = arguments[_i];
}
return subscriber.next(e.length === 1 ? e[0] : e);
}, "handler");
var retValue = addHandler(handler);
return isFunction_1.isFunction(removeHandler) ? function() {
return removeHandler(handler, retValue);
} : void 0;
});
}
__name(fromEventPattern, "fromEventPattern");
exports.fromEventPattern = fromEventPattern;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/generate.js
var require_generate = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/generate.js"(exports) {
"use strict";
var __generator = exports && exports.__generator || function(thisArg, body) {
var _ = { label: 0, sent: /* @__PURE__ */ __name(function() {
if (t[0] & 1) throw t[1];
return t[1];
}, "sent"), trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
return this;
}), g;
function verb(n) {
return function(v) {
return step([n, v]);
};
}
__name(verb, "verb");
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0:
case 1:
t = op;
break;
case 4:
_.label++;
return { value: op[1], done: false };
case 5:
_.label++;
y = op[1];
op = [0];
continue;
case 7:
op = _.ops.pop();
_.trys.pop();
continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
_ = 0;
continue;
}
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
_.label = op[1];
break;
}
if (op[0] === 6 && _.label < t[1]) {
_.label = t[1];
t = op;
break;
}
if (t && _.label < t[2]) {
_.label = t[2];
_.ops.push(op);
break;
}
if (t[2]) _.ops.pop();
_.trys.pop();
continue;
}
op = body.call(thisArg, _);
} catch (e) {
op = [6, e];
y = 0;
} finally {
f = t = 0;
}
if (op[0] & 5) throw op[1];
return { value: op[0] ? op[1] : void 0, done: true };
}
__name(step, "step");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate = void 0;
var identity_1 = require_identity();
var isScheduler_1 = require_isScheduler();
var defer_1 = require_defer();
var scheduleIterable_1 = require_scheduleIterable();
function generate(initialStateOrOptions, condition, iterate20, resultSelectorOrScheduler, scheduler) {
var _a, _b;
var resultSelector;
var initialState;
if (arguments.length === 1) {
_a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate20 = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity_1.identity : _b, scheduler = _a.scheduler;
} else {
initialState = initialStateOrOptions;
if (!resultSelectorOrScheduler || isScheduler_1.isScheduler(resultSelectorOrScheduler)) {
resultSelector = identity_1.identity;
scheduler = resultSelectorOrScheduler;
} else {
resultSelector = resultSelectorOrScheduler;
}
}
function gen() {
var state;
return __generator(this, function(_a2) {
switch (_a2.label) {
case 0:
state = initialState;
_a2.label = 1;
case 1:
if (!(!condition || condition(state))) return [3, 4];
return [4, resultSelector(state)];
case 2:
_a2.sent();
_a2.label = 3;
case 3:
state = iterate20(state);
return [3, 1];
case 4:
return [2];
}
});
}
__name(gen, "gen");
return defer_1.defer(scheduler ? function() {
return scheduleIterable_1.scheduleIterable(gen(), scheduler);
} : gen);
}
__name(generate, "generate");
exports.generate = generate;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/iif.js
var require_iif = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/iif.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.iif = void 0;
var defer_1 = require_defer();
function iif(condition, trueResult, falseResult) {
return defer_1.defer(function() {
return condition() ? trueResult : falseResult;
});
}
__name(iif, "iif");
exports.iif = iif;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/merge.js
var require_merge = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/merge.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.merge = void 0;
var mergeAll_1 = require_mergeAll();
var innerFrom_1 = require_innerFrom();
var empty_1 = require_empty();
var args_1 = require_args();
var from_1 = require_from();
function merge() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var scheduler = args_1.popScheduler(args);
var concurrent = args_1.popNumber(args, Infinity);
var sources = args;
return !sources.length ? empty_1.EMPTY : sources.length === 1 ? innerFrom_1.innerFrom(sources[0]) : mergeAll_1.mergeAll(concurrent)(from_1.from(sources, scheduler));
}
__name(merge, "merge");
exports.merge = merge;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/never.js
var require_never = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/never.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.never = exports.NEVER = void 0;
var Observable_1 = require_Observable();
var noop_1 = require_noop();
exports.NEVER = new Observable_1.Observable(noop_1.noop);
function never() {
return exports.NEVER;
}
__name(never, "never");
exports.never = never;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/pairs.js
var require_pairs = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/pairs.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.pairs = void 0;
var from_1 = require_from();
function pairs(obj, scheduler) {
return from_1.from(Object.entries(obj), scheduler);
}
__name(pairs, "pairs");
exports.pairs = pairs;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/partition.js
var require_partition = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/partition.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.partition = void 0;
var not_1 = require_not();
var filter_1 = require_filter();
var innerFrom_1 = require_innerFrom();
function partition(source, predicate, thisArg) {
return [filter_1.filter(predicate, thisArg)(innerFrom_1.innerFrom(source)), filter_1.filter(not_1.not(predicate, thisArg))(innerFrom_1.innerFrom(source))];
}
__name(partition, "partition");
exports.partition = partition;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/range.js
var require_range2 = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/range.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.range = void 0;
var Observable_1 = require_Observable();
var empty_1 = require_empty();
function range(start, count, scheduler) {
if (count == null) {
count = start;
start = 0;
}
if (count <= 0) {
return empty_1.EMPTY;
}
var end = count + start;
return new Observable_1.Observable(scheduler ? function(subscriber) {
var n = start;
return scheduler.schedule(function() {
if (n < end) {
subscriber.next(n++);
this.schedule();
} else {
subscriber.complete();
}
});
} : function(subscriber) {
var n = start;
while (n < end && !subscriber.closed) {
subscriber.next(n++);
}
subscriber.complete();
});
}
__name(range, "range");
exports.range = range;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/using.js
var require_using = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/observable/using.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.using = void 0;
var Observable_1 = require_Observable();
var innerFrom_1 = require_innerFrom();
var empty_1 = require_empty();
function using(resourceFactory, observableFactory) {
return new Observable_1.Observable(function(subscriber) {
var resource = resourceFactory();
var result = observableFactory(resource);
var source = result ? innerFrom_1.innerFrom(result) : empty_1.EMPTY;
source.subscribe(subscriber);
return function() {
if (resource) {
resource.unsubscribe();
}
};
});
}
__name(using, "using");
exports.using = using;
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/types.js
var require_types = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/internal/types.js"(exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
}
});
// ../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/index.js
var require_cjs = __commonJS({
"../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/cjs/index.js"(exports) {
"use strict";
var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
if (k2 === void 0) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: /* @__PURE__ */ __name(function() {
return m[k];
}, "get") });
}) : (function(o, m, k, k2) {
if (k2 === void 0) k2 = k;
o[k2] = m[k];
}));
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.interval = exports.iif = exports.generate = exports.fromEventPattern = exports.fromEvent = exports.from = exports.forkJoin = exports.empty = exports.defer = exports.connectable = exports.concat = exports.combineLatest = exports.bindNodeCallback = exports.bindCallback = exports.UnsubscriptionError = exports.TimeoutError = exports.SequenceError = exports.ObjectUnsubscribedError = exports.NotFoundError = exports.EmptyError = exports.ArgumentOutOfRangeError = exports.firstValueFrom = exports.lastValueFrom = exports.isObservable = exports.identity = exports.noop = exports.pipe = exports.NotificationKind = exports.Notification = exports.Subscriber = exports.Subscription = exports.Scheduler = exports.VirtualAction = exports.VirtualTimeScheduler = exports.animationFrameScheduler = exports.animationFrame = exports.queueScheduler = exports.queue = exports.asyncScheduler = exports.async = exports.asapScheduler = exports.asap = exports.AsyncSubject = exports.ReplaySubject = exports.BehaviorSubject = exports.Subject = exports.animationFrames = exports.observable = exports.ConnectableObservable = exports.Observable = void 0;
exports.filter = exports.expand = exports.exhaustMap = exports.exhaustAll = exports.exhaust = exports.every = exports.endWith = exports.elementAt = exports.distinctUntilKeyChanged = exports.distinctUntilChanged = exports.distinct = exports.dematerialize = exports.delayWhen = exports.delay = exports.defaultIfEmpty = exports.debounceTime = exports.debounce = exports.count = exports.connect = exports.concatWith = exports.concatMapTo = exports.concatMap = exports.concatAll = exports.combineLatestWith = exports.combineLatestAll = exports.combineAll = exports.catchError = exports.bufferWhen = exports.bufferToggle = exports.bufferTime = exports.bufferCount = exports.buffer = exports.auditTime = exports.audit = exports.config = exports.NEVER = exports.EMPTY = exports.scheduled = exports.zip = exports.using = exports.timer = exports.throwError = exports.range = exports.race = exports.partition = exports.pairs = exports.onErrorResumeNext = exports.of = exports.never = exports.merge = void 0;
exports.switchMap = exports.switchAll = exports.subscribeOn = exports.startWith = exports.skipWhile = exports.skipUntil = exports.skipLast = exports.skip = exports.single = exports.shareReplay = exports.share = exports.sequenceEqual = exports.scan = exports.sampleTime = exports.sample = exports.refCount = exports.retryWhen = exports.retry = exports.repeatWhen = exports.repeat = exports.reduce = exports.raceWith = exports.publishReplay = exports.publishLast = exports.publishBehavior = exports.publish = exports.pluck = exports.pairwise = exports.onErrorResumeNextWith = exports.observeOn = exports.multicast = exports.min = exports.mergeWith = exports.mergeScan = exports.mergeMapTo = exports.mergeMap = exports.flatMap = exports.mergeAll = exports.max = exports.materialize = exports.mapTo = exports.map = exports.last = exports.isEmpty = exports.ignoreElements = exports.groupBy = exports.first = exports.findIndex = exports.find = exports.finalize = void 0;
exports.zipWith = exports.zipAll = exports.withLatestFrom = exports.windowWhen = exports.windowToggle = exports.windowTime = exports.windowCount = exports.window = exports.toArray = exports.timestamp = exports.timeoutWith = exports.timeout = exports.timeInterval = exports.throwIfEmpty = exports.throttleTime = exports.throttle = exports.tap = exports.takeWhile = exports.takeUntil = exports.takeLast = exports.take = exports.switchScan = exports.switchMapTo = void 0;
var Observable_1 = require_Observable();
Object.defineProperty(exports, "Observable", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Observable_1.Observable;
}, "get") });
var ConnectableObservable_1 = require_ConnectableObservable();
Object.defineProperty(exports, "ConnectableObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return ConnectableObservable_1.ConnectableObservable;
}, "get") });
var observable_1 = require_observable();
Object.defineProperty(exports, "observable", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return observable_1.observable;
}, "get") });
var animationFrames_1 = require_animationFrames();
Object.defineProperty(exports, "animationFrames", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return animationFrames_1.animationFrames;
}, "get") });
var Subject_1 = require_Subject();
Object.defineProperty(exports, "Subject", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Subject_1.Subject;
}, "get") });
var BehaviorSubject_1 = require_BehaviorSubject();
Object.defineProperty(exports, "BehaviorSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return BehaviorSubject_1.BehaviorSubject;
}, "get") });
var ReplaySubject_1 = require_ReplaySubject();
Object.defineProperty(exports, "ReplaySubject", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return ReplaySubject_1.ReplaySubject;
}, "get") });
var AsyncSubject_1 = require_AsyncSubject();
Object.defineProperty(exports, "AsyncSubject", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return AsyncSubject_1.AsyncSubject;
}, "get") });
var asap_1 = require_asap();
Object.defineProperty(exports, "asap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return asap_1.asap;
}, "get") });
Object.defineProperty(exports, "asapScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return asap_1.asapScheduler;
}, "get") });
var async_1 = require_async();
Object.defineProperty(exports, "async", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return async_1.async;
}, "get") });
Object.defineProperty(exports, "asyncScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return async_1.asyncScheduler;
}, "get") });
var queue_1 = require_queue();
Object.defineProperty(exports, "queue", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return queue_1.queue;
}, "get") });
Object.defineProperty(exports, "queueScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return queue_1.queueScheduler;
}, "get") });
var animationFrame_1 = require_animationFrame();
Object.defineProperty(exports, "animationFrame", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return animationFrame_1.animationFrame;
}, "get") });
Object.defineProperty(exports, "animationFrameScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return animationFrame_1.animationFrameScheduler;
}, "get") });
var VirtualTimeScheduler_1 = require_VirtualTimeScheduler();
Object.defineProperty(exports, "VirtualTimeScheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return VirtualTimeScheduler_1.VirtualTimeScheduler;
}, "get") });
Object.defineProperty(exports, "VirtualAction", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return VirtualTimeScheduler_1.VirtualAction;
}, "get") });
var Scheduler_1 = require_Scheduler();
Object.defineProperty(exports, "Scheduler", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Scheduler_1.Scheduler;
}, "get") });
var Subscription_1 = require_Subscription();
Object.defineProperty(exports, "Subscription", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Subscription_1.Subscription;
}, "get") });
var Subscriber_1 = require_Subscriber();
Object.defineProperty(exports, "Subscriber", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Subscriber_1.Subscriber;
}, "get") });
var Notification_1 = require_Notification();
Object.defineProperty(exports, "Notification", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Notification_1.Notification;
}, "get") });
Object.defineProperty(exports, "NotificationKind", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return Notification_1.NotificationKind;
}, "get") });
var pipe_1 = require_pipe();
Object.defineProperty(exports, "pipe", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return pipe_1.pipe;
}, "get") });
var noop_1 = require_noop();
Object.defineProperty(exports, "noop", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return noop_1.noop;
}, "get") });
var identity_1 = require_identity();
Object.defineProperty(exports, "identity", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return identity_1.identity;
}, "get") });
var isObservable_1 = require_isObservable();
Object.defineProperty(exports, "isObservable", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return isObservable_1.isObservable;
}, "get") });
var lastValueFrom_1 = require_lastValueFrom();
Object.defineProperty(exports, "lastValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return lastValueFrom_1.lastValueFrom;
}, "get") });
var firstValueFrom_1 = require_firstValueFrom();
Object.defineProperty(exports, "firstValueFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return firstValueFrom_1.firstValueFrom;
}, "get") });
var ArgumentOutOfRangeError_1 = require_ArgumentOutOfRangeError();
Object.defineProperty(exports, "ArgumentOutOfRangeError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;
}, "get") });
var EmptyError_1 = require_EmptyError();
Object.defineProperty(exports, "EmptyError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return EmptyError_1.EmptyError;
}, "get") });
var NotFoundError_1 = require_NotFoundError();
Object.defineProperty(exports, "NotFoundError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return NotFoundError_1.NotFoundError;
}, "get") });
var ObjectUnsubscribedError_1 = require_ObjectUnsubscribedError();
Object.defineProperty(exports, "ObjectUnsubscribedError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return ObjectUnsubscribedError_1.ObjectUnsubscribedError;
}, "get") });
var SequenceError_1 = require_SequenceError();
Object.defineProperty(exports, "SequenceError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return SequenceError_1.SequenceError;
}, "get") });
var timeout_1 = require_timeout();
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timeout_1.TimeoutError;
}, "get") });
var UnsubscriptionError_1 = require_UnsubscriptionError();
Object.defineProperty(exports, "UnsubscriptionError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return UnsubscriptionError_1.UnsubscriptionError;
}, "get") });
var bindCallback_1 = require_bindCallback();
Object.defineProperty(exports, "bindCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bindCallback_1.bindCallback;
}, "get") });
var bindNodeCallback_1 = require_bindNodeCallback();
Object.defineProperty(exports, "bindNodeCallback", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bindNodeCallback_1.bindNodeCallback;
}, "get") });
var combineLatest_1 = require_combineLatest();
Object.defineProperty(exports, "combineLatest", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return combineLatest_1.combineLatest;
}, "get") });
var concat_1 = require_concat();
Object.defineProperty(exports, "concat", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return concat_1.concat;
}, "get") });
var connectable_1 = require_connectable();
Object.defineProperty(exports, "connectable", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return connectable_1.connectable;
}, "get") });
var defer_1 = require_defer();
Object.defineProperty(exports, "defer", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return defer_1.defer;
}, "get") });
var empty_1 = require_empty();
Object.defineProperty(exports, "empty", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return empty_1.empty;
}, "get") });
var forkJoin_1 = require_forkJoin();
Object.defineProperty(exports, "forkJoin", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return forkJoin_1.forkJoin;
}, "get") });
var from_1 = require_from();
Object.defineProperty(exports, "from", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return from_1.from;
}, "get") });
var fromEvent_1 = require_fromEvent();
Object.defineProperty(exports, "fromEvent", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return fromEvent_1.fromEvent;
}, "get") });
var fromEventPattern_1 = require_fromEventPattern();
Object.defineProperty(exports, "fromEventPattern", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return fromEventPattern_1.fromEventPattern;
}, "get") });
var generate_1 = require_generate();
Object.defineProperty(exports, "generate", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return generate_1.generate;
}, "get") });
var iif_1 = require_iif();
Object.defineProperty(exports, "iif", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return iif_1.iif;
}, "get") });
var interval_1 = require_interval();
Object.defineProperty(exports, "interval", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return interval_1.interval;
}, "get") });
var merge_1 = require_merge();
Object.defineProperty(exports, "merge", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return merge_1.merge;
}, "get") });
var never_1 = require_never();
Object.defineProperty(exports, "never", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return never_1.never;
}, "get") });
var of_1 = require_of();
Object.defineProperty(exports, "of", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return of_1.of;
}, "get") });
var onErrorResumeNext_1 = require_onErrorResumeNext();
Object.defineProperty(exports, "onErrorResumeNext", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return onErrorResumeNext_1.onErrorResumeNext;
}, "get") });
var pairs_1 = require_pairs();
Object.defineProperty(exports, "pairs", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return pairs_1.pairs;
}, "get") });
var partition_1 = require_partition();
Object.defineProperty(exports, "partition", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return partition_1.partition;
}, "get") });
var race_1 = require_race();
Object.defineProperty(exports, "race", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return race_1.race;
}, "get") });
var range_1 = require_range2();
Object.defineProperty(exports, "range", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return range_1.range;
}, "get") });
var throwError_1 = require_throwError();
Object.defineProperty(exports, "throwError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return throwError_1.throwError;
}, "get") });
var timer_1 = require_timer();
Object.defineProperty(exports, "timer", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timer_1.timer;
}, "get") });
var using_1 = require_using();
Object.defineProperty(exports, "using", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return using_1.using;
}, "get") });
var zip_1 = require_zip();
Object.defineProperty(exports, "zip", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return zip_1.zip;
}, "get") });
var scheduled_1 = require_scheduled();
Object.defineProperty(exports, "scheduled", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return scheduled_1.scheduled;
}, "get") });
var empty_2 = require_empty();
Object.defineProperty(exports, "EMPTY", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return empty_2.EMPTY;
}, "get") });
var never_2 = require_never();
Object.defineProperty(exports, "NEVER", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return never_2.NEVER;
}, "get") });
__exportStar(require_types(), exports);
var config_1 = require_config();
Object.defineProperty(exports, "config", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return config_1.config;
}, "get") });
var audit_1 = require_audit();
Object.defineProperty(exports, "audit", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return audit_1.audit;
}, "get") });
var auditTime_1 = require_auditTime();
Object.defineProperty(exports, "auditTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return auditTime_1.auditTime;
}, "get") });
var buffer_1 = require_buffer();
Object.defineProperty(exports, "buffer", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return buffer_1.buffer;
}, "get") });
var bufferCount_1 = require_bufferCount();
Object.defineProperty(exports, "bufferCount", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bufferCount_1.bufferCount;
}, "get") });
var bufferTime_1 = require_bufferTime();
Object.defineProperty(exports, "bufferTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bufferTime_1.bufferTime;
}, "get") });
var bufferToggle_1 = require_bufferToggle();
Object.defineProperty(exports, "bufferToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bufferToggle_1.bufferToggle;
}, "get") });
var bufferWhen_1 = require_bufferWhen();
Object.defineProperty(exports, "bufferWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return bufferWhen_1.bufferWhen;
}, "get") });
var catchError_1 = require_catchError();
Object.defineProperty(exports, "catchError", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return catchError_1.catchError;
}, "get") });
var combineAll_1 = require_combineAll();
Object.defineProperty(exports, "combineAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return combineAll_1.combineAll;
}, "get") });
var combineLatestAll_1 = require_combineLatestAll();
Object.defineProperty(exports, "combineLatestAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return combineLatestAll_1.combineLatestAll;
}, "get") });
var combineLatestWith_1 = require_combineLatestWith();
Object.defineProperty(exports, "combineLatestWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return combineLatestWith_1.combineLatestWith;
}, "get") });
var concatAll_1 = require_concatAll();
Object.defineProperty(exports, "concatAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return concatAll_1.concatAll;
}, "get") });
var concatMap_1 = require_concatMap();
Object.defineProperty(exports, "concatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return concatMap_1.concatMap;
}, "get") });
var concatMapTo_1 = require_concatMapTo();
Object.defineProperty(exports, "concatMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return concatMapTo_1.concatMapTo;
}, "get") });
var concatWith_1 = require_concatWith();
Object.defineProperty(exports, "concatWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return concatWith_1.concatWith;
}, "get") });
var connect_1 = require_connect();
Object.defineProperty(exports, "connect", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return connect_1.connect;
}, "get") });
var count_1 = require_count();
Object.defineProperty(exports, "count", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return count_1.count;
}, "get") });
var debounce_1 = require_debounce();
Object.defineProperty(exports, "debounce", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return debounce_1.debounce;
}, "get") });
var debounceTime_1 = require_debounceTime();
Object.defineProperty(exports, "debounceTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return debounceTime_1.debounceTime;
}, "get") });
var defaultIfEmpty_1 = require_defaultIfEmpty();
Object.defineProperty(exports, "defaultIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return defaultIfEmpty_1.defaultIfEmpty;
}, "get") });
var delay_1 = require_delay();
Object.defineProperty(exports, "delay", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return delay_1.delay;
}, "get") });
var delayWhen_1 = require_delayWhen();
Object.defineProperty(exports, "delayWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return delayWhen_1.delayWhen;
}, "get") });
var dematerialize_1 = require_dematerialize();
Object.defineProperty(exports, "dematerialize", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return dematerialize_1.dematerialize;
}, "get") });
var distinct_1 = require_distinct();
Object.defineProperty(exports, "distinct", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return distinct_1.distinct;
}, "get") });
var distinctUntilChanged_1 = require_distinctUntilChanged();
Object.defineProperty(exports, "distinctUntilChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return distinctUntilChanged_1.distinctUntilChanged;
}, "get") });
var distinctUntilKeyChanged_1 = require_distinctUntilKeyChanged();
Object.defineProperty(exports, "distinctUntilKeyChanged", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return distinctUntilKeyChanged_1.distinctUntilKeyChanged;
}, "get") });
var elementAt_1 = require_elementAt();
Object.defineProperty(exports, "elementAt", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return elementAt_1.elementAt;
}, "get") });
var endWith_1 = require_endWith();
Object.defineProperty(exports, "endWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return endWith_1.endWith;
}, "get") });
var every_1 = require_every();
Object.defineProperty(exports, "every", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return every_1.every;
}, "get") });
var exhaust_1 = require_exhaust();
Object.defineProperty(exports, "exhaust", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return exhaust_1.exhaust;
}, "get") });
var exhaustAll_1 = require_exhaustAll();
Object.defineProperty(exports, "exhaustAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return exhaustAll_1.exhaustAll;
}, "get") });
var exhaustMap_1 = require_exhaustMap();
Object.defineProperty(exports, "exhaustMap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return exhaustMap_1.exhaustMap;
}, "get") });
var expand_1 = require_expand();
Object.defineProperty(exports, "expand", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return expand_1.expand;
}, "get") });
var filter_1 = require_filter();
Object.defineProperty(exports, "filter", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return filter_1.filter;
}, "get") });
var finalize_1 = require_finalize();
Object.defineProperty(exports, "finalize", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return finalize_1.finalize;
}, "get") });
var find_1 = require_find();
Object.defineProperty(exports, "find", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return find_1.find;
}, "get") });
var findIndex_1 = require_findIndex();
Object.defineProperty(exports, "findIndex", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return findIndex_1.findIndex;
}, "get") });
var first_1 = require_first();
Object.defineProperty(exports, "first", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return first_1.first;
}, "get") });
var groupBy_1 = require_groupBy();
Object.defineProperty(exports, "groupBy", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return groupBy_1.groupBy;
}, "get") });
var ignoreElements_1 = require_ignoreElements();
Object.defineProperty(exports, "ignoreElements", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return ignoreElements_1.ignoreElements;
}, "get") });
var isEmpty_1 = require_isEmpty();
Object.defineProperty(exports, "isEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return isEmpty_1.isEmpty;
}, "get") });
var last_1 = require_last();
Object.defineProperty(exports, "last", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return last_1.last;
}, "get") });
var map_1 = require_map();
Object.defineProperty(exports, "map", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return map_1.map;
}, "get") });
var mapTo_1 = require_mapTo();
Object.defineProperty(exports, "mapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mapTo_1.mapTo;
}, "get") });
var materialize_1 = require_materialize();
Object.defineProperty(exports, "materialize", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return materialize_1.materialize;
}, "get") });
var max_1 = require_max();
Object.defineProperty(exports, "max", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return max_1.max;
}, "get") });
var mergeAll_1 = require_mergeAll();
Object.defineProperty(exports, "mergeAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mergeAll_1.mergeAll;
}, "get") });
var flatMap_1 = require_flatMap();
Object.defineProperty(exports, "flatMap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return flatMap_1.flatMap;
}, "get") });
var mergeMap_1 = require_mergeMap();
Object.defineProperty(exports, "mergeMap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mergeMap_1.mergeMap;
}, "get") });
var mergeMapTo_1 = require_mergeMapTo();
Object.defineProperty(exports, "mergeMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mergeMapTo_1.mergeMapTo;
}, "get") });
var mergeScan_1 = require_mergeScan();
Object.defineProperty(exports, "mergeScan", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mergeScan_1.mergeScan;
}, "get") });
var mergeWith_1 = require_mergeWith();
Object.defineProperty(exports, "mergeWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return mergeWith_1.mergeWith;
}, "get") });
var min_1 = require_min();
Object.defineProperty(exports, "min", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return min_1.min;
}, "get") });
var multicast_1 = require_multicast();
Object.defineProperty(exports, "multicast", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return multicast_1.multicast;
}, "get") });
var observeOn_1 = require_observeOn();
Object.defineProperty(exports, "observeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return observeOn_1.observeOn;
}, "get") });
var onErrorResumeNextWith_1 = require_onErrorResumeNextWith();
Object.defineProperty(exports, "onErrorResumeNextWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return onErrorResumeNextWith_1.onErrorResumeNextWith;
}, "get") });
var pairwise_1 = require_pairwise();
Object.defineProperty(exports, "pairwise", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return pairwise_1.pairwise;
}, "get") });
var pluck_1 = require_pluck();
Object.defineProperty(exports, "pluck", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return pluck_1.pluck;
}, "get") });
var publish_1 = require_publish();
Object.defineProperty(exports, "publish", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return publish_1.publish;
}, "get") });
var publishBehavior_1 = require_publishBehavior();
Object.defineProperty(exports, "publishBehavior", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return publishBehavior_1.publishBehavior;
}, "get") });
var publishLast_1 = require_publishLast();
Object.defineProperty(exports, "publishLast", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return publishLast_1.publishLast;
}, "get") });
var publishReplay_1 = require_publishReplay();
Object.defineProperty(exports, "publishReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return publishReplay_1.publishReplay;
}, "get") });
var raceWith_1 = require_raceWith();
Object.defineProperty(exports, "raceWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return raceWith_1.raceWith;
}, "get") });
var reduce_1 = require_reduce();
Object.defineProperty(exports, "reduce", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return reduce_1.reduce;
}, "get") });
var repeat_1 = require_repeat();
Object.defineProperty(exports, "repeat", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return repeat_1.repeat;
}, "get") });
var repeatWhen_1 = require_repeatWhen();
Object.defineProperty(exports, "repeatWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return repeatWhen_1.repeatWhen;
}, "get") });
var retry_1 = require_retry();
Object.defineProperty(exports, "retry", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return retry_1.retry;
}, "get") });
var retryWhen_1 = require_retryWhen();
Object.defineProperty(exports, "retryWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return retryWhen_1.retryWhen;
}, "get") });
var refCount_1 = require_refCount();
Object.defineProperty(exports, "refCount", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return refCount_1.refCount;
}, "get") });
var sample_1 = require_sample();
Object.defineProperty(exports, "sample", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return sample_1.sample;
}, "get") });
var sampleTime_1 = require_sampleTime();
Object.defineProperty(exports, "sampleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return sampleTime_1.sampleTime;
}, "get") });
var scan_1 = require_scan();
Object.defineProperty(exports, "scan", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return scan_1.scan;
}, "get") });
var sequenceEqual_1 = require_sequenceEqual();
Object.defineProperty(exports, "sequenceEqual", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return sequenceEqual_1.sequenceEqual;
}, "get") });
var share_1 = require_share();
Object.defineProperty(exports, "share", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return share_1.share;
}, "get") });
var shareReplay_1 = require_shareReplay();
Object.defineProperty(exports, "shareReplay", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return shareReplay_1.shareReplay;
}, "get") });
var single_1 = require_single();
Object.defineProperty(exports, "single", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return single_1.single;
}, "get") });
var skip_1 = require_skip();
Object.defineProperty(exports, "skip", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return skip_1.skip;
}, "get") });
var skipLast_1 = require_skipLast();
Object.defineProperty(exports, "skipLast", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return skipLast_1.skipLast;
}, "get") });
var skipUntil_1 = require_skipUntil();
Object.defineProperty(exports, "skipUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return skipUntil_1.skipUntil;
}, "get") });
var skipWhile_1 = require_skipWhile();
Object.defineProperty(exports, "skipWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return skipWhile_1.skipWhile;
}, "get") });
var startWith_1 = require_startWith();
Object.defineProperty(exports, "startWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return startWith_1.startWith;
}, "get") });
var subscribeOn_1 = require_subscribeOn();
Object.defineProperty(exports, "subscribeOn", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return subscribeOn_1.subscribeOn;
}, "get") });
var switchAll_1 = require_switchAll();
Object.defineProperty(exports, "switchAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return switchAll_1.switchAll;
}, "get") });
var switchMap_1 = require_switchMap();
Object.defineProperty(exports, "switchMap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return switchMap_1.switchMap;
}, "get") });
var switchMapTo_1 = require_switchMapTo();
Object.defineProperty(exports, "switchMapTo", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return switchMapTo_1.switchMapTo;
}, "get") });
var switchScan_1 = require_switchScan();
Object.defineProperty(exports, "switchScan", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return switchScan_1.switchScan;
}, "get") });
var take_1 = require_take();
Object.defineProperty(exports, "take", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return take_1.take;
}, "get") });
var takeLast_1 = require_takeLast();
Object.defineProperty(exports, "takeLast", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return takeLast_1.takeLast;
}, "get") });
var takeUntil_1 = require_takeUntil();
Object.defineProperty(exports, "takeUntil", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return takeUntil_1.takeUntil;
}, "get") });
var takeWhile_1 = require_takeWhile();
Object.defineProperty(exports, "takeWhile", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return takeWhile_1.takeWhile;
}, "get") });
var tap_1 = require_tap();
Object.defineProperty(exports, "tap", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return tap_1.tap;
}, "get") });
var throttle_1 = require_throttle();
Object.defineProperty(exports, "throttle", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return throttle_1.throttle;
}, "get") });
var throttleTime_1 = require_throttleTime();
Object.defineProperty(exports, "throttleTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return throttleTime_1.throttleTime;
}, "get") });
var throwIfEmpty_1 = require_throwIfEmpty();
Object.defineProperty(exports, "throwIfEmpty", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return throwIfEmpty_1.throwIfEmpty;
}, "get") });
var timeInterval_1 = require_timeInterval();
Object.defineProperty(exports, "timeInterval", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timeInterval_1.timeInterval;
}, "get") });
var timeout_2 = require_timeout();
Object.defineProperty(exports, "timeout", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timeout_2.timeout;
}, "get") });
var timeoutWith_1 = require_timeoutWith();
Object.defineProperty(exports, "timeoutWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timeoutWith_1.timeoutWith;
}, "get") });
var timestamp_1 = require_timestamp();
Object.defineProperty(exports, "timestamp", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return timestamp_1.timestamp;
}, "get") });
var toArray_1 = require_toArray();
Object.defineProperty(exports, "toArray", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return toArray_1.toArray;
}, "get") });
var window_1 = require_window();
Object.defineProperty(exports, "window", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return window_1.window;
}, "get") });
var windowCount_1 = require_windowCount();
Object.defineProperty(exports, "windowCount", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return windowCount_1.windowCount;
}, "get") });
var windowTime_1 = require_windowTime();
Object.defineProperty(exports, "windowTime", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return windowTime_1.windowTime;
}, "get") });
var windowToggle_1 = require_windowToggle();
Object.defineProperty(exports, "windowToggle", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return windowToggle_1.windowToggle;
}, "get") });
var windowWhen_1 = require_windowWhen();
Object.defineProperty(exports, "windowWhen", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return windowWhen_1.windowWhen;
}, "get") });
var withLatestFrom_1 = require_withLatestFrom();
Object.defineProperty(exports, "withLatestFrom", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return withLatestFrom_1.withLatestFrom;
}, "get") });
var zipAll_1 = require_zipAll();
Object.defineProperty(exports, "zipAll", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return zipAll_1.zipAll;
}, "get") });
var zipWith_1 = require_zipWith();
Object.defineProperty(exports, "zipWith", { enumerable: true, get: /* @__PURE__ */ __name(function() {
return zipWith_1.zipWith;
}, "get") });
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/modules-container.js
var import_rxjs, ModulesContainer;
var init_modules_container = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/modules-container.js"() {
import_rxjs = __toESM(require_cjs(), 1);
init_dist();
ModulesContainer = class extends Map {
static {
__name(this, "ModulesContainer");
}
_applicationId = uid(21);
_rpcTargetRegistry$ = new import_rxjs.ReplaySubject();
/**
* Unique identifier of the application instance.
*/
get applicationId() {
return this._applicationId;
}
/**
* Retrieves a module by its identifier.
* @param id The identifier of the module to retrieve.
* @returns The module instance if found, otherwise undefined.
*/
getById(id) {
return Array.from(this.values()).find((moduleRef) => moduleRef.id === id);
}
/**
* Returns the RPC target registry as an observable.
* This registry contains all RPC targets registered in the application.
* @returns An observable that emits the RPC target registry.
*/
getRpcTargetRegistry() {
return this._rpcTargetRegistry$.asObservable();
}
/**
* Adds an RPC target to the registry.
* @param target The RPC target to add.
*/
addRpcTarget(target) {
this._rpcTargetRegistry$.next(target);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js
var DiscoverableMetaHostCollection;
var init_discoverable_meta_host_collection = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discoverable-meta-host-collection.js"() {
DiscoverableMetaHostCollection = class _DiscoverableMetaHostCollection {
static {
__name(this, "DiscoverableMetaHostCollection");
}
/**
* A map of class references to metadata keys.
*/
static metaHostLinks = /* @__PURE__ */ new Map();
/**
* A map of metadata keys to instance wrappers (providers) with the corresponding metadata key.
* The map is weakly referenced by the modules container (unique per application).
*/
static providersByMetaKey = /* @__PURE__ */ new WeakMap();
/**
* A map of metadata keys to instance wrappers (controllers) with the corresponding metadata key.
* The map is weakly referenced by the modules container (unique per application).
*/
static controllersByMetaKey = /* @__PURE__ */ new WeakMap();
/**
* Adds a link between a class reference and a metadata key.
* @param target The class reference.
* @param metadataKey The metadata key.
*/
static addClassMetaHostLink(target, metadataKey) {
this.metaHostLinks.set(target, metadataKey);
}
/**
* Inspects a provider instance wrapper and adds it to the collection of providers
* if it has a metadata key.
* @param hostContainerRef A reference to the modules container.
* @param instanceWrapper A provider instance wrapper.
* @returns void
*/
static inspectProvider(hostContainerRef, instanceWrapper) {
return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.providersByMetaKey);
}
/**
* Inspects a controller instance wrapper and adds it to the collection of controllers
* if it has a metadata key.
* @param hostContainerRef A reference to the modules container.
* @param instanceWrapper A controller's instance wrapper.
* @returns void
*/
static inspectController(hostContainerRef, instanceWrapper) {
return this.inspectInstanceWrapper(hostContainerRef, instanceWrapper, this.controllersByMetaKey);
}
static insertByMetaKey(metaKey, instanceWrapper, collection) {
if (collection.has(metaKey)) {
const wrappers = collection.get(metaKey);
for (const existing of wrappers) {
if (existing.id === instanceWrapper.id) {
wrappers.delete(existing);
break;
}
}
wrappers.add(instanceWrapper);
} else {
const wrappers = /* @__PURE__ */ new Set();
wrappers.add(instanceWrapper);
collection.set(metaKey, wrappers);
}
}
static getProvidersByMetaKey(hostContainerRef, metaKey) {
const wrappersByMetaKey = this.providersByMetaKey.get(hostContainerRef);
return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set();
}
static getControllersByMetaKey(hostContainerRef, metaKey) {
const wrappersByMetaKey = this.controllersByMetaKey.get(hostContainerRef);
return wrappersByMetaKey?.get(metaKey) ?? /* @__PURE__ */ new Set();
}
static inspectInstanceWrapper(hostContainerRef, instanceWrapper, wrapperByMetaKeyMap) {
const metaKey = _DiscoverableMetaHostCollection.getMetaKeyByInstanceWrapper(instanceWrapper);
if (!metaKey) {
return;
}
let collection;
if (wrapperByMetaKeyMap.has(hostContainerRef)) {
collection = wrapperByMetaKeyMap.get(hostContainerRef);
} else {
collection = /* @__PURE__ */ new Map();
wrapperByMetaKeyMap.set(hostContainerRef, collection);
}
this.insertByMetaKey(metaKey, instanceWrapper, collection);
}
static getMetaKeyByInstanceWrapper(instanceWrapper) {
return this.metaHostLinks.get(
// NOTE: Regarding the ternary statement below,
// - The condition `!wrapper.metatype` is needed because when we use `useValue`
// the value of `wrapper.metatype` will be `null`.
// - The condition `wrapper.inject` is needed here because when we use
// `useFactory`, the value of `wrapper.metatype` will be the supplied
// factory function.
// For both cases, we should use `wrapper.instance.constructor` instead
// of `wrapper.metatype` to resolve processor's class properly.
// But since calling `wrapper.instance` could degrade overall performance
// we must defer it as much we can.
!instanceWrapper.metatype || instanceWrapper.inject ? instanceWrapper.instance?.constructor ?? instanceWrapper.metatype : instanceWrapper.metatype
);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-service.js
var DiscoveryService;
var init_discovery_service = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-service.js"() {
init_tslib_es6();
init_common();
init_dist();
init_modules_container();
init_discoverable_meta_host_collection();
DiscoveryService = class DiscoveryService2 {
static {
__name(this, "DiscoveryService");
}
modulesContainer;
constructor(modulesContainer) {
this.modulesContainer = modulesContainer;
}
/**
* Creates a decorator that can be used to decorate classes and methods with metadata.
* The decorator will also add the class to the collection of discoverable classes (by metadata key).
* Decorated classes can be discovered using the `getProviders` and `getControllers` methods.
* @returns A decorator function.
*/
static createDecorator() {
const metadataKey = uid(21);
const decoratorFn = /* @__PURE__ */ __name((opts) => (target, key, descriptor) => {
if (!descriptor) {
DiscoverableMetaHostCollection.addClassMetaHostLink(target, metadataKey);
}
SetMetadata(metadataKey, opts ?? {})(target, key, descriptor);
}, "decoratorFn");
decoratorFn.KEY = metadataKey;
return decoratorFn;
}
/**
* Returns an array of instance wrappers (providers).
* Depending on the options, the array will contain either all providers or only providers with the specified metadata key.
* @param options Discovery options.
* @param modules A list of modules to filter by.
* @returns An array of instance wrappers (providers).
*/
getProviders(options = {}, modules = this.getModules(options)) {
if ("metadataKey" in options) {
const providers2 = DiscoverableMetaHostCollection.getProvidersByMetaKey(this.modulesContainer, options.metadataKey);
return Array.from(providers2);
}
const providers = modules.map((item) => [...item.providers.values()]);
return flatten(providers);
}
/**
* Returns an array of instance wrappers (controllers).
* Depending on the options, the array will contain either all controllers or only controllers with the specified metadata key.
* @param options Discovery options.
* @param modules A list of modules to filter by.
* @returns An array of instance wrappers (controllers).
*/
getControllers(options = {}, modules = this.getModules(options)) {
if ("metadataKey" in options) {
const controllers2 = DiscoverableMetaHostCollection.getControllersByMetaKey(this.modulesContainer, options.metadataKey);
return Array.from(controllers2);
}
const controllers = modules.map((item) => [...item.controllers.values()]);
return flatten(controllers);
}
/**
* Retrieves metadata from the specified instance wrapper.
* @param decorator The decorator to retrieve metadata of.
* @param instanceWrapper Reference to the instance wrapper.
* @param methodKey An optional method key to retrieve metadata from.
* @returns Discovered metadata.
*/
getMetadataByDecorator(decorator, instanceWrapper, methodKey) {
if (methodKey) {
return Reflect.getMetadata(decorator.KEY, instanceWrapper.instance[methodKey]);
}
const clsRef = instanceWrapper.instance?.constructor ?? instanceWrapper.metatype;
return Reflect.getMetadata(decorator.KEY, clsRef);
}
/**
* Returns a list of modules to be used for discovery.
*/
getModules(options = {}) {
const includeInOpts = "include" in options;
if (!includeInOpts) {
const moduleRefs = [...this.modulesContainer.values()];
return moduleRefs;
}
const whitelisted = this.includeWhitelisted(options.include);
return whitelisted;
}
includeWhitelisted(include) {
const moduleRefs = [...this.modulesContainer.values()];
return moduleRefs.filter(({ metatype }) => include.some((item) => item === metatype));
}
};
DiscoveryService = __decorate([
Injectable(),
__metadata("design:paramtypes", [ModulesContainer])
], DiscoveryService);
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-module.js
var DiscoveryModule;
var init_discovery_module = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/discovery-module.js"() {
init_tslib_es6();
init_common();
init_metadata_scanner();
init_discovery_service();
DiscoveryModule = class DiscoveryModule2 {
static {
__name(this, "DiscoveryModule");
}
};
DiscoveryModule = __decorate([
Module({
providers: [MetadataScanner, DiscoveryService],
exports: [MetadataScanner, DiscoveryService]
})
], DiscoveryModule);
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/index.js
var init_discovery = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/discovery/index.js"() {
init_discovery_module();
init_discovery_service();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/http-adapter-host.js
var import_rxjs2, HttpAdapterHost;
var init_http_adapter_host = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/http-adapter-host.js"() {
import_rxjs2 = __toESM(require_cjs(), 1);
HttpAdapterHost = class {
static {
__name(this, "HttpAdapterHost");
}
_httpAdapter;
_listen$ = new import_rxjs2.Subject();
_init$ = new import_rxjs2.ReplaySubject();
isListening = false;
/**
* Accessor for the underlying `HttpAdapter`
*
* @param httpAdapter reference to the `HttpAdapter` to be set
*/
set httpAdapter(httpAdapter) {
this._httpAdapter = httpAdapter;
this._init$.next();
this._init$.complete();
}
/**
* Accessor for the underlying `HttpAdapter`
*
* @example
* `const httpAdapter = adapterHost.httpAdapter;`
*/
get httpAdapter() {
return this._httpAdapter;
}
/**
* Observable that allows to subscribe to the `listen` event.
* This event is emitted when the HTTP application is listening for incoming requests.
*/
get listen$() {
return this._listen$.asObservable();
}
/**
* Observable that allows to subscribe to the `init` event.
* This event is emitted when the HTTP application is initialized.
*/
get init$() {
return this._init$.asObservable();
}
/**
* Sets the listening state of the application.
*/
set listening(listening) {
this.isListening = listening;
if (listening) {
this._listen$.next();
this._listen$.complete();
}
}
/**
* Returns a boolean indicating whether the application is listening for incoming requests.
*/
get listening() {
return this.isListening;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter.js
import { STATUS_CODES } from "http";
var BaseExceptionFilter;
var init_base_exception_filter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter.js"() {
init_tslib_es6();
init_common();
init_constants2();
init_http_adapter_host();
init_internal();
BaseExceptionFilter = class _BaseExceptionFilter {
static {
__name(this, "BaseExceptionFilter");
}
applicationRef;
static logger = new Logger("ExceptionsHandler");
httpAdapterHost;
constructor(applicationRef) {
this.applicationRef = applicationRef;
}
catch(exception, host) {
const applicationRef = this.applicationRef || this.httpAdapterHost && this.httpAdapterHost.httpAdapter;
if (!(exception instanceof HttpException)) {
return this.handleUnknownError(exception, host, applicationRef);
}
const res = exception.getResponse();
const message = isObject(res) ? res : {
statusCode: exception.getStatus(),
message: res,
...exception.errorCode !== void 0 && {
errorCode: exception.errorCode
}
};
const response = host.getArgByIndex(1);
if (!applicationRef.isHeadersSent(response)) {
applicationRef.reply(response, message, exception.getStatus());
} else {
applicationRef.end(response);
}
}
handleUnknownError(exception, host, applicationRef) {
const body = this.isHttpError(exception) ? {
statusCode: exception.statusCode,
// "http-errors" sets "expose" to false when the message must not
// reach the client (5xx errors, file system errors from "send")
message: exception.expose === false ? STATUS_CODES[exception.statusCode] ?? MESSAGES.UNKNOWN_EXCEPTION_MESSAGE : exception.message
} : {
statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
message: MESSAGES.UNKNOWN_EXCEPTION_MESSAGE
};
const response = host.getArgByIndex(1);
if (!applicationRef.isHeadersSent(response)) {
applicationRef.reply(response, body, body.statusCode);
} else {
applicationRef.end(response);
}
if (!(exception instanceof IntrinsicException)) {
_BaseExceptionFilter.logger.error(exception);
}
}
isExceptionObject(err) {
return isObject(err) && !!err.message;
}
/**
* Checks if the thrown error is a FastifyError or comes from the "http-errors" library.
* @param err error object
*/
isHttpError(err) {
if (!err || typeof err !== "object") {
return false;
}
if (
// Fastify's schema validation errors are plain errors with this code
(err.constructor?.name === "FastifyError" || err.code === "FST_ERR_VALIDATION") && typeof err.code === "string" && typeof err.statusCode === "number"
) {
return true;
}
if (typeof err.expose === "boolean" && typeof err.statusCode === "number" && err.status === err.statusCode && err instanceof Error) {
return true;
}
return !(err instanceof Error) && Number.isInteger(err.statusCode) && err.statusCode >= 400 && err.statusCode < 600 && typeof err.message === "string" && err.message !== "";
}
};
__decorate([
Optional(),
Inject(),
__metadata("design:type", HttpAdapterHost)
], BaseExceptionFilter.prototype, "httpAdapterHost", void 0);
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/index.js
var init_exceptions = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/index.js"() {
init_base_exception_filter();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-constants.js
var REQUEST, REQUEST_CONTEXT_ID;
var init_request_constants = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-constants.js"() {
REQUEST = "REQUEST";
REQUEST_CONTEXT_ID = /* @__PURE__ */ Symbol("REQUEST_CONTEXT_ID");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-id-factory.js
function createContextId() {
return { id: Math.random() };
}
var ContextIdFactory;
var init_context_id_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-id-factory.js"() {
init_request_constants();
init_internal();
__name(createContextId, "createContextId");
ContextIdFactory = class _ContextIdFactory {
static {
__name(this, "ContextIdFactory");
}
static strategy;
/**
* Generates a context identifier based on the request object.
*/
static create() {
return createContextId();
}
/**
* Generates a random identifier to track asynchronous execution context.
* @param request request object
*/
static getByRequest(request, propsToInspect = ["raw"]) {
if (!request) {
return _ContextIdFactory.create();
}
if (request[REQUEST_CONTEXT_ID]) {
return request[REQUEST_CONTEXT_ID];
}
for (const key of propsToInspect) {
if (request[key]?.[REQUEST_CONTEXT_ID]) {
return request[key][REQUEST_CONTEXT_ID];
}
}
if (!this.strategy) {
return _ContextIdFactory.create();
}
const contextId = createContextId();
const resolverObjectOrFunction = this.strategy.attach(contextId, request);
if (this.isContextIdResolverWithPayload(resolverObjectOrFunction)) {
contextId.getParent = resolverObjectOrFunction.resolve;
contextId.payload = resolverObjectOrFunction.payload;
} else {
contextId.getParent = resolverObjectOrFunction;
}
return contextId;
}
/**
* Registers a custom context id strategy that lets you attach
* a parent context id to the existing context id object.
* @param strategy strategy instance
*/
static apply(strategy) {
this.strategy = strategy;
}
static isContextIdResolverWithPayload(resolverOrResolverFn) {
return isObject(resolverOrResolverFn);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/constants.js
var CONTROLLER_ID_KEY, STATIC_CONTEXT_ID, STATIC_CONTEXT;
var init_constants3 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/constants.js"() {
CONTROLLER_ID_KEY = "CONTROLLER_ID";
STATIC_CONTEXT_ID = 1;
STATIC_CONTEXT = Object.freeze({
id: STATIC_CONTEXT_ID
});
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/class-ref-registry.js
function registerClassRef(classRef) {
if (classRef.prototype) {
classRefsByPrototype.set(classRef.prototype, classRef);
}
}
function getClassRef(instance) {
return classRefsByPrototype.get(Object.getPrototypeOf(instance)) ?? instance.constructor;
}
var classRefsByPrototype;
var init_class_ref_registry = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/class-ref-registry.js"() {
classRefsByPrototype = /* @__PURE__ */ new WeakMap();
__name(registerClassRef, "registerClassRef");
__name(getClassRef, "getClassRef");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-creator.js
var ContextCreator;
var init_context_creator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-creator.js"() {
init_constants3();
init_class_ref_registry();
ContextCreator = class {
static {
__name(this, "ContextCreator");
}
createContext(instance, callback, metadataKey, contextId = STATIC_CONTEXT, inquirerId) {
const globalMetadata = this.getGlobalMetadata && this.getGlobalMetadata(contextId, inquirerId);
const classMetadata = this.reflectClassMetadata(instance, metadataKey);
const methodMetadata = this.reflectMethodMetadata(callback, metadataKey);
return [
...this.createConcreteContext(globalMetadata || [], contextId, inquirerId),
...this.createConcreteContext(classMetadata, contextId, inquirerId),
...this.createConcreteContext(methodMetadata, contextId, inquirerId)
];
}
reflectClassMetadata(instance, metadataKey) {
return Reflect.getMetadata(metadataKey, getClassRef(instance));
}
reflectMethodMetadata(callback, metadataKey) {
return Reflect.getMetadata(metadataKey, callback);
}
getContextId(contextId, instanceWrapper) {
return contextId.getParent ? contextId.getParent({
token: instanceWrapper.token,
isTreeDurable: instanceWrapper.isDependencyTreeDurable()
}) : contextId;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter-context.js
var import_iterare, BaseExceptionFilterContext;
var init_base_exception_filter_context = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/base-exception-filter-context.js"() {
import_iterare = __toESM(require_lib(), 1);
init_context_creator();
init_constants3();
init_internal();
BaseExceptionFilterContext = class extends ContextCreator {
static {
__name(this, "BaseExceptionFilterContext");
}
container;
moduleContext;
constructor(container) {
super();
this.container = container;
}
createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) {
if (isEmpty(metadata)) {
return [];
}
return (0, import_iterare.iterate)(metadata).filter((instance) => instance && (isFunction(instance.catch) || isFunction(instance))).map((filter) => this.getFilterInstance(filter, contextId, inquirerId)).filter((item) => !!item).map((instance) => ({
func: instance.catch.bind(instance),
exceptionMetatypes: this.reflectCatchExceptions(instance)
})).toArray();
}
getFilterInstance(filter, contextId = STATIC_CONTEXT, inquirerId) {
const isObject2 = !!filter.catch;
if (isObject2) {
return filter;
}
const instanceWrapper = this.getInstanceByMetatype(filter);
if (!instanceWrapper) {
return null;
}
const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId);
return instanceHost && instanceHost.instance;
}
getInstanceByMetatype(metatype) {
if (!this.moduleContext) {
return;
}
const collection = this.container.getModules();
const moduleRef = collection.get(this.moduleContext);
if (!moduleRef) {
return;
}
return moduleRef.injectables.get(metatype);
}
reflectCatchExceptions(instance) {
const prototype = Object.getPrototypeOf(instance);
return Reflect.getMetadata(FILTER_CATCH_EXCEPTIONS, prototype.constructor) || [];
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/runtime.exception.js
var RuntimeException;
var init_runtime_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/runtime.exception.js"() {
RuntimeException = class extends Error {
static {
__name(this, "RuntimeException");
}
constructor(message = ``) {
super(message);
}
what() {
return this.message;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/messages.js
var getInstanceName, getDependencyName, getModuleName, stringifyScope, UNKNOWN_DEPENDENCIES_MESSAGE, INVALID_MIDDLEWARE_MESSAGE, UNDEFINED_FORWARDREF_MESSAGE, INVALID_MODULE_MESSAGE, USING_INVALID_CLASS_AS_A_MODULE_MESSAGE, UNDEFINED_MODULE_MESSAGE, INVALID_PROVIDER_MESSAGE, UNKNOWN_EXPORT_MESSAGE, INVALID_CLASS_MESSAGE, INVALID_CLASS_SCOPE_MESSAGE, REQUEST_SCOPED_CREATE_MESSAGE, REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE, UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE, UNKNOWN_REQUEST_MAPPING, ROUTE_CONFLICT_MESSAGE, DUPLICATE_ROUTE_MESSAGE, SHADOWED_ROUTE_MESSAGE, INVALID_EXCEPTION_FILTER;
var init_messages = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/messages.js"() {
init_internal();
getInstanceName = /* @__PURE__ */ __name((instance) => {
if (instance?.forwardRef) {
return instance.forwardRef()?.name;
}
if (instance?.module) {
return instance.module?.name;
}
return instance?.name;
}, "getInstanceName");
getDependencyName = /* @__PURE__ */ __name((dependency, fallbackValue, disambiguated = true) => (
// use class name
getInstanceName(dependency) || // use injection token (symbol)
isSymbol(dependency) && dependency.toString() || // use string directly
(dependency ? disambiguated ? `"${dependency}"` : dependency : void 0) || // otherwise
fallbackValue
), "getDependencyName");
getModuleName = /* @__PURE__ */ __name((module) => module && getInstanceName(module.metatype) || "current", "getModuleName");
stringifyScope = /* @__PURE__ */ __name((scope) => (scope || []).map(getInstanceName).join(" -> "), "stringifyScope");
UNKNOWN_DEPENDENCIES_MESSAGE = /* @__PURE__ */ __name((type, unknownDependencyContext, moduleRef) => {
const { index, name, dependencies, key } = unknownDependencyContext;
const moduleName = getModuleName(moduleRef);
const dependencyName = getDependencyName(name, "dependency");
const isImportTypeIssue = !isNil(index) && dependencies && (dependencies[index] === void 0 || dependencies[index] === Object || typeof dependencies[index] === "function" && dependencies[index].name === "Object");
let potentialSolutions;
if (isImportTypeIssue) {
potentialSolutions = `
Potential solutions:
- The dependency at index [${index}] appears to be undefined at runtime
- This commonly occurs when using 'import type' instead of 'import' for injectable classes
- Check your imports and change:
\u274C import type { SomeService } from './some.service';
\u2705 import { SomeService } from './some.service';
- Ensure the imported class is decorated with @Injectable() or is a valid provider
- If using dynamic imports, ensure the class is available at runtime, not just for type checking
For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`;
} else {
potentialSolutions = // If module's name is well defined
moduleName !== "current" ? `
Potential solutions:
- Is ${moduleName} a valid NestJS module?
- If ${dependencyName} is a provider, is it part of the current ${moduleName}?
- If ${dependencyName} is exported from a separate @Module, is that module imported within ${moduleName}?
@Module({
imports: [ /* the Module containing ${dependencyName} */ ]
})
For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors` : `
Potential solutions:
- If ${dependencyName} is a provider, is it part of the current Module?
- If ${dependencyName} is exported from a separate @Module, is that module imported within Module?
@Module({
imports: [ /* the Module containing ${dependencyName} */ ]
})
For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors`;
}
let message = `Nest can't resolve dependencies of the ${type.toString()}`;
if (isNil(index)) {
message += `. Please make sure that the "${key.toString()}" property is available in the current context.${potentialSolutions}`;
return message;
}
const dependenciesName = (dependencies || []).map((dependencyName2) => getDependencyName(dependencyName2, "+", false));
dependenciesName[index] = "?";
const tokenFragment = !isImportTypeIssue && name !== void 0 ? ` ${dependencyName}` : "";
const contextLabel = isImportTypeIssue ? "current" : moduleName;
message += ` (`;
message += dependenciesName.join(", ");
message += `). Please make sure that the argument${tokenFragment} at index [${index}]`;
message += ` is available in the ${contextLabel} module.`;
message += potentialSolutions;
return message;
}, "UNKNOWN_DEPENDENCIES_MESSAGE");
INVALID_MIDDLEWARE_MESSAGE = /* @__PURE__ */ __name((text, name) => `The middleware doesn't provide the 'use' method (${name})`, "INVALID_MIDDLEWARE_MESSAGE");
UNDEFINED_FORWARDREF_MESSAGE = /* @__PURE__ */ __name((scope) => `Nest cannot create the module instance. Often, this is because of a circular dependency between modules. Use forwardRef() to avoid it.
(Read more: https://docs.nestjs.com/fundamentals/circular-dependency)
Scope [${stringifyScope(scope)}]
`, "UNDEFINED_FORWARDREF_MESSAGE");
INVALID_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope, receivedValue) => {
const parentModuleName = getInstanceName(parentModule) || "module";
let formattedValue;
let receivedType;
if (receivedValue === null) {
formattedValue = "null";
receivedType = "null";
} else if (typeof receivedValue === "string") {
formattedValue = `"${receivedValue}"`;
receivedType = "string";
} else {
formattedValue = String(receivedValue);
receivedType = typeof receivedValue;
}
return `Nest cannot create the ${parentModuleName} instance.
Received an unexpected value at index [${index}] of the ${parentModuleName} "imports" array.
The received value \`${formattedValue}\` is of type "${receivedType}".
Scope [${stringifyScope(scope)}]`;
}, "INVALID_MODULE_MESSAGE");
USING_INVALID_CLASS_AS_A_MODULE_MESSAGE = /* @__PURE__ */ __name((metatypeUsedAsAModule, scope, classKind) => {
const metatypeNameQuote = `"${getInstanceName(metatypeUsedAsAModule)}"`;
let hint;
switch (classKind) {
case "controller":
hint = `${metatypeNameQuote} is decorated with @Controller() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "controllers" array of the importing module instead.`;
break;
case "provider":
hint = `${metatypeNameQuote} is decorated with @Injectable() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array of the importing module instead.`;
break;
case "filter":
hint = `${metatypeNameQuote} is decorated with @Catch() and cannot appear in the "imports" array of a module. Please move ${metatypeNameQuote} to the "providers" array (using the APP_FILTER token to apply it globally) or apply it via @UseFilters() instead.`;
break;
}
return `${hint}
Scope [${stringifyScope(scope)}]
`;
}, "USING_INVALID_CLASS_AS_A_MODULE_MESSAGE");
UNDEFINED_MODULE_MESSAGE = /* @__PURE__ */ __name((parentModule, index, scope) => {
const parentModuleName = getInstanceName(parentModule) || "module";
return `Nest cannot create the ${parentModuleName} instance.
The module at index [${index}] of the ${parentModuleName} "imports" array is undefined.
Potential causes:
- A circular dependency between modules. Use forwardRef() to avoid it. Read more: https://docs.nestjs.com/fundamentals/circular-dependency
- The module at index [${index}] is of type "undefined". Check your import statements and the type of the module.
Scope [${stringifyScope(scope)}]`;
}, "UNDEFINED_MODULE_MESSAGE");
INVALID_PROVIDER_MESSAGE = /* @__PURE__ */ __name((token, moduleName) => `Nest cannot create the ${moduleName} instance.
The provider ${getDependencyName(token, "provider")} in the ${moduleName} "providers" array does not define a valid "useClass", "useValue", "useFactory" or "useExisting" property.
Potential causes:
- The value of "useClass", "useFactory" or "useExisting" is undefined at runtime, often because of a circular import between files. Check your import statements.
- None of these properties is set, or the one that is set is null.`, "INVALID_PROVIDER_MESSAGE");
UNKNOWN_EXPORT_MESSAGE = /* @__PURE__ */ __name((token = "item", module) => {
token = isSymbol(token) ? token.toString() : token;
return `Nest cannot export a provider/module that is not a part of the currently processed module (${module}). Please verify whether the exported ${token} is available in this particular context.
Possible Solutions:
- Is ${token} part of the relevant providers/imports within ${module}?
For more common dependency resolution issues, see: https://docs.nestjs.com/faq/common-errors
`;
}, "UNKNOWN_EXPORT_MESSAGE");
INVALID_CLASS_MESSAGE = /* @__PURE__ */ __name((text, value) => `ModuleRef cannot instantiate class (${value} is not constructable).`, "INVALID_CLASS_MESSAGE");
INVALID_CLASS_SCOPE_MESSAGE = /* @__PURE__ */ __name((text, name) => `${name || "This class"} is marked as a scoped provider. Request and transient-scoped providers can't be used in combination with "get()" method. Please, use "resolve()" instead.`, "INVALID_CLASS_SCOPE_MESSAGE");
REQUEST_SCOPED_CREATE_MESSAGE = /* @__PURE__ */ __name((name) => `${name} depends on a request-scoped provider, so it can't be created without a context id. Please, use "create(type, contextId)" instead.`, "REQUEST_SCOPED_CREATE_MESSAGE");
REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE = /* @__PURE__ */ __name((enhancerToken, provider, kind) => `The ${enhancerToken} provider (${provider}) depends on a request-scoped provider, ${{
useClass: `so it would run with its dependencies undefined. Mark the class with @Injectable({ scope: Scope.REQUEST }), or set "scope: Scope.REQUEST" on the provider.`,
useExisting: `so it would never run. Point "useExisting" at a class marked with @Injectable({ scope: Scope.REQUEST }), or use a factory provider with "scope: Scope.REQUEST".`,
useFactory: `so it would never run. Set "scope: Scope.REQUEST" on the factory provider.`
}[kind]}`, "REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE");
UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE = /* @__PURE__ */ __name((enhancerToken, provider) => `The ${enhancerToken} provider (${provider}) was not instantiated, as one of its dependencies was not, so it can't be applied.`, "UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE");
UNKNOWN_REQUEST_MAPPING = /* @__PURE__ */ __name((metatype) => {
const className = metatype.name;
return className ? `An invalid controller has been detected. "${className}" does not have the @Controller() decorator but it is being listed in the "controllers" array of some module.` : `An invalid controller has been detected. Perhaps, one of your controllers is missing the @Controller() decorator.`;
}, "UNKNOWN_REQUEST_MAPPING");
ROUTE_CONFLICT_MESSAGE = /* @__PURE__ */ __name((messages) => [
"Conflicting HTTP routes detected:",
...messages.map((message) => ` - ${message}`),
`Adjust route declarations or relax the 'routeConflictPolicy' option passed to NestFactory.create() to allow the application to start.`
].join("\n"), "ROUTE_CONFLICT_MESSAGE");
DUPLICATE_ROUTE_MESSAGE = /* @__PURE__ */ __name((method, path, firstHandlerLabel, secondHandlerLabel) => `Duplicate route: ${method} ${path} is registered by both ${firstHandlerLabel} and ${secondHandlerLabel}.`, "DUPLICATE_ROUTE_MESSAGE");
SHADOWED_ROUTE_MESSAGE = /* @__PURE__ */ __name((method, shadowedPath, shadowedHandlerLabel, winnerPath, winnerHandlerLabel) => `Route ${method} ${shadowedPath} (${shadowedHandlerLabel}) is shadowed by ${method} ${winnerPath} (${winnerHandlerLabel}). The first-registered route will match all matching requests on order-sensitive adapters.`, "SHADOWED_ROUTE_MESSAGE");
INVALID_EXCEPTION_FILTER = `Invalid exception filters (@UseFilters()).`;
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js
var InvalidExceptionFilterException;
var init_invalid_exception_filter_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-exception-filter.exception.js"() {
init_runtime_exception();
init_messages();
InvalidExceptionFilterException = class extends RuntimeException {
static {
__name(this, "InvalidExceptionFilterException");
}
constructor() {
super(INVALID_EXCEPTION_FILTER);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter.js
var ExternalExceptionFilter;
var init_external_exception_filter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter.js"() {
init_common();
ExternalExceptionFilter = class _ExternalExceptionFilter {
static {
__name(this, "ExternalExceptionFilter");
}
static logger = new Logger("ExceptionsHandler");
catch(exception, host) {
if (exception instanceof Error && !(exception instanceof IntrinsicException)) {
_ExternalExceptionFilter.logger.error(exception);
}
throw exception;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exceptions-handler.js
var ExternalExceptionsHandler;
var init_external_exceptions_handler = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exceptions-handler.js"() {
init_invalid_exception_filter_exception();
init_external_exception_filter();
init_internal();
ExternalExceptionsHandler = class extends ExternalExceptionFilter {
static {
__name(this, "ExternalExceptionsHandler");
}
filters = [];
next(exception, host) {
const result = this.invokeCustomFilters(exception, host);
if (!isUndefined(result)) {
return result;
}
return super.catch(exception, host);
}
setCustomFilters(filters) {
if (!Array.isArray(filters)) {
throw new InvalidExceptionFilterException();
}
this.filters = filters;
}
invokeCustomFilters(exception, host) {
if (isEmptyArray(this.filters)) {
return;
}
const filter = selectExceptionFilterMetadata(this.filters, exception);
return filter ? filter.func(exception, host) : void 0;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter-context.js
var import_iterare2, ExternalExceptionFilterContext;
var init_external_exception_filter_context = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/external-exception-filter-context.js"() {
import_iterare2 = __toESM(require_lib(), 1);
init_constants3();
init_base_exception_filter_context();
init_external_exceptions_handler();
init_internal();
ExternalExceptionFilterContext = class extends BaseExceptionFilterContext {
static {
__name(this, "ExternalExceptionFilterContext");
}
config;
constructor(container, config) {
super(container);
this.config = config;
}
create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) {
this.moduleContext = module;
const exceptionHandler = new ExternalExceptionsHandler();
const filters = this.createContext(instance, callback, EXCEPTION_FILTERS_METADATA, contextId, inquirerId);
if (isEmptyArray(filters)) {
return exceptionHandler;
}
exceptionHandler.setCustomFilters(filters.reverse());
return exceptionHandler;
}
getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) {
if (!this.config) {
return [];
}
const globalFilters = this.config.getGlobalFilters();
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalFilters;
}
const scopedFilterWrappers = this.config.getGlobalRequestFilters();
const scopedFilters = (0, import_iterare2.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray();
return globalFilters.concat(scopedFilters);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/constants.js
var FORBIDDEN_MESSAGE;
var init_constants4 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/constants.js"() {
FORBIDDEN_MESSAGE = "Forbidden resource";
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/execution-context-host.js
var ExecutionContextHost;
var init_execution_context_host = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/execution-context-host.js"() {
ExecutionContextHost = class {
static {
__name(this, "ExecutionContextHost");
}
args;
constructorRef;
handler;
contextType = "http";
constructor(args, constructorRef = null, handler = null) {
this.args = args;
this.constructorRef = constructorRef;
this.handler = handler;
}
setType(type) {
type && (this.contextType = type);
}
getType() {
return this.contextType;
}
getClass() {
return this.constructorRef;
}
getHandler() {
return this.handler;
}
getArgs() {
return this.args;
}
getArgByIndex(index) {
return this.args[index];
}
switchToRpc() {
return Object.assign(this, {
getData: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getData"),
getContext: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getContext")
});
}
switchToHttp() {
return Object.assign(this, {
getRequest: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getRequest"),
getResponse: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getResponse"),
getNext: /* @__PURE__ */ __name(() => this.getArgByIndex(2), "getNext")
});
}
switchToWs() {
return Object.assign(this, {
getClient: /* @__PURE__ */ __name(() => this.getArgByIndex(0), "getClient"),
getData: /* @__PURE__ */ __name(() => this.getArgByIndex(1), "getData"),
getPattern: /* @__PURE__ */ __name(() => this.getArgByIndex(this.getArgs().length - 1), "getPattern")
});
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-consumer.js
var import_rxjs3, GuardsConsumer;
var init_guards_consumer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-consumer.js"() {
import_rxjs3 = __toESM(require_cjs(), 1);
init_execution_context_host();
init_internal();
GuardsConsumer = class {
static {
__name(this, "GuardsConsumer");
}
async tryActivate(guards, args, instance, callback, type) {
if (!guards || isEmptyArray(guards)) {
return true;
}
const context = this.createContext(args, instance, callback);
context.setType(type);
for (const guard of guards) {
const result = guard.canActivate(context);
if (typeof result === "boolean") {
if (!result) {
return false;
}
continue;
}
if (await this.pickResult(result)) {
continue;
}
return false;
}
return true;
}
createContext(args, instance, callback) {
return new ExecutionContextHost(args, instance.constructor, callback);
}
async pickResult(result) {
const value = await result;
if ((0, import_rxjs3.isObservable)(value)) {
return (0, import_rxjs3.lastValueFrom)(value);
}
return value;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-context-creator.js
var import_iterare3, GuardsContextCreator;
var init_guards_context_creator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/guards-context-creator.js"() {
import_iterare3 = __toESM(require_lib(), 1);
init_context_creator();
init_constants3();
init_internal();
GuardsContextCreator = class extends ContextCreator {
static {
__name(this, "GuardsContextCreator");
}
container;
config;
moduleContext;
constructor(container, config) {
super();
this.container = container;
this.config = config;
}
create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) {
this.moduleContext = module;
return this.createContext(instance, callback, GUARDS_METADATA, contextId, inquirerId);
}
createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) {
if (isEmpty(metadata)) {
return [];
}
return (0, import_iterare3.iterate)(metadata).filter((guard) => guard && (isFunction(guard) || isFunction(guard.canActivate))).map((guard) => this.getGuardInstance(guard, contextId, inquirerId)).filter((guard) => !!guard && isFunction(guard.canActivate)).toArray();
}
getGuardInstance(metatype, contextId = STATIC_CONTEXT, inquirerId) {
const isObject2 = !!metatype.canActivate;
if (isObject2) {
return metatype;
}
const instanceWrapper = this.getInstanceByMetatype(metatype);
if (!instanceWrapper) {
return null;
}
const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId);
return instanceHost && instanceHost.instance;
}
getInstanceByMetatype(metatype) {
if (!this.moduleContext) {
return;
}
const collection = this.container.getModules();
const moduleRef = collection.get(this.moduleContext);
if (!moduleRef) {
return;
}
const injectables = moduleRef.injectables;
return injectables.get(metatype);
}
getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) {
if (!this.config) {
return [];
}
const globalGuards = this.config.getGlobalGuards();
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalGuards;
}
const scopedGuardWrappers = this.config.getGlobalRequestGuards();
const scopedGuards = (0, import_iterare3.iterate)(scopedGuardWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray();
return globalGuards.concat(scopedGuards);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/index.js
var init_guards = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/guards/index.js"() {
init_constants4();
init_guards_consumer();
init_guards_context_creator();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/destroy-streamable-file.js
function destroyStreamableFile(value) {
if (!(value instanceof StreamableFile)) {
return;
}
const stream = value.getStream();
if (isFunction(stream?.destroy)) {
stream.destroy();
}
}
var init_destroy_streamable_file = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/destroy-streamable-file.js"() {
init_common();
init_internal();
__name(destroyStreamableFile, "destroyStreamableFile");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-consumer.js
import { AsyncResource } from "async_hooks";
function bindAsyncScope(fn) {
const resource = new AsyncResource(fn.name || "bound-anonymous-fn");
return () => resource.runInAsyncScope(fn);
}
var import_rxjs4, import_operators, InterceptorsConsumer;
var init_interceptors_consumer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-consumer.js"() {
import_rxjs4 = __toESM(require_cjs(), 1);
import_operators = __toESM(require_operators(), 1);
init_destroy_streamable_file();
init_execution_context_host();
init_internal();
InterceptorsConsumer = class {
static {
__name(this, "InterceptorsConsumer");
}
async intercept(interceptors, args, instance, callback, next, type) {
if (!interceptors || isEmptyArray(interceptors)) {
return next();
}
const context = this.createContext(args, instance, callback);
context.setType(type);
const nextFn = /* @__PURE__ */ __name(async (i = 0) => {
if (i >= interceptors.length) {
return (0, import_rxjs4.defer)(bindAsyncScope(() => this.transformDeferred(next)));
}
const handler = {
handle: /* @__PURE__ */ __name(() => (0, import_rxjs4.defer)(bindAsyncScope(() => nextFn(i + 1))).pipe((0, import_operators.mergeAll)()), "handle")
};
return interceptors[i].intercept(context, handler);
}, "nextFn");
return (0, import_rxjs4.defer)(() => nextFn()).pipe((0, import_operators.mergeAll)());
}
createContext(args, instance, callback) {
return new ExecutionContextHost(args, instance.constructor, callback);
}
transformDeferred(next) {
const nextPromise = next();
return new import_rxjs4.Observable((subscriber) => {
let innerSub;
nextPromise.then((res) => {
if (subscriber.closed) {
destroyStreamableFile(res);
return;
}
const isDeferred = res instanceof Promise || res instanceof import_rxjs4.Observable;
innerSub = (0, import_rxjs4.from)(isDeferred ? res : Promise.resolve(res)).subscribe(subscriber);
}).catch((err) => {
if (!subscriber.closed) {
subscriber.error(err);
}
});
return () => {
innerSub?.unsubscribe();
};
});
}
};
__name(bindAsyncScope, "bindAsyncScope");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-context-creator.js
var import_iterare4, InterceptorsContextCreator;
var init_interceptors_context_creator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/interceptors-context-creator.js"() {
import_iterare4 = __toESM(require_lib(), 1);
init_context_creator();
init_constants3();
init_internal();
InterceptorsContextCreator = class extends ContextCreator {
static {
__name(this, "InterceptorsContextCreator");
}
container;
config;
moduleContext;
constructor(container, config) {
super();
this.container = container;
this.config = config;
}
create(instance, callback, module, contextId = STATIC_CONTEXT, inquirerId) {
this.moduleContext = module;
return this.createContext(instance, callback, INTERCEPTORS_METADATA, contextId, inquirerId);
}
createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) {
if (isEmpty(metadata)) {
return [];
}
return (0, import_iterare4.iterate)(metadata).filter((interceptor) => interceptor && (isFunction(interceptor) || isFunction(interceptor.intercept))).map((interceptor) => this.getInterceptorInstance(interceptor, contextId, inquirerId)).filter((interceptor) => interceptor ? isFunction(interceptor.intercept) : false).toArray();
}
getInterceptorInstance(metatype, contextId = STATIC_CONTEXT, inquirerId) {
const isObject2 = !!metatype.intercept;
if (isObject2) {
return metatype;
}
const instanceWrapper = this.getInstanceByMetatype(metatype);
if (!instanceWrapper) {
return null;
}
const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId);
return instanceHost && instanceHost.instance;
}
getInstanceByMetatype(metatype) {
if (!this.moduleContext) {
return;
}
const collection = this.container.getModules();
const moduleRef = collection.get(this.moduleContext);
if (!moduleRef) {
return;
}
return moduleRef.injectables.get(metatype);
}
getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) {
if (!this.config) {
return [];
}
const globalInterceptors = this.config.getGlobalInterceptors();
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalInterceptors;
}
const scopedInterceptorWrappers = this.config.getGlobalRequestInterceptors();
const scopedInterceptors = (0, import_iterare4.iterate)(scopedInterceptorWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray();
return globalInterceptors.concat(scopedInterceptors);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/index.js
var init_interceptors = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/interceptors/index.js"() {
init_interceptors_consumer();
init_interceptors_context_creator();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/params-token-factory.js
var ParamsTokenFactory;
var init_params_token_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/params-token-factory.js"() {
init_internal();
ParamsTokenFactory = class {
static {
__name(this, "ParamsTokenFactory");
}
exchangeEnumForString(type) {
switch (type) {
case RouteParamtypes.BODY:
return "body";
case RouteParamtypes.PARAM:
return "param";
case RouteParamtypes.QUERY:
return "query";
default:
return "custom";
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-consumer.js
var isThenable, PipesConsumer;
var init_pipes_consumer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-consumer.js"() {
init_params_token_factory();
isThenable = /* @__PURE__ */ __name((value) => value !== null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function", "isThenable");
PipesConsumer = class {
static {
__name(this, "PipesConsumer");
}
paramsTokenFactory = new ParamsTokenFactory();
async apply(value, metadata, pipes) {
const token = this.paramsTokenFactory.exchangeEnumForString(metadata.type);
return this.applyPipes(value, {
metatype: metadata.metatype,
type: token,
data: metadata.data,
schema: metadata.schema
}, pipes);
}
async applyPipes(value, { metatype, type, data, schema }, transforms) {
let result = isThenable(value) ? await value : value;
for (const pipe of transforms) {
result = await pipe.transform(result, { metatype, type, data, schema });
}
return result;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-context-creator.js
var import_iterare5, PipesContextCreator;
var init_pipes_context_creator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/pipes-context-creator.js"() {
import_iterare5 = __toESM(require_lib(), 1);
init_context_creator();
init_constants3();
init_internal();
PipesContextCreator = class extends ContextCreator {
static {
__name(this, "PipesContextCreator");
}
container;
config;
moduleContext;
constructor(container, config) {
super();
this.container = container;
this.config = config;
}
create(instance, callback, moduleKey, contextId = STATIC_CONTEXT, inquirerId) {
this.moduleContext = moduleKey;
return this.createContext(instance, callback, PIPES_METADATA, contextId, inquirerId);
}
createConcreteContext(metadata, contextId = STATIC_CONTEXT, inquirerId) {
if (isEmpty(metadata)) {
return [];
}
return (0, import_iterare5.iterate)(metadata).filter((pipe) => pipe && (isFunction(pipe) || isFunction(pipe.transform))).map((pipe) => this.getPipeInstance(pipe, contextId, inquirerId)).filter((pipe) => !!pipe && pipe.transform && isFunction(pipe.transform)).toArray();
}
getPipeInstance(pipe, contextId = STATIC_CONTEXT, inquirerId) {
const isObject2 = !!pipe.transform;
if (isObject2) {
return pipe;
}
const instanceWrapper = this.getInstanceByMetatype(pipe);
if (!instanceWrapper) {
return null;
}
const instanceHost = instanceWrapper.getInstanceByContextId(this.getContextId(contextId, instanceWrapper), inquirerId);
return instanceHost && instanceHost.instance;
}
getInstanceByMetatype(metatype) {
if (!this.moduleContext) {
return;
}
const collection = this.container.getModules();
const moduleRef = collection.get(this.moduleContext);
if (!moduleRef) {
return;
}
return moduleRef.injectables.get(metatype);
}
getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) {
if (!this.config) {
return [];
}
const globalPipes = this.config.getGlobalPipes();
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalPipes;
}
const scopedPipeWrappers = this.config.getGlobalRequestPipes();
const scopedPipes = (0, import_iterare5.iterate)(scopedPipeWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray();
return globalPipes.concat(scopedPipes);
}
setModuleContext(context) {
this.moduleContext = context;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/index.js
var init_pipes = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/pipes/index.js"() {
init_params_token_factory();
init_pipes_consumer();
init_pipes_context_creator();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-utils.js
var ContextUtils;
var init_context_utils = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/context-utils.js"() {
init_execution_context_host();
init_internal();
ContextUtils = class {
static {
__name(this, "ContextUtils");
}
mapParamType(key) {
const keyPair = key.split(":");
return keyPair[0];
}
reflectCallbackParamtypes(instance, methodName) {
return Reflect.getMetadata(PARAMTYPES_METADATA, instance, methodName);
}
reflectCallbackMetadata(instance, methodName, metadataKey) {
return Reflect.getMetadata(metadataKey, instance.constructor, methodName);
}
reflectPassthrough(instance, methodName) {
return Reflect.getMetadata(RESPONSE_PASSTHROUGH_METADATA, instance.constructor, methodName);
}
getArgumentsLength(keys, metadata) {
return keys.length ? Math.max(...keys.map((key) => metadata[key].index)) + 1 : 0;
}
createNullArray(length) {
const a = new Array(length);
for (let i = 0; i < length; ++i)
a[i] = void 0;
return a;
}
mergeParamsMetatypes(paramsProperties, paramtypes) {
if (!paramtypes) {
return paramsProperties;
}
return paramsProperties.map((param) => ({
...param,
metatype: paramtypes[param.index]
}));
}
getCustomFactory(factory, data, contextFactory) {
return isFunction(factory) ? (...args) => factory(data, contextFactory(args)) : () => null;
}
getContextFactory(contextType, instance, callback) {
const type = instance && instance.constructor;
return (args) => {
const ctx = new ExecutionContextHost(args, type, callback);
ctx.setType(contextType);
return ctx;
};
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-proxy.js
var ExternalErrorProxy;
var init_external_proxy = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-proxy.js"() {
init_execution_context_host();
ExternalErrorProxy = class {
static {
__name(this, "ExternalErrorProxy");
}
createProxy(targetCallback, exceptionsHandler, type) {
return async (...args) => {
try {
return await targetCallback(...args);
} catch (e) {
const host = new ExecutionContextHost(args);
host.setType(type);
return exceptionsHandler.next(e, host);
}
};
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/handler-metadata-storage.js
var HANDLER_METADATA_SYMBOL, HandlerMetadataStorage;
var init_handler_metadata_storage = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/handler-metadata-storage.js"() {
HANDLER_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("handler_metadata:cache");
HandlerMetadataStorage = class {
static {
__name(this, "HandlerMetadataStorage");
}
// Keyed by class: same-named classes must not share an entry.
[HANDLER_METADATA_SYMBOL] = /* @__PURE__ */ new WeakMap();
set(controller, methodName, metadata) {
const ctor = controller.constructor;
if (!ctor) {
return;
}
let handlers = this[HANDLER_METADATA_SYMBOL].get(ctor);
if (!handlers) {
handlers = /* @__PURE__ */ new Map();
this[HANDLER_METADATA_SYMBOL].set(ctor, handlers);
}
handlers.set(methodName, metadata);
}
get(controller, methodName) {
const handlers = this[HANDLER_METADATA_SYMBOL].get(controller.constructor);
return handlers?.get(methodName);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-context-creator.js
var import_rxjs5, ExternalContextCreator;
var init_external_context_creator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/external-context-creator.js"() {
init_common();
init_internal();
import_rxjs5 = __toESM(require_cjs(), 1);
init_external_exception_filter_context();
init_constants4();
init_guards();
init_constants3();
init_interceptors();
init_pipes();
init_class_ref_registry();
init_context_utils();
init_external_proxy();
init_handler_metadata_storage();
ExternalContextCreator = class _ExternalContextCreator {
static {
__name(this, "ExternalContextCreator");
}
guardsContextCreator;
guardsConsumer;
interceptorsContextCreator;
interceptorsConsumer;
modulesContainer;
pipesContextCreator;
pipesConsumer;
filtersContextCreator;
contextUtils = new ContextUtils();
externalErrorProxy = new ExternalErrorProxy();
handlerMetadataStorage = new HandlerMetadataStorage();
container;
constructor(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, modulesContainer, pipesContextCreator, pipesConsumer, filtersContextCreator) {
this.guardsContextCreator = guardsContextCreator;
this.guardsConsumer = guardsConsumer;
this.interceptorsContextCreator = interceptorsContextCreator;
this.interceptorsConsumer = interceptorsConsumer;
this.modulesContainer = modulesContainer;
this.pipesContextCreator = pipesContextCreator;
this.pipesConsumer = pipesConsumer;
this.filtersContextCreator = filtersContextCreator;
}
static fromContainer(container) {
const guardsContextCreator = new GuardsContextCreator(container, container.applicationConfig);
const guardsConsumer = new GuardsConsumer();
const interceptorsContextCreator = new InterceptorsContextCreator(container, container.applicationConfig);
const interceptorsConsumer = new InterceptorsConsumer();
const pipesContextCreator = new PipesContextCreator(container, container.applicationConfig);
const pipesConsumer = new PipesConsumer();
const filtersContextCreator = new ExternalExceptionFilterContext(container, container.applicationConfig);
const externalContextCreator = new _ExternalContextCreator(guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getModules(), pipesContextCreator, pipesConsumer, filtersContextCreator);
externalContextCreator.container = container;
return externalContextCreator;
}
create(instance, callback, methodName, metadataKey, paramsFactory, contextId = STATIC_CONTEXT, inquirerId, options = {
interceptors: true,
guards: true,
filters: true
}, contextType = "http") {
const classRef = getClassRef(instance);
const moduleKey = this.getContextModuleKey(classRef) || this.getHostModuleKey(instance, inquirerId);
inquirerId ??= this.modulesContainer.get(moduleKey)?.entryProviders.find((item) => item.token === classRef || item.instance === instance)?.id;
const { argsLength, paramtypes, getParamsMetadata } = this.getMetadata(instance, methodName, metadataKey, paramsFactory, contextType);
const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const exceptionFilter = this.filtersContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const interceptors = options.interceptors ? this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId) : [];
const paramsMetadata = getParamsMetadata(moduleKey, contextId, inquirerId);
const paramsOptions = paramsMetadata ? this.contextUtils.mergeParamsMetatypes(paramsMetadata, paramtypes) : [];
const fnCanActivate = options.guards ? this.createGuardsFn(guards, instance, callback, contextType) : null;
const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);
const handler = /* @__PURE__ */ __name((initialArgs, ...args) => async () => {
if (fnApplyPipes) {
await fnApplyPipes(initialArgs, ...args);
return callback.apply(instance, initialArgs);
}
return callback.apply(instance, args);
}, "handler");
const target = /* @__PURE__ */ __name(async (...args) => {
const initialArgs = this.contextUtils.createNullArray(argsLength);
fnCanActivate && await fnCanActivate(args);
const result = await this.interceptorsConsumer.intercept(interceptors, args, instance, callback, handler(initialArgs, ...args), contextType);
return this.transformToResult(result);
}, "target");
return options.filters ? this.externalErrorProxy.createProxy(target, exceptionFilter, contextType) : target;
}
getMetadata(instance, methodName, metadataKey, paramsFactory, contextType) {
const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName);
if (cacheMetadata) {
return cacheMetadata;
}
const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, metadataKey || "") || {};
const keys = Object.keys(metadata);
const argsLength = this.contextUtils.getArgumentsLength(keys, metadata);
const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName);
const contextFactory = this.contextUtils.getContextFactory(contextType, instance, instance[methodName]);
const getParamsMetadata = /* @__PURE__ */ __name((moduleKey, contextId = STATIC_CONTEXT, inquirerId) => paramsFactory ? this.exchangeKeysForValues(keys, metadata, moduleKey, paramsFactory, contextId, inquirerId, contextFactory) : null, "getParamsMetadata");
const handlerMetadata = {
argsLength,
paramtypes,
getParamsMetadata
};
this.handlerMetadataStorage.set(instance, methodName, handlerMetadata);
return handlerMetadata;
}
getContextModuleKey(moduleCtor) {
const emptyModuleKey = "";
if (!moduleCtor) {
return emptyModuleKey;
}
const moduleContainerEntries = this.modulesContainer.entries();
for (const [key, moduleRef] of moduleContainerEntries) {
if (moduleRef.hasProvider(moduleCtor)) {
return key;
}
}
return emptyModuleKey;
}
/**
* Returns the key of the module of a host registered under a token other
* than its class (e.g., `{ provide: 'TOKEN', useClass: Resolver }`): the
* module whose providers include the given inquirer or, without one, the
* given instance.
*/
getHostModuleKey(instance, inquirerId) {
for (const [key, moduleRef] of this.modulesContainer.entries()) {
const host = inquirerId ? moduleRef.getProviderById(inquirerId) : [...moduleRef.providers.values()].find((wrapper) => !wrapper.isAlias && wrapper.instance === instance);
if (host) {
return key;
}
}
return "";
}
exchangeKeysForValues(keys, metadata, moduleContext, paramsFactory, contextId = STATIC_CONTEXT, inquirerId, contextFactory = this.contextUtils.getContextFactory("http")) {
this.pipesContextCreator.setModuleContext(moduleContext);
return keys.map((key) => {
const { index, data, pipes: pipesCollection, schema } = metadata[key];
const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId);
const type = this.contextUtils.mapParamType(key);
if (key.includes(CUSTOM_ROUTE_ARGS_METADATA)) {
const { factory } = metadata[key];
const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory);
return {
index,
extractValue: customExtractValue,
type,
data,
pipes,
schema
};
}
const numericType = Number(type);
const extractValue = /* @__PURE__ */ __name((...args) => paramsFactory.exchangeKeyForValue(numericType, data, args), "extractValue");
return { index, extractValue, type: numericType, data, pipes, schema };
});
}
createPipesFn(pipes, paramsOptions) {
const pipesFn = /* @__PURE__ */ __name(async (args, ...params) => {
const resolveParamValue = /* @__PURE__ */ __name(async (param) => {
const { index, extractValue, type, data, metatype, pipes: paramPipes, schema } = param;
const value = extractValue(...params);
args[index] = await this.getParamValue(value, { metatype, type, data, schema }, pipes.concat(paramPipes));
}, "resolveParamValue");
await Promise.all(paramsOptions.map(resolveParamValue));
}, "pipesFn");
return paramsOptions.length ? pipesFn : null;
}
async getParamValue(value, metadata, pipes) {
return isEmptyArray(pipes) ? value : this.pipesConsumer.apply(value, metadata, pipes);
}
async transformToResult(resultOrDeferred) {
if ((0, import_rxjs5.isObservable)(resultOrDeferred)) {
return (0, import_rxjs5.lastValueFrom)(resultOrDeferred);
}
return resultOrDeferred;
}
createGuardsFn(guards, instance, callback, contextType) {
const canActivateFn = /* @__PURE__ */ __name(async (args) => {
const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType);
if (!canActivate) {
throw new ForbiddenException(FORBIDDEN_MESSAGE);
}
}, "canActivateFn");
return guards.length ? canActivateFn : null;
}
registerRequestProvider(request, contextId) {
this.container.registerRequestProvider(request, contextId);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/index.js
var init_helpers = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/index.js"() {
init_context_id_factory();
init_external_context_creator();
init_http_adapter_host();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js
var CircularDependencyException;
var init_circular_dependency_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/circular-dependency.exception.js"() {
init_runtime_exception();
CircularDependencyException = class extends RuntimeException {
static {
__name(this, "CircularDependencyException");
}
constructor(context) {
const ctx = context ? ` inside ${context}` : ``;
super(`A circular dependency has been detected${ctx}. Please, make sure that each side of a bidirectional relationships are decorated with "forwardRef()". Note that circular relationships between custom providers (e.g., factories) are not supported since functions cannot be called more than once.`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js
var UnknownElementException;
var init_unknown_element_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-element.exception.js"() {
init_runtime_exception();
UnknownElementException = class extends RuntimeException {
static {
__name(this, "UnknownElementException");
}
constructor(name) {
name = name && name.toString();
super(`Nest could not find ${name || "given"} element (this provider does not exist in the current context)`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js
var InvalidClassScopeException;
var init_invalid_class_scope_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-scope.exception.js"() {
init_messages();
init_runtime_exception();
init_internal();
InvalidClassScopeException = class extends RuntimeException {
static {
__name(this, "InvalidClassScopeException");
}
constructor(metatypeOrToken) {
let name = isFunction(metatypeOrToken) ? metatypeOrToken.name : metatypeOrToken;
name = name && name.toString();
super(INVALID_CLASS_SCOPE_MESSAGE`${name}`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js
var InvalidClassException;
var init_invalid_class_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class.exception.js"() {
init_messages();
init_runtime_exception();
InvalidClassException = class extends RuntimeException {
static {
__name(this, "InvalidClassException");
}
constructor(value) {
super(INVALID_CLASS_MESSAGE`${value}`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/route-conflict.exception.js
var RouteConflictException;
var init_route_conflict_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/route-conflict.exception.js"() {
init_messages();
init_runtime_exception();
RouteConflictException = class extends RuntimeException {
static {
__name(this, "RouteConflictException");
}
constructor(messages) {
super(ROUTE_CONFLICT_MESSAGE(messages));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js
var UnknownExportException;
var init_unknown_export_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-export.exception.js"() {
init_messages();
init_runtime_exception();
UnknownExportException = class extends RuntimeException {
static {
__name(this, "UnknownExportException");
}
constructor(token, moduleName) {
super(UNKNOWN_EXPORT_MESSAGE(token, moduleName));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js
var UnknownModuleException;
var init_unknown_module_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-module.exception.js"() {
init_runtime_exception();
UnknownModuleException = class extends RuntimeException {
static {
__name(this, "UnknownModuleException");
}
constructor(moduleName) {
super(`Nest could not select the given module (${moduleName ? `"${moduleName}"` : "it"} does not exist in current context).`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js
var UndefinedForwardRefException;
var init_undefined_forwardref_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-forwardref.exception.js"() {
init_messages();
init_runtime_exception();
UndefinedForwardRefException = class extends RuntimeException {
static {
__name(this, "UndefinedForwardRefException");
}
constructor(scope) {
super(UNDEFINED_FORWARDREF_MESSAGE(scope));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/index.js
var init_exceptions2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/index.js"() {
init_circular_dependency_exception();
init_runtime_exception();
init_unknown_element_exception();
init_invalid_class_scope_exception();
init_invalid_class_exception();
init_route_conflict_exception();
init_unknown_export_exception();
init_unknown_module_exception();
init_undefined_forwardref_exception();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js
var InitializeOnPreviewAllowlist;
var init_initialize_on_preview_allowlist = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/initialize-on-preview.allowlist.js"() {
InitializeOnPreviewAllowlist = class {
static {
__name(this, "InitializeOnPreviewAllowlist");
}
static allowlist = /* @__PURE__ */ new WeakMap();
static add(type) {
this.allowlist.set(type, true);
}
static has(type) {
return this.allowlist.has(type);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js
var INQUIRER;
var init_inquirer_constants = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-constants.js"() {
INQUIRER = "INQUIRER";
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/silent-logger.js
var noop, SilentLogger;
var init_silent_logger = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/silent-logger.js"() {
init_common();
noop = /* @__PURE__ */ __name(() => {
}, "noop");
SilentLogger = class extends Logger {
static {
__name(this, "SilentLogger");
}
log = noop;
error = noop;
warn = noop;
debug = noop;
verbose = noop;
fatal = noop;
setLogLevels = noop;
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-create.exception.js
var RequestScopedCreateException;
var init_request_scoped_create_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-create.exception.js"() {
init_messages();
init_runtime_exception();
RequestScopedCreateException = class extends RuntimeException {
static {
__name(this, "RequestScopedCreateException");
}
constructor(name) {
super(REQUEST_SCOPED_CREATE_MESSAGE(name));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/get-class-scope.js
function getClassScope(provider) {
const metadata = Reflect.getMetadata(SCOPE_OPTIONS_METADATA, provider);
return metadata && metadata.scope;
}
var init_get_class_scope = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/get-class-scope.js"() {
init_internal();
__name(getClassScope, "getClassScope");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/is-durable.js
function isDurable(provider) {
const metadata = Reflect.getMetadata(SCOPE_OPTIONS_METADATA, provider);
return metadata && metadata.durable;
}
var init_is_durable = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/is-durable.js"() {
init_internal();
__name(isDurable, "isDurable");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/abstract-instance-resolver.js
var AbstractInstanceResolver;
var init_abstract_instance_resolver = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/abstract-instance-resolver.js"() {
init_common();
init_exceptions2();
AbstractInstanceResolver = class {
static {
__name(this, "AbstractInstanceResolver");
}
find(typeOrToken, options) {
const instanceLinkOrArray = this.instanceLinksHost.get(typeOrToken, options);
const pluckInstance = /* @__PURE__ */ __name(({ wrapperRef }) => {
if (wrapperRef.scope === Scope.REQUEST || wrapperRef.scope === Scope.TRANSIENT || !wrapperRef.isDependencyTreeStatic()) {
throw new InvalidClassScopeException(typeOrToken);
}
return wrapperRef.instance;
}, "pluckInstance");
if (Array.isArray(instanceLinkOrArray)) {
return instanceLinkOrArray.map(pluckInstance);
}
return pluckInstance(instanceLinkOrArray);
}
async resolvePerContext(typeOrToken, contextModule, contextId, options) {
const instanceLinkOrArray = options?.strict ? this.instanceLinksHost.get(typeOrToken, {
moduleId: contextModule.id,
each: options.each
}) : this.instanceLinksHost.get(typeOrToken, {
each: options?.each
});
const pluckInstance = /* @__PURE__ */ __name(async (instanceLink) => {
const { wrapperRef, collection } = instanceLink;
if (wrapperRef.isDependencyTreeStatic() && !wrapperRef.isTransient) {
return wrapperRef.instance;
}
const ctorHost = wrapperRef.instance || { constructor: typeOrToken };
const instance = await this.injector.loadPerContext(ctorHost, wrapperRef.host, collection, contextId, wrapperRef);
if (!instance) {
throw new UnknownElementException();
}
return instance;
}, "pluckInstance");
if (Array.isArray(instanceLinkOrArray)) {
return Promise.all(instanceLinkOrArray.map((instanceLink) => pluckInstance(instanceLink)));
}
return pluckInstance(instanceLinkOrArray);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js
var UndefinedDependencyException;
var init_undefined_dependency_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-dependency.exception.js"() {
init_messages();
init_runtime_exception();
UndefinedDependencyException = class extends RuntimeException {
static {
__name(this, "UndefinedDependencyException");
}
constructor(type, undefinedDependencyContext, moduleRef) {
super(UNKNOWN_DEPENDENCIES_MESSAGE(type, undefinedDependencyContext, moduleRef));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js
var UnknownDependenciesException;
var init_unknown_dependencies_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-dependencies.exception.js"() {
init_messages();
init_runtime_exception();
UnknownDependenciesException = class extends RuntimeException {
static {
__name(this, "UnknownDependenciesException");
}
type;
context;
metadata;
moduleRef;
constructor(type, context, moduleRef, metadata) {
super(UNKNOWN_DEPENDENCIES_MESSAGE(type, context, moduleRef));
this.type = type;
this.context = context;
this.metadata = metadata;
this.moduleRef = moduleRef && { id: moduleRef.id };
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/barrier.js
var Barrier;
var init_barrier = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/barrier.js"() {
Barrier = class {
static {
__name(this, "Barrier");
}
currentCount;
targetCount;
promise;
resolve;
constructor(targetCount) {
this.currentCount = 0;
this.targetCount = targetCount;
this.promise = new Promise((resolve) => {
this.resolve = resolve;
});
if (targetCount === 0) {
this.resolve();
}
}
/**
* Signal that a participant has reached the barrier.
*
* The barrier will be resolved once `targetCount` participants have reached it.
*/
signal() {
this.currentCount += 1;
if (this.currentCount >= this.targetCount) {
this.resolve();
}
}
/**
* Wait for the barrier to be resolved.
*
* @returns A promise that resolves when the barrier is resolved.
*/
async wait() {
return this.promise;
}
/**
* Signal that a participant has reached the barrier and wait for the barrier to be resolved.
*
* The barrier will be resolved once `targetCount` participants have reached it.
*
* @returns A promise that resolves when the barrier is resolved.
*/
async signalAndWait() {
this.signal();
return this.wait();
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/safe-instance-decorator.js
function makeSafeInstanceDecorator(decorator) {
return (target) => {
try {
return decorator(target);
} catch (err) {
logger.warn(`The "instanceDecorator" function threw an error while decorating an instance (${err?.message ?? err}). The undecorated instance will be used instead.`);
return target;
}
};
}
var logger;
var init_safe_instance_decorator = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/safe-instance-decorator.js"() {
init_common();
logger = new Logger("InstrumentLogger");
__name(makeSafeInstanceDecorator, "makeSafeInstanceDecorator");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/is-debug-mode.util.js
function isDebugMode() {
return !!process.env.NEST_DEBUG;
}
var init_is_debug_mode_util = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/is-debug-mode.util.js"() {
__name(isDebugMode, "isDebugMode");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/index.js
var init_inquirer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/index.js"() {
init_inquirer_constants();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/settlement-signal.js
var SettlementSignal;
var init_settlement_signal = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/settlement-signal.js"() {
SettlementSignal = class {
static {
__name(this, "SettlementSignal");
}
_refs = /* @__PURE__ */ new Map();
settledPromise;
settleFn;
completed = false;
constructor() {
this.settledPromise = new Promise((resolve) => {
this.settleFn = resolve;
});
}
/**
* Resolves the promise returned by `asPromise`.
*/
complete() {
this.completed = true;
this.settleFn();
}
/**
* Rejects the promise returned by `asPromise` with the given error.
* @param err Error to reject the promise returned by `asPromise` with.
*/
error(err) {
this.completed = true;
this.settleFn(err);
}
/**
* Returns a promise that will be resolved when `complete` or `error` is called.
* @returns Promise that will be resolved when `complete` or `error` is called.
*/
asPromise() {
return this.settledPromise;
}
/**
* Inserts a wrapper that the host of this signal depends on.
* @param ref Wrapper to insert.
*/
insertRef(ref) {
this._refs.set(ref.id, ref);
}
/**
* Check if relationship is circular, i.e. whether the host of this signal
* is still waiting, directly or through other pending dependencies, on the
* given wrapper.
* @param wrapperId Wrapper id to check.
* @returns True if relationship is circular, false otherwise.
*/
isCycle(wrapperId) {
return this.waitsOn(wrapperId, /* @__PURE__ */ new Set());
}
waitsOn(wrapperId, visited) {
if (this.completed || visited.has(this)) {
return false;
}
visited.add(this);
for (const [refId, ref] of this._refs) {
if (refId === wrapperId || ref.settlementSignal?.waitsOn(wrapperId, visited)) {
return true;
}
}
return false;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/injector.js
import { performance as performance2 } from "perf_hooks";
var import_iterare6, Injector;
var init_injector = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/injector.js"() {
init_common();
init_internal();
import_iterare6 = __toESM(require_lib(), 1);
init_exceptions2();
init_runtime_exception();
init_undefined_dependency_exception();
init_unknown_dependencies_exception();
init_barrier();
init_safe_instance_decorator();
init_constants3();
init_is_debug_mode_util();
init_inquirer();
init_settlement_signal();
Injector = class {
static {
__name(this, "Injector");
}
options;
logger = new Logger("InjectorLogger");
instanceDecorator = /* @__PURE__ */ __name((target) => target, "instanceDecorator");
/**
* Per-context loads that the provider which started them could not wait
* for (see `resolveComponentHost`), awaited by `waitForDeferredLoads`.
*/
deferredLoads = /* @__PURE__ */ new WeakMap();
/**
* Deferred loads that are still running, per durable dependent of the
* provider being loaded and per context of that dependent (see
* `trackDurableDeferredLoad`).
*/
durableDeferredLoads = /* @__PURE__ */ new WeakMap();
/**
* Durable instances that may reference the placeholder of a provider whose
* deferred load failed, with the error (see `trackDurableDeferredLoad`).
*/
failedInstances = /* @__PURE__ */ new WeakMap();
constructor(options) {
this.options = options;
if (options?.instanceDecorator) {
this.instanceDecorator = makeSafeInstanceDecorator(options.instanceDecorator);
}
}
loadPrototype({ token }, collection, contextId = STATIC_CONTEXT) {
if (!collection) {
return;
}
const target = collection.get(token);
const instance = target.createPrototype(contextId);
if (instance) {
target.setInstanceByContextId(contextId, { instance });
}
}
async loadInstance(wrapper, collection, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) {
const inquirerId = this.getContextInquirerId(resolutionContext);
const hostContextId = this.getContextId(resolutionContext.contextId, wrapper);
const instanceHost = this.getInstanceHost(wrapper, hostContextId, inquirerId);
if (instanceHost.isPending) {
const settlementSignal2 = wrapper.settlementSignal;
if (resolutionContext.inquirer && settlementSignal2?.isCycle(resolutionContext.inquirer.id)) {
throw new CircularDependencyException(`"${wrapper.name}"`);
}
return instanceHost.donePromise.then((err) => {
if (err) {
throw err;
}
if (this.failedInstances.has(instanceHost)) {
throw this.failedInstances.get(instanceHost);
}
this.linkDurableDeferredLoads(wrapper, resolutionContext.contextId, hostContextId);
});
}
const settlementSignal = this.applySettlementSignal(instanceHost, wrapper);
const token = wrapper.token || wrapper.name;
const { inject } = wrapper;
const targetWrapper = collection.get(token);
if (isUndefined(targetWrapper)) {
throw new RuntimeException();
}
if (instanceHost.isResolved) {
return settlementSignal.complete();
}
try {
const t0 = this.getNowTimestamp();
const localResolutionContext = this.createResolutionContext(resolutionContext.contextId, wrapper, inquirerId);
const callback = /* @__PURE__ */ __name(async (instances, depth = 0) => {
const properties = await this.resolveProperties(wrapper, moduleRef, inject, localResolutionContext, resolutionContext.inquirer);
const instance = await this.instantiateClass(instances, wrapper, targetWrapper, wrapper.isTransient ? localResolutionContext : resolutionContext);
this.applyProperties(instance, properties);
wrapper.hierarchyLevel = depth + 1;
wrapper.initTime = this.getNowTimestamp() - t0;
settlementSignal.complete();
}, "callback");
await this.resolveConstructorParams(wrapper, moduleRef, inject, callback, localResolutionContext, resolutionContext.inquirer);
if (!instanceHost.isResolved) {
settlementSignal.complete();
}
} catch (err) {
wrapper.removeInstanceByContextId(this.getContextId(resolutionContext.contextId, wrapper), inquirerId);
settlementSignal.error(err);
throw err;
}
}
async loadMiddleware(wrapper, collection, moduleRef, contextId = STATIC_CONTEXT, inquirer) {
const { metatype, token } = wrapper;
const targetWrapper = collection.get(token);
if (!isUndefined(targetWrapper.instance)) {
return;
}
targetWrapper.instance = Object.create(metatype.prototype);
await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(contextId, inquirer || wrapper));
}
async loadController(wrapper, moduleRef, contextId = STATIC_CONTEXT) {
const controllers = moduleRef.controllers;
await this.loadInstance(wrapper, controllers, moduleRef, this.createResolutionContext(contextId, wrapper));
if (wrapper.isDependencyTreeStatic()) {
return this.loadEnhancers(contextId, wrapper, wrapper.getEnhancersMetadata() || []);
}
await this.loadEnhancersPerContext(wrapper, contextId, wrapper);
}
async loadInjectable(wrapper, moduleRef, contextId = STATIC_CONTEXT, inquirer) {
const injectables = moduleRef.injectables;
await this.loadInstance(wrapper, injectables, moduleRef, this.createResolutionContext(contextId, inquirer));
}
async loadProvider(wrapper, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }) {
if (this.shouldSkipProviderLoading(wrapper, resolutionContext)) {
if (!resolutionContext.inquirer) {
await this.lookupSkippedProviderDependencies(wrapper, moduleRef);
}
return;
}
const providers = moduleRef.providers;
await this.loadInstance(wrapper, providers, moduleRef, resolutionContext);
if (resolutionContext.contextId === STATIC_CONTEXT && !resolutionContext.inquirer && wrapper.isDependencyTreeStatic()) {
const enhancers = wrapper.getEnhancersMetadata() || [];
return this.loadEnhancers(STATIC_CONTEXT, wrapper, enhancers.filter((item) => item.isTransient));
}
await this.loadEnhancersPerContext(wrapper, resolutionContext.contextId, wrapper);
}
applySettlementSignal(instancePerContext, host) {
const settlementSignal = new SettlementSignal();
instancePerContext.donePromise = settlementSignal.asPromise();
instancePerContext.isPending = true;
host.settlementSignal = settlementSignal;
return settlementSignal;
}
async resolveConstructorParams(wrapper, moduleRef, inject, callback, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) {
const metadata = wrapper.getCtorMetadata();
if (resolutionContext.contextId !== STATIC_CONTEXT && this.hasDenseCtorMetadata(wrapper, inject, metadata)) {
const deps = await this.loadCtorMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer);
return callback(deps);
}
const isFactoryProvider2 = !isNil(inject);
const [dependencies, optionalDependenciesIds] = isFactoryProvider2 ? this.getFactoryProviderDependencies(wrapper) : this.getClassDependencies(wrapper);
const paramBarrier = new Barrier(dependencies.length);
let isResolved = true;
let depth = 0;
const resolveParam = /* @__PURE__ */ __name(async (param, index) => {
try {
if (this.isInquirer(param, parentInquirer)) {
paramBarrier.signal();
return parentInquirer && parentInquirer.instance;
}
if (resolutionContext.inquirer?.isTransient && parentInquirer) {
resolutionContext.rootInquirer = parentInquirer;
}
const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer);
const paramWrapper = await this.resolveSingleParam(wrapper, param, { index, dependencies }, moduleRef, nestedResolutionContext, index);
await paramBarrier.signalAndWait();
const effectiveResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer);
const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectiveResolutionContext);
if (paramWrapperWithInstance.hierarchyLevel > depth) {
depth = paramWrapperWithInstance.hierarchyLevel;
}
const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectiveResolutionContext.contextId, paramWrapperWithInstance), effectiveResolutionContext.effectiveInquirerId);
if (!instanceHost.isResolved && !paramWrapperWithInstance.forwardRef) {
isResolved = false;
}
return instanceHost?.instance;
} catch (err) {
paramBarrier.signal();
const isOptional = optionalDependenciesIds.includes(index);
if (!isOptional) {
throw err;
}
return void 0;
}
}, "resolveParam");
const instances = await Promise.all(dependencies.map(resolveParam));
isResolved && await callback(instances, depth);
}
getClassDependencies(wrapper) {
const ctorRef = wrapper.metatype;
return [
this.reflectConstructorParams(ctorRef),
this.reflectOptionalParams(ctorRef)
];
}
getFactoryProviderDependencies(wrapper) {
const optionalDependenciesIds = [];
function isOptionalFactoryDependency(value) {
const token = value?.token;
if (isNil(token)) {
return false;
}
return !isUndefined(value.optional) && !value.prototype;
}
__name(isOptionalFactoryDependency, "isOptionalFactoryDependency");
const mapFactoryProviderInjectArray = /* @__PURE__ */ __name((item, index) => {
const isWrappedDependency = !isNil(item) && typeof item === "object" && "token" in item;
const token = isWrappedDependency ? item.token : item;
if (isNil(token)) {
throw new UndefinedDependencyException(wrapper.name, {
index,
dependencies: wrapper.inject ?? void 0
});
}
if (typeof item !== "object") {
return item;
}
if (isOptionalFactoryDependency(item)) {
if (item.optional) {
optionalDependenciesIds.push(index);
}
return item?.token;
}
return item;
}, "mapFactoryProviderInjectArray");
const inject = wrapper.inject ?? [];
const dependencies = Array.from(inject, mapFactoryProviderInjectArray);
return [dependencies, optionalDependenciesIds];
}
reflectConstructorParams(type) {
const paramtypes = [
...Reflect.getMetadata(PARAMTYPES_METADATA, type) || []
];
const selfParams = this.reflectSelfParams(type);
selfParams.forEach(({ index, param }) => paramtypes[index] = param);
return Array.from(paramtypes);
}
reflectOptionalParams(type) {
const ctorOwner = this.getConstructorOwner(type);
return Reflect.getOwnMetadata(OPTIONAL_DEPS_METADATA, ctorOwner) || [];
}
/**
* Returns the class in the prototype chain that declares the constructor
* `type` is instantiated with. A subclass without its own constructor
* inherits both the parent's parameter types and its `@Optional()` flags,
* while a subclass that redeclares the constructor must not inherit the
* parent's flags, as its parameters are unrelated to the parent's.
*/
getConstructorOwner(type) {
let current = type;
while (isFunction(current) && current !== Function.prototype) {
if (Reflect.hasOwnMetadata(PARAMTYPES_METADATA, current) || Reflect.hasOwnMetadata(OPTIONAL_DEPS_METADATA, current) || Reflect.hasOwnMetadata(SELF_DECLARED_DEPS_METADATA, current)) {
return current;
}
current = Object.getPrototypeOf(current);
}
return type;
}
reflectSelfParams(type) {
return Reflect.getMetadata(SELF_DECLARED_DEPS_METADATA, type) || [];
}
async resolveSingleParam(wrapper, param, dependencyContext, moduleRef, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
if (isUndefined(param)) {
this.logger.log("Nest encountered an undefined dependency. This may be due to a circular import or a missing dependency declaration.");
throw new UndefinedDependencyException(wrapper.name, dependencyContext, moduleRef);
}
const token = this.resolveParamToken(wrapper, param);
return this.resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext, keyOrIndex);
}
resolveParamToken(wrapper, param) {
if (typeof param === "object" && "forwardRef" in param) {
wrapper.forwardRef = true;
return param.forwardRef();
}
return param;
}
async resolveComponentWrapper(moduleRef, token, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
this.printResolvingDependenciesLog(token, resolutionContext.inquirer);
this.printLookingForProviderLog(token, moduleRef);
const providers = moduleRef.providers;
return this.lookupComponent(providers, moduleRef, { ...dependencyContext, name: token }, wrapper, resolutionContext, keyOrIndex);
}
async resolveComponentHost(moduleRef, instanceWrapper, resolutionContext = { contextId: STATIC_CONTEXT }) {
const inquirerId = this.getContextInquirerId(resolutionContext);
const instanceHost = this.getInstanceHost(instanceWrapper, this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId);
if (!instanceHost.isResolved && !instanceWrapper.forwardRef) {
resolutionContext.inquirer?.settlementSignal?.insertRef(instanceWrapper);
await this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext);
} else if (!instanceHost.isResolved && instanceWrapper.forwardRef && (resolutionContext.contextId !== STATIC_CONTEXT || !!inquirerId)) {
if (instanceHost.donePromise) {
const deferredLoad = instanceHost.donePromise.then((err) => {
if (err) {
throw err;
}
return this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext);
});
void deferredLoad.catch((err) => {
instanceWrapper.settlementSignal?.error(err);
});
this.addDeferredLoad(resolutionContext.contextId, deferredLoad);
this.trackDurableDeferredLoad(instanceWrapper, resolutionContext.contextId, deferredLoad);
} else {
resolutionContext.inquirer?.settlementSignal?.insertRef(instanceWrapper);
await this.loadProvider(instanceWrapper, instanceWrapper.host ?? moduleRef, resolutionContext);
}
}
if (instanceWrapper.async) {
const host = instanceWrapper.getInstanceByContextId(this.getContextId(resolutionContext.contextId, instanceWrapper), inquirerId);
host.instance = await host.instance;
instanceWrapper.setInstanceByContextId(resolutionContext.contextId, host, inquirerId);
}
this.linkDurableDeferredLoads(instanceWrapper, resolutionContext.contextId, this.getContextId(resolutionContext.contextId, instanceWrapper));
return instanceWrapper;
}
async lookupComponent(providers, moduleRef, dependencyContext, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
const token = wrapper.token || wrapper.name;
const { name } = dependencyContext;
if (wrapper && token === name) {
throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
}
if (name && providers.has(name)) {
const instanceWrapper = providers.get(name);
this.printFoundInModuleLog(name, moduleRef);
this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapper);
return instanceWrapper;
}
return this.lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext, keyOrIndex);
}
async lookupComponentInParentModules(dependencyContext, moduleRef, wrapper, resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex) {
const instanceWrapper = await this.lookupComponentInImports(moduleRef, dependencyContext.name, wrapper, /* @__PURE__ */ new Set(), resolutionContext, keyOrIndex);
if (isNil(instanceWrapper)) {
throw new UnknownDependenciesException(wrapper.name, dependencyContext, moduleRef, { id: wrapper.id });
}
return instanceWrapper;
}
async lookupComponentInImports(moduleRef, name, wrapper, moduleRegistry = /* @__PURE__ */ new Set(), resolutionContext = { contextId: STATIC_CONTEXT }, keyOrIndex, isTraversing) {
let instanceWrapperRef = null;
const imports = moduleRef.imports || /* @__PURE__ */ new Set();
const identity = /* @__PURE__ */ __name((item) => item, "identity");
let children = [...imports.values()].filter(identity);
if (isTraversing) {
const contextModuleExports = moduleRef.exports;
children = children.filter((child) => contextModuleExports.has(child.metatype));
}
for (const relatedModule of children) {
if (moduleRegistry.has(relatedModule.id)) {
continue;
}
this.printLookingForProviderLog(name, relatedModule);
moduleRegistry.add(relatedModule.id);
const { providers, exports } = relatedModule;
if (!exports.has(name) || !providers.has(name)) {
const instanceRef = await this.lookupComponentInImports(relatedModule, name, wrapper, moduleRegistry, resolutionContext, keyOrIndex, true);
if (instanceRef) {
this.addDependencyMetadata(keyOrIndex, wrapper, instanceRef);
return instanceRef;
}
continue;
}
this.printFoundInModuleLog(name, relatedModule);
instanceWrapperRef = providers.get(name);
this.addDependencyMetadata(keyOrIndex, wrapper, instanceWrapperRef);
break;
}
return instanceWrapperRef;
}
async resolveProperties(wrapper, moduleRef, inject, resolutionContext = { contextId: STATIC_CONTEXT }, parentInquirer) {
if (!isNil(inject)) {
return [];
}
const metadata = wrapper.getPropertiesMetadata();
if (resolutionContext.contextId !== STATIC_CONTEXT && this.hasCompletePropertiesMetadata(wrapper, metadata)) {
return this.loadPropertiesMetadata(metadata, resolutionContext.contextId, resolutionContext.inquirer, parentInquirer);
}
const properties = this.reflectProperties(wrapper.metatype);
const propertyBarrier = new Barrier(properties.length);
const instances = await Promise.all(properties.map(async (item) => {
try {
const dependencyContext = {
key: item.key,
name: item.name
};
if (this.isInquirer(item.name, parentInquirer)) {
propertyBarrier.signal();
return parentInquirer && parentInquirer.instance;
}
const nestedResolutionContext = this.getStaticTransientResolutionContext(resolutionContext, parentInquirer);
const paramWrapper = await this.resolveSingleParam(wrapper, item.name, dependencyContext, moduleRef, nestedResolutionContext, item.key);
await propertyBarrier.signalAndWait();
const effectivePropertyResolutionContext = this.getEffectiveResolutionContext(paramWrapper, resolutionContext, parentInquirer);
const paramWrapperWithInstance = await this.resolveComponentHost(moduleRef, paramWrapper, effectivePropertyResolutionContext);
if (!paramWrapperWithInstance) {
return void 0;
}
const instanceHost = paramWrapperWithInstance.getInstanceByContextId(this.getContextId(effectivePropertyResolutionContext.contextId, paramWrapperWithInstance), effectivePropertyResolutionContext.effectiveInquirerId);
return instanceHost.instance;
} catch (err) {
propertyBarrier.signal();
if (!item.isOptional) {
throw err;
}
return void 0;
}
}));
return properties.map((item, index) => ({
...item,
instance: instances[index]
}));
}
reflectProperties(type) {
const properties = Reflect.getMetadata(PROPERTY_DEPS_METADATA, type) || [];
const optionalKeys = Reflect.getMetadata(OPTIONAL_PROPERTY_DEPS_METADATA, type) || [];
return properties.map((item) => ({
...item,
name: item.type,
isOptional: optionalKeys.includes(item.key)
}));
}
applyProperties(instance, properties) {
if (!isObject(instance)) {
return;
}
(0, import_iterare6.iterate)(properties).filter((item) => !isNil(item.instance)).forEach((item) => instance[item.key] = item.instance);
}
async instantiateClass(instances, wrapper, targetMetatype, resolutionContext = { contextId: STATIC_CONTEXT }) {
const { metatype, inject } = wrapper;
const inquirerId = this.getContextInquirerId(resolutionContext);
const instanceHost = targetMetatype.getInstanceByContextId(this.getContextId(resolutionContext.contextId, targetMetatype), inquirerId);
const isInContext = this.isInContext(wrapper, resolutionContext);
if (this.options?.preview && !wrapper.host?.initOnPreview) {
instanceHost.isResolved = true;
return instanceHost.instance;
}
if (isNil(inject) && isInContext) {
instanceHost.instance = wrapper.forwardRef ? Object.assign(instanceHost.instance, new metatype(...instances)) : new metatype(...instances);
instanceHost.instance = this.instanceDecorator(instanceHost.instance);
instanceHost.isConstructorCalled = true;
} else if (isInContext) {
const factoryReturnValue = targetMetatype.metatype(...instances);
instanceHost.instance = await factoryReturnValue;
instanceHost.instance = this.instanceDecorator(instanceHost.instance);
instanceHost.isConstructorCalled = true;
}
instanceHost.isResolved = true;
return instanceHost.instance;
}
async loadPerContext(instance, moduleRef, collection, ctx, wrapper) {
if (!wrapper) {
const injectionToken = instance.constructor;
wrapper = collection.get(injectionToken) ?? // A class provider registered under a token other than its class
(0, import_iterare6.iterate)(collection.values()).find((item) => !item.isAlias && item.instance === instance);
} else {
wrapper = collection.get(wrapper.token) ?? wrapper;
}
await this.loadInstance(wrapper, collection, moduleRef, this.createResolutionContext(ctx, wrapper));
await this.loadEnhancersPerContext(wrapper, ctx, wrapper);
await this.waitForDeferredLoads(ctx);
const host = wrapper.getInstanceByContextId(this.getContextId(ctx, wrapper), wrapper.id);
return host && host.instance;
}
/**
* Waits for the loads deferred while resolving the given context (see
* `resolveComponentHost`), including those that the durable instances it
* uses were built with (see `trackDurableDeferredLoad`), and throws if one
* of them failed. A failed load is kept, as instances of the context already
* reference the provider that it failed to instantiate.
*/
async waitForDeferredLoads(contextId) {
const deferredLoads = this.deferredLoads.get(contextId);
if (!deferredLoads) {
return;
}
for (const deferredLoad of deferredLoads) {
await deferredLoad;
deferredLoads.delete(deferredLoad);
}
}
async loadEnhancersPerContext(wrapper, ctx, inquirer, enhancers = wrapper.getEnhancersMetadata() || []) {
if (ctx === STATIC_CONTEXT) {
return;
}
await this.loadEnhancers(ctx, inquirer, enhancers);
}
async loadEnhancers(ctx, inquirer, enhancers) {
const loadEnhancer = /* @__PURE__ */ __name((item) => {
const hostModule = item.host;
return this.loadInstance(item, hostModule.injectables, hostModule, this.createResolutionContext(ctx, inquirer));
}, "loadEnhancer");
await Promise.all(enhancers.map(loadEnhancer));
}
async loadCtorMetadata(metadata, contextId, inquirer, parentInquirer) {
const hosts = await Promise.all(metadata.map(async (item) => this.resolveScopedComponentHost(item, contextId, inquirer, parentInquirer)));
return hosts.map((item, index) => {
const dependency = metadata[index];
const effectiveInquirerId = this.getEffectiveInquirerId(dependency, this.createResolutionContext(contextId, inquirer), parentInquirer);
return item?.getInstanceByContextId(this.getContextId(contextId, item), effectiveInquirerId).instance;
});
}
async loadPropertiesMetadata(metadata, contextId, inquirer, parentInquirer) {
const dependenciesHosts = await Promise.all(metadata.map(async ({ wrapper: item, key }) => ({
key,
host: await this.resolveScopedComponentHost(item, contextId, inquirer, parentInquirer)
})));
return dependenciesHosts.map(({ key, host }, index) => {
const effectiveInquirerId = this.getEffectiveInquirerId(metadata[index].wrapper, this.createResolutionContext(contextId, inquirer), parentInquirer);
return {
key,
name: key,
instance: host?.getInstanceByContextId(this.getContextId(contextId, host), effectiveInquirerId).instance
};
});
}
addDeferredLoad(contextId, deferredLoad) {
if (contextId === STATIC_CONTEXT) {
return;
}
let deferredLoads = this.deferredLoads.get(contextId);
if (!deferredLoads) {
deferredLoads = /* @__PURE__ */ new Set();
this.deferredLoads.set(contextId, deferredLoads);
}
deferredLoads.add(deferredLoad);
}
/**
* In a durable context (see `ContextIdStrategy`), the dependents built with
* the placeholder of a provider whose load is deferred are shared with the
* next contexts mapped to it, which do not wait for that load. Until it
* settles, the contexts that use them wait for it as well (see
* `linkDurableDeferredLoads`); if it fails, the contexts still waiting for
* one of them fail, and the next one that uses them builds them again (see
* `getInstanceHost`).
*/
trackDurableDeferredLoad(wrapper, contextId, deferredLoad) {
if (this.getContextId(contextId, wrapper) === contextId) {
return;
}
const untrackers = [];
this.forEachDurableDependent(wrapper, contextId, (dependent, hostId) => {
const loadsPerContext = this.durableDeferredLoads.get(dependent) ?? /* @__PURE__ */ new WeakMap();
const loads = loadsPerContext.get(hostId) ?? /* @__PURE__ */ new Set();
loads.add(deferredLoad);
loadsPerContext.set(hostId, loads);
this.durableDeferredLoads.set(dependent, loadsPerContext);
untrackers.push(() => {
loads.delete(deferredLoad);
if (loads.size === 0) {
loadsPerContext.delete(hostId);
}
});
});
const untrack = /* @__PURE__ */ __name(() => untrackers.forEach((untrackLoad) => untrackLoad()), "untrack");
deferredLoad.then(untrack, (err) => {
this.forEachDurableDependent(wrapper, contextId, (dependent, hostId) => dependent.getExistingInstancesByContextId(hostId).filter((host) => host.isResolved || host.isPending).forEach((host) => this.failedInstances.set(host, err)));
untrack();
});
}
/**
* Adds the running loads that the instance of the wrapper in a durable
* context was built with (see `trackDurableDeferredLoad`) to the loads of
* the given context.
*/
linkDurableDeferredLoads(wrapper, contextId, hostContextId) {
if (hostContextId === contextId) {
return;
}
this.durableDeferredLoads.get(wrapper)?.get(hostContextId)?.forEach((deferredLoad) => this.addDeferredLoad(contextId, deferredLoad));
}
forEachDurableDependent(wrapper, contextId, callback) {
for (const dependent of wrapper.getDependents()) {
const hostContextId = this.getContextId(contextId, dependent);
if (hostContextId !== contextId) {
callback(dependent, hostContextId);
}
}
}
/**
* Returns the instance of the wrapper for the given context, or a new one
* when it was built with a provider whose deferred load failed (see
* `trackDurableDeferredLoad`), so that it is built again.
*/
getInstanceHost(wrapper, contextId, inquirerId) {
const instanceHost = wrapper.getInstanceByContextId(contextId, inquirerId);
if (!instanceHost.isResolved || !this.failedInstances.has(instanceHost)) {
return instanceHost;
}
wrapper.removeInstanceByContextId(contextId, inquirerId);
return wrapper.getInstanceByContextId(contextId, inquirerId);
}
getInquirerId(inquirer) {
return inquirer ? inquirer.id : void 0;
}
createResolutionContext(contextId, inquirer, effectiveInquirerId, rootInquirer) {
return {
contextId,
inquirer,
effectiveInquirerId,
rootInquirer
};
}
getContextInquirerId({ inquirer, effectiveInquirerId }) {
return effectiveInquirerId ?? this.getInquirerId(inquirer);
}
isInContext(wrapper, resolutionContext) {
return wrapper.isStatic(resolutionContext.contextId, resolutionContext.inquirer, resolutionContext.rootInquirer) || wrapper.isInRequestScope(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isLazyTransient(resolutionContext.contextId, resolutionContext.inquirer) || wrapper.isExplicitlyRequested(resolutionContext.contextId, resolutionContext.inquirer);
}
/**
* Request-scoped and transient providers are not created at bootstrap, so
* their dependencies are only looked up here, without creating anything.
* A missing dependency then fails at bootstrap rather than on first use.
* Every lookup is awaited before the first failure is thrown.
*/
async lookupSkippedProviderDependencies(wrapper, moduleRef) {
const isFactoryProvider2 = !isNil(wrapper.inject);
if (!isFactoryProvider2 && !isFunction(wrapper.metatype)) {
return;
}
const [dependencies, optionalDependenciesIds] = isFactoryProvider2 ? this.getFactoryProviderDependencies(wrapper) : this.getClassDependencies(wrapper);
const properties = isFactoryProvider2 ? [] : this.reflectProperties(wrapper.metatype);
const lookup = /* @__PURE__ */ __name(async (param, dependencyContext, keyOrIndex, isOptional) => {
try {
await this.resolveSingleParam(wrapper, param, dependencyContext, moduleRef, { contextId: STATIC_CONTEXT }, keyOrIndex);
} catch (err) {
if (!isOptional) {
throw err;
}
}
}, "lookup");
const results = await Promise.allSettled([
...dependencies.map((param, index) => lookup(param, { index, dependencies }, index, optionalDependenciesIds.includes(index))),
...properties.map(({ key, name, isOptional }) => lookup(name, { key, name }, key, !!isOptional))
]);
const failure = results.find((result) => result.status === "rejected");
if (failure) {
throw failure.reason;
}
}
shouldSkipProviderLoading(wrapper, resolutionContext) {
const isStaticContext = resolutionContext.contextId === STATIC_CONTEXT;
const hasNoInquirer = !resolutionContext.inquirer;
const isTopLevelStaticTransientOrRequestProvider = hasNoInquirer && (wrapper.isTransient || wrapper.scope === Scope.REQUEST);
const isStaticInquirerOutsideResolutionContext = !!resolutionContext.inquirer && !this.isInContext(resolutionContext.inquirer, this.createResolutionContext(resolutionContext.contextId, resolutionContext.inquirer, void 0, resolutionContext.rootInquirer));
const shouldSkipForStaticBootstrap = isStaticContext && (isTopLevelStaticTransientOrRequestProvider || isStaticInquirerOutsideResolutionContext);
return shouldSkipForStaticBootstrap;
}
/**
* For nested TRANSIENT dependencies (TRANSIENT -> TRANSIENT) in non-static contexts,
* returns parentInquirer to ensure each parent TRANSIENT gets its own instance.
* This is necessary because in REQUEST/DURABLE scopes, the same TRANSIENT wrapper
* can be used by multiple parents, causing nested TRANSIENTs to be shared incorrectly.
* For non-TRANSIENT -> TRANSIENT, returns inquirer (current wrapper being created).
*/
getEffectiveInquirer(dependency, resolutionContext, parentInquirer) {
const { inquirer, contextId, rootInquirer } = resolutionContext;
if (dependency?.isTransient && inquirer?.isTransient && parentInquirer) {
if (contextId === STATIC_CONTEXT) {
return rootInquirer ?? parentInquirer;
}
return parentInquirer;
}
return inquirer;
}
getEffectiveInquirerId(dependency, resolutionContext, parentInquirer) {
const { contextId, inquirer, effectiveInquirerId } = resolutionContext;
if (contextId === STATIC_CONTEXT && dependency?.isTransient && inquirer?.isTransient && parentInquirer) {
const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer);
return `${baseInquirerId}:${inquirer.id}`;
}
const effectiveInquirer = this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer);
return this.getInquirerId(effectiveInquirer);
}
getStaticTransientResolutionContext(resolutionContext, parentInquirer) {
const { contextId, inquirer, effectiveInquirerId } = resolutionContext;
if (contextId === STATIC_CONTEXT && inquirer?.isTransient && parentInquirer) {
const baseInquirerId = effectiveInquirerId ?? this.getInquirerId(parentInquirer);
return this.createResolutionContext(contextId, inquirer, `${baseInquirerId}:${inquirer.id}`);
}
return resolutionContext;
}
getEffectiveResolutionContext(dependency, resolutionContext, parentInquirer) {
const effectiveInquirer = this.getEffectiveInquirer(dependency, resolutionContext, parentInquirer);
return this.createResolutionContext(
resolutionContext.contextId,
effectiveInquirer,
this.getEffectiveInquirerId(dependency, resolutionContext, parentInquirer),
// The root inquirer is the one of `inquirer`
effectiveInquirer === resolutionContext.inquirer ? resolutionContext.rootInquirer : void 0
);
}
hasDenseCtorMetadata(wrapper, inject, metadata) {
if (!metadata) {
return false;
}
const expectedDepsLength = !isNil(inject) ? inject.length : wrapper.metatype ? this.reflectConstructorParams(wrapper.metatype).length : 0;
if (metadata.length !== expectedDepsLength) {
return false;
}
for (let index = 0; index < expectedDepsLength; index++) {
if (metadata[index] === void 0) {
return false;
}
}
return true;
}
hasCompletePropertiesMetadata(wrapper, metadata) {
if (!metadata) {
return false;
}
const properties = wrapper.metatype ? this.reflectProperties(wrapper.metatype) : [];
return properties.every(({ key }) => metadata.some((item) => item.key === key));
}
resolveScopedComponentHost(item, contextId, inquirer, parentInquirer) {
return this.isInquirerRequest(item, parentInquirer) ? parentInquirer : this.resolveComponentHost(item.host, item, this.getEffectiveResolutionContext(item, this.createResolutionContext(contextId, inquirer), parentInquirer));
}
isInquirerRequest(item, parentInquirer) {
return item.isTransient && item.name === INQUIRER && parentInquirer;
}
isInquirer(param, parentInquirer) {
return param === INQUIRER && parentInquirer;
}
addDependencyMetadata(keyOrIndex, hostWrapper, instanceWrapper) {
if (isSymbol(keyOrIndex) || isString(keyOrIndex)) {
hostWrapper.addPropertiesMetadata(keyOrIndex, instanceWrapper);
} else {
hostWrapper.addCtorMetadata(keyOrIndex, instanceWrapper);
}
}
getTokenName(token) {
return isFunction(token) ? token.name : token.toString();
}
printResolvingDependenciesLog(token, inquirer) {
if (!isDebugMode()) {
return;
}
const tokenName = this.getTokenName(token);
const dependentName = (inquirer?.name && inquirer.name.toString?.()) ?? "unknown";
const isAlias = dependentName === tokenName;
const messageToPrint = `Resolving dependency ${clc.cyanBright(tokenName)}${clc.green(" in the ")}${clc.yellow(dependentName)}${clc.green(` provider ${isAlias ? "(alias)" : ""}`)}`;
this.logger.log(messageToPrint);
}
printLookingForProviderLog(token, moduleRef) {
if (!isDebugMode()) {
return;
}
const tokenName = this.getTokenName(token);
const moduleRefName = moduleRef?.metatype?.name ?? "unknown";
this.logger.log(`Looking for ${clc.cyanBright(tokenName)}${clc.green(" in ")}${clc.magentaBright(moduleRefName)}`);
}
printFoundInModuleLog(token, moduleRef) {
if (!isDebugMode()) {
return;
}
const tokenName = this.getTokenName(token);
const moduleRefName = moduleRef?.metatype?.name ?? "unknown";
this.logger.log(`Found ${clc.cyanBright(tokenName)}${clc.green(" in ")}${clc.magentaBright(moduleRefName)}`);
}
getContextId(contextId, instanceWrapper) {
return contextId.getParent ? contextId.getParent({
token: instanceWrapper.token,
isTreeDurable: instanceWrapper.isDependencyTreeDurable()
}) : contextId;
}
getNowTimestamp() {
return performance2.now();
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-links-host.js
var InstanceLinksHost;
var init_instance_links_host = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-links-host.js"() {
init_unknown_element_exception();
init_internal();
InstanceLinksHost = class {
static {
__name(this, "InstanceLinksHost");
}
container;
instanceLinks = /* @__PURE__ */ new Map();
constructor(container) {
this.container = container;
this.initialize();
}
get(token, options = {}) {
const instanceLinksForGivenToken = this.instanceLinks.get(token);
if (!instanceLinksForGivenToken) {
throw new UnknownElementException(this.getInstanceNameByToken(token));
}
if (options.each) {
return instanceLinksForGivenToken;
}
const instanceLink = options.moduleId ? instanceLinksForGivenToken.find((item) => item.moduleId === options.moduleId) : instanceLinksForGivenToken[instanceLinksForGivenToken.length - 1];
if (!instanceLink) {
throw new UnknownElementException(this.getInstanceNameByToken(token));
}
return instanceLink;
}
initialize() {
const modules = this.container.getModules();
modules.forEach((moduleRef) => {
const { providers, injectables, controllers } = moduleRef;
providers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "providers"));
injectables.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "injectables"));
controllers.forEach((wrapper, token) => this.addLink(wrapper, token, moduleRef, "controllers"));
});
}
addLink(wrapper, token, moduleRef, collectionName) {
const instanceLink = {
moduleId: moduleRef.id,
wrapperRef: wrapper,
collection: moduleRef[collectionName],
token
};
const existingLinks = this.instanceLinks.get(token);
if (!existingLinks) {
this.instanceLinks.set(token, [instanceLink]);
} else {
existingLinks.push(instanceLink);
}
}
getInstanceNameByToken(token) {
return isFunction(token) ? token?.name : token;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js
var DeterministicUuidRegistry;
var init_deterministic_uuid_registry = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/deterministic-uuid-registry.js"() {
DeterministicUuidRegistry = class {
static {
__name(this, "DeterministicUuidRegistry");
}
static registry = /* @__PURE__ */ new Map();
static get(str, inc = 0) {
const id = inc ? this.hashCode(`${str}_${inc}`) : this.hashCode(str);
if (this.registry.has(id)) {
return this.get(str, inc + 1);
}
this.registry.set(id, true);
return id;
}
static clear() {
this.registry.clear();
}
static hashCode(s) {
let h = 0;
for (let i = 0; i < s.length; i++)
h = Math.imul(31, h) + s.charCodeAt(i) | 0;
return h.toString();
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/uuid-factory.js
var UuidFactoryMode, UuidFactory;
var init_uuid_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/uuid-factory.js"() {
init_deterministic_uuid_registry();
init_internal();
(function(UuidFactoryMode2) {
UuidFactoryMode2["Random"] = "random";
UuidFactoryMode2["Deterministic"] = "deterministic";
})(UuidFactoryMode || (UuidFactoryMode = {}));
UuidFactory = class {
static {
__name(this, "UuidFactory");
}
static _mode = UuidFactoryMode.Random;
static set mode(value) {
this._mode = value;
}
static get(key = "") {
return this._mode === UuidFactoryMode.Deterministic ? DeterministicUuidRegistry.get(key) : randomStringGenerator();
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/provider-classifier.js
function isClassProvider(provider) {
return Boolean(provider?.useClass);
}
function isValueProvider(provider) {
const providerValue = provider?.useValue;
return !isUndefined(providerValue);
}
function isFactoryProvider(provider) {
return Boolean(provider.useFactory);
}
var init_provider_classifier = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/helpers/provider-classifier.js"() {
init_internal();
__name(isClassProvider, "isClassProvider");
__name(isValueProvider, "isValueProvider");
__name(isFactoryProvider, "isFactoryProvider");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-wrapper.js
var import_iterare7, INSTANCE_METADATA_SYMBOL, INSTANCE_ID_SYMBOL, dependencyTreeParents, InstanceWrapper;
var init_instance_wrapper = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-wrapper.js"() {
init_common();
init_internal();
import_iterare7 = __toESM(require_lib(), 1);
init_class_ref_registry();
init_get_class_scope();
init_is_durable();
init_uuid_factory();
init_constants3();
init_is_debug_mode_util();
init_provider_classifier();
INSTANCE_METADATA_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:cache");
INSTANCE_ID_SYMBOL = /* @__PURE__ */ Symbol.for("instance_metadata:id");
dependencyTreeParents = /* @__PURE__ */ new WeakMap();
InstanceWrapper = class _InstanceWrapper {
static {
__name(this, "InstanceWrapper");
}
name;
token;
async;
host;
isAlias = false;
subtype;
scope = Scope.DEFAULT;
metatype;
inject;
forwardRef;
durable;
initTime;
settlementSignal;
static logger = new Logger(_InstanceWrapper.name);
values = /* @__PURE__ */ new WeakMap();
[INSTANCE_METADATA_SYMBOL] = {};
[INSTANCE_ID_SYMBOL];
transientMap;
isTreeStatic;
isTreeDurable;
_hierarchyLevel = 0;
get hierarchyLevel() {
return this._hierarchyLevel;
}
set hierarchyLevel(level) {
this._hierarchyLevel = level;
}
/**
* The root inquirer reference. Present only if child instance wrapper
* is transient and has a parent inquirer.
*/
rootInquirer;
constructor(metadata = {}) {
this.initialize(metadata);
if (this.isNewable()) {
registerClassRef(this.metatype);
}
this[INSTANCE_ID_SYMBOL] = metadata[INSTANCE_ID_SYMBOL] ?? this.generateUuid();
}
get id() {
return this[INSTANCE_ID_SYMBOL];
}
set instance(value) {
this.values.set(STATIC_CONTEXT, { instance: value });
}
get instance() {
const instancePerContext = this.getInstanceByContextId(STATIC_CONTEXT);
return instancePerContext.instance;
}
get isNotMetatype() {
return !this.metatype || this.isFactory;
}
get isFactory() {
return !!this.metatype && !isNil(this.inject);
}
get isTransient() {
return this.scope === Scope.TRANSIENT;
}
getInstanceByContextId(contextId, inquirerId) {
if (this.scope === Scope.TRANSIENT && inquirerId) {
return this.getInstanceByInquirerId(contextId, inquirerId);
}
const instancePerContext = this.values.get(contextId);
return instancePerContext ? instancePerContext : contextId !== STATIC_CONTEXT ? this.cloneStaticInstance(contextId) : {
instance: null,
isResolved: true,
isPending: false
};
}
getInstanceByInquirerId(contextId, inquirerId) {
let collectionPerContext = this.transientMap.get(inquirerId);
if (!collectionPerContext) {
collectionPerContext = /* @__PURE__ */ new WeakMap();
this.transientMap.set(inquirerId, collectionPerContext);
}
const instancePerContext = collectionPerContext.get(contextId);
return instancePerContext ? instancePerContext : this.cloneTransientInstance(contextId, inquirerId);
}
setInstanceByContextId(contextId, value, inquirerId) {
if (this.scope === Scope.TRANSIENT && inquirerId) {
return this.setInstanceByInquirerId(contextId, inquirerId, value);
}
this.values.set(contextId, value);
}
setInstanceByInquirerId(contextId, inquirerId, value) {
let collection = this.transientMap.get(inquirerId);
if (!collection) {
collection = /* @__PURE__ */ new WeakMap();
this.transientMap.set(inquirerId, collection);
}
collection.set(contextId, value);
}
removeInstanceByContextId(contextId, inquirerId) {
if (this.scope === Scope.TRANSIENT && inquirerId) {
return this.removeInstanceByInquirerId(contextId, inquirerId);
}
this.values.delete(contextId);
}
removeInstanceByInquirerId(contextId, inquirerId) {
const collection = this.transientMap.get(inquirerId);
if (!collection) {
return;
}
collection.delete(contextId);
}
/**
* Returns the instances that exist for the given context, including those
* of every inquirer of a transient provider. Unlike `getInstanceByContextId`,
* it does not create one.
*/
getExistingInstancesByContextId(contextId) {
const collections = [this.values, ...this.transientMap?.values() ?? []];
return collections.map((collection) => collection.get(contextId)).filter((instancePerContext) => !isUndefined(instancePerContext));
}
addCtorMetadata(index, wrapper) {
if (!this[INSTANCE_METADATA_SYMBOL].dependencies) {
this[INSTANCE_METADATA_SYMBOL].dependencies = [];
}
this[INSTANCE_METADATA_SYMBOL].dependencies[index] = wrapper;
this.registerDependencyTreeParent(wrapper);
this.resetDependencyTreeState();
}
getCtorMetadata() {
return this[INSTANCE_METADATA_SYMBOL].dependencies;
}
addPropertiesMetadata(key, wrapper) {
if (!this[INSTANCE_METADATA_SYMBOL].properties) {
this[INSTANCE_METADATA_SYMBOL].properties = [];
}
const properties = this[INSTANCE_METADATA_SYMBOL].properties;
const index = properties.findIndex((item) => item.key === key);
if (index === -1) {
properties.push({ key, wrapper });
} else {
properties[index] = { key, wrapper };
}
this.registerDependencyTreeParent(wrapper);
this.resetDependencyTreeState();
}
getPropertiesMetadata() {
return this[INSTANCE_METADATA_SYMBOL].properties;
}
addEnhancerMetadata(wrapper) {
if (!this[INSTANCE_METADATA_SYMBOL].enhancers) {
this[INSTANCE_METADATA_SYMBOL].enhancers = [];
}
this[INSTANCE_METADATA_SYMBOL].enhancers.push(wrapper);
this.registerDependencyTreeParent(wrapper);
this.resetDependencyTreeState();
}
getEnhancersMetadata() {
return this[INSTANCE_METADATA_SYMBOL].enhancers;
}
isDependencyTreeDurable(lookupRegistry = []) {
if (!isUndefined(this.isTreeDurable)) {
return this.isTreeDurable;
}
if (this.scope === Scope.REQUEST) {
this.isTreeDurable = this.durable === void 0 ? false : this.durable;
if (this.isTreeDurable) {
this.printIntrospectedAsDurable();
}
return this.isTreeDurable;
}
const isStatic = this.isDependencyTreeStatic();
if (isStatic) {
return false;
}
const isTreeNonDurable = this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic() && !item.isDependencyTreeDurable(registry)), lookupRegistry);
this.isTreeDurable = !isTreeNonDurable;
if (this.isTreeDurable) {
this.printIntrospectedAsDurable();
} else {
this.invalidateDependencyTreeParents("isTreeDurable");
}
return this.isTreeDurable;
}
introspectDepsAttribute(callback, lookupRegistry = []) {
if (lookupRegistry.includes(this[INSTANCE_ID_SYMBOL])) {
return false;
}
lookupRegistry = lookupRegistry.concat(this[INSTANCE_ID_SYMBOL]);
const { dependencies, properties, enhancers } = this[INSTANCE_METADATA_SYMBOL];
let introspectionResult = dependencies ? callback(dependencies, lookupRegistry) : false;
if (introspectionResult || !(properties || enhancers)) {
return introspectionResult;
}
introspectionResult = properties ? callback(properties.map((item) => item.wrapper), lookupRegistry) : false;
if (introspectionResult || !enhancers) {
return introspectionResult;
}
return enhancers ? callback(enhancers, lookupRegistry) : false;
}
isDependencyTreeStatic(lookupRegistry = []) {
if (!isUndefined(this.isTreeStatic)) {
return this.isTreeStatic;
}
if (this.scope === Scope.REQUEST) {
this.isTreeStatic = false;
this.printIntrospectedAsRequestScoped();
return this.isTreeStatic;
}
this.isTreeStatic = !this.introspectDepsAttribute((collection, registry) => collection.some((item) => !item.isDependencyTreeStatic(registry)), lookupRegistry);
if (!this.isTreeStatic) {
this.printIntrospectedAsRequestScoped();
this.invalidateDependencyTreeParents("isTreeStatic");
}
return this.isTreeStatic;
}
cloneStaticInstance(contextId) {
const staticInstance = this.getInstanceByContextId(STATIC_CONTEXT);
if (this.isDependencyTreeStatic()) {
return staticInstance;
}
const instancePerContext = {
...staticInstance,
instance: void 0,
isResolved: false,
isPending: false
};
if (this.isNewable()) {
instancePerContext.instance = Object.create(this.metatype.prototype);
}
this.setInstanceByContextId(contextId, instancePerContext);
return instancePerContext;
}
cloneTransientInstance(contextId, inquirerId) {
const staticInstance = this.getInstanceByContextId(STATIC_CONTEXT);
const instancePerContext = {
...staticInstance,
instance: void 0,
isResolved: false,
isPending: false
};
if (this.isNewable()) {
instancePerContext.instance = Object.create(this.metatype.prototype);
}
this.setInstanceByInquirerId(contextId, inquirerId, instancePerContext);
return instancePerContext;
}
createPrototype(contextId) {
const host = this.getInstanceByContextId(contextId);
if (!this.isNewable() || host.isResolved) {
return;
}
return Object.create(this.metatype.prototype);
}
isInRequestScope(contextId, inquirer) {
const isDependencyTreeStatic = this.isDependencyTreeStatic();
return !isDependencyTreeStatic && contextId !== STATIC_CONTEXT && (!this.isTransient || this.isTransient && !!inquirer);
}
isLazyTransient(contextId, inquirer) {
const isInquirerRequestScoped = !!(inquirer && !inquirer.isDependencyTreeStatic());
return this.isDependencyTreeStatic() && contextId !== STATIC_CONTEXT && this.isTransient && isInquirerRequestScoped;
}
isExplicitlyRequested(contextId, inquirer) {
const isSelfRequested = inquirer === this;
return this.isDependencyTreeStatic() && contextId !== STATIC_CONTEXT && (isSelfRequested || !!(inquirer && inquirer.scope === Scope.TRANSIENT));
}
isStatic(contextId, inquirer, rootInquirer) {
if (!this.isDependencyTreeStatic() || contextId !== STATIC_CONTEXT) {
return false;
}
if (!this.isTransient) {
return true;
}
const isInquirerRequestScoped = inquirer && !inquirer.isDependencyTreeStatic();
const isStaticTransient = this.isTransient && !isInquirerRequestScoped;
if (isStaticTransient && inquirer && !inquirer.isTransient) {
return true;
}
if (isStaticTransient && rootInquirer && !rootInquirer.isTransient) {
return true;
}
if (isStaticTransient && inquirer?.isTransient && !rootInquirer) {
return true;
}
return false;
}
detachFromDependencies() {
this.getDependencyWrappers().forEach((dependency) => {
dependencyTreeParents.get(dependency)?.delete(this);
dependency.removeTransientInstancesOf(this);
});
}
/**
* Returns the wrappers that depend on this one, directly or through other
* wrappers (as a constructor, property or enhancer dependency).
*/
getDependents() {
const dependents = /* @__PURE__ */ new Set();
const wrappers = [this];
while (wrappers.length > 0) {
dependencyTreeParents.get(wrappers.pop())?.forEach((parent) => {
if (!dependents.has(parent)) {
dependents.add(parent);
wrappers.push(parent);
}
});
}
return dependents;
}
/**
* @deprecated The injector no longer reads the root inquirer from the
* wrapper (see `isStatic`), as it may be overwritten by a concurrent
* resolution for another consumer.
*/
attachRootInquirer(inquirer) {
if (!this.isTransient) {
return;
}
this.rootInquirer = inquirer.getRootInquirer() ?? inquirer;
}
/**
* @deprecated The injector no longer reads the root inquirer from the
* wrapper (see `isStatic`), as it may be overwritten by a concurrent
* resolution for another consumer.
*/
getRootInquirer() {
return this.rootInquirer;
}
getStaticTransientInstances() {
if (!this.transientMap) {
return [];
}
const instances = [...this.transientMap.values()];
return (0, import_iterare7.iterate)(instances).map((item) => item.get(STATIC_CONTEXT)).filter((item) => {
return !!(item && item.isConstructorCalled);
}).toArray();
}
mergeWith(provider) {
if (isValueProvider(provider)) {
this.metatype = null;
this.inject = null;
this.scope = Scope.DEFAULT;
this.setInstanceByContextId(STATIC_CONTEXT, {
instance: provider.useValue,
isResolved: true,
isPending: false
});
} else if (isClassProvider(provider)) {
this.inject = null;
this.metatype = provider.useClass;
registerClassRef(provider.useClass);
this.scope = getClassScope(provider.useClass) ?? Scope.DEFAULT;
this.durable = isDurable(provider.useClass);
if (this.scope === Scope.TRANSIENT && !this.transientMap) {
this.transientMap = /* @__PURE__ */ new Map();
}
this.resetStaticInstance();
} else if (isFactoryProvider(provider)) {
this.metatype = provider.useFactory;
this.inject = provider.inject || [];
this.resetStaticInstance();
}
this.resetDependencyTreeState();
}
resetStaticInstance() {
this.setInstanceByContextId(STATIC_CONTEXT, {
instance: null,
isResolved: false,
isPending: false
});
}
isNewable() {
return isNil(this.inject) && this.metatype && this.metatype.prototype;
}
registerDependencyTreeParent(wrapper) {
if (wrapper instanceof _InstanceWrapper) {
const parents = dependencyTreeParents.get(wrapper) ?? /* @__PURE__ */ new Set();
parents.add(this);
dependencyTreeParents.set(wrapper, parents);
}
}
getDependencyWrappers() {
const { dependencies = [], properties = [] } = this[INSTANCE_METADATA_SYMBOL];
return [
...dependencies,
...properties.map(({ wrapper }) => wrapper)
].filter((dependency) => dependency instanceof _InstanceWrapper);
}
removeTransientInstancesOf(inquirer) {
if (!this.transientMap) {
return;
}
for (const inquirerId of this.transientMap.keys()) {
if (inquirerId === inquirer.id || inquirerId.startsWith(`${inquirer.id}:`)) {
this.transientMap.delete(inquirerId);
}
}
this.getDependencyWrappers().forEach((dependency) => dependency.removeTransientInstancesOf(inquirer));
}
resetDependencyTreeState(lookupRegistry = /* @__PURE__ */ new Set()) {
if (lookupRegistry.has(this[INSTANCE_ID_SYMBOL])) {
return;
}
lookupRegistry.add(this[INSTANCE_ID_SYMBOL]);
this.isTreeStatic = void 0;
this.isTreeDurable = void 0;
dependencyTreeParents.get(this)?.forEach((parent) => parent.resetDependencyTreeState(lookupRegistry));
}
/**
* In a circular dependency, the introspection skips a wrapper that is
* already being introspected, so the parents in between may cache `true`
* before that wrapper turns out not to be static (or durable). Clears what
* they cached, so it is computed again with the final answer.
*/
invalidateDependencyTreeParents(attribute) {
dependencyTreeParents.get(this)?.forEach((parent) => {
if (parent[attribute]) {
parent[attribute] = void 0;
parent.invalidateDependencyTreeParents(attribute);
}
});
}
initialize(metadata) {
const { instance, isResolved, ...wrapperPartial } = metadata;
Object.assign(this, wrapperPartial);
this.setInstanceByContextId(STATIC_CONTEXT, {
instance,
isResolved
});
this.scope === Scope.TRANSIENT && (this.transientMap = /* @__PURE__ */ new Map());
}
printIntrospectedAsRequestScoped() {
if (!isDebugMode() || this.name === "REQUEST") {
return;
}
if (isString(this.name)) {
_InstanceWrapper.logger.log(`${clc.cyanBright(this.name)}${clc.green(" introspected as ")}${clc.magentaBright("request-scoped")}`);
}
}
printIntrospectedAsDurable() {
if (!isDebugMode()) {
return;
}
if (isString(this.name)) {
_InstanceWrapper.logger.log(`${clc.cyanBright(this.name)}${clc.green(" introspected as ")}${clc.magentaBright("durable")}`);
}
}
generateUuid() {
let key = this.name?.toString() ?? this.token?.toString();
key += this.host?.name ?? "";
return key ? UuidFactory.get(key) : randomStringGenerator();
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module-ref.js
var ModuleRef;
var init_module_ref = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module-ref.js"() {
init_common();
init_request_scoped_create_exception();
init_get_class_scope();
init_is_durable();
init_abstract_instance_resolver();
init_constants3();
init_injector();
init_instance_links_host();
init_instance_wrapper();
ModuleRef = class extends AbstractInstanceResolver {
static {
__name(this, "ModuleRef");
}
container;
injector;
_instanceLinksHost;
get instanceLinksHost() {
if (!this._instanceLinksHost) {
this._instanceLinksHost = new InstanceLinksHost(this.container);
}
return this._instanceLinksHost;
}
constructor(container) {
super();
this.container = container;
const contextOptions = container.contextOptions;
this.injector = new Injector({
preview: contextOptions?.preview ?? false,
snapshot: contextOptions?.snapshot,
instanceDecorator: contextOptions?.instrument?.instanceDecorator
});
}
introspect(token) {
const { wrapperRef } = this.instanceLinksHost.get(token);
let scope = Scope.DEFAULT;
if (!wrapperRef.isDependencyTreeStatic()) {
scope = Scope.REQUEST;
} else if (wrapperRef.isTransient) {
scope = Scope.TRANSIENT;
}
return { scope };
}
registerRequestByContextId(request, contextId) {
this.container.registerRequestProvider(request, contextId);
}
async instantiateClass(type, moduleRef, contextId) {
const wrapper = new InstanceWrapper({
name: type && type.name,
metatype: type,
isResolved: false,
scope: getClassScope(type),
durable: isDurable(type),
host: moduleRef
});
if (type?.prototype) {
wrapper.setInstanceByContextId(contextId ?? STATIC_CONTEXT, {
instance: Object.create(type.prototype),
isResolved: false,
isPending: false
});
}
return new Promise((resolve, reject) => {
let isCreated = false;
const loadInstance = /* @__PURE__ */ __name(async () => {
const callback = /* @__PURE__ */ __name(async (instances) => {
const properties = await this.injector.resolveProperties(wrapper, moduleRef, void 0, {
contextId: contextId ?? STATIC_CONTEXT,
inquirer: wrapper
});
await this.injector.waitForDeferredLoads(contextId ?? STATIC_CONTEXT);
const instance = new type(...instances);
this.injector.applyProperties(instance, properties);
isCreated = true;
resolve(instance);
}, "callback");
await this.injector.resolveConstructorParams(wrapper, moduleRef, void 0, callback, {
contextId: contextId ?? STATIC_CONTEXT,
inquirer: wrapper
});
if (!isCreated) {
reject(new RequestScopedCreateException(type.name));
}
}, "loadInstance");
void loadInstance().catch(reject);
}).finally(() => wrapper.detachFromDependencies());
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js
var LazyModuleLoader;
var init_lazy_module_loader = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/lazy-module-loader/lazy-module-loader.js"() {
init_silent_logger();
init_module_ref();
LazyModuleLoader = class {
static {
__name(this, "LazyModuleLoader");
}
dependenciesScanner;
instanceLoader;
moduleCompiler;
modulesContainer;
moduleOverrides;
constructor(dependenciesScanner, instanceLoader, moduleCompiler, modulesContainer, moduleOverrides) {
this.dependenciesScanner = dependenciesScanner;
this.instanceLoader = instanceLoader;
this.moduleCompiler = moduleCompiler;
this.modulesContainer = modulesContainer;
this.moduleOverrides = moduleOverrides;
}
async load(loaderFn, loadOpts) {
const originalLogger = this.instanceLoader.logger;
try {
this.registerLoggerConfiguration(loadOpts);
const moduleClassOrDynamicDefinition = await loaderFn();
const moduleInstances = await this.dependenciesScanner.scanForModules({
moduleDefinition: moduleClassOrDynamicDefinition,
overrides: this.moduleOverrides,
lazy: true
});
if (moduleInstances.length === 0) {
const { token } = await this.moduleCompiler.compile(moduleClassOrDynamicDefinition);
const moduleInstance = this.modulesContainer.get(token);
return moduleInstance && this.getTargetModuleRef(moduleInstance);
}
const lazyModulesContainer = this.createLazyModulesContainer(moduleInstances);
await this.dependenciesScanner.scanModulesForDependencies(lazyModulesContainer);
await this.instanceLoader.createInstancesOfDependencies(lazyModulesContainer);
const [targetModule] = moduleInstances;
return this.getTargetModuleRef(targetModule);
} finally {
if (loadOpts?.logger === false) {
this.instanceLoader.setLogger(originalLogger);
}
}
}
registerLoggerConfiguration(loadOpts) {
if (loadOpts?.logger === false) {
this.instanceLoader.setLogger(new SilentLogger());
}
}
createLazyModulesContainer(moduleInstances) {
moduleInstances = Array.from(new Set(moduleInstances));
return new Map(moduleInstances.map((ref) => [ref.token, ref]));
}
getTargetModuleRef(moduleInstance) {
const moduleRefInstanceWrapper = moduleInstance.getProviderByKey(ModuleRef);
return moduleRefInstanceWrapper.instance;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/reflector.service.js
var Reflector;
var init_reflector_service = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/reflector.service.js"() {
init_common();
init_dist();
init_internal();
Reflector = class {
static {
__name(this, "Reflector");
}
static createDecorator(options = {}) {
const metadataKey = options.key ?? uid(21);
const decoratorFn = /* @__PURE__ */ __name((metadataValue) => (target, key, descriptor) => {
const value = options.transform ? options.transform(metadataValue) : metadataValue;
SetMetadata(metadataKey, value === void 0 ? {} : value)(target, key, descriptor);
}, "decoratorFn");
decoratorFn.KEY = metadataKey;
return decoratorFn;
}
/**
* Retrieve metadata for a specified key or decorator for a specified target.
*
* @example
* `const roles = this.reflector.get<string[]>('roles', context.getHandler());`
*
* @param metadataKey lookup key or decorator for metadata to retrieve
* @param target context (decorated object) to retrieve metadata from
*
*/
get(metadataKeyOrDecorator, target) {
const metadataKey = metadataKeyOrDecorator.KEY ?? metadataKeyOrDecorator;
return Reflect.getMetadata(metadataKey, target);
}
/**
* Retrieve metadata for a specified key or decorator for a specified set of targets.
*
* @param metadataKeyOrDecorator lookup key or decorator for metadata to retrieve
* @param targets context (decorated objects) to retrieve metadata from
*
*/
getAll(metadataKeyOrDecorator, targets) {
return (targets || []).map((target) => this.get(metadataKeyOrDecorator, target));
}
/**
* Retrieve metadata for a specified key or decorator for a specified set of targets and merge results.
*
* @param metadataKeyOrDecorator lookup key for metadata to retrieve
* @param targets context (decorated objects) to retrieve metadata from
*
*/
getAllAndMerge(metadataKeyOrDecorator, targets) {
const metadataCollection = this.getAll(metadataKeyOrDecorator, targets).filter((item) => item !== void 0);
if (isEmptyArray(metadataCollection)) {
return metadataCollection;
}
if (metadataCollection.length === 1) {
const value = metadataCollection[0];
if (isObject(value)) {
return value;
}
return metadataCollection;
}
return metadataCollection.reduce((a, b) => {
if (Array.isArray(a)) {
return a.concat(b);
}
if (isObject(a) && isObject(b)) {
return {
...a,
...b
};
}
return [a, b];
});
}
/**
* Retrieve metadata for a specified key or decorator for a specified set of targets and return a first not undefined value.
*
* @param metadataKeyOrDecorator lookup key or metadata for metadata to retrieve
* @param targets context (decorated objects) to retrieve metadata from
*
*/
getAllAndOverride(metadataKeyOrDecorator, targets) {
for (const target of targets) {
const result = this.get(metadataKeyOrDecorator, target);
if (result !== void 0) {
return result;
}
}
return void 0;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/serialized-graph.js
var SerializedGraph;
var init_serialized_graph = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/serialized-graph.js"() {
init_application_config();
init_external_context_creator();
init_http_adapter_host();
init_inquirer_constants();
init_lazy_module_loader();
init_module_ref();
init_modules_container();
init_request_constants();
init_reflector_service();
init_deterministic_uuid_registry();
SerializedGraph = class _SerializedGraph {
static {
__name(this, "SerializedGraph");
}
nodes = /* @__PURE__ */ new Map();
edges = /* @__PURE__ */ new Map();
entrypoints = /* @__PURE__ */ new Map();
extras = {
orphanedEnhancers: [],
attachedEnhancers: []
};
_status = "complete";
_metadata;
static INTERNAL_PROVIDERS = [
ApplicationConfig,
ModuleRef,
HttpAdapterHost,
LazyModuleLoader,
ExternalContextCreator,
ModulesContainer,
Reflector,
_SerializedGraph,
HttpAdapterHost.name,
Reflector.name,
REQUEST,
INQUIRER
];
set status(status) {
this._status = status;
}
set metadata(metadata) {
this._metadata = metadata;
}
insertNode(nodeDefinition) {
if (nodeDefinition.metadata.type === "provider" && _SerializedGraph.INTERNAL_PROVIDERS.includes(nodeDefinition.metadata.token)) {
nodeDefinition.metadata = {
...nodeDefinition.metadata,
internal: true
};
}
if (this.nodes.has(nodeDefinition.id)) {
return this.nodes.get(nodeDefinition.id);
}
this.nodes.set(nodeDefinition.id, nodeDefinition);
return nodeDefinition;
}
insertEdge(edgeDefinition) {
if (edgeDefinition.metadata.type === "class-to-class" && (_SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.sourceClassToken) || _SerializedGraph.INTERNAL_PROVIDERS.includes(edgeDefinition.metadata.targetClassToken))) {
edgeDefinition.metadata = {
...edgeDefinition.metadata,
internal: true
};
}
const id = edgeDefinition.id ?? this.generateUuidByEdgeDefinition(edgeDefinition);
const edge = {
...edgeDefinition,
id
};
this.edges.set(id, edge);
return edge;
}
insertEntrypoint(definition, parentId) {
if (this.entrypoints.has(parentId)) {
const existingCollection = this.entrypoints.get(parentId);
existingCollection.push(definition);
} else {
this.entrypoints.set(parentId, [definition]);
}
}
insertOrphanedEnhancer(entry) {
this.extras.orphanedEnhancers.push(entry);
}
insertAttachedEnhancer(nodeId) {
this.extras.attachedEnhancers.push({
nodeId
});
}
getNodeById(id) {
return this.nodes.get(id);
}
toJSON() {
const json = {
nodes: Object.fromEntries(this.nodes),
edges: Object.fromEntries(this.edges),
entrypoints: Object.fromEntries(this.entrypoints),
extras: this.extras
};
if (this._status) {
json["status"] = this._status;
}
if (this._metadata) {
json["metadata"] = this._metadata;
}
return json;
}
toString() {
const replacer = /* @__PURE__ */ __name((key, value) => {
if (typeof value === "symbol") {
return value.toString();
}
return typeof value === "function" ? value.name ?? "Function" : value;
}, "replacer");
return JSON.stringify(this.toJSON(), replacer, 2);
}
generateUuidByEdgeDefinition(edgeDefinition) {
return DeterministicUuidRegistry.get(JSON.stringify(edgeDefinition));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/compiler.js
var ModuleCompiler;
var init_compiler = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/compiler.js"() {
ModuleCompiler = class {
static {
__name(this, "ModuleCompiler");
}
_moduleOpaqueKeyFactory;
constructor(_moduleOpaqueKeyFactory) {
this._moduleOpaqueKeyFactory = _moduleOpaqueKeyFactory;
}
get moduleOpaqueKeyFactory() {
return this._moduleOpaqueKeyFactory;
}
async compile(moduleClsOrDynamic) {
moduleClsOrDynamic = await moduleClsOrDynamic;
const { type, dynamicMetadata } = this.extractMetadata(moduleClsOrDynamic);
const token = dynamicMetadata ? this._moduleOpaqueKeyFactory.createForDynamic(type, dynamicMetadata, moduleClsOrDynamic) : this._moduleOpaqueKeyFactory.createForStatic(type, moduleClsOrDynamic);
return { type, dynamicMetadata, token };
}
extractMetadata(moduleClsOrDynamic) {
if (!this.isDynamicModule(moduleClsOrDynamic)) {
return {
type: moduleClsOrDynamic?.forwardRef ? moduleClsOrDynamic.forwardRef() : moduleClsOrDynamic,
dynamicMetadata: void 0
};
}
const { module: type, ...dynamicMetadata } = moduleClsOrDynamic;
return { type, dynamicMetadata };
}
isDynamicModule(moduleClsOrDynamic) {
return !!moduleClsOrDynamic.module;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-providers.js
var noop2, requestProvider;
var init_request_providers = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/request-providers.js"() {
init_common();
init_request_constants();
noop2 = /* @__PURE__ */ __name(() => {
}, "noop");
requestProvider = {
provide: REQUEST,
scope: Scope.REQUEST,
useFactory: noop2
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/index.js
var init_services = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/services/index.js"() {
init_reflector_service();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js
var noop3, inquirerProvider;
var init_inquirer_providers = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/inquirer/inquirer-providers.js"() {
init_common();
init_inquirer_constants();
noop3 = /* @__PURE__ */ __name(() => {
}, "noop");
inquirerProvider = {
provide: INQUIRER,
scope: Scope.TRANSIENT,
useFactory: noop3
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js
var InternalCoreModule_1, ReflectorAliasProvider, InternalCoreModule;
var init_internal_core_module = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module.js"() {
init_tslib_es6();
init_common();
init_request_providers();
init_services();
init_inquirer_providers();
ReflectorAliasProvider = {
provide: Reflector.name,
useExisting: Reflector
};
InternalCoreModule = InternalCoreModule_1 = class InternalCoreModule2 {
static {
__name(this, "InternalCoreModule");
}
static register(providers) {
return {
module: InternalCoreModule_1,
providers: [...providers],
exports: [...providers.map((item) => item.provide)]
};
}
};
InternalCoreModule = InternalCoreModule_1 = __decorate([
Global(),
Module({
providers: [
Reflector,
ReflectorAliasProvider,
requestProvider,
inquirerProvider
],
exports: [
Reflector,
ReflectorAliasProvider,
requestProvider,
inquirerProvider
]
})
], InternalCoreModule);
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-providers-storage.js
var InternalProvidersStorage;
var init_internal_providers_storage = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-providers-storage.js"() {
init_http_adapter_host();
InternalProvidersStorage = class {
static {
__name(this, "InternalProvidersStorage");
}
_httpAdapterHost = new HttpAdapterHost();
_httpAdapter;
get httpAdapterHost() {
return this._httpAdapterHost;
}
get httpAdapter() {
return this._httpAdapter;
}
set httpAdapter(httpAdapter) {
this._httpAdapter = httpAdapter;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-provider.exception.js
var InvalidProviderException;
var init_invalid_provider_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-provider.exception.js"() {
init_messages();
init_runtime_exception();
InvalidProviderException = class extends RuntimeException {
static {
__name(this, "InvalidProviderException");
}
constructor(token, moduleName) {
super(INVALID_PROVIDER_MESSAGE(token, moduleName));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module.js
var import_iterare8, Module2;
var init_module = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/module.js"() {
import_iterare8 = __toESM(require_lib(), 1);
init_application_config();
init_exceptions2();
init_invalid_provider_exception();
init_context_id_factory();
init_get_class_scope();
init_is_durable();
init_safe_instance_decorator();
init_uuid_factory();
init_constants3();
init_instance_wrapper();
init_module_ref();
init_internal();
init_common();
Module2 = class {
static {
__name(this, "Module");
}
_metatype;
container;
_id;
_imports = /* @__PURE__ */ new Set();
_providers = /* @__PURE__ */ new Map();
_injectables = /* @__PURE__ */ new Map();
_middlewares = /* @__PURE__ */ new Map();
_controllers = /* @__PURE__ */ new Map();
_entryProviderKeys = /* @__PURE__ */ new Set();
_exports = /* @__PURE__ */ new Set();
_distance = 0;
_initOnPreview = false;
_isGlobal = false;
_token;
constructor(_metatype, container) {
this._metatype = _metatype;
this.container = container;
this.addCoreProviders();
this._id = this.generateUuid();
}
get id() {
return this._id;
}
get token() {
return this._token;
}
set token(token) {
this._token = token;
}
get name() {
return this.metatype.name;
}
get isGlobal() {
return this._isGlobal;
}
set isGlobal(global2) {
this._isGlobal = global2;
}
get initOnPreview() {
return this._initOnPreview;
}
set initOnPreview(initOnPreview) {
this._initOnPreview = initOnPreview;
}
get providers() {
return this._providers;
}
get middlewares() {
return this._middlewares;
}
get imports() {
return this._imports;
}
get injectables() {
return this._injectables;
}
get controllers() {
return this._controllers;
}
get entryProviders() {
return Array.from(this._entryProviderKeys).map((token) => this.providers.get(token));
}
get exports() {
return this._exports;
}
get instance() {
if (!this._providers.has(this._metatype)) {
throw new RuntimeException();
}
const moduleRef = this._providers.get(this._metatype);
return moduleRef.instance;
}
/**
* Modules are registered in the container before they are scanned (dynamic
* `imports` are pre-registered by `NestContainer#addDynamicMetadata`), so
* registration alone does not imply the module was ever instantiated.
*/
get isInstantiated() {
return !isNil(this._providers.get(this._metatype)?.instance);
}
get metatype() {
return this._metatype;
}
get distance() {
return this._distance;
}
set distance(value) {
this._distance = value;
}
addCoreProviders() {
this.addModuleAsProvider();
this.addModuleRef();
this.addApplicationConfig();
}
addModuleRef() {
const moduleRef = this.createModuleReferenceType();
this._providers.set(ModuleRef, new InstanceWrapper({
token: ModuleRef,
name: ModuleRef.name,
metatype: ModuleRef,
isResolved: true,
instance: new moduleRef(),
host: this
}));
}
addModuleAsProvider() {
this._providers.set(this._metatype, new InstanceWrapper({
token: this._metatype,
name: this._metatype.name,
metatype: this._metatype,
isResolved: false,
instance: null,
host: this
}));
}
addApplicationConfig() {
this._providers.set(ApplicationConfig, new InstanceWrapper({
token: ApplicationConfig,
name: ApplicationConfig.name,
isResolved: true,
instance: this.container.applicationConfig,
host: this
}));
}
addInjectable(injectable, enhancerSubtype, host) {
if (this.isCustomProvider(injectable)) {
return this.addCustomProvider(injectable, this._injectables, enhancerSubtype);
}
let instanceWrapper = this.injectables.get(injectable);
if (!instanceWrapper) {
instanceWrapper = new InstanceWrapper({
token: injectable,
name: injectable.name,
metatype: injectable,
instance: null,
isResolved: false,
scope: getClassScope(injectable),
durable: isDurable(injectable),
subtype: enhancerSubtype,
host: this
});
this._injectables.set(injectable, instanceWrapper);
}
if (host) {
const hostWrapper = this._controllers.get(host) || this._providers.get(host);
hostWrapper && hostWrapper.addEnhancerMetadata(instanceWrapper);
}
return instanceWrapper;
}
addProvider(provider, enhancerSubtype) {
if (this.isCustomProvider(provider)) {
if (this.isEntryProvider(provider.provide) || this.isEntryProvider(provider.useClass)) {
this._entryProviderKeys.add(provider.provide);
}
return this.addCustomProvider(provider, this._providers, enhancerSubtype);
}
const isAlreadyDeclared = this._providers.has(provider);
if ((this.isTransientProvider(provider) || this.isRequestScopeProvider(provider)) && isAlreadyDeclared) {
return provider;
}
this._providers.set(provider, new InstanceWrapper({
token: provider,
name: provider.name,
metatype: provider,
instance: null,
isResolved: false,
scope: getClassScope(provider),
durable: isDurable(provider),
host: this
}));
if (this.isEntryProvider(provider)) {
this._entryProviderKeys.add(provider);
}
return provider;
}
isCustomProvider(provider) {
return !isNil(provider.provide);
}
addCustomProvider(provider, collection, enhancerSubtype) {
if (this.isCustomClass(provider)) {
this.addCustomClass(provider, collection, enhancerSubtype);
} else if (this.isCustomValue(provider)) {
this.addCustomValue(provider, collection, enhancerSubtype);
} else if (this.isCustomFactory(provider)) {
this.addCustomFactory(provider, collection, enhancerSubtype);
} else if (this.isCustomUseExisting(provider)) {
this.addCustomUseExisting(provider, collection, enhancerSubtype);
} else {
throw new InvalidProviderException(provider.provide, this.name);
}
return provider.provide;
}
isCustomClass(provider) {
return !isNil(provider.useClass);
}
isCustomValue(provider) {
return isObject(provider) && Object.hasOwn(provider, "useValue");
}
isCustomFactory(provider) {
return !isNil(provider.useFactory);
}
isCustomUseExisting(provider) {
return !isNil(provider.useExisting);
}
isDynamicModule(exported) {
return exported && exported.module;
}
addCustomClass(provider, collection, enhancerSubtype) {
let { scope, durable } = provider;
const { useClass } = provider;
if (isUndefined(scope)) {
scope = getClassScope(useClass);
}
if (isUndefined(durable)) {
durable = isDurable(useClass);
}
const token = provider.provide;
collection.set(token, new InstanceWrapper({
token,
name: useClass?.name || useClass,
metatype: useClass,
instance: null,
isResolved: false,
scope,
durable,
host: this,
subtype: enhancerSubtype
}));
}
addCustomValue(provider, collection, enhancerSubtype) {
const { useValue: value, provide: providerToken } = provider;
const instanceDecorator = this.container.contextOptions?.instrument?.instanceDecorator;
collection.set(providerToken, new InstanceWrapper({
token: providerToken,
name: providerToken?.name || providerToken,
metatype: null,
instance: instanceDecorator ? makeSafeInstanceDecorator(instanceDecorator)(value) : value,
isResolved: true,
async: value instanceof Promise,
host: this,
subtype: enhancerSubtype
}));
}
addCustomFactory(provider, collection, enhancerSubtype) {
const { useFactory: factory, inject, scope, durable, provide: providerToken } = provider;
collection.set(providerToken, new InstanceWrapper({
token: providerToken,
name: providerToken?.name || providerToken,
metatype: factory,
instance: null,
isResolved: false,
inject: inject || [],
scope,
durable,
host: this,
subtype: enhancerSubtype
}));
}
addCustomUseExisting(provider, collection, enhancerSubtype) {
const { useExisting, provide: providerToken } = provider;
collection.set(providerToken, new InstanceWrapper({
token: providerToken,
name: providerToken?.name || providerToken,
metatype: /* @__PURE__ */ __name(((instance) => instance), "metatype"),
instance: null,
isResolved: false,
inject: [useExisting],
host: this,
isAlias: true,
subtype: enhancerSubtype
}));
}
addExportedProviderOrModule(toExport) {
const addExportedUnit = /* @__PURE__ */ __name((token) => this._exports.add(this.validateExportedProvider(token)), "addExportedUnit");
if (this.isCustomProvider(toExport)) {
return this.addCustomExportedProvider(toExport);
} else if (isString(toExport) || isSymbol(toExport)) {
return addExportedUnit(toExport);
} else if (this.isDynamicModule(toExport)) {
const { module: moduleClassRef } = toExport;
return addExportedUnit(moduleClassRef);
}
addExportedUnit(toExport);
}
addCustomExportedProvider(provider) {
const provide = provider.provide;
if (isString(provide) || isSymbol(provide)) {
return this._exports.add(this.validateExportedProvider(provide));
}
this._exports.add(this.validateExportedProvider(provide));
}
validateExportedProvider(token) {
if (this._providers.has(token)) {
return token;
}
const imports = (0, import_iterare8.iterate)(this._imports.values()).filter((item) => !!item).map(({ metatype }) => metatype).filter((metatype) => !!metatype).toArray();
if (!imports.includes(token)) {
const { name } = this.metatype;
const providerName = isFunction(token) ? token.name : token;
throw new UnknownExportException(providerName, name);
}
return token;
}
addController(controller) {
this._controllers.set(controller, new InstanceWrapper({
token: controller,
name: controller.name,
metatype: controller,
instance: null,
isResolved: false,
scope: getClassScope(controller),
durable: isDurable(controller),
host: this
}));
this.assignControllerUniqueId(controller);
}
assignControllerUniqueId(controller) {
Object.defineProperty(controller, CONTROLLER_ID_KEY, {
enumerable: false,
writable: false,
configurable: true,
value: randomStringGenerator()
});
}
addImport(moduleRef) {
this._imports.add(moduleRef);
}
replace(toReplace, options) {
if (options.isProvider && this.hasProvider(toReplace)) {
const originalProvider = this._providers.get(toReplace);
return originalProvider.mergeWith({ provide: toReplace, ...options });
} else if (!options.isProvider && this.hasInjectable(toReplace)) {
const originalInjectable = this._injectables.get(toReplace);
return originalInjectable.mergeWith({
provide: toReplace,
...options
});
}
}
hasProvider(token) {
return this._providers.has(token);
}
hasInjectable(token) {
return this._injectables.has(token);
}
getProviderByKey(name) {
return this._providers.get(name);
}
getProviderById(id) {
for (const item of this._providers.values()) {
if (item.id === id)
return item;
}
return void 0;
}
getControllerById(id) {
for (const item of this._controllers.values()) {
if (item.id === id)
return item;
}
return void 0;
}
getInjectableById(id) {
for (const item of this._injectables.values()) {
if (item.id === id)
return item;
}
return void 0;
}
getMiddlewareById(id) {
for (const item of this._middlewares.values()) {
if (item.id === id)
return item;
}
return void 0;
}
getNonAliasProviders() {
return [...this._providers].filter(([_, wrapper]) => !wrapper.isAlias);
}
createModuleReferenceType() {
const self = this;
return class extends ModuleRef {
constructor() {
super(self.container);
}
get(typeOrToken, options = {}) {
options.strict ??= true;
options.each ??= false;
return this.find(typeOrToken, options.strict ? {
moduleId: self.id,
each: options.each
} : options);
}
resolve(typeOrToken, contextId = createContextId(), options = {}) {
options.strict ??= true;
options.each ??= false;
return this.resolvePerContext(typeOrToken, self, contextId, options);
}
async create(type, contextId) {
if (!(type && isFunction(type) && type.prototype)) {
throw new InvalidClassException(type);
}
return this.instantiateClass(type, self, contextId);
}
};
}
isEntryProvider(metatype) {
return typeof metatype === "function" ? !!Reflect.getMetadata(ENTRY_PROVIDER_WATERMARK, metatype) : false;
}
generateUuid() {
const prefix = "M_";
const key = this.token ? this.token.includes(":") ? this.token.split(":")[1] : this.token : this.name;
return key ? UuidFactory.get(`${prefix}_${key}`) : randomStringGenerator();
}
isTransientProvider(provider) {
return getClassScope(provider) === Scope.TRANSIENT;
}
isRequestScopeProvider(provider) {
return getClassScope(provider) === Scope.REQUEST;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js
import { createHash } from "crypto";
var K_MODULE_ID, ByReferenceModuleOpaqueKeyFactory;
var init_by_reference_module_opaque_key_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/by-reference-module-opaque-key-factory.js"() {
init_internal();
K_MODULE_ID = /* @__PURE__ */ Symbol("K_MODULE_ID");
ByReferenceModuleOpaqueKeyFactory = class {
static {
__name(this, "ByReferenceModuleOpaqueKeyFactory");
}
keyGenerationStrategy;
constructor(options) {
this.keyGenerationStrategy = options?.keyGenerationStrategy ?? "random";
}
createForStatic(moduleCls, originalRef = moduleCls) {
return this.getOrCreateModuleId(moduleCls, void 0, originalRef);
}
createForDynamic(moduleCls, dynamicMetadata, originalRef) {
return this.getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef);
}
getOrCreateModuleId(moduleCls, dynamicMetadata, originalRef) {
if (Object.prototype.hasOwnProperty.call(originalRef, K_MODULE_ID)) {
return originalRef[K_MODULE_ID];
}
let moduleId;
if (this.keyGenerationStrategy === "random") {
moduleId = this.generateRandomString();
} else {
const delimiter = ":";
moduleId = dynamicMetadata ? `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.name + JSON.stringify(dynamicMetadata))}` : `${this.generateRandomString()}${delimiter}${this.hashString(moduleCls.toString())}`;
}
originalRef[K_MODULE_ID] = moduleId;
return moduleId;
}
hashString(value) {
return createHash("sha256").update(value).digest("hex");
}
generateRandomString() {
return randomStringGenerator();
}
};
}
});
// ../../node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify/index.js
var require_fast_safe_stringify = __commonJS({
"../../node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify/index.js"(exports, module) {
module.exports = stringify2;
stringify2.default = stringify2;
stringify2.stable = deterministicStringify;
stringify2.stableStringify = deterministicStringify;
var LIMIT_REPLACE_NODE = "[...]";
var CIRCULAR_REPLACE_NODE = "[Circular]";
var arr = [];
var replacerStack = [];
function defaultOptions() {
return {
depthLimit: Number.MAX_SAFE_INTEGER,
edgesLimit: Number.MAX_SAFE_INTEGER
};
}
__name(defaultOptions, "defaultOptions");
function stringify2(obj, replacer, spacer, options) {
if (typeof options === "undefined") {
options = defaultOptions();
}
decirc(obj, "", 0, [], void 0, 0, options);
var res;
try {
if (replacerStack.length === 0) {
res = JSON.stringify(obj, replacer, spacer);
} else {
res = JSON.stringify(obj, replaceGetterValues(replacer), spacer);
}
} catch (_) {
return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]");
} finally {
while (arr.length !== 0) {
var part = arr.pop();
if (part.length === 4) {
Object.defineProperty(part[0], part[1], part[3]);
} else {
part[0][part[1]] = part[2];
}
}
}
return res;
}
__name(stringify2, "stringify");
function setReplace(replace, val, k, parent) {
var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k);
if (propertyDescriptor.get !== void 0) {
if (propertyDescriptor.configurable) {
Object.defineProperty(parent, k, { value: replace });
arr.push([parent, k, val, propertyDescriptor]);
} else {
replacerStack.push([val, k, replace]);
}
} else {
parent[k] = replace;
arr.push([parent, k, val]);
}
}
__name(setReplace, "setReplace");
function decirc(val, k, edgeIndex, stack, parent, depth, options) {
depth += 1;
var i;
if (typeof val === "object" && val !== null) {
for (i = 0; i < stack.length; i++) {
if (stack[i] === val) {
setReplace(CIRCULAR_REPLACE_NODE, val, k, parent);
return;
}
}
if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) {
setReplace(LIMIT_REPLACE_NODE, val, k, parent);
return;
}
if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) {
setReplace(LIMIT_REPLACE_NODE, val, k, parent);
return;
}
stack.push(val);
if (Array.isArray(val)) {
for (i = 0; i < val.length; i++) {
decirc(val[i], i, i, stack, val, depth, options);
}
} else {
var keys = Object.keys(val);
for (i = 0; i < keys.length; i++) {
var key = keys[i];
decirc(val[key], key, i, stack, val, depth, options);
}
}
stack.pop();
}
}
__name(decirc, "decirc");
function compareFunction(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
__name(compareFunction, "compareFunction");
function deterministicStringify(obj, replacer, spacer, options) {
if (typeof options === "undefined") {
options = defaultOptions();
}
var tmp = deterministicDecirc(obj, "", 0, [], void 0, 0, options) || obj;
var res;
try {
if (replacerStack.length === 0) {
res = JSON.stringify(tmp, replacer, spacer);
} else {
res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer);
}
} catch (_) {
return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]");
} finally {
while (arr.length !== 0) {
var part = arr.pop();
if (part.length === 4) {
Object.defineProperty(part[0], part[1], part[3]);
} else {
part[0][part[1]] = part[2];
}
}
}
return res;
}
__name(deterministicStringify, "deterministicStringify");
function deterministicDecirc(val, k, edgeIndex, stack, parent, depth, options) {
depth += 1;
var i;
if (typeof val === "object" && val !== null) {
for (i = 0; i < stack.length; i++) {
if (stack[i] === val) {
setReplace(CIRCULAR_REPLACE_NODE, val, k, parent);
return;
}
}
try {
if (typeof val.toJSON === "function") {
return;
}
} catch (_) {
return;
}
if (typeof options.depthLimit !== "undefined" && depth > options.depthLimit) {
setReplace(LIMIT_REPLACE_NODE, val, k, parent);
return;
}
if (typeof options.edgesLimit !== "undefined" && edgeIndex + 1 > options.edgesLimit) {
setReplace(LIMIT_REPLACE_NODE, val, k, parent);
return;
}
stack.push(val);
if (Array.isArray(val)) {
for (i = 0; i < val.length; i++) {
deterministicDecirc(val[i], i, i, stack, val, depth, options);
}
} else {
var tmp = {};
var keys = Object.keys(val).sort(compareFunction);
for (i = 0; i < keys.length; i++) {
var key = keys[i];
deterministicDecirc(val[key], key, i, stack, val, depth, options);
tmp[key] = val[key];
}
if (typeof parent !== "undefined") {
arr.push([parent, k, val]);
parent[k] = tmp;
} else {
return tmp;
}
}
stack.pop();
}
}
__name(deterministicDecirc, "deterministicDecirc");
function replaceGetterValues(replacer) {
replacer = typeof replacer !== "undefined" ? replacer : function(k, v) {
return v;
};
return function(key, val) {
if (replacerStack.length > 0) {
for (var i = 0; i < replacerStack.length; i++) {
var part = replacerStack[i];
if (part[1] === key && part[0] === val) {
val = part[2];
replacerStack.splice(i, 1);
break;
}
}
}
return replacer.call(this, key, val);
};
}
__name(replaceGetterValues, "replaceGetterValues");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js
import { createHash as createHash2 } from "crypto";
var import_fast_safe_stringify, stringify, UNSERIALIZABLE, CLASS_STR, CLASS_STR_LEN, DeepHashedModuleOpaqueKeyFactory;
var init_deep_hashed_module_opaque_key_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/opaque-key-factory/deep-hashed-module-opaque-key-factory.js"() {
import_fast_safe_stringify = __toESM(require_fast_safe_stringify(), 1);
init_common();
init_internal();
stringify = import_fast_safe_stringify.default.default ?? import_fast_safe_stringify.default;
UNSERIALIZABLE = JSON.stringify("[unable to serialize, circular reference is too complex to analyze]");
CLASS_STR = "class ";
CLASS_STR_LEN = CLASS_STR.length;
DeepHashedModuleOpaqueKeyFactory = class _DeepHashedModuleOpaqueKeyFactory {
static {
__name(this, "DeepHashedModuleOpaqueKeyFactory");
}
moduleIdsCache = /* @__PURE__ */ new WeakMap();
moduleTokenCache = /* @__PURE__ */ new Map();
logger = new Logger(_DeepHashedModuleOpaqueKeyFactory.name, {
timestamp: true
});
createForStatic(moduleCls) {
const moduleId = this.getModuleId(moduleCls);
const moduleName = this.getModuleName(moduleCls);
const key = `${moduleId}_${moduleName}`;
if (this.moduleTokenCache.has(key)) {
return this.moduleTokenCache.get(key);
}
const hash = this.hashString(key);
this.moduleTokenCache.set(key, hash);
return hash;
}
createForDynamic(moduleCls, dynamicMetadata) {
const moduleId = this.getModuleId(moduleCls);
const moduleName = this.getModuleName(moduleCls);
const opaqueToken = {
id: moduleId,
module: moduleName,
dynamic: dynamicMetadata
};
const start = performance.now();
const opaqueTokenString = this.getStringifiedOpaqueToken(opaqueToken);
const timeSpentInMs = performance.now() - start;
if (timeSpentInMs > 10) {
const formattedTimeSpent = timeSpentInMs.toFixed(2);
this.logger.warn(`The module "${opaqueToken.module}" is taking ${formattedTimeSpent}ms to serialize, this may be caused by larger objects statically assigned to the module. Consider changing the "moduleIdGeneratorAlgorithm" option to "reference" to improve the performance.`);
}
return this.hashString(opaqueTokenString);
}
getStringifiedOpaqueToken(opaqueToken) {
if (!opaqueToken) {
return "";
}
const tokenString = stringify(opaqueToken, this.replacer);
if (tokenString !== UNSERIALIZABLE) {
return tokenString;
}
return stringify(opaqueToken, (key, value) => value instanceof Map || value instanceof Set ? {} : this.replacer(key, value));
}
getModuleId(metatype) {
let moduleId = this.moduleIdsCache.get(metatype);
if (moduleId) {
return moduleId;
}
moduleId = randomStringGenerator();
this.moduleIdsCache.set(metatype, moduleId);
return moduleId;
}
getModuleName(metatype) {
return metatype.name;
}
hashString(value) {
return createHash2("sha256").update(value).digest("hex");
}
replacer(key, value) {
if (isFunction(value)) {
const funcAsString = value.toString();
const isClass = funcAsString.slice(0, CLASS_STR_LEN) === CLASS_STR;
if (isClass) {
return value.name;
}
return funcAsString;
}
if (isSymbol(value)) {
return value.toString();
}
if (value instanceof Map) {
return { Map: [...value] };
}
if (value instanceof Set) {
return { Set: [...value] };
}
if (value instanceof RegExp) {
return { RegExp: value.toString() };
}
return value;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/container.js
var NestContainer;
var init_container = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/container.js"() {
init_discoverable_meta_host_collection();
init_exceptions2();
init_initialize_on_preview_allowlist();
init_serialized_graph();
init_request_constants();
init_compiler();
init_internal_core_module();
init_internal_providers_storage();
init_module();
init_modules_container();
init_by_reference_module_opaque_key_factory();
init_deep_hashed_module_opaque_key_factory();
init_internal();
NestContainer = class {
static {
__name(this, "NestContainer");
}
_applicationConfig;
_contextOptions;
globalModules = /* @__PURE__ */ new Set();
modules = new ModulesContainer();
dynamicModulesMetadata = /* @__PURE__ */ new Map();
internalProvidersStorage = new InternalProvidersStorage();
_serializedGraph = new SerializedGraph();
moduleCompiler;
internalCoreModule;
constructor(_applicationConfig = void 0, _contextOptions = void 0) {
this._applicationConfig = _applicationConfig;
this._contextOptions = _contextOptions;
const moduleOpaqueKeyFactory = this._contextOptions?.moduleIdGeneratorAlgorithm === "deep-hash" ? new DeepHashedModuleOpaqueKeyFactory() : new ByReferenceModuleOpaqueKeyFactory({
keyGenerationStrategy: this._contextOptions?.snapshot ? "shallow" : "random"
});
this.moduleCompiler = new ModuleCompiler(moduleOpaqueKeyFactory);
}
get serializedGraph() {
return this._serializedGraph;
}
get applicationConfig() {
return this._applicationConfig;
}
get contextOptions() {
return this._contextOptions;
}
setHttpAdapter(httpAdapter) {
this.internalProvidersStorage.httpAdapter = httpAdapter;
if (!this.internalProvidersStorage.httpAdapterHost) {
return;
}
const host = this.internalProvidersStorage.httpAdapterHost;
host.httpAdapter = httpAdapter;
}
getHttpAdapterRef() {
return this.internalProvidersStorage.httpAdapter;
}
getHttpAdapterHostRef() {
return this.internalProvidersStorage.httpAdapterHost;
}
async addModule(metatype, scope) {
if (!metatype) {
throw new UndefinedForwardRefException(scope);
}
const { type, dynamicMetadata, token } = await this.moduleCompiler.compile(metatype);
if (this.modules.has(token)) {
return {
moduleRef: this.modules.get(token),
inserted: false
};
}
return {
moduleRef: await this.setModule({
token,
type,
dynamicMetadata
}, scope),
inserted: true
};
}
async replaceModule(metatypeToReplace, newMetatype, scope) {
if (!metatypeToReplace || !newMetatype) {
throw new UndefinedForwardRefException(scope);
}
const { token } = await this.moduleCompiler.compile(metatypeToReplace);
const { type, dynamicMetadata } = await this.moduleCompiler.compile(newMetatype);
return {
moduleRef: await this.setModule({
token,
type,
dynamicMetadata
}, scope),
inserted: true
};
}
async setModule({ token, dynamicMetadata, type }, scope) {
const moduleRef = new Module2(type, this);
moduleRef.token = token;
moduleRef.initOnPreview = this.shouldInitOnPreview(type);
this.modules.set(token, moduleRef);
const updatedScope = [].concat(scope, type);
await this.addDynamicMetadata(token, dynamicMetadata, updatedScope);
if (this.isGlobalModule(type, dynamicMetadata)) {
moduleRef.isGlobal = true;
moduleRef.distance = Number.MAX_VALUE;
this.addGlobalModule(moduleRef);
}
return moduleRef;
}
async addDynamicMetadata(token, dynamicModuleMetadata, scope) {
if (!dynamicModuleMetadata) {
return;
}
this.dynamicModulesMetadata.set(token, dynamicModuleMetadata);
const { imports } = dynamicModuleMetadata;
await this.addDynamicModules(imports, scope);
}
async addDynamicModules(modules, scope) {
if (!modules) {
return;
}
await Promise.all(modules.map((module) => this.addModule(module, scope)));
}
isGlobalModule(metatype, dynamicMetadata) {
if (dynamicMetadata && dynamicMetadata.global) {
return true;
}
return !!Reflect.getMetadata(GLOBAL_MODULE_METADATA, metatype);
}
addGlobalModule(module) {
this.globalModules.add(module);
}
getModules() {
return this.modules;
}
getModuleCompiler() {
return this.moduleCompiler;
}
getModuleByKey(moduleKey) {
return this.modules.get(moduleKey);
}
getInternalCoreModuleRef() {
return this.internalCoreModule;
}
async addImport(relatedModule, token) {
if (!this.modules.has(token)) {
return;
}
const moduleRef = this.modules.get(token);
const { token: relatedModuleToken } = await this.moduleCompiler.compile(relatedModule);
const related = this.modules.get(relatedModuleToken);
moduleRef.addImport(related);
}
addProvider(provider, token, enhancerSubtype) {
const moduleRef = this.modules.get(token);
if (!provider) {
throw new CircularDependencyException(moduleRef?.metatype.name);
}
if (!moduleRef) {
throw new UnknownModuleException();
}
const providerKey = moduleRef.addProvider(provider, enhancerSubtype);
const providerRef = moduleRef.getProviderByKey(providerKey);
DiscoverableMetaHostCollection.inspectProvider(this.modules, providerRef);
return providerKey;
}
addInjectable(injectable, token, enhancerSubtype, host) {
if (!this.modules.has(token)) {
throw new UnknownModuleException();
}
const moduleRef = this.modules.get(token);
return moduleRef.addInjectable(injectable, enhancerSubtype, host);
}
addExportedProviderOrModule(toExport, token) {
if (!this.modules.has(token)) {
throw new UnknownModuleException();
}
const moduleRef = this.modules.get(token);
if (isNil(toExport)) {
throw new CircularDependencyException(moduleRef.metatype.name);
}
moduleRef.addExportedProviderOrModule(toExport);
}
addController(controller, token) {
if (!this.modules.has(token)) {
throw new UnknownModuleException();
}
const moduleRef = this.modules.get(token);
if (isNil(controller)) {
throw new CircularDependencyException(moduleRef.metatype.name);
}
moduleRef.addController(controller);
const controllerRef = moduleRef.controllers.get(controller);
DiscoverableMetaHostCollection.inspectController(this.modules, controllerRef);
}
clear() {
this.modules.clear();
}
replace(toReplace, options) {
this.modules.forEach((moduleRef) => moduleRef.replace(toReplace, options));
}
bindGlobalScope() {
this.modules.forEach((moduleRef) => this.bindGlobalsToImports(moduleRef));
}
bindGlobalsToImports(moduleRef) {
this.globalModules.forEach((globalModule) => this.bindGlobalModuleToModule(moduleRef, globalModule));
}
bindGlobalModuleToModule(target, globalModule) {
if (target === globalModule || target === this.internalCoreModule) {
return;
}
target.addImport(globalModule);
}
getDynamicMetadataByToken(token, metadataKey) {
const metadata = this.dynamicModulesMetadata.get(token);
return metadataKey ? metadata?.[metadataKey] ?? [] : metadata;
}
registerCoreModuleRef(moduleRef) {
this.internalCoreModule = moduleRef;
this.modules[InternalCoreModule.name] = moduleRef;
}
getModuleTokenFactory() {
return this.moduleCompiler.moduleOpaqueKeyFactory;
}
registerRequestProvider(request, contextId) {
const wrapper = this.internalCoreModule.getProviderByKey(REQUEST);
wrapper.setInstanceByContextId(contextId, {
instance: request,
isResolved: true
});
}
shouldInitOnPreview(type) {
return InitializeOnPreviewAllowlist.has(type);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/index.js
var init_injector2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/index.js"() {
init_container();
init_inquirer();
init_lazy_module_loader();
init_module_ref();
init_modules_container();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/partial-graph.host.js
var PartialGraphHost;
var init_partial_graph_host = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/partial-graph.host.js"() {
PartialGraphHost = class {
static {
__name(this, "PartialGraphHost");
}
static partialGraph;
static toJSON() {
return this.partialGraph?.toJSON();
}
static toString() {
return this.partialGraph?.toString();
}
static register(partialGraph) {
this.partialGraph = partialGraph;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/graph-inspector.js
var GraphInspector;
var init_graph_inspector = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/graph-inspector.js"() {
init_unknown_dependencies_exception();
init_deterministic_uuid_registry();
init_partial_graph_host();
GraphInspector = class {
static {
__name(this, "GraphInspector");
}
container;
graph;
enhancersMetadataCache = new Array();
constructor(container) {
this.container = container;
this.graph = container.serializedGraph;
}
inspectModules(modules = this.container.getModules()) {
for (const moduleRef of modules.values()) {
this.insertModuleNode(moduleRef);
this.insertClassNodes(moduleRef);
this.insertModuleToModuleEdges(moduleRef);
}
this.enhancersMetadataCache.forEach((entry) => this.insertEnhancerEdge(entry));
DeterministicUuidRegistry.clear();
}
registerPartial(error) {
this.graph.status = "partial";
if (error instanceof UnknownDependenciesException) {
this.graph.metadata = {
cause: {
type: "unknown-dependencies",
context: error.context,
moduleId: error.moduleRef?.id,
nodeId: error.metadata?.id
}
};
} else {
this.graph.metadata = {
cause: {
type: "unknown",
error
}
};
}
PartialGraphHost.register(this.graph);
}
inspectInstanceWrapper(source, moduleRef) {
const ctorMetadata = source.getCtorMetadata();
ctorMetadata?.forEach((target, index) => this.insertClassToClassEdge(source, target, moduleRef, index, "constructor"));
const propertiesMetadata = source.getPropertiesMetadata();
propertiesMetadata?.forEach(({ key, wrapper: target }) => this.insertClassToClassEdge(source, target, moduleRef, key, "property"));
}
insertEnhancerMetadataCache(entry) {
this.enhancersMetadataCache.push(entry);
}
insertOrphanedEnhancer(entry) {
this.graph.insertOrphanedEnhancer({
...entry,
ref: entry.ref?.constructor?.name ?? "Object"
});
}
insertAttachedEnhancer(wrapper) {
const existingNode = this.graph.getNodeById(wrapper.id);
existingNode.metadata.global = true;
this.graph.insertAttachedEnhancer(existingNode.id);
}
insertEntrypointDefinition(definition, parentId) {
definition = {
...definition,
id: `${definition.classNodeId}_${definition.methodName}`
};
this.graph.insertEntrypoint(definition, parentId);
}
insertClassNode(moduleRef, wrapper, type) {
this.graph.insertNode({
id: wrapper.id,
label: wrapper.name,
parent: moduleRef.id,
metadata: {
type,
internal: wrapper.metatype === moduleRef.metatype,
sourceModuleName: moduleRef.name,
durable: wrapper.isDependencyTreeDurable(),
static: wrapper.isDependencyTreeStatic(),
scope: wrapper.scope,
transient: wrapper.isTransient,
exported: moduleRef.exports.has(wrapper.token),
token: wrapper.token,
subtype: wrapper.subtype,
initTime: wrapper.initTime
}
});
}
insertModuleNode(moduleRef) {
const dynamicMetadata = this.container.getDynamicMetadataByToken(moduleRef.token);
const node = {
id: moduleRef.id,
label: moduleRef.name,
metadata: {
type: "module",
global: moduleRef.isGlobal,
dynamic: !!dynamicMetadata,
internal: moduleRef.name === "InternalCoreModule"
}
};
this.graph.insertNode(node);
}
insertModuleToModuleEdges(moduleRef) {
for (const targetModuleRef of moduleRef.imports) {
this.graph.insertEdge({
source: moduleRef.id,
target: targetModuleRef.id,
metadata: {
type: "module-to-module",
sourceModuleName: moduleRef.name,
targetModuleName: targetModuleRef.name
}
});
}
}
insertEnhancerEdge(entry) {
const moduleRef = this.container.getModuleByKey(entry.moduleToken);
const sourceInstanceWrapper = moduleRef.controllers.get(entry.classRef) ?? moduleRef.providers.get(entry.classRef);
const existingSourceNode = this.graph.getNodeById(sourceInstanceWrapper.id);
const enhancers = existingSourceNode.metadata.enhancers ?? [];
if (entry.enhancerInstanceWrapper) {
this.insertClassToClassEdge(sourceInstanceWrapper, entry.enhancerInstanceWrapper, moduleRef, void 0, "decorator");
enhancers.push({
id: entry.enhancerInstanceWrapper.id,
methodKey: entry.methodKey,
subtype: entry.subtype
});
} else {
const name = entry.enhancerRef.constructor?.name ?? entry.enhancerRef.name;
enhancers.push({
name,
methodKey: entry.methodKey,
subtype: entry.subtype
});
}
existingSourceNode.metadata.enhancers = enhancers;
}
insertClassToClassEdge(source, target, moduleRef, keyOrIndex, injectionType) {
this.graph.insertEdge({
source: source.id,
target: target.id,
metadata: {
type: "class-to-class",
sourceModuleName: moduleRef.name,
sourceClassName: source.name,
targetClassName: target.name,
sourceClassToken: source.token,
targetClassToken: target.token,
targetModuleName: target.host?.name,
keyOrIndex,
injectionType
}
});
}
insertClassNodes(moduleRef) {
moduleRef.providers.forEach((value) => this.insertClassNode(moduleRef, value, "provider"));
moduleRef.injectables.forEach((value) => this.insertClassNode(moduleRef, value, "injectable"));
moduleRef.controllers.forEach((value) => this.insertClassNode(moduleRef, value, "controller"));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/index.js
var init_inspector = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/index.js"() {
init_graph_inspector();
init_initialize_on_preview_allowlist();
init_partial_graph_host();
init_serialized_graph();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/legacy-route-converter.js
var UNSUPPORTED_PATH_MESSAGE, LegacyRouteConverter;
var init_legacy_route_converter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/legacy-route-converter.js"() {
init_common();
UNSUPPORTED_PATH_MESSAGE = /* @__PURE__ */ __name((text, route) => `Unsupported route path: "${route}". In previous versions, the symbols ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/{*path}. The braces keep the wildcard optional, so it covers the same paths as /users/* did, while /users/*path is narrower and requires at least one extra segment. For more details, refer to the migration guide.`, "UNSUPPORTED_PATH_MESSAGE");
LegacyRouteConverter = class _LegacyRouteConverter {
static {
__name(this, "LegacyRouteConverter");
}
static logger = new Logger(_LegacyRouteConverter.name);
/**
* Convert legacy routes to the new format (syntax).
* path-to-regexp used by Express>=v5 and @fastify/middie>=v9 no longer support unnamed wildcards.
* This method attempts to convert the old syntax to the new one, and logs an error if it fails.
* @param route The route to convert.
* @param options Options object.
* @returns The converted route, or the original route if it cannot be converted.
*/
static tryConvert(route, options) {
const routeWithLeadingSlash = route.startsWith("/") ? route : `/${route}`;
const normalizedRoute = route.endsWith("/") ? routeWithLeadingSlash : `${routeWithLeadingSlash}/`;
const loggingEnabled = options?.logs ?? true;
const printWarning = loggingEnabled ? this.printWarning.bind(this) : () => {
};
if (normalizedRoute.endsWith("/(.*)/")) {
const convertedRoute = route.replace("(.*)", "{*path}");
if (normalizedRoute !== "/(.*)/") {
printWarning(route, convertedRoute);
}
return convertedRoute;
}
if (normalizedRoute.endsWith("/*/")) {
const convertedRoute = route.replace("*", "{*path}");
if (normalizedRoute !== "/*/") {
printWarning(route, convertedRoute);
}
return convertedRoute;
}
if (normalizedRoute.endsWith("/+/")) {
const convertedRoute = route.replace("/+", "/*path");
printWarning(route, convertedRoute);
return convertedRoute;
}
if (normalizedRoute.includes("/*/")) {
const convertedRoute = route.replaceAll(/\/\*(?=\/)/g, (match, offset) => `/*path${offset}`);
printWarning(route, convertedRoute);
return convertedRoute;
}
return route;
}
static printError(route) {
this.logger.error(UNSUPPORTED_PATH_MESSAGE`${route}`);
}
static printWarning(route, convertedRoute) {
const autoConvertMessage = convertedRoute ? ` Attempting to auto-convert to "${convertedRoute}"...` : " Attempting to auto-convert...";
this.logger.warn(UNSUPPORTED_PATH_MESSAGE`${route}` + autoConvertMessage);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/exclude-route.util.js
function isRouteExcluded(excludedRoutes, path, requestMethod) {
return excludedRoutes.some((route) => {
if (isRequestMethodAll(route.requestMethod) || route.requestMethod === requestMethod) {
return route.pathRegex.exec(addLeadingSlash(path));
}
return false;
});
}
var isRequestMethodAll;
var init_exclude_route_util = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/exclude-route.util.js"() {
init_common();
init_internal();
isRequestMethodAll = /* @__PURE__ */ __name((method) => {
return RequestMethod.ALL === method || method === -1;
}, "isRequestMethodAll");
__name(isRouteExcluded, "isRouteExcluded");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js
function flattenRoutePaths(routes) {
const result = [];
routes.forEach((item) => {
if (item.module && item.path) {
result.push({ module: item.module, path: item.path });
}
if (item.children) {
const childrenRef = item.children;
childrenRef.forEach((child) => {
if (!isString(child) && isString(child.path)) {
child.path = normalizePath(normalizePath(item.path) + normalizePath(child.path));
} else {
result.push({ path: item.path, module: child });
}
});
result.push(...flattenRoutePaths(childrenRef));
}
});
return result;
}
var init_flatten_route_paths_util = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/flatten-route-paths.util.js"() {
init_internal();
__name(flattenRoutePaths, "flattenRoutePaths");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/index.js
var init_utils = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/utils/index.js"() {
init_exclude_route_util();
init_flatten_route_paths_util();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/utils.js
function compileExcludedPath(path, matchingOptions) {
if (!matchingOptions) {
return (0, import_path_to_regexp.pathToRegexp)(addLeadingSlash(path)).regexp;
}
const routePath = path.length > 1 ? path.replace(/\/+$/, "") : path;
return (0, import_path_to_regexp.pathToRegexp)(addLeadingSlash(routePath) || "/", {
sensitive: matchingOptions.caseSensitive,
trailing: matchingOptions.ignoreTrailingSlash
}).regexp;
}
function isStaticPath(path) {
return !ROUTE_PATTERN_CHARS.test(path);
}
function isMiddlewareClass(middleware) {
const middlewareStr = middleware.toString();
if (middlewareStr.substring(0, 5) === "class") {
return true;
}
const middlewareArr = middlewareStr.split(" ");
return middlewareArr[0] === "function" && /[A-Z]/.test(middlewareArr[1]?.[0]) && isFunction(middleware.prototype?.use);
}
function assignToken(metatype, token = uid(21)) {
Object.defineProperty(metatype, "name", { value: token });
return metatype;
}
function isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash = false, versioningOptions) {
if (excludedRoutes.length <= 0) {
return false;
}
const reqMethod = httpAdapter.getRequestMethod(req);
const originalUrl = httpAdapter.getRequestUrl(req);
if (!originalUrl?.startsWith("/") || originalUrl.includes("#")) {
return false;
}
const queryParamsIndex = originalUrl.indexOf("?");
const pathname = queryParamsIndex >= 0 ? originalUrl.slice(0, queryParamsIndex) : originalUrl;
const isRequestForRoute = /* @__PURE__ */ __name((route, path) => isRouteExcluded([route], path, RequestMethod[reqMethod]) || reqMethod === RequestMethod[RequestMethod.HEAD] && isRouteExcluded([route], path, RequestMethod.GET), "isRequestForRoute");
const isVersionRequested = createRequestedVersionMatcher(req, versioningOptions);
const isExcluded = /* @__PURE__ */ __name((path) => excludedRoutes.some((route) => isRequestForRoute(route, path) && isVersionRequested(route)), "isExcluded");
if (ignoreTrailingSlash && pathname.length > 1 && pathname.endsWith("/")) {
return isExcluded(pathname) && isExcluded(pathname.replace(/\/+$/, ""));
}
return isExcluded(pathname);
}
function createRequestedVersionMatcher(request, versioningOptions) {
let requestedVersions;
return ({ version }) => {
if (!version || version === VERSION_NEUTRAL || !versioningOptions || versioningOptions.type === VersioningType.URI) {
return true;
}
if (requestedVersions === void 0) {
requestedVersions = getRequestedVersions(request, versioningOptions);
}
if (!requestedVersions) {
return false;
}
const versions = Array.isArray(version) ? version : [version];
return requestedVersions.length > 0 ? requestedVersions.every((requested) => versions.includes(requested)) : versions.includes(VERSION_NEUTRAL);
};
}
function getRequestedVersions(request, versioningOptions) {
const headers = request.headers ?? {};
let version;
switch (versioningOptions.type) {
case VersioningType.HEADER:
version = headers[versioningOptions.header] || headers[versioningOptions.header.toLowerCase()];
break;
case VersioningType.MEDIA_TYPE:
version = getMediaTypeVersion2(headers["Accept"] || headers["accept"], versioningOptions.key);
break;
case VersioningType.CUSTOM:
try {
version = versioningOptions.extractor(request);
} catch {
return null;
}
break;
}
return isUndefined(version) ? [] : [].concat(version);
}
function getMediaTypeVersion2(acceptHeader, key) {
const mediaRanges = [].concat(acceptHeader ?? []).flatMap((value) => value.split(","));
for (const mediaRange of mediaRanges) {
const [, ...parameters] = mediaRange.split(";");
for (const parameter of parameters) {
const trimmedParameter = parameter.trim();
if (trimmedParameter.startsWith(key)) {
return trimmedParameter.slice(key.length);
}
}
}
return void 0;
}
var import_iterare9, import_path_to_regexp, mapToExcludeRoute, EXACT_ROUTE_MATCHING, ROUTE_PATTERN_CHARS, filterMiddleware, mapToClass;
var init_utils2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/utils.js"() {
init_common();
import_iterare9 = __toESM(require_lib(), 1);
import_path_to_regexp = __toESM(require_dist2(), 1);
init_dist();
init_legacy_route_converter();
init_utils();
init_internal();
mapToExcludeRoute = /* @__PURE__ */ __name((routes, matchingOptions) => {
return routes.map((route) => {
const originalPath = isString(route) ? route : route.path;
const path = LegacyRouteConverter.tryConvert(originalPath);
try {
const pathRegex = compileExcludedPath(path, matchingOptions);
if (isString(route)) {
return {
path,
requestMethod: RequestMethod.ALL,
pathRegex
};
}
const excludedRoute = {
path,
requestMethod: route.method,
pathRegex
};
if (route.version) {
excludedRoute.version = route.version;
}
return excludedRoute;
} catch (e) {
if (e instanceof TypeError) {
LegacyRouteConverter.printError(originalPath);
}
throw e;
}
});
}, "mapToExcludeRoute");
__name(compileExcludedPath, "compileExcludedPath");
EXACT_ROUTE_MATCHING = {
caseSensitive: true,
ignoreTrailingSlash: false
};
ROUTE_PATTERN_CHARS = /[:*?+()[\]{}!\\$]/;
__name(isStaticPath, "isStaticPath");
filterMiddleware = /* @__PURE__ */ __name((middleware, routes, httpAdapter, versioningOptions) => {
const matchingOptions = httpAdapter.getRouteMatchingOptions?.() ?? EXACT_ROUTE_MATCHING;
const excludedRoutes = mapToExcludeRoute(routes, matchingOptions);
return (0, import_iterare9.iterate)([]).concat(middleware).filter(isFunction).map((item) => mapToClass(item, excludedRoutes, httpAdapter, matchingOptions.ignoreTrailingSlash, versioningOptions)).toArray();
}, "filterMiddleware");
mapToClass = /* @__PURE__ */ __name((middleware, excludedRoutes, httpAdapter, ignoreTrailingSlash = false, versioningOptions) => {
if (isMiddlewareClass(middleware)) {
if (excludedRoutes.length <= 0) {
return middleware;
}
const MiddlewareHost = class extends middleware {
static {
__name(this, "MiddlewareHost");
}
use(...params) {
const [req, _, next] = params;
const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash, versioningOptions);
if (isExcluded) {
return next();
}
return super.use(...params);
}
};
return assignToken(MiddlewareHost, middleware.name);
}
return assignToken(class {
use = /* @__PURE__ */ __name((...params) => {
const [req, _, next] = params;
const isExcluded = isMiddlewareRouteExcluded(req, excludedRoutes, httpAdapter, ignoreTrailingSlash, versioningOptions);
if (isExcluded) {
return next();
}
return middleware(...params);
}, "use");
});
}, "mapToClass");
__name(isMiddlewareClass, "isMiddlewareClass");
__name(assignToken, "assignToken");
__name(isMiddlewareRouteExcluded, "isMiddlewareRouteExcluded");
__name(createRequestedVersionMatcher, "createRequestedVersionMatcher");
__name(getRequestedVersions, "getRequestedVersions");
__name(getMediaTypeVersion2, "getMediaTypeVersion");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/builder.js
var import_iterare10, import_path_to_regexp2, MiddlewareBuilder;
var init_builder = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/builder.js"() {
import_iterare10 = __toESM(require_lib(), 1);
import_path_to_regexp2 = __toESM(require_dist2(), 1);
init_legacy_route_converter();
init_utils2();
MiddlewareBuilder = class _MiddlewareBuilder {
static {
__name(this, "MiddlewareBuilder");
}
routesMapper;
httpAdapter;
routeInfoPathExtractor;
middlewareCollection = /* @__PURE__ */ new Set();
constructor(routesMapper, httpAdapter, routeInfoPathExtractor) {
this.routesMapper = routesMapper;
this.httpAdapter = httpAdapter;
this.routeInfoPathExtractor = routeInfoPathExtractor;
}
apply(...middleware) {
return new _MiddlewareBuilder.ConfigProxy(this, middleware.flat(), this.routeInfoPathExtractor);
}
build() {
return [...this.middlewareCollection];
}
getHttpAdapter() {
return this.httpAdapter;
}
static ConfigProxy = class {
static {
__name(this, "ConfigProxy");
}
builder;
middleware;
routeInfoPathExtractor;
excludedRoutes = [];
constructor(builder, middleware, routeInfoPathExtractor) {
this.builder = builder;
this.middleware = middleware;
this.routeInfoPathExtractor = routeInfoPathExtractor;
}
getExcludedRoutes() {
return this.excludedRoutes;
}
exclude(...routes) {
this.excludedRoutes = [
...this.excludedRoutes,
...this.getRoutesFlatList(routes).reduce((excludedRoutes, route) => {
for (const routePath of this.routeInfoPathExtractor.extractPathFrom(route)) {
excludedRoutes.push({
...route,
path: routePath
});
}
return excludedRoutes;
}, [])
];
return this;
}
forRoutes(...routes) {
const { middlewareCollection } = this.builder;
const flattedRoutes = this.getRoutesFlatList(routes);
const forRoutes = this.removeOverlappedRoutes(this.addCoveredExcludedRoutes(flattedRoutes));
const configuration = {
middleware: filterMiddleware(this.middleware, this.excludedRoutes, this.builder.getHttpAdapter(), this.routeInfoPathExtractor.getVersioningOptions()),
forRoutes
};
middlewareCollection.add(configuration);
return this.builder;
}
getRoutesFlatList(routes) {
const { routesMapper } = this.builder;
return (0, import_iterare10.iterate)(routes).map((route) => routesMapper.mapRouteToRouteInfo(route)).flatten().toArray();
}
/**
* Adds the routes excluded from the global prefix that a route covers
* without being excluded itself (e.g. "users/me" for "users/:id"): the
* router serves them outside of the prefix the route is mounted under.
*/
addCoveredExcludedRoutes(routes) {
const allRoutes = [...routes];
for (const route of routes) {
for (const excludedRoute of this.routeInfoPathExtractor.extractExcludedRoutesCoveredBy(route)) {
const isListed = allRoutes.some((item) => item.path === excludedRoute.path && item.method === excludedRoute.method && item.version === excludedRoute.version);
if (!isListed) {
allRoutes.push(excludedRoute);
}
}
}
return allRoutes;
}
/**
* Removes the routes that a parameterized route of the same method is
* mounted on as well (e.g. "/users/me" next to "/users/:id"), so that
* the middleware runs once for them. Only a route without parameters or
* wildcards is removed, and only when the parameterized route matches
* every path it would be mounted on (global prefix and version included).
*/
removeOverlappedRoutes(routes) {
const routesWithRegex = routes.filter((route) => route.path.includes(":")).map((route) => ({
method: route.method,
regexes: this.compileMountPaths(route)
}));
return routes.filter((route) => {
const mountPaths = this.routeInfoPathExtractor.extractPathsFrom(route);
if (!mountPaths.every(isStaticPath)) {
return true;
}
const isOverlapped = /* @__PURE__ */ __name((item) => route.method === item.method && mountPaths.every((path) => item.regexes.some((regex) => regex.test(path))), "isOverlapped");
return !routesWithRegex.some(isOverlapped);
});
}
compileMountPaths(route) {
try {
return this.routeInfoPathExtractor.extractPathsFrom(route).map((path) => (0, import_path_to_regexp2.pathToRegexp)(LegacyRouteConverter.tryConvert(path.replace(/\$$/, ""), {
logs: false
}), { sensitive: true }).regexp);
} catch {
return [];
}
}
};
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/index.js
var init_middleware = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/index.js"() {
init_builder();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/cookie-signer.js
import { createHmac, timingSafeEqual } from "crypto";
var SIGNED_COOKIE_PREFIX, CookieSigner;
var init_cookie_signer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/cookie-signer.js"() {
SIGNED_COOKIE_PREFIX = "s:";
CookieSigner = class {
static {
__name(this, "CookieSigner");
}
secrets;
constructor(secret) {
const secrets = Array.isArray(secret) ? secret : [secret];
if (secrets.length === 0 || secrets.some((item) => typeof item !== "string" || item.length === 0)) {
throw new TypeError('The "cookies.secret" option must be a non-empty string or a non-empty array of non-empty strings.');
}
this.secrets = [...secrets];
}
/**
* Returns `s:<value>.<signature>`, signed with the first secret.
*/
sign(value) {
return `${SIGNED_COOKIE_PREFIX}${value}.${this.digest(value, this.secrets[0])}`;
}
/**
* Returns the original value when `input` carries a valid signature for
* any of the secrets, `undefined` otherwise. The `s:` prefix is optional.
*/
unsign(input) {
if (typeof input !== "string") {
return void 0;
}
const signed = input.startsWith(SIGNED_COOKIE_PREFIX) ? input.slice(SIGNED_COOKIE_PREFIX.length) : input;
const dotIndex = signed.lastIndexOf(".");
if (dotIndex === -1) {
return void 0;
}
const value = signed.slice(0, dotIndex);
const signature = Buffer.from(signed.slice(dotIndex + 1));
let valid = false;
for (const secret of this.secrets) {
const expected = Buffer.from(this.digest(value, secret));
if (expected.length === signature.length && timingSafeEqual(expected, signature)) {
valid = true;
}
}
return valid ? value : void 0;
}
digest(value, secret) {
return createHmac("sha256", secret).update(value).digest("base64").replace(/=+$/, "");
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/optional-require.js
async function optionalRequire(packageName, loaderFn) {
try {
return loaderFn ? await loaderFn() : await import(packageName);
} catch (e) {
return {};
}
}
var init_optional_require = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/optional-require.js"() {
__name(optionalRequire, "optionalRequire");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/container.js
var MiddlewareContainer;
var init_container2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/container.js"() {
init_get_class_scope();
init_is_durable();
init_instance_wrapper();
MiddlewareContainer = class {
static {
__name(this, "MiddlewareContainer");
}
container;
middleware = /* @__PURE__ */ new Map();
configurationSets = /* @__PURE__ */ new Map();
constructor(container) {
this.container = container;
}
getMiddlewareCollection(moduleKey) {
if (!this.middleware.has(moduleKey)) {
const moduleRef = this.container.getModuleByKey(moduleKey);
this.middleware.set(moduleKey, moduleRef.middlewares);
}
return this.middleware.get(moduleKey);
}
getConfigurations() {
return this.configurationSets;
}
insertConfig(configList, moduleKey) {
const middleware = this.getMiddlewareCollection(moduleKey);
const targetConfig = this.getTargetConfig(moduleKey);
const configurations = configList || [];
const insertMiddleware = /* @__PURE__ */ __name((metatype) => {
const token = metatype;
middleware.set(token, new InstanceWrapper({
scope: getClassScope(metatype),
durable: isDurable(metatype),
name: token?.name ?? token,
metatype,
token
}));
}, "insertMiddleware");
configurations.forEach((config) => {
[].concat(config.middleware).map(insertMiddleware);
targetConfig.add(config);
});
}
getTargetConfig(moduleName) {
if (!this.configurationSets.has(moduleName)) {
this.configurationSets.set(moduleName, /* @__PURE__ */ new Set());
}
return this.configurationSets.get(moduleName);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js
var InvalidMiddlewareException;
var init_invalid_middleware_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-middleware.exception.js"() {
init_messages();
init_runtime_exception();
InvalidMiddlewareException = class extends RuntimeException {
static {
__name(this, "InvalidMiddlewareException");
}
constructor(name) {
super(INVALID_MIDDLEWARE_MESSAGE`${name}`);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/exceptions-handler.js
var import_rxjs6, ExceptionsHandler;
var init_exceptions_handler = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/exceptions/exceptions-handler.js"() {
import_rxjs6 = __toESM(require_cjs(), 1);
init_invalid_exception_filter_exception();
init_base_exception_filter();
init_internal();
ExceptionsHandler = class extends BaseExceptionFilter {
static {
__name(this, "ExceptionsHandler");
}
filters = [];
next(exception, ctx) {
if (this.invokeCustomFilters(exception, ctx)) {
return;
}
super.catch(exception, ctx);
}
setCustomFilters(filters) {
if (!Array.isArray(filters)) {
throw new InvalidExceptionFilterException();
}
this.filters = filters;
}
invokeCustomFilters(exception, ctx) {
if (isEmptyArray(this.filters)) {
return false;
}
const filter = selectExceptionFilterMetadata(this.filters, exception);
if (!filter) {
return false;
}
const result = filter.func(exception, ctx);
if ((0, import_rxjs6.isObservable)(result)) {
return !!this.applicationRef?.isHeadersSent(ctx.getArgByIndex(1));
}
return true;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-exception-filters.js
var import_iterare11, RouterExceptionFilters;
var init_router_exception_filters = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-exception-filters.js"() {
init_common();
import_iterare11 = __toESM(require_lib(), 1);
init_base_exception_filter_context();
init_exceptions_handler();
init_constants3();
init_internal();
RouterExceptionFilters = class _RouterExceptionFilters extends BaseExceptionFilterContext {
static {
__name(this, "RouterExceptionFilters");
}
config;
applicationRef;
static logger = new Logger(_RouterExceptionFilters.name);
// Applications already warned about their request-scoped or transient
// global filters (see "getGlobalMetadata()")
static warnedConfigs = /* @__PURE__ */ new WeakSet();
constructor(container, config, applicationRef) {
super(container);
this.config = config;
this.applicationRef = applicationRef;
}
create(instance, callback, moduleKey, contextId = STATIC_CONTEXT, inquirerId) {
this.moduleContext = moduleKey;
const exceptionHandler = new ExceptionsHandler(this.applicationRef);
const filters = this.createContext(instance, callback, EXCEPTION_FILTERS_METADATA, contextId, inquirerId);
if (isEmptyArray(filters)) {
return exceptionHandler;
}
exceptionHandler.setCustomFilters(filters.reverse());
return exceptionHandler;
}
getGlobalMetadata(contextId = STATIC_CONTEXT, inquirerId) {
const globalFilters = this.config.getGlobalFilters();
if (contextId === STATIC_CONTEXT && !inquirerId) {
this.warnAboutScopedGlobalFilters();
return globalFilters;
}
const scopedFilterWrappers = this.config.getGlobalRequestFilters();
const scopedFilters = (0, import_iterare11.iterate)(scopedFilterWrappers).map((wrapper) => wrapper.getInstanceByContextId(this.getContextId(contextId, wrapper), inquirerId)).filter((host) => !!host).map((host) => host.instance).toArray();
return globalFilters.concat(scopedFilters);
}
/**
* Handlers that are not built for a controller (middleware, the "not found"
* handler, the exception layer) have no request to resolve request-scoped
* or transient global filters for, so these filters are left out.
*/
warnAboutScopedGlobalFilters() {
if (isEmptyArray(this.config.getGlobalRequestFilters()) || _RouterExceptionFilters.warnedConfigs.has(this.config)) {
return;
}
_RouterExceptionFilters.warnedConfigs.add(this.config);
_RouterExceptionFilters.logger.warn("Global exception filters (APP_FILTER) with request or transient scope are not applied to exceptions thrown outside of controllers, e.g. in middleware, for unknown routes or while parsing the request body. Register a global filter without a scope as well to handle them.");
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-proxy.js
var RouterProxy;
var init_router_proxy = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-proxy.js"() {
init_execution_context_host();
RouterProxy = class {
static {
__name(this, "RouterProxy");
}
createProxy(targetCallback, exceptionsHandler) {
return async (req, res, next) => {
try {
await targetCallback(req, res, next);
} catch (e) {
const host = new ExecutionContextHost([req, res, next]);
exceptionsHandler.next(e, host);
return res;
}
};
}
createExceptionLayerProxy(targetCallback, exceptionsHandler) {
return async (err, req, res, next) => {
try {
await targetCallback(err, req, res, next);
} catch (e) {
const host = new ExecutionContextHost([req, res, next]);
exceptionsHandler.next(e, host);
return res;
}
};
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/resolver.js
var MiddlewareResolver;
var init_resolver = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/resolver.js"() {
MiddlewareResolver = class {
static {
__name(this, "MiddlewareResolver");
}
middlewareContainer;
injector;
constructor(middlewareContainer, injector) {
this.middlewareContainer = middlewareContainer;
this.injector = injector;
}
async resolveInstances(moduleRef, moduleName) {
const middlewareMap = this.middlewareContainer.getMiddlewareCollection(moduleName);
const resolveInstance = /* @__PURE__ */ __name(async (wrapper) => this.resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef), "resolveInstance");
await Promise.all([...middlewareMap.values()].map(resolveInstance));
}
async resolveMiddlewareInstance(wrapper, middlewareMap, moduleRef) {
await this.injector.loadMiddleware(wrapper, middlewareMap, moduleRef);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-path-factory.js
var RoutePathFactory;
var init_route_path_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-path-factory.js"() {
init_common();
init_utils();
init_internal();
RoutePathFactory = class {
static {
__name(this, "RoutePathFactory");
}
applicationConfig;
/**
* URI version prefixes (`/v1`, or `''` for an unversioned route) under
* which each global prefix exclusion was matched by a created route.
*/
excludedRouteVersionPrefixes = /* @__PURE__ */ new Map();
constructor(applicationConfig) {
this.applicationConfig = applicationConfig;
}
create(metadata, requestMethod) {
let paths = [""];
const versionOrVersions = this.getVersion(metadata);
if (versionOrVersions && metadata.versioningOptions?.type === VersioningType.URI) {
const versionPrefix = this.getVersionPrefix(metadata.versioningOptions);
if (Array.isArray(versionOrVersions)) {
paths = flatten(paths.map((path) => versionOrVersions.map((version) => (
// Version Neutral - Do not include version in URL
version === VERSION_NEUTRAL ? path : `${path}/${versionPrefix}${version}`
))));
} else {
if (versionOrVersions !== VERSION_NEUTRAL) {
paths = paths.map((path) => `${path}/${versionPrefix}${versionOrVersions}`);
}
}
}
paths = this.appendToAllIfDefined(paths, metadata.modulePath);
paths = this.appendToAllIfDefined(paths, metadata.ctrlPath);
paths = this.appendToAllIfDefined(paths, metadata.methodPath);
if (metadata.globalPrefix) {
paths = paths.map((path) => {
if (this.isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, metadata.versioningOptions)) {
this.trackExcludedRoute(path, requestMethod, versionOrVersions, metadata.versioningOptions);
return path;
}
return stripEndSlash(metadata.globalPrefix || "") + path;
});
}
return paths.map((path) => addLeadingSlash(path || "/")).map((path) => path !== "/" ? stripEndSlash(path) : path);
}
getVersion(metadata) {
return metadata.methodVersion || metadata.controllerVersion;
}
getVersionPrefix(versioningOptions) {
const defaultPrefix = "v";
if (versioningOptions.type === VersioningType.URI) {
if (versioningOptions.prefix === false) {
return "";
} else if (versioningOptions.prefix !== void 0) {
return versioningOptions.prefix;
}
}
return defaultPrefix;
}
appendToAllIfDefined(paths, fragmentToAppend) {
if (!fragmentToAppend) {
return paths;
}
const concatPaths = /* @__PURE__ */ __name((a, b) => stripEndSlash(a) + addLeadingSlash(b), "concatPaths");
if (Array.isArray(fragmentToAppend)) {
const paths2dArray = paths.map((path) => fragmentToAppend.map((fragment) => concatPaths(path, fragment)));
return flatten(paths2dArray);
}
return paths.map((path) => concatPaths(path, fragmentToAppend));
}
isExcludedFromGlobalPrefix(path, requestMethod, versionOrVersions, versioningOptions) {
if (isUndefined(requestMethod)) {
return false;
}
const options = this.applicationConfig.getGlobalPrefixOptions();
const excludedRoutes = options.exclude;
const versionPrefix = this.getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions);
return Array.isArray(excludedRoutes) && isRouteExcluded(excludedRoutes, path.slice(versionPrefix.length), requestMethod);
}
/**
* Returns the global prefix exclusions as the paths routes are actually
* served at. Under URI versioning an exclusion such as `hello` matches the
* unversioned path, while the route lives at `/v1/hello`, so every version
* prefix a matching route was created under is prepended. An exclusion no
* created route matched (e.g. a raw route registered by a library) is kept
* as configured.
*/
getExcludedRoutePaths() {
const excludedRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude ?? [];
return excludedRoutes.flatMap((route) => {
const versionPrefixes = this.excludedRouteVersionPrefixes.get(route) ?? [
""
];
return [...versionPrefixes].map((versionPrefix) => ({
path: versionPrefix ? versionPrefix + addLeadingSlash(route.path) : route.path,
method: route.requestMethod
}));
});
}
trackExcludedRoute(path, requestMethod, versionOrVersions, versioningOptions) {
if (!versioningOptions && this.applicationConfig.getVersioning()) {
return;
}
const versionPrefix = this.getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions);
const unversionedPath = path.slice(versionPrefix.length);
const excludedRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude ?? [];
excludedRoutes.filter((route) => isRouteExcluded([route], unversionedPath, requestMethod)).forEach((route) => {
const versionPrefixes = this.excludedRouteVersionPrefixes.get(route) ?? /* @__PURE__ */ new Set();
versionPrefixes.add(versionPrefix);
this.excludedRouteVersionPrefixes.set(route, versionPrefixes);
});
}
getUriVersionPrefixOfPath(path, versionOrVersions, versioningOptions) {
if (!versionOrVersions || versionOrVersions === VERSION_NEUTRAL || versioningOptions?.type !== VersioningType.URI) {
return "";
}
const versions = Array.isArray(versionOrVersions) ? versionOrVersions : [versionOrVersions];
const versionPrefix = this.getVersionPrefix(versioningOptions);
for (const version of versions) {
if (typeof version !== "string") {
continue;
}
const prefix = `/${versionPrefix}${version}`;
if (path === prefix || path.startsWith(`${prefix}/`)) {
return prefix;
}
}
return "";
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/route-info-path-extractor.js
var import_path_to_regexp3, RouteInfoPathExtractor;
var init_route_info_path_extractor = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/route-info-path-extractor.js"() {
init_common();
import_path_to_regexp3 = __toESM(require_dist2(), 1);
init_legacy_route_converter();
init_utils();
init_route_path_factory();
init_utils2();
init_internal();
RouteInfoPathExtractor = class {
static {
__name(this, "RouteInfoPathExtractor");
}
applicationConfig;
routePathFactory;
prefixPath;
excludedGlobalPrefixRoutes;
versioningConfig;
constructor(applicationConfig) {
this.applicationConfig = applicationConfig;
this.routePathFactory = new RoutePathFactory(applicationConfig);
this.prefixPath = stripEndSlash(addLeadingSlash(this.applicationConfig.getGlobalPrefix()));
this.excludedGlobalPrefixRoutes = this.applicationConfig.getGlobalPrefixOptions().exclude;
this.versioningConfig = this.applicationConfig.getVersioning();
}
extractPathsFrom({ path, method, version = this.getVersionOfUnversionedRoutes() }) {
const versionPaths = this.extractVersionPathFrom(version);
if (this.isAWildcard(path)) {
const wildcardVersionPaths = versionPaths.includes("") ? [] : versionPaths;
const entries = wildcardVersionPaths.length > 0 ? wildcardVersionPaths.map((versionPath) => [
this.prefixPath + versionPath + "$",
this.prefixPath + versionPath + addLeadingSlash(path)
]).flat() : this.prefixPath ? [this.prefixPath + "$", this.prefixPath + addLeadingSlash(path)] : [addLeadingSlash(path)];
return Array.isArray(this.excludedGlobalPrefixRoutes) ? [
...entries,
...this.excludedGlobalPrefixRoutes.flatMap((route) => this.getPathsOfExcludedRoute(route)).flatMap((excludedPath) => versionPaths.length > 0 ? versionPaths.map((v) => v + excludedPath) : [excludedPath])
] : entries;
}
return this.extractNonWildcardPathsFrom({ path, method, version });
}
/**
* Returns the routes excluded from the global prefix that the route covers
* without being excluded itself: the router serves them without the
* prefix, out of the reach of the paths the route is mounted on. These are
* the excluded routes without parameters or wildcards that the route
* matches, such as "users/me" for "users/:id" (or a `GET` exclusion for a
* route of every method), and the root route of a controller at the
* route's own path, which an exclusion ending in an optional segment such
* as "reports/{*path}" takes out of the prefix (see
* `isExcludedWithTrailingSlash()`).
*/
extractExcludedRoutesCoveredBy({ path, method, version }) {
if (!Array.isArray(this.excludedGlobalPrefixRoutes) || this.isAWildcard(path) || isRouteExcluded(this.excludedGlobalPrefixRoutes, path, method)) {
return [];
}
let routeRegex;
try {
routeRegex = (0, import_path_to_regexp3.pathToRegexp)(LegacyRouteConverter.tryConvert(addLeadingSlash(path), { logs: false })).regexp;
} catch {
return [];
}
return this.excludedGlobalPrefixRoutes.flatMap((excludedRoute) => {
const excludedPath = addLeadingSlash(excludedRoute.path);
const excludedMethod = isRequestMethodAll(excludedRoute.requestMethod) ? method : excludedRoute.requestMethod;
if (!(isRequestMethodAll(method) || method === excludedMethod)) {
return [];
}
const coveredPath = isStaticPath(excludedPath) && routeRegex.test(excludedPath) ? excludedPath : this.isExcludedWithTrailingSlash(excludedRoute, path) ? stripEndSlash(addLeadingSlash(path)) + "/" : void 0;
if (!coveredPath) {
return [];
}
const routeInfo = {
path: coveredPath,
method: excludedMethod
};
if (version) {
routeInfo.version = version;
}
return [routeInfo];
});
}
/**
* Returns the paths the router serves a route excluded from the global
* prefix at: those of its pattern and, for a pattern ending in an optional
* segment such as "reports/{*path}", the parent path ("/reports") (see
* `isExcludedWithTrailingSlash()`).
*/
getPathsOfExcludedRoute(route) {
const excludedPath = addLeadingSlash(route.path);
const parentPath = excludedPath.slice(0, excludedPath.lastIndexOf("/"));
return this.isExcludedWithTrailingSlash(route, parentPath) ? [excludedPath, parentPath] : [excludedPath];
}
/**
* Tells whether the exclusion takes a route at the path out of the global
* prefix only through a trailing slash: the router tests the root route of
* a controller with one ("/reports/"), which an exclusion ending in an
* optional segment matches ("reports/{*path}"), and serves it at
* "/reports", which the exclusion does not match.
*/
isExcludedWithTrailingSlash({ pathRegex }, path) {
const pathWithoutSlash = stripEndSlash(addLeadingSlash(path));
return pathWithoutSlash !== "" && pathRegex.test(pathWithoutSlash + "/") && !pathRegex.test(pathWithoutSlash);
}
getVersioningOptions() {
return this.versioningConfig;
}
extractPathFrom(route) {
if (this.isAWildcard(route.path) && !route.version) {
return [addLeadingSlash(route.path)];
}
return this.extractNonWildcardPathsFrom(route);
}
isAWildcard(path) {
const isSimpleWildcard = ["*", "/*", "/*/", "(.*)", "/(.*)"];
if (isSimpleWildcard.includes(path)) {
return true;
}
const wildcardRegexp = /^\/\{.*\}.*|^\/\*.*$/;
return wildcardRegexp.test(path);
}
extractNonWildcardPathsFrom({ path, method, version }) {
const versionPaths = this.extractVersionPathFrom(version);
if (Array.isArray(this.excludedGlobalPrefixRoutes) && isRouteExcluded(this.excludedGlobalPrefixRoutes, path, method)) {
if (!versionPaths.length) {
return [addLeadingSlash(path)];
}
return versionPaths.map((versionPath) => versionPath + addLeadingSlash(path));
}
if (!versionPaths.length) {
return [this.prefixPath + addLeadingSlash(path)];
}
return versionPaths.map((versionPath) => this.prefixPath + versionPath + addLeadingSlash(path));
}
/**
* Returns the versions a route given without a version (e.g.
* `forRoutes('cats')`) may be served under: no version, as for a
* version-neutral controller, and the default version, under which
* controllers without a version are served.
*/
getVersionOfUnversionedRoutes() {
if (this.versioningConfig?.type !== VersioningType.URI) {
return;
}
const { defaultVersion } = this.versioningConfig;
if (!defaultVersion) {
return;
}
const versions = /* @__PURE__ */ new Set([
VERSION_NEUTRAL
]);
if (Array.isArray(defaultVersion)) {
defaultVersion.forEach((version) => versions.add(version));
} else {
versions.add(defaultVersion);
}
return [...versions];
}
extractVersionPathFrom(versionValue) {
if (!versionValue || this.versioningConfig?.type !== VersioningType.URI)
return [];
const versionPrefix = this.routePathFactory.getVersionPrefix(this.versioningConfig);
const toVersionPath = /* @__PURE__ */ __name((version) => version === VERSION_NEUTRAL ? "" : addLeadingSlash(versionPrefix + version), "toVersionPath");
if (Array.isArray(versionValue)) {
return versionValue.map(toVersionPath);
}
return [toVersionPath(versionValue)];
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/paths-explorer.js
var PathsExplorer;
var init_paths_explorer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/paths-explorer.js"() {
init_internal();
PathsExplorer = class {
static {
__name(this, "PathsExplorer");
}
metadataScanner;
constructor(metadataScanner) {
this.metadataScanner = metadataScanner;
}
scanForPaths(instance, prototype) {
const instancePrototype = isUndefined(prototype) ? Object.getPrototypeOf(instance) : prototype;
return this.metadataScanner.getAllMethodNames(instancePrototype).reduce((acc, method) => {
const route = this.exploreMethodMetadata(instance, instancePrototype, method);
if (route) {
acc.push(route);
}
return acc;
}, []);
}
exploreMethodMetadata(instance, prototype, methodName) {
const instanceCallback = instance[methodName];
const prototypeCallback = prototype[methodName];
const routePath = Reflect.getMetadata(PATH_METADATA, prototypeCallback);
if (isUndefined(routePath)) {
return null;
}
const requestMethod = Reflect.getMetadata(METHOD_METADATA, prototypeCallback);
const version = Reflect.getMetadata(VERSION_METADATA, prototypeCallback);
const path = isString(routePath) ? [addLeadingSlash(routePath)] : routePath.map((p) => addLeadingSlash(p));
return {
path,
requestMethod,
targetCallback: instanceCallback,
methodName,
version
};
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/routes-mapper.js
var RoutesMapper;
var init_routes_mapper = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/routes-mapper.js"() {
init_metadata_scanner();
init_paths_explorer();
init_internal();
RoutesMapper = class {
static {
__name(this, "RoutesMapper");
}
container;
applicationConfig;
pathsExplorer;
constructor(container, applicationConfig) {
this.container = container;
this.applicationConfig = applicationConfig;
this.pathsExplorer = new PathsExplorer(new MetadataScanner());
}
mapRouteToRouteInfo(controllerOrRoute) {
if (isString(controllerOrRoute)) {
return this.getRouteInfoFromPath(controllerOrRoute);
}
const routePathOrPaths = this.getRoutePath(controllerOrRoute);
if (this.isRouteInfo(routePathOrPaths, controllerOrRoute)) {
return this.getRouteInfoFromObject(controllerOrRoute);
}
return this.getRouteInfoFromController(controllerOrRoute, routePathOrPaths);
}
getRouteInfoFromPath(routePath) {
const defaultRequestMethod = -1;
return [
{
path: addLeadingSlash(routePath),
method: defaultRequestMethod
}
];
}
getRouteInfoFromObject(routeInfoObject) {
const routeInfo = {
path: addLeadingSlash(routeInfoObject.path),
method: routeInfoObject.method
};
if (routeInfoObject.version) {
routeInfo.version = routeInfoObject.version;
}
return [routeInfo];
}
getRouteInfoFromController(controller, routePath) {
const controllerPaths = this.pathsExplorer.scanForPaths(Object.create(controller), controller.prototype);
const controllerVersion = this.getVersionMetadata(controller);
const versioningConfig = this.applicationConfig.getVersioning();
const modulePaths = this.getModulePathsOfController(controller);
const concatPaths = /* @__PURE__ */ __name((acc, currentValue) => acc.concat(currentValue), "concatPaths");
const toRouteInfo2 = /* @__PURE__ */ __name((item, prefix, modulePath) => item.path?.flatMap((p) => {
const endpointPath = modulePath + stripEndSlash(this.normalizeGlobalPath(prefix)) + addLeadingSlash(p);
const routeInfo = {
path: endpointPath,
method: item.requestMethod
};
const version = item.version ?? controllerVersion;
if (version && versioningConfig) {
if (typeof version !== "string" && Array.isArray(version)) {
return version.map((v) => ({
...routeInfo,
version: v
}));
}
routeInfo.version = version;
}
return routeInfo;
}), "toRouteInfo");
return [].concat(routePath).flatMap((routePath2) => modulePaths.map((modulePath) => controllerPaths.map((item) => toRouteInfo2(item, routePath2, modulePath)).reduce(concatPaths, []))).reduce(concatPaths, []);
}
isRouteInfo(path, objectOrClass) {
return isUndefined(path);
}
normalizeGlobalPath(path) {
const prefix = addLeadingSlash(path);
return prefix === "/" ? "" : prefix;
}
getRoutePath(route) {
return Reflect.getMetadata(PATH_METADATA, route);
}
/**
* Returns the paths the controller is served under: the router registers it
* once for each module that declares it, under the path of that module.
*/
getModulePathsOfController(metatype) {
const modulePaths = this.getHostModulesOfController(metatype).map((moduleRef) => stripEndSlash(this.getModulePath(moduleRef.metatype) ?? ""));
return modulePaths.length > 0 ? [...new Set(modulePaths)] : [""];
}
getHostModulesOfController(metatype) {
if (!metatype) {
return [];
}
const modulesContainer = this.container.getModules();
return Array.from(modulesContainer.values()).filter(({ controllers }) => controllers.has(metatype));
}
getModulePath(metatype) {
if (!metatype) {
return;
}
const modulesContainer = this.container.getModules();
const modulePath = Reflect.getMetadata(MODULE_PATH + modulesContainer.applicationId, metatype);
return modulePath ?? Reflect.getMetadata(MODULE_PATH, metatype);
}
getVersionMetadata(metatype) {
const versioningConfig = this.applicationConfig.getVersioning();
if (versioningConfig) {
return Reflect.getMetadata(VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion;
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/middleware-module.js
var MiddlewareModule;
var init_middleware_module = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/middleware/middleware-module.js"() {
init_common();
init_invalid_middleware_exception();
init_runtime_exception();
init_context_id_factory();
init_execution_context_host();
init_constants3();
init_request_constants();
init_router_exception_filters();
init_router_proxy();
init_utils();
init_builder();
init_resolver();
init_route_info_path_extractor();
init_routes_mapper();
init_common();
init_internal();
MiddlewareModule = class _MiddlewareModule {
static {
__name(this, "MiddlewareModule");
}
routerProxy = new RouterProxy();
logger = new Logger(_MiddlewareModule.name);
injector;
routerExceptionFilter;
routesMapper;
resolver;
container;
httpAdapter;
graphInspector;
appOptions;
routeInfoPathExtractor;
async register(middlewareContainer, container, config, injector, httpAdapter, graphInspector, options) {
this.appOptions = options;
const appRef = container.getHttpAdapterRef();
this.routerExceptionFilter = new RouterExceptionFilters(container, config, appRef);
this.routesMapper = new RoutesMapper(container, config);
this.resolver = new MiddlewareResolver(middlewareContainer, injector);
this.routeInfoPathExtractor = new RouteInfoPathExtractor(config);
this.injector = injector;
this.container = container;
this.httpAdapter = httpAdapter;
this.graphInspector = graphInspector;
const modules = container.getModules();
await this.resolveMiddleware(middlewareContainer, modules);
}
async resolveMiddleware(middlewareContainer, modules) {
const moduleEntries = [...modules.entries()];
const loadMiddlewareConfiguration = /* @__PURE__ */ __name(async ([moduleName, moduleRef]) => {
await this.loadConfiguration(middlewareContainer, moduleRef, moduleName);
await this.resolver.resolveInstances(moduleRef, moduleName);
}, "loadMiddlewareConfiguration");
await Promise.all(moduleEntries.map(loadMiddlewareConfiguration));
}
async loadConfiguration(middlewareContainer, moduleRef, moduleKey) {
const { instance } = moduleRef;
if (!instance.configure) {
return;
}
const middlewareBuilder = new MiddlewareBuilder(this.routesMapper, this.httpAdapter, this.routeInfoPathExtractor);
try {
await instance.configure(middlewareBuilder);
} catch (err) {
if (!this.appOptions.preview) {
throw err;
}
const warningMessage = `Warning! "${moduleRef.name}" module exposes a "configure" method that throws an exception in the preview mode (possibly due to missing dependencies). Note: you can ignore this message, just be aware that some of those conditional middlewares will not be reflected in your graph.`;
this.logger.warn(warningMessage);
}
if (!(middlewareBuilder instanceof MiddlewareBuilder)) {
return;
}
const config = middlewareBuilder.build();
middlewareContainer.insertConfig(config, moduleKey);
}
async registerMiddleware(middlewareContainer, applicationRef) {
const configs = middlewareContainer.getConfigurations();
const registerAllConfigs = /* @__PURE__ */ __name(async (moduleKey, middlewareConfig) => {
for (const config of middlewareConfig) {
await this.registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef);
}
}, "registerAllConfigs");
const entriesSortedByDistance = [...configs.entries()].sort(([moduleA], [moduleB]) => {
const moduleARef = this.container.getModuleByKey(moduleA);
const moduleBRef = this.container.getModuleByKey(moduleB);
const isModuleAGlobal = moduleARef.distance === Number.MAX_VALUE;
const isModuleBGlobal = moduleBRef.distance === Number.MAX_VALUE;
if (isModuleAGlobal && isModuleBGlobal) {
return 0;
}
if (isModuleAGlobal) {
return -1;
}
if (isModuleBGlobal) {
return 1;
}
return moduleARef.distance - moduleBRef.distance;
});
for (const [moduleRef, moduleConfigurations] of entriesSortedByDistance) {
await registerAllConfigs(moduleRef, [...moduleConfigurations]);
}
}
async registerMiddlewareConfig(middlewareContainer, config, moduleKey, applicationRef) {
const { forRoutes } = config;
for (const routeInfo of forRoutes) {
await this.registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef);
}
}
async registerRouteMiddleware(middlewareContainer, routeInfo, config, moduleKey, applicationRef) {
const middlewareCollection = [].concat(config.middleware);
const moduleRef = this.container.getModuleByKey(moduleKey);
for (const metatype of middlewareCollection) {
const collection = middlewareContainer.getMiddlewareCollection(moduleKey);
const instanceWrapper = collection.get(metatype);
if (isUndefined(instanceWrapper)) {
throw new RuntimeException();
}
this.graphInspector.insertClassNode(moduleRef, instanceWrapper, "middleware");
const middlewareDefinition = {
type: "middleware",
methodName: "use",
className: instanceWrapper.name,
classNodeId: instanceWrapper.id,
metadata: {
key: routeInfo.path,
path: routeInfo.path,
requestMethod: RequestMethod[routeInfo.method] ?? "ALL",
version: routeInfo.version
}
};
this.graphInspector.insertEntrypointDefinition(middlewareDefinition, instanceWrapper.id);
await this.bindHandler(instanceWrapper, applicationRef, routeInfo, moduleRef, collection);
}
}
async bindHandler(wrapper, applicationRef, routeInfo, moduleRef, collection) {
const { instance, metatype } = wrapper;
if (isUndefined(instance?.use)) {
throw new InvalidMiddlewareException(metatype.name);
}
const isStatic = wrapper.isDependencyTreeStatic() && !wrapper.isTransient;
if (isStatic) {
const proxy = await this.createProxy(instance);
return this.registerHandler(applicationRef, routeInfo, proxy);
}
const isTreeDurable = wrapper.isDependencyTreeDurable();
let exceptionsHandler;
await this.registerHandler(applicationRef, routeInfo, async (req, res, next) => {
try {
const contextId = this.getContextId(req, isTreeDurable);
const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId);
const proxy = await this.createProxy(contextInstance, contextId);
return proxy(req, res, next);
} catch (err) {
exceptionsHandler ??= this.routerExceptionFilter.create(instance, instance.use, void 0);
const host = new ExecutionContextHost([req, res, next]);
exceptionsHandler.next(err, host);
}
});
}
async createProxy(instance, contextId = STATIC_CONTEXT) {
const exceptionsHandler = this.routerExceptionFilter.create(instance, instance.use, void 0, contextId);
const middleware = instance.use.bind(instance);
return this.routerProxy.createProxy(middleware, exceptionsHandler);
}
async registerHandler(applicationRef, routeInfo, proxy) {
const { method } = routeInfo;
const paths = this.routeInfoPathExtractor.extractPathsFrom(routeInfo);
const isMethodAll = isRequestMethodAll(method);
const requestMethod = RequestMethod[method];
const router = await applicationRef.createMiddlewareFactory(method);
const middlewareFunction = isMethodAll ? proxy : (req, res, next) => {
const actualRequestMethod = applicationRef.getRequestMethod?.(req);
if (actualRequestMethod === requestMethod || actualRequestMethod === RequestMethod[RequestMethod.HEAD] && requestMethod === RequestMethod[RequestMethod.GET]) {
return proxy(req, res, next);
}
return next();
};
const handledRequests = /* @__PURE__ */ new WeakSet();
const handler = /* @__PURE__ */ __name((req, res, next) => {
if (handledRequests.has(req)) {
return next();
}
handledRequests.add(req);
return middlewareFunction(req, res, next);
}, "handler");
const pathsToApplyMiddleware = paths.map((path) => path || "/").sort((a, b) => Number(b === "/") - Number(a === "/"));
pathsToApplyMiddleware.forEach((path) => router(path, handler));
}
getContextId(request, isTreeDurable) {
const contextId = ContextIdFactory.getByRequest(request);
if (!request[REQUEST_CONTEXT_ID]) {
Object.defineProperty(request, REQUEST_CONTEXT_ID, {
value: contextId,
enumerable: false,
writable: false,
configurable: false
});
const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload);
this.container.registerRequestProvider(requestProviderValue, contextId);
}
return contextId;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-instances-grouped-by-hierarchy-level.js
function getInstancesGroupedByHierarchyLevel(...collections) {
const groupedByHierarchyLevel = /* @__PURE__ */ new Map();
for (const collection of collections) {
for (const [_, wrapper] of collection) {
if (!wrapper.isDependencyTreeStatic()) {
continue;
}
const level = wrapper.hierarchyLevel;
if (!groupedByHierarchyLevel.has(level)) {
groupedByHierarchyLevel.set(level, []);
}
const byHierarchyLevelGroup = groupedByHierarchyLevel.get(level);
if (wrapper.isTransient) {
const staticTransientInstances = wrapper.getStaticTransientInstances().filter((i) => !!i).map((i) => i.instance);
byHierarchyLevelGroup.push(...staticTransientInstances);
continue;
}
if (wrapper.instance) {
byHierarchyLevelGroup.push(wrapper.instance);
}
}
}
return groupedByHierarchyLevel;
}
var init_get_instances_grouped_by_hierarchy_level = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-instances-grouped-by-hierarchy-level.js"() {
__name(getInstancesGroupedByHierarchyLevel, "getInstancesGroupedByHierarchyLevel");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-sorted-hierarchy-levels.js
function getSortedHierarchyLevels(groups, order = "ASC") {
const comparator = order === "ASC" ? (a, b) => a - b : (a, b) => b - a;
const levels = Array.from(groups.keys()).sort(comparator);
return levels;
}
var init_get_sorted_hierarchy_levels = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/utils/get-sorted-hierarchy-levels.js"() {
__name(getSortedHierarchyLevels, "getSortedHierarchyLevels");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js
function hasOnAppBootstrapHook(instance) {
return isFunction(instance.onApplicationBootstrap);
}
function callOperator(instances) {
return (0, import_iterare12.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnAppBootstrapHook).map(async (instance) => instance.onApplicationBootstrap()).toArray();
}
async function callModuleBootstrapHook(moduleRef) {
const providers = moduleRef.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers);
const levels = getSortedHierarchyLevels(groupedInstances);
for (const level of levels) {
await Promise.all(callOperator(groupedInstances.get(level)));
}
const moduleClassInstance = moduleClassHost.instance;
if (moduleClassInstance && hasOnAppBootstrapHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
await moduleClassInstance.onApplicationBootstrap();
}
}
var import_iterare12;
var init_on_app_bootstrap_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-bootstrap.hook.js"() {
init_internal();
import_iterare12 = __toESM(require_lib(), 1);
init_get_instances_grouped_by_hierarchy_level();
init_get_sorted_hierarchy_levels();
__name(hasOnAppBootstrapHook, "hasOnAppBootstrapHook");
__name(callOperator, "callOperator");
__name(callModuleBootstrapHook, "callModuleBootstrapHook");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js
function hasOnAppShutdownHook(instance) {
return isFunction(instance.onApplicationShutdown);
}
function callOperator2(instances, signal) {
return (0, import_iterare13.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnAppShutdownHook).map(async (instance) => instance.onApplicationShutdown(signal)).toArray();
}
async function callAppShutdownHook(moduleRef, signal) {
const providers = moduleRef.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers);
const levels = getSortedHierarchyLevels(groupedInstances, "DESC");
for (const level of levels) {
const results = await Promise.allSettled(callOperator2(groupedInstances.get(level), signal));
results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack));
}
const moduleClassInstance = moduleClassHost.instance;
if (moduleClassInstance && hasOnAppShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
try {
await moduleClassInstance.onApplicationShutdown(signal);
} catch (err) {
Logger.error(err, err?.stack);
}
}
}
var import_iterare13;
var init_on_app_shutdown_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-app-shutdown.hook.js"() {
init_common();
init_internal();
import_iterare13 = __toESM(require_lib(), 1);
init_get_instances_grouped_by_hierarchy_level();
init_get_sorted_hierarchy_levels();
__name(hasOnAppShutdownHook, "hasOnAppShutdownHook");
__name(callOperator2, "callOperator");
__name(callAppShutdownHook, "callAppShutdownHook");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-destroy.hook.js
function hasOnModuleDestroyHook(instance) {
return isFunction(instance.onModuleDestroy);
}
function callOperator3(instances) {
return (0, import_iterare14.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnModuleDestroyHook).map(async (instance) => instance.onModuleDestroy()).toArray();
}
async function callModuleDestroyHook(moduleRef) {
const providers = moduleRef.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers);
const levels = getSortedHierarchyLevels(groupedInstances, "DESC");
for (const level of levels) {
const results = await Promise.allSettled(callOperator3(groupedInstances.get(level)));
results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack));
}
const moduleClassInstance = moduleClassHost.instance;
if (moduleClassInstance && hasOnModuleDestroyHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
try {
await moduleClassInstance.onModuleDestroy();
} catch (err) {
Logger.error(err, err?.stack);
}
}
}
var import_iterare14;
var init_on_module_destroy_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-destroy.hook.js"() {
init_common();
init_internal();
import_iterare14 = __toESM(require_lib(), 1);
init_get_instances_grouped_by_hierarchy_level();
init_get_sorted_hierarchy_levels();
__name(hasOnModuleDestroyHook, "hasOnModuleDestroyHook");
__name(callOperator3, "callOperator");
__name(callModuleDestroyHook, "callModuleDestroyHook");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-init.hook.js
function hasOnModuleInitHook(instance) {
return isFunction(instance.onModuleInit);
}
function callOperator4(instances) {
return (0, import_iterare15.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasOnModuleInitHook).map(async (instance) => instance.onModuleInit()).toArray();
}
async function callModuleInitHook(moduleRef) {
const providers = moduleRef.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers);
const levels = getSortedHierarchyLevels(groupedInstances);
for (const level of levels) {
await Promise.all(callOperator4(groupedInstances.get(level)));
}
const moduleClassInstance = moduleClassHost.instance;
if (moduleClassInstance && hasOnModuleInitHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
await moduleClassInstance.onModuleInit();
}
}
var import_iterare15;
var init_on_module_init_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/on-module-init.hook.js"() {
init_internal();
import_iterare15 = __toESM(require_lib(), 1);
init_get_instances_grouped_by_hierarchy_level();
init_get_sorted_hierarchy_levels();
__name(hasOnModuleInitHook, "hasOnModuleInitHook");
__name(callOperator4, "callOperator");
__name(callModuleInitHook, "callModuleInitHook");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js
function hasBeforeApplicationShutdownHook(instance) {
return isFunction(instance.beforeApplicationShutdown);
}
function callOperator5(instances, signal) {
return (0, import_iterare16.iterate)(instances).filter((instance) => !isNil(instance)).filter(hasBeforeApplicationShutdownHook).map(async (instance) => instance.beforeApplicationShutdown(signal)).toArray();
}
async function callBeforeAppShutdownHook(moduleRef, signal) {
const providers = moduleRef.getNonAliasProviders();
const [_, moduleClassHost] = providers.shift();
const groupedInstances = getInstancesGroupedByHierarchyLevel(moduleRef.controllers, moduleRef.injectables, moduleRef.middlewares, providers);
const levels = getSortedHierarchyLevels(groupedInstances, "DESC");
for (const level of levels) {
const results = await Promise.allSettled(callOperator5(groupedInstances.get(level), signal));
results.filter((result) => result.status === "rejected").forEach((result) => Logger.error(result.reason, result.reason?.stack));
}
const moduleClassInstance = moduleClassHost.instance;
if (moduleClassInstance && hasBeforeApplicationShutdownHook(moduleClassInstance) && moduleClassHost.isDependencyTreeStatic()) {
try {
await moduleClassInstance.beforeApplicationShutdown(signal);
} catch (err) {
Logger.error(err, err?.stack);
}
}
}
var import_iterare16;
var init_before_app_shutdown_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/before-app-shutdown.hook.js"() {
init_common();
init_internal();
import_iterare16 = __toESM(require_lib(), 1);
init_get_instances_grouped_by_hierarchy_level();
init_get_sorted_hierarchy_levels();
__name(hasBeforeApplicationShutdownHook, "hasBeforeApplicationShutdownHook");
__name(callOperator5, "callOperator");
__name(callBeforeAppShutdownHook, "callBeforeAppShutdownHook");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/index.js
var init_hooks = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/hooks/index.js"() {
init_on_app_bootstrap_hook();
init_on_app_shutdown_hook();
init_on_module_destroy_hook();
init_on_module_init_hook();
init_before_app_shutdown_hook();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application-context.js
var NestApplicationContext;
var init_nest_application_context = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application-context.js"() {
init_common();
init_constants2();
init_exceptions2();
init_context_id_factory();
init_hooks();
init_abstract_instance_resolver();
init_injector();
init_instance_links_host();
init_internal();
NestApplicationContext = class _NestApplicationContext extends AbstractInstanceResolver {
static {
__name(this, "NestApplicationContext");
}
container;
appOptions;
contextModule;
scope;
isInitialized = false;
injector;
logger = new Logger(_NestApplicationContext.name, {
timestamp: true
});
shouldFlushLogsOnOverride = false;
shutdownCleanupRefs = /* @__PURE__ */ new Map();
moduleCompiler;
shutdownPromise;
receivedSignal = false;
_instanceLinksHost;
_moduleRefsForHooksByDistance;
initializationPromise;
get instanceLinksHost() {
if (!this._instanceLinksHost) {
this._instanceLinksHost = new InstanceLinksHost(this.container);
}
return this._instanceLinksHost;
}
constructor(container, appOptions = {}, contextModule = null, scope = new Array()) {
super();
this.container = container;
this.appOptions = appOptions;
this.contextModule = contextModule;
this.scope = scope;
this.injector = new Injector();
this.moduleCompiler = container.getModuleCompiler();
if (this.appOptions.preview) {
this.printInPreviewModeWarning();
}
}
selectContextModule() {
const modules = this.container.getModules().values();
this.contextModule = modules.next().value;
}
/**
* Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module.
* @returns {INestApplicationContext}
*/
select(moduleType, selectOptions) {
const modulesContainer = this.container.getModules();
const contextModuleCtor = this.contextModule.metatype;
const scope = this.scope.concat(contextModuleCtor);
const moduleTokenFactory = this.container.getModuleTokenFactory();
const { type, dynamicMetadata } = this.moduleCompiler.extractMetadata(moduleType);
const token = dynamicMetadata ? moduleTokenFactory.createForDynamic(type, dynamicMetadata, moduleType) : moduleTokenFactory.createForStatic(type, moduleType);
const selectedModule = modulesContainer.get(token);
if (!selectedModule) {
throw new UnknownModuleException(type.name);
}
const options = typeof selectOptions?.abortOnError !== "undefined" ? {
...this.appOptions,
...selectOptions
} : this.appOptions;
return new _NestApplicationContext(this.container, options, selectedModule, scope);
}
/**
* Retrieves an instance (or a list of instances) of either injectable or controller, otherwise, throws exception.
* @returns {TResult | Array<TResult>}
*/
get(typeOrToken, options = { strict: false }) {
return !(options && options.strict) ? this.find(typeOrToken, options) : this.find(typeOrToken, {
moduleId: this.contextModule?.id,
each: options.each
});
}
/**
* Resolves transient or request-scoped instance (or a list of instances) of either injectable or controller, otherwise, throws exception.
* @returns {Promise<TResult | Array<TResult>>}
*/
resolve(typeOrToken, contextId = createContextId(), options = { strict: false }) {
return this.resolvePerContext(typeOrToken, this.contextModule, contextId, options);
}
/**
* Registers the request/context object for a given context ID (DI container sub-tree).
* @returns {void}
*/
registerRequestByContextId(request, contextId) {
this.container.registerRequestProvider(request, contextId);
}
/**
* Initializes the Nest application.
* Calls the Nest lifecycle events.
*
* @returns {Promise<this>} The NestApplicationContext instance as Promise
*/
async init() {
if (this.isInitialized) {
return this;
}
this.initializationPromise = this.callInitHook().then(() => this.callBootstrapHook());
try {
await this.initializationPromise;
} catch (err) {
this.flushLogsIfAutoFlushEnabled();
throw err;
}
this.isInitialized = true;
return this;
}
/**
* Terminates the application
* @returns {Promise<void>}
*/
async close(signal) {
await this.shutdown(signal);
}
/**
* Runs the shutdown sequence, at most once per cycle. Callers that arrive
* while a shutdown is already in flight - a process signal delivered during
* an explicit `close()`, or the other way round - await the very same
* promise instead of starting a second, concurrent teardown.
*
* @param {string} [signal] The system signal that triggered the shutdown
* @returns {Promise<void>}
*/
shutdown(signal) {
this.shutdownPromise ??= this.runShutdownSequence(signal).finally(() => {
this.shutdownPromise = void 0;
});
return this.shutdownPromise;
}
async runShutdownSequence(signal) {
await this.initializationPromise?.catch(() => void 0);
await this.prepareClose();
await this.callDestroyHook();
await this.callBeforeShutdownHook(signal);
await this.dispose();
await this.callShutdownHook(signal);
this.unsubscribeFromProcessSignals();
}
/**
* Sets custom logger service.
* Flushes buffered logs if auto flush is on.
* @returns {void}
*/
useLogger(logger3) {
Logger.overrideLogger(logger3);
if (this.shouldFlushLogsOnOverride) {
this.flushLogs();
}
}
/**
* Prints buffered logs and detaches buffer.
* @returns {void}
*/
flushLogs() {
Logger.flush();
}
flushLogsIfAutoFlushEnabled() {
if (this.appOptions?.autoFlushLogs ?? true) {
this.flushLogs();
}
}
/**
* Define that it must flush logs right after defining a custom logger.
*/
flushLogsOnOverride() {
this.shouldFlushLogsOnOverride = true;
}
/**
* Enables the usage of shutdown hooks. Will call the
* `onApplicationShutdown` function of a provider if the
* process receives a shutdown signal.
*
* Repeated calls are idempotent per signal. Shutdown hooks can be
* re-enabled after the application context has been closed.
*
* @param {ShutdownSignal[]} [signals=[]] The system signals it should listen to
* @param {ShutdownHooksOptions} [options={}] Options for configuring shutdown hooks behavior
*
* @returns {this} The Nest application context instance
*/
enableShutdownHooks(signals = [], options = {}) {
if (!signals || isEmptyArray(signals)) {
signals = Object.values(ShutdownSignal);
}
signals = Array.from(new Set(signals.map((signal) => signal.toString().toUpperCase().trim()))).filter((signal) => !this.shutdownCleanupRefs.has(signal));
this.listenToShutdownSignals(signals, options);
return this;
}
async prepareClose() {
return Promise.resolve();
}
async dispose() {
return Promise.resolve();
}
/**
* Listens to shutdown signals by listening to
* process events
*
* @param {string[]} signals The system signals it should listen to
* @param {ShutdownHooksOptions} options Options for configuring shutdown hooks behavior
*/
listenToShutdownSignals(signals, options = {}) {
const cleanup = /* @__PURE__ */ __name(async (signal) => {
try {
if (this.receivedSignal) {
return;
}
this.receivedSignal = true;
await this.shutdown(signal).finally(() => {
this.receivedSignal = false;
});
if (options.useProcessExit) {
process.exit(0);
} else {
process.kill(process.pid, signal);
}
} catch (err) {
Logger.error(MESSAGES.ERROR_DURING_SHUTDOWN, err?.stack, _NestApplicationContext.name);
process.exit(1);
}
}, "cleanup");
signals.forEach((signal) => {
this.shutdownCleanupRefs.set(signal, cleanup);
process.on(signal, cleanup);
});
}
/**
* Unsubscribes from shutdown signals (process events)
*/
unsubscribeFromProcessSignals() {
this.shutdownCleanupRefs.forEach((cleanup, signal) => {
process.removeListener(signal, cleanup);
});
this.shutdownCleanupRefs.clear();
}
/**
* Calls the `onModuleInit` function on the registered
* modules and its children.
*/
async callInitHook() {
const modulesSortedByDistance = this.getModulesToTriggerHooksOn();
for (const module of modulesSortedByDistance) {
await callModuleInitHook(module);
}
}
/**
* Calls the `onModuleDestroy` function on the registered
* modules and its children.
*/
async callDestroyHook() {
const modulesSortedByDistance = [
...this.getModulesToTriggerHooksOn()
].reverse();
for (const module of modulesSortedByDistance) {
await callModuleDestroyHook(module);
}
}
/**
* Calls the `onApplicationBootstrap` function on the registered
* modules and its children.
*/
async callBootstrapHook() {
const modulesSortedByDistance = this.getModulesToTriggerHooksOn();
for (const module of modulesSortedByDistance) {
await callModuleBootstrapHook(module);
}
}
/**
* Calls the `onApplicationShutdown` function on the registered
* modules and children.
*/
async callShutdownHook(signal) {
const modulesSortedByDistance = [
...this.getModulesToTriggerHooksOn()
].reverse();
for (const module of modulesSortedByDistance) {
await callAppShutdownHook(module, signal);
}
}
/**
* Calls the `beforeApplicationShutdown` function on the registered
* modules and children.
*/
async callBeforeShutdownHook(signal) {
const modulesSortedByDistance = [
...this.getModulesToTriggerHooksOn()
].reverse();
for (const module of modulesSortedByDistance) {
await callBeforeAppShutdownHook(module, signal);
}
}
assertNotInPreviewMode(methodName) {
if (this.appOptions.preview) {
const error = `Calling the "${methodName}" in the preview mode is not supported.`;
this.logger.error(error);
throw new Error(error);
}
}
getModulesToTriggerHooksOn() {
if (this._moduleRefsForHooksByDistance) {
return this._moduleRefsForHooksByDistance;
}
const modulesContainer = this.container.getModules();
const compareFn = /* @__PURE__ */ __name((a, b) => b.distance - a.distance, "compareFn");
const modulesSortedByDistance = Array.from(modulesContainer.values()).sort(compareFn);
this._moduleRefsForHooksByDistance = this.appOptions?.preview ? modulesSortedByDistance.filter((moduleRef) => moduleRef.initOnPreview) : modulesSortedByDistance;
return this._moduleRefsForHooksByDistance;
}
printInPreviewModeWarning() {
this.logger.warn("------------------------------------------------");
this.logger.warn("Application is running in the PREVIEW mode!");
this.logger.warn("Providers/controllers will not be instantiated.");
this.logger.warn("------------------------------------------------");
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/messages.js
var MODULE_INIT_MESSAGE, ROUTE_MAPPED_MESSAGE, VERSIONED_ROUTE_MAPPED_MESSAGE, CONTROLLER_MAPPING_MESSAGE, VERSIONED_CONTROLLER_MAPPING_MESSAGE;
var init_messages2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/messages.js"() {
init_common();
MODULE_INIT_MESSAGE = /* @__PURE__ */ __name((text, module) => `${module} dependencies initialized`, "MODULE_INIT_MESSAGE");
ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method) => `Mapped {${path}, ${RequestMethod[method]}} route`, "ROUTE_MAPPED_MESSAGE");
VERSIONED_ROUTE_MAPPED_MESSAGE = /* @__PURE__ */ __name((path, method, version) => {
const controllerVersions = Array.isArray(version) ? version : [version];
const versions = controllerVersions.map((version2) => version2 === VERSION_NEUTRAL ? "Neutral" : version2).join(",");
return `Mapped {${path}, ${RequestMethod[method]}} (version: ${versions}) route`;
}, "VERSIONED_ROUTE_MAPPED_MESSAGE");
CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path) => `${name} {${path}}:`, "CONTROLLER_MAPPING_MESSAGE");
VERSIONED_CONTROLLER_MAPPING_MESSAGE = /* @__PURE__ */ __name((name, path, version) => {
const controllerVersions = Array.isArray(version) ? version : [version];
const versions = controllerVersions.map((version2) => version2 === VERSION_NEUTRAL ? "Neutral" : version2).join(",");
return `${name} {${path}} (version: ${versions}):`;
}, "VERSIONED_CONTROLLER_MAPPING_MESSAGE");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js
var UnknownRequestMappingException;
var init_unknown_request_mapping_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/unknown-request-mapping.exception.js"() {
init_runtime_exception();
init_messages();
UnknownRequestMappingException = class extends RuntimeException {
static {
__name(this, "UnknownRequestMappingException");
}
constructor(metatype) {
super(UNKNOWN_REQUEST_MAPPING(metatype));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/router-method-factory.js
var REQUEST_METHOD_MAP, RouterMethodFactory;
var init_router_method_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/router-method-factory.js"() {
init_common();
REQUEST_METHOD_MAP = {
[RequestMethod.GET]: "get",
[RequestMethod.POST]: "post",
[RequestMethod.PUT]: "put",
[RequestMethod.DELETE]: "delete",
[RequestMethod.PATCH]: "patch",
[RequestMethod.ALL]: "all",
[RequestMethod.OPTIONS]: "options",
[RequestMethod.HEAD]: "head",
[RequestMethod.SEARCH]: "search",
[RequestMethod.PROPFIND]: "propfind",
[RequestMethod.PROPPATCH]: "proppatch",
[RequestMethod.MKCOL]: "mkcol",
[RequestMethod.COPY]: "copy",
[RequestMethod.MOVE]: "move",
[RequestMethod.LOCK]: "lock",
[RequestMethod.UNLOCK]: "unlock",
[RequestMethod.QUERY]: "query"
};
RouterMethodFactory = class {
static {
__name(this, "RouterMethodFactory");
}
get(target, requestMethod) {
const methodName = REQUEST_METHOD_MAP[requestMethod];
const method = target[methodName];
if (!method) {
return target.use;
}
return method;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/parse-cookie-header.js
function parseCookieHeader(header) {
const cookies = /* @__PURE__ */ Object.create(null);
if (!header) {
return cookies;
}
const source = Array.isArray(header) ? header.join("; ") : String(header);
for (const pair of source.split(";")) {
const eqIndex = pair.indexOf("=");
if (eqIndex === -1) {
continue;
}
const name = trimWhitespace(pair.slice(0, eqIndex));
if (!name || name in cookies) {
continue;
}
let value = trimWhitespace(pair.slice(eqIndex + 1));
if (value.length >= 2 && value[0] === '"' && value.endsWith('"')) {
value = value.slice(1, -1);
}
cookies[name] = safeDecode(value);
}
return cookies;
}
function trimWhitespace(input) {
let start = 0;
let end = input.length;
while (start < end && isWhitespace(input.charCodeAt(start))) {
start++;
}
while (end > start && isWhitespace(input.charCodeAt(end - 1))) {
end--;
}
return input.slice(start, end);
}
function isWhitespace(charCode) {
return charCode === 32 || charCode === 9;
}
function safeDecode(value) {
if (!value.includes("%")) {
return value;
}
try {
return decodeURIComponent(value);
} catch {
return value;
}
}
var init_parse_cookie_header = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/parse-cookie-header.js"() {
__name(parseCookieHeader, "parseCookieHeader");
__name(trimWhitespace, "trimWhitespace");
__name(isWhitespace, "isWhitespace");
__name(safeDecode, "safeDecode");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/request-cookies.js
function getParsedCookieHeader(req) {
let cookies = parsedCookiesCache.get(req);
if (!cookies) {
cookies = parseCookieHeader(req.headers?.cookie);
parsedCookiesCache.set(req, cookies);
}
return cookies;
}
function getRequestCookies(req) {
if (isObject(req.cookies)) {
return req.cookies;
}
return getParsedCookieHeader(req);
}
function getRequestCookie(req, name) {
const cookies = getRequestCookies(req);
return Object.prototype.hasOwnProperty.call(cookies, name) ? cookies[name] : void 0;
}
function getRequestSignedCookies(req, signer) {
const signedCookies = /* @__PURE__ */ Object.create(null);
if (signer) {
const cookies = getParsedCookieHeader(req);
for (const name of Object.keys(cookies)) {
const value = signer.unsign(cookies[name]);
if (value !== void 0) {
signedCookies[name] = value;
}
}
return signedCookies;
}
if (isObject(req.signedCookies)) {
for (const [name, value] of Object.entries(req.signedCookies)) {
if (value !== false) {
signedCookies[name] = value;
}
}
return signedCookies;
}
throw new Error('Cannot read signed cookies: no cookie secret is configured. Pass "cookies: { secret }" to NestFactory.create().');
}
function getRequestSignedCookie(req, name, signer) {
if (signer) {
const value = getParsedCookieHeader(req)[name];
return value === void 0 ? void 0 : signer.unsign(value);
}
return getRequestSignedCookies(req, signer)[name];
}
var parsedCookiesCache;
var init_request_cookies = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/cookies/request-cookies.js"() {
init_internal();
init_parse_cookie_header();
parsedCookiesCache = /* @__PURE__ */ new WeakMap();
__name(getParsedCookieHeader, "getParsedCookieHeader");
__name(getRequestCookies, "getRequestCookies");
__name(getRequestCookie, "getRequestCookie");
__name(getRequestSignedCookies, "getRequestSignedCookies");
__name(getRequestSignedCookie, "getRequestSignedCookie");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-params-factory.js
var getBodyProperty, RouteParamsFactory;
var init_route_params_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-params-factory.js"() {
init_internal();
init_request_cookies();
getBodyProperty = /* @__PURE__ */ __name((body, key) => isObject(body) && !Array.isArray(body) && !ArrayBuffer.isView(body) || !isNil(body) && Object.hasOwn(Object(body), key) ? body[key] : void 0, "getBodyProperty");
RouteParamsFactory = class {
static {
__name(this, "RouteParamsFactory");
}
config;
constructor(config) {
this.config = config;
}
exchangeKeyForValue(key, data, { req, res, next }) {
switch (key) {
case RouteParamtypes.NEXT:
return next;
case RouteParamtypes.REQUEST:
return req;
case RouteParamtypes.RESPONSE:
return res;
case RouteParamtypes.BODY:
return data && req.body ? getBodyProperty(req.body, data) : req.body;
case RouteParamtypes.RAW_BODY:
return req.rawBody;
case RouteParamtypes.PARAM:
return data ? req.params[data] : req.params;
case RouteParamtypes.HOST:
const hosts = req.hosts || {};
return data ? hosts[data] : hosts;
case RouteParamtypes.QUERY:
return data ? req.query[data] : req.query;
case RouteParamtypes.HEADERS:
return data ? req.headers[data.toLowerCase()] : req.headers;
case RouteParamtypes.SESSION:
return req.session;
case RouteParamtypes.FILE:
return req[data || "file"];
case RouteParamtypes.FILES:
return req.files;
case RouteParamtypes.IP:
return req.ip;
case RouteParamtypes.COOKIES:
return data ? getRequestCookie(req, data) : getRequestCookies(req);
case RouteParamtypes.SIGNED_COOKIES: {
const signer = this.config?.getCookieSigner();
return data ? getRequestSignedCookie(req, data, signer) : getRequestSignedCookies(req, signer);
}
default:
return null;
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/rejected-by-pipes.js
function markRejectedByPipes(request) {
if (typeof request === "object" && request !== null) {
rejectedRequests.add(request);
}
}
function isRejectedByPipes(request) {
return rejectedRequests.has(request);
}
var rejectedRequests;
var init_rejected_by_pipes = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/rejected-by-pipes.js"() {
rejectedRequests = /* @__PURE__ */ new WeakSet();
__name(markRejectedByPipes, "markRejectedByPipes");
__name(isRejectedByPipes, "isRejectedByPipes");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/sse-stream.js
import { Transform } from "stream";
function serializeSseLines(value, prefix) {
return value.split(/\r\n|\r|\n/).map((line) => `${prefix}${line}
`).join("");
}
function toDataString(data) {
if (isObject(data)) {
return toDataString(JSON.stringify(data));
}
return serializeSseLines(data, "data: ");
}
function toCommentString(comment) {
return serializeSseLines(comment, ": ");
}
function omitHeaders(headers, names) {
const omitted = new Set(names.map((name) => name.toLowerCase()));
return Object.fromEntries(Object.entries(headers ?? {}).filter(([name]) => !omitted.has(name.toLowerCase())));
}
function formatMessage(message) {
const sanitize = /* @__PURE__ */ __name((val) => String(val).replace(/[\r\n]/g, ""), "sanitize");
let data = message.type ? `event: ${sanitize(message.type)}
` : "";
data += !isNil(message.id) ? `id: ${sanitize(message.id)}
` : "";
data += !isNil(message.retry) ? `retry: ${sanitize(message.retry)}
` : "";
data += !isNil(message.comment) ? toCommentString(message.comment) : "";
data += !isNil(message.data) ? toDataString(message.data) : "";
return data + "\n";
}
function isCommentOnly(message) {
return !isNil(message.comment) && isUndefined(message.data) && isUndefined(message.type) && isUndefined(message.retry);
}
var SseStream;
var init_sse_stream = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/sse-stream.js"() {
init_internal();
__name(serializeSseLines, "serializeSseLines");
__name(toDataString, "toDataString");
__name(toCommentString, "toCommentString");
__name(omitHeaders, "omitHeaders");
__name(formatMessage, "formatMessage");
__name(isCommentOnly, "isCommentOnly");
SseStream = class extends Transform {
static {
__name(this, "SseStream");
}
lastEventId = null;
_headersCommitted = false;
_destination = null;
_statusCode;
_additionalHeaders;
_isHttp2;
constructor(req) {
super({ objectMode: true });
this._isHttp2 = (req?.httpVersionMajor ?? 1) > 1;
if (req && req.socket && !this._isHttp2) {
req.socket.setKeepAlive(true);
req.socket.setNoDelay(true);
req.socket.setTimeout(0);
}
}
get headersCommitted() {
return this._headersCommitted;
}
pipe(destination, options) {
this._destination = destination;
this._statusCode = options?.statusCode;
this._additionalHeaders = options?.additionalHeaders;
return super.pipe(destination, options);
}
/**
* Writes SSE headers to the destination if they have not been sent yet.
* The sources are read here, not in `pipe()`, to pick up the values that
* interceptors and handlers set after piping.
*/
commitHeaders() {
if (this._headersCommitted || !this._destination || this._destination.writableEnded) {
return;
}
const statusCode = this.readStatusCode();
const additionalHeaders = this.readAdditionalHeaders();
if (this._destination.writeHead) {
const sseHeaders = {
// See https://github.com/dunglas/mercure/blob/main/subscribe.go#L347-L362
"Content-Type": "text/event-stream",
// Hop-by-hop header, forbidden in HTTP/2
// https://www.rfc-editor.org/rfc/rfc9113#section-8.2.2
...!this._isHttp2 && { Connection: "keep-alive" },
// Disable cache, even for old browsers and proxies
"Cache-Control": "private, no-cache, no-store, must-revalidate, max-age=0, no-transform",
Pragma: "no-cache",
Expires: "0",
// NGINX support https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-buffering
"X-Accel-Buffering": "no"
};
this._destination.writeHead(statusCode, {
...omitHeaders(additionalHeaders, Object.keys(sseHeaders)),
...sseHeaders
});
this._destination.flushHeaders?.();
}
this._headersCommitted = true;
this._destination.write("\n");
}
readStatusCode() {
const source = this._statusCode;
return (isFunction(source) ? source() : source) ?? 200;
}
readAdditionalHeaders() {
const source = this._additionalHeaders;
return isFunction(source) ? source() : source;
}
_transform(message, encoding, callback) {
this.commitHeaders();
this.push(isString(message) ? message : formatMessage(message));
callback();
}
/**
* Calls `.write` but handles the drain if needed
*/
writeMessage(message, cb) {
let event = message;
if (isNil(message.id) && !isCommentOnly(message)) {
this.lastEventId++;
event = {
type: message.type,
id: this.lastEventId.toString(),
retry: message.retry,
comment: message.comment,
data: message.data
};
}
let chunk;
try {
chunk = formatMessage(event);
} catch (err) {
process.nextTick(cb, err);
return;
}
if (!this.write(chunk, "utf-8")) {
this.once("drain", cb);
} else {
process.nextTick(cb);
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-response-controller.js
function getDataLength(message) {
return (isString(message.data) ? message.data.length : 0) + (isString(message.comment) ? message.comment.length : 0);
}
var import_rxjs7, import_operators2, DEFAULT_MAX_PENDING_DATA_LENGTH, RouterResponseController;
var init_router_response_controller = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-response-controller.js"() {
init_common();
import_rxjs7 = __toESM(require_cjs(), 1);
import_operators2 = __toESM(require_operators(), 1);
init_constants2();
init_base_exception_filter();
init_sse_stream();
init_internal();
DEFAULT_MAX_PENDING_DATA_LENGTH = 4 * 1024 * 1024;
__name(getDataLength, "getDataLength");
RouterResponseController = class _RouterResponseController {
static {
__name(this, "RouterResponseController");
}
applicationRef;
logger = new Logger(_RouterResponseController.name);
exceptionFilter = new BaseExceptionFilter();
constructor(applicationRef) {
this.applicationRef = applicationRef;
}
async apply(result, response, httpStatusCode) {
return this.applicationRef.reply(response, result, httpStatusCode);
}
async redirect(resultOrDeferred, response, redirectResponse) {
const result = await this.transformToResult(resultOrDeferred);
const statusCode = result && result.statusCode ? result.statusCode : redirectResponse.statusCode ? redirectResponse.statusCode : HttpStatus.FOUND;
const url = result && result.url ? result.url : redirectResponse.url;
return this.applicationRef.redirect(response, statusCode, url);
}
async render(resultOrDeferred, response, template) {
const result = await this.transformToResult(resultOrDeferred);
return this.applicationRef.render(response, template, result);
}
async transformToResult(resultOrDeferred) {
if ((0, import_rxjs7.isObservable)(resultOrDeferred)) {
return (0, import_rxjs7.lastValueFrom)(resultOrDeferred);
}
return resultOrDeferred;
}
getStatusByMethod(requestMethod) {
switch (requestMethod) {
case RequestMethod.POST:
return HttpStatus.CREATED;
default:
return HttpStatus.OK;
}
}
setHeaders(response, headers) {
headers.forEach(({ name, value }) => this.applicationRef.setHeader(response, name, typeof value === "function" ? value() : value));
}
setStatus(response, statusCode) {
this.applicationRef.status(response, statusCode);
}
async sse(result, response, request, options) {
if (response.writableEnded) {
this.getOrCreateAbortController(request).abort();
Promise.resolve(result).catch((err) => this.logger.error(err));
return;
}
const stream = new SseStream(request);
const abortController = this.getOrCreateAbortController(request);
return new Promise((resolve, reject) => {
let settled = false;
let subscription;
const disconnectSource = request.socket ?? response;
const finalize = /* @__PURE__ */ __name(() => {
disconnectSource.removeListener("close", onClose);
abortController.abort();
}, "finalize");
const endStream = /* @__PURE__ */ __name(() => {
if (!stream.writableEnded) {
stream.end();
}
}, "endStream");
const fail2 = /* @__PURE__ */ __name((err) => {
settled = true;
finalize();
subscription?.unsubscribe();
stream.unpipe(response);
endStream();
reject(err);
}, "fail");
const commitHeaders = /* @__PURE__ */ __name(() => {
try {
stream.commitHeaders();
return true;
} catch (err) {
fail2(err);
return false;
}
}, "commitHeaders");
const onClose = /* @__PURE__ */ __name(() => {
if (settled) {
return;
}
settled = true;
finalize();
subscription?.unsubscribe();
endStream();
response.end();
resolve();
}, "onClose");
disconnectSource.once("close", onClose);
if (disconnectSource.destroyed) {
onClose();
}
Promise.resolve(result).then((observableResult) => {
if (settled) {
return;
}
this.assertObservable(observableResult);
stream.pipe(response, {
additionalHeaders: options?.additionalHeaders,
statusCode: options?.statusCode ?? (() => response.statusCode)
});
let pendingDataLength = 0;
const maxPendingDataLength = options?.maxPendingDataLength ?? DEFAULT_MAX_PENDING_DATA_LENGTH;
subscription = observableResult.pipe(
(0, import_operators2.map)((message) => {
const event = isObject(message) ? message : { data: message };
return isNil(event.data) || isString(event.data) ? event : {
type: event.type,
id: event.id,
retry: event.retry,
comment: event.comment,
data: JSON.stringify(event.data)
};
}),
// Events wait in concatMap() while the client is not reading.
// Past a limit, the connection is dropped as if the client had
// disconnected, rather than holding events for a client that may
// never read them. An EventSource then reconnects, and sends the
// id of the last event it received. A limit of 0, like Infinity,
// keeps every event.
(0, import_operators2.tap)((message) => {
pendingDataLength += getDataLength(message);
if (maxPendingDataLength && pendingDataLength > maxPendingDataLength && stream.writableNeedDrain) {
this.logger.warn(`The client is not reading its events: ${pendingDataLength} character(s) of event data are queued for it, which exceeds the maximum allowed ${maxPendingDataLength}`);
response.destroy?.();
onClose();
}
}),
(0, import_operators2.concatMap)((message) => new Promise((resolve2, reject2) => stream.writeMessage(message, (err) => {
pendingDataLength -= getDataLength(message);
return err ? reject2(err) : resolve2();
}))),
(0, import_operators2.catchError)((err) => {
if (!stream.headersCommitted) {
throw err;
}
const data = err instanceof HttpException || this.exceptionFilter.isHttpError(err) ? err.message : MESSAGES.UNKNOWN_EXCEPTION_MESSAGE;
if (!(err instanceof IntrinsicException)) {
this.logger.error(err);
}
stream.writeMessage({ type: "error", data }, (writeError) => {
if (writeError) {
this.logger.error(writeError);
}
});
return import_rxjs7.EMPTY;
})
).subscribe({
error: /* @__PURE__ */ __name((err) => {
if (settled) {
return;
}
fail2(err);
}, "error"),
complete: /* @__PURE__ */ __name(() => {
if (settled) {
return;
}
if (!commitHeaders()) {
return;
}
settled = true;
finalize();
endStream();
resolve();
}, "complete")
});
if (settled) {
subscription.unsubscribe();
}
setTimeout(() => {
if (settled || !commitHeaders()) {
return;
}
if (request.method === "HEAD") {
settled = true;
finalize();
subscription?.unsubscribe();
endStream();
resolve();
}
}, 0);
}).catch((err) => {
if (settled) {
return;
}
fail2(err);
});
});
}
assertObservable(value) {
if (!(0, import_rxjs7.isObservable)(value)) {
throw new ReferenceError("You must return an Observable stream to use Server-Sent Events (SSE).");
}
}
getOrCreateAbortController(request) {
const carrier = request;
if (!carrier[SSE_ABORT_CONTROLLER]) {
carrier[SSE_ABORT_CONTROLLER] = new AbortController();
}
return carrier[SSE_ABORT_CONTROLLER];
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-execution-context.js
var import_rxjs8, import_operators3, isThenable2, RouterExecutionContext;
var init_router_execution_context = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-execution-context.js"() {
init_common();
init_internal();
import_rxjs8 = __toESM(require_cjs(), 1);
import_operators3 = __toESM(require_operators(), 1);
init_guards();
init_context_utils();
init_destroy_streamable_file();
init_handler_metadata_storage();
init_constants3();
init_rejected_by_pipes();
init_router_response_controller();
isThenable2 = /* @__PURE__ */ __name((value) => value !== null && (typeof value === "object" || typeof value === "function") && typeof value.then === "function", "isThenable");
RouterExecutionContext = class {
static {
__name(this, "RouterExecutionContext");
}
paramsFactory;
pipesContextCreator;
pipesConsumer;
guardsContextCreator;
guardsConsumer;
interceptorsContextCreator;
interceptorsConsumer;
applicationRef;
handlerMetadataStorage = new HandlerMetadataStorage();
contextUtils = new ContextUtils();
responseController;
constructor(paramsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, applicationRef) {
this.paramsFactory = paramsFactory;
this.pipesContextCreator = pipesContextCreator;
this.pipesConsumer = pipesConsumer;
this.guardsContextCreator = guardsContextCreator;
this.guardsConsumer = guardsConsumer;
this.interceptorsContextCreator = interceptorsContextCreator;
this.interceptorsConsumer = interceptorsConsumer;
this.applicationRef = applicationRef;
this.responseController = new RouterResponseController(applicationRef);
}
create(instance, callback, methodName, moduleKey, requestMethod, contextId = STATIC_CONTEXT, inquirerId) {
const contextType = "http";
const { argsLength, fnHandleResponse, isSseHandler, paramtypes, getParamsMetadata, httpStatusCode, responseHeaders, hasCustomHeaders } = this.getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType);
const paramsOptions = this.contextUtils.mergeParamsMetatypes(getParamsMetadata(moduleKey, contextId, inquirerId), paramtypes);
const pipes = this.pipesContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const guards = this.guardsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const interceptors = this.interceptorsContextCreator.create(instance, callback, moduleKey, contextId, inquirerId);
const fnCanActivate = this.createGuardsFn(guards, instance, callback, contextType);
const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);
const handler = /* @__PURE__ */ __name((args, req, res, next, handlerObservable$, handlerFiles = []) => async () => {
try {
const pendingPipes = fnApplyPipes && fnApplyPipes(args, req, res, next);
pendingPipes && await pendingPipes;
} catch (err) {
markRejectedByPipes(req);
throw err;
}
const result = callback.apply(instance, args);
if (!handlerObservable$) {
return result;
}
this.notifyIfObservable(result, handlerObservable$);
return (0, import_rxjs8.isObservable)(result) ? result.pipe((0, import_operators3.tap)((value) => value instanceof StreamableFile && handlerFiles.push(value))) : result;
}, "handler");
return async (req, res, next) => {
const args = this.contextUtils.createNullArray(argsLength);
fnCanActivate && await fnCanActivate([req, res, next]);
this.responseController.setStatus(res, httpStatusCode);
hasCustomHeaders && this.responseController.setHeaders(res, responseHeaders);
if (isSseHandler) {
this.attachSseAbortSignal(req);
}
const handlerObservable$ = isSseHandler || isEmptyArray(interceptors) ? void 0 : new import_rxjs8.ReplaySubject(1);
const handlerFiles = [];
const resultOrDeferred = this.interceptorsConsumer.intercept(interceptors, [req, res, next], instance, callback, handler(args, req, res, next, handlerObservable$, handlerFiles), contextType);
const result = isSseHandler ? resultOrDeferred : await resultOrDeferred;
await fnHandleResponse(result, res, req, handlerObservable$, handlerFiles);
};
}
getMetadata(instance, callback, methodName, moduleKey, requestMethod, contextType) {
const cacheMetadata = this.handlerMetadataStorage.get(instance, methodName);
if (cacheMetadata) {
return cacheMetadata;
}
const metadata = this.contextUtils.reflectCallbackMetadata(instance, methodName, ROUTE_ARGS_METADATA) || {};
const keys = Object.keys(metadata);
const argsLength = this.contextUtils.getArgumentsLength(keys, metadata);
const paramtypes = this.contextUtils.reflectCallbackParamtypes(instance, methodName);
const contextFactory = this.contextUtils.getContextFactory(contextType, instance, callback);
const getParamsMetadata = /* @__PURE__ */ __name((moduleKey2, contextId = STATIC_CONTEXT, inquirerId) => this.exchangeKeysForValues(keys, metadata, moduleKey2, contextId, inquirerId, contextFactory), "getParamsMetadata");
const paramsMetadata = getParamsMetadata(moduleKey);
const isResponseHandled = this.isResponseHandled(instance, methodName, paramsMetadata);
const httpRedirectResponse = this.reflectRedirect(callback);
const fnHandleResponse = this.createHandleResponseFn(callback, isResponseHandled, httpRedirectResponse);
const isSseHandler = !!this.reflectSse(callback);
const httpCode = this.reflectHttpStatusCode(callback);
const httpStatusCode = httpCode ?? this.responseController.getStatusByMethod(requestMethod);
const responseHeaders = this.reflectResponseHeaders(callback);
const hasCustomHeaders = !isEmptyArray(responseHeaders);
const handlerMetadata = {
argsLength,
fnHandleResponse,
isSseHandler,
paramtypes,
getParamsMetadata,
httpStatusCode,
hasCustomHeaders,
responseHeaders
};
this.handlerMetadataStorage.set(instance, methodName, handlerMetadata);
return handlerMetadata;
}
reflectRedirect(callback) {
return Reflect.getMetadata(REDIRECT_METADATA, callback);
}
reflectHttpStatusCode(callback) {
return Reflect.getMetadata(HTTP_CODE_METADATA, callback);
}
reflectRenderTemplate(callback) {
return Reflect.getMetadata(RENDER_METADATA, callback);
}
reflectResponseHeaders(callback) {
return Reflect.getMetadata(HEADERS_METADATA, callback) || [];
}
reflectSse(callback) {
return Reflect.getMetadata(SSE_METADATA, callback);
}
reflectSseOptions(callback) {
return Reflect.getMetadata(SSE_OPTIONS_METADATA, callback);
}
exchangeKeysForValues(keys, metadata, moduleContext, contextId = STATIC_CONTEXT, inquirerId, contextFactory) {
this.pipesContextCreator.setModuleContext(moduleContext);
return keys.map((key) => {
const { index, data, pipes: pipesCollection, schema } = metadata[key];
const pipes = this.pipesContextCreator.createConcreteContext(pipesCollection, contextId, inquirerId);
const type = this.contextUtils.mapParamType(key);
if (key.includes(CUSTOM_ROUTE_ARGS_METADATA)) {
const { factory } = metadata[key];
const customExtractValue = this.contextUtils.getCustomFactory(factory, data, contextFactory);
return {
index,
extractValue: customExtractValue,
type,
data,
pipes,
schema
};
}
const numericType = Number(type);
const extractValue = /* @__PURE__ */ __name((req, res, next) => this.paramsFactory.exchangeKeyForValue(numericType, data, {
req,
res,
next
}), "extractValue");
return { index, extractValue, type: numericType, data, pipes, schema };
});
}
async getParamValue(value, metadata, pipes) {
if (!isEmptyArray(pipes)) {
return this.pipesConsumer.apply(value, metadata, pipes);
}
return value;
}
isPipeable(type) {
return type === RouteParamtypes.BODY || type === RouteParamtypes.RAW_BODY || type === RouteParamtypes.QUERY || type === RouteParamtypes.PARAM || type === RouteParamtypes.FILE || type === RouteParamtypes.FILES || type === RouteParamtypes.COOKIES || type === RouteParamtypes.SIGNED_COOKIES || isString(type);
}
createGuardsFn(guards, instance, callback, contextType) {
const canActivateFn = /* @__PURE__ */ __name(async (args) => {
const canActivate = await this.guardsConsumer.tryActivate(guards, args, instance, callback, contextType);
if (!canActivate) {
throw new ForbiddenException(FORBIDDEN_MESSAGE);
}
}, "canActivateFn");
return guards.length ? canActivateFn : null;
}
createPipesFn(pipes, paramsOptions) {
if (!paramsOptions.length) {
return null;
}
const params = paramsOptions.map(({ index, extractValue, type, data, metatype, pipes: paramPipes, schema }) => {
const isPipeable = this.isPipeable(type);
return {
index,
extractValue,
isPipeable,
metadata: { metatype, type, data, schema },
pipes: isPipeable ? pipes.concat(paramPipes) : []
};
});
const applyPipes = /* @__PURE__ */ __name(async (args, param, value) => {
args[param.index] = await this.getParamValue(value, param.metadata, param.pipes);
}, "applyPipes");
return (args, req, res, next) => {
let pending;
for (let i = 0; i < params.length; i++) {
const param = params[i];
try {
const value = param.extractValue(req, res, next);
if (param.isPipeable && (param.pipes.length > 0 || isThenable2(value))) {
(pending ??= []).push(applyPipes(args, param, value));
} else {
args[param.index] = value;
}
} catch (err) {
(pending ??= []).push(Promise.reject(err));
}
}
return pending && Promise.all(pending);
};
}
createHandleResponseFn(callback, isResponseHandled, redirectResponse, httpStatusCode) {
const renderTemplate = this.reflectRenderTemplate(callback);
if (renderTemplate) {
return async (result, res) => {
return await this.responseController.render(result, res, renderTemplate);
};
}
if (redirectResponse && isString(redirectResponse.url)) {
return async (result, res) => {
await this.responseController.redirect(result, res, redirectResponse);
};
}
const isSseHandler = !!this.reflectSse(callback);
if (isSseHandler) {
const maxPendingDataLength = this.reflectSseOptions(callback)?.maxPendingDataLength;
return async (result, res, req) => {
const rawResponse = res.raw ?? res;
await this.responseController.sse(result, rawResponse, req.raw || req, {
additionalHeaders: /* @__PURE__ */ __name(() => res.getHeaders?.(), "additionalHeaders"),
statusCode: /* @__PURE__ */ __name(() => res.statusCode ?? rawResponse.statusCode, "statusCode"),
maxPendingDataLength
});
};
}
return async (result, res, req, handlerObservable$, handlerFiles = []) => {
let disconnected = false;
if ((0, import_rxjs8.isObservable)(result)) {
const disconnect$ = (handlerObservable$ ?? (0, import_rxjs8.of)(null)).pipe((0, import_operators3.switchMap)(() => this.fromClientDisconnect(req, res)), (0, import_operators3.tap)(() => disconnected = true));
result = result.pipe((0, import_operators3.takeUntil)(disconnect$));
}
try {
result = await this.responseController.transformToResult(result);
} catch (err) {
if (!disconnected || !(err instanceof import_rxjs8.EmptyError)) {
throw err;
}
}
if (disconnected) {
[result, ...handlerFiles].forEach(destroyStreamableFile);
return res;
}
if (!isResponseHandled) {
try {
await this.responseController.apply(result, res, httpStatusCode);
} catch (err) {
destroyStreamableFile(result);
throw err;
}
}
return res;
};
}
notifyIfObservable(result, handlerObservable$) {
if ((0, import_rxjs8.isObservable)(result)) {
handlerObservable$.next();
} else if (result instanceof Promise) {
result.then((value) => (0, import_rxjs8.isObservable)(value) && handlerObservable$.next(), () => void 0);
}
}
/**
* Emits once the client connection closes, or right away if it already has.
* Watches the request socket, like `RouterResponseController#sse()` does.
*/
fromClientDisconnect(req, res) {
return new import_rxjs8.Observable((subscriber) => {
const source = (req?.raw ?? req)?.socket ?? res?.raw ?? res;
if (typeof source?.once !== "function") {
return;
}
if (source.destroyed) {
subscriber.next();
return;
}
const onClose = /* @__PURE__ */ __name(() => subscriber.next(), "onClose");
source.once("close", onClose);
return () => source.removeListener("close", onClose);
});
}
isResponseHandled(instance, methodName, paramsMetadata) {
const hasResponseOrNextDecorator = paramsMetadata.some(({ type }) => type === RouteParamtypes.RESPONSE || type === RouteParamtypes.NEXT);
const isPassthroughEnabled = this.contextUtils.reflectPassthrough(instance, methodName);
return hasResponseOrNextDecorator && !isPassthroughEnabled;
}
attachSseAbortSignal(req) {
const carrier = req;
if (!carrier[SSE_ABORT_CONTROLLER]) {
carrier[SSE_ABORT_CONTROLLER] = new AbortController();
}
if (carrier.raw && !carrier.raw[SSE_ABORT_CONTROLLER]) {
carrier.raw[SSE_ABORT_CONTROLLER] = carrier[SSE_ABORT_CONTROLLER];
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-explorer.js
var import_path_to_regexp4, RouterExplorer;
var init_router_explorer = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-explorer.js"() {
import_path_to_regexp4 = __toESM(require_dist2(), 1);
init_unknown_request_mapping_exception();
init_guards();
init_context_id_factory();
init_execution_context_host();
init_messages2();
init_router_method_factory();
init_constants3();
init_interceptors();
init_pipes();
init_paths_explorer();
init_request_constants();
init_route_params_factory();
init_router_execution_context();
init_internal();
init_common();
RouterExplorer = class _RouterExplorer {
static {
__name(this, "RouterExplorer");
}
container;
injector;
routerProxy;
exceptionsFilter;
routePathFactory;
graphInspector;
executionContextCreator;
pathsExplorer;
routerMethodFactory = new RouterMethodFactory();
logger = new Logger(_RouterExplorer.name, {
timestamp: true
});
constructor(metadataScanner, container, injector, routerProxy, exceptionsFilter, config, routePathFactory, graphInspector) {
this.container = container;
this.injector = injector;
this.routerProxy = routerProxy;
this.exceptionsFilter = exceptionsFilter;
this.routePathFactory = routePathFactory;
this.graphInspector = graphInspector;
this.pathsExplorer = new PathsExplorer(metadataScanner);
const routeParamsFactory = new RouteParamsFactory(config);
const pipesContextCreator = new PipesContextCreator(container, config);
const pipesConsumer = new PipesConsumer();
const guardsContextCreator = new GuardsContextCreator(container, config);
const guardsConsumer = new GuardsConsumer();
const interceptorsContextCreator = new InterceptorsContextCreator(container, config);
const interceptorsConsumer = new InterceptorsConsumer();
this.executionContextCreator = new RouterExecutionContext(routeParamsFactory, pipesContextCreator, pipesConsumer, guardsContextCreator, guardsConsumer, interceptorsContextCreator, interceptorsConsumer, container.getHttpAdapterRef());
}
explore(instanceWrapper, moduleKey, httpAdapterRef, host, routePathMetadata, options = {}) {
const { instance } = instanceWrapper;
const routerPaths = this.pathsExplorer.scanForPaths(instance);
this.applyPathsToRouterProxy(httpAdapterRef, routerPaths, instanceWrapper, moduleKey, routePathMetadata, host, options);
}
extractRouterPath(metatype) {
const path = Reflect.getMetadata(PATH_METADATA, metatype);
if (isUndefined(path)) {
throw new UnknownRequestMappingException(metatype);
}
if (Array.isArray(path)) {
return path.map((p) => addLeadingSlash(p));
}
return [addLeadingSlash(path)];
}
applyPathsToRouterProxy(router, routeDefinitions, instanceWrapper, moduleKey, routePathMetadata, host, options = {}) {
(routeDefinitions || []).forEach((routeDefinition) => {
const { version: methodVersion } = routeDefinition;
routePathMetadata.methodVersion = methodVersion;
this.applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host, options);
});
}
applyCallbackToRouter(router, routeDefinition, instanceWrapper, moduleKey, routePathMetadata, host, options = {}) {
const { onRouteResolved, deferRegistration = false } = options;
const { path: paths, requestMethod, targetCallback, methodName } = routeDefinition;
const { instance } = instanceWrapper;
const routerMethodRef = this.routerMethodFactory.get(router, requestMethod).bind(router);
const isRequestScoped = !instanceWrapper.isDependencyTreeStatic();
const proxy = isRequestScoped ? this.createRequestScopedHandler(instanceWrapper, requestMethod, this.container.getModuleByKey(moduleKey), moduleKey, methodName) : this.createCallbackProxy(instance, targetCallback, methodName, moduleKey, requestMethod, STATIC_CONTEXT, instanceWrapper.id);
const isVersioned = (routePathMetadata.methodVersion || routePathMetadata.controllerVersion) && routePathMetadata.versioningOptions;
let routeHandler = this.applyHostFilter(host, proxy);
paths.forEach((path) => {
if (isVersioned && routePathMetadata.versioningOptions.type !== VersioningType.URI) {
routeHandler = this.applyVersionFilter(router, routePathMetadata, routeHandler);
}
routePathMetadata.methodPath = path;
const pathsToRegister = this.routePathFactory.create(routePathMetadata, requestMethod);
pathsToRegister.forEach((path2) => {
const normalizedPath = router.normalizePath ? router.normalizePath(path2) : path2;
const entrypointDefinition = {
type: "http-endpoint",
methodName,
className: instanceWrapper.name,
classNodeId: instanceWrapper.id,
metadata: {
key: path2,
path: path2,
requestMethod: RequestMethod[requestMethod],
methodVersion: routePathMetadata.methodVersion,
controllerVersion: routePathMetadata.controllerVersion
}
};
if (!deferRegistration) {
this.copyMetadataToCallback(targetCallback, routeHandler);
const httpAdapter = this.container.getHttpAdapterRef();
const onRouteTriggered = httpAdapter.getOnRouteTriggered?.();
let handler = routeHandler;
if (onRouteTriggered) {
handler = Object.assign((...args) => {
onRouteTriggered(requestMethod, path2);
return routeHandler(...args);
}, routeHandler);
this.copyMetadataToCallback(targetCallback, handler);
}
Object.defineProperty(handler, "name", {
configurable: true,
value: `${instanceWrapper.name}.${methodName}`
});
routerMethodRef(normalizedPath, handler);
}
onRouteResolved?.({
method: requestMethod,
path: normalizedPath,
rawPath: path2,
host,
version: routePathMetadata.methodVersion ?? routePathMetadata.controllerVersion,
methodVersion: routePathMetadata.methodVersion,
controllerVersion: routePathMetadata.controllerVersion,
handler: routeHandler,
targetCallback,
methodName,
instanceWrapper
});
this.graphInspector.insertEntrypointDefinition(entrypointDefinition, instanceWrapper.id);
});
const pathsToLog = this.routePathFactory.create({
...routePathMetadata,
versioningOptions: void 0
}, requestMethod);
pathsToLog.forEach((path2) => {
if (isVersioned) {
const version = this.routePathFactory.getVersion(routePathMetadata);
this.logger.log(VERSIONED_ROUTE_MAPPED_MESSAGE(path2, requestMethod, version));
} else {
this.logger.log(ROUTE_MAPPED_MESSAGE(path2, requestMethod));
}
});
});
}
/**
* Registers a previously resolved route on the underlying HTTP adapter.
* Used when route registration has been deferred (e.g. when sorting
* routes by specificity) so the caller can choose the order in which
* routes are installed on the adapter.
*/
registerResolvedRoute(router, route) {
const routerMethodRef = this.routerMethodFactory.get(router, route.method).bind(router);
this.copyMetadataToCallback(route.targetCallback, route.handler);
const normalizedPath = route.path;
const rawPath = route.rawPath ?? route.path;
const httpAdapter = this.container.getHttpAdapterRef();
const onRouteTriggered = httpAdapter.getOnRouteTriggered?.();
if (onRouteTriggered) {
const handler = Object.assign((...args) => {
onRouteTriggered(route.method, rawPath);
return route.handler(...args);
}, route.handler);
this.copyMetadataToCallback(route.targetCallback, handler);
routerMethodRef(normalizedPath, handler);
} else {
routerMethodRef(normalizedPath, route.handler);
}
}
applyHostFilter(host, handler) {
if (!host) {
return handler;
}
const httpAdapterRef = this.container.getHttpAdapterRef();
const hosts = Array.isArray(host) ? host : [host];
const hostRegExps = hosts.map((host2) => {
if (typeof host2 === "string") {
try {
return (0, import_path_to_regexp4.pathToRegexp)(host2);
} catch (e) {
if (e instanceof TypeError) {
this.logger.error(`Unsupported host "${host2}" syntax. In past releases, ?, *, and + were used to denote optional or repeating path parameters. The latest version of "path-to-regexp" now requires the use of named parameters. For example, instead of using a route like /users/* to capture all routes starting with "/users", you should use /users/*path. Please see the migration guide for more information.`);
}
throw e;
}
}
return { regexp: host2, keys: [] };
});
const unsupportedFilteringMessage = Array.isArray(host) ? `HTTP adapter does not support filtering on hosts: ["${host.join('", "')}"]` : `HTTP adapter does not support filtering on host: "${host}"`;
let hasWarnedOfUnsupportedFiltering = false;
return (req, res, next) => {
req.hosts = {};
const hostname = httpAdapterRef.getRequestHostname(req) || "";
for (const exp of hostRegExps) {
const match = hostname.match(exp.regexp);
if (match) {
if (exp.keys.length > 0) {
exp.keys.forEach((key, i) => req.hosts[key.name] = match[i + 1]);
} else if (exp.regexp && match.groups) {
for (const groupName in match.groups) {
req.hosts[groupName] = match.groups[groupName];
}
}
return handler(req, res, next);
}
}
if (!next) {
if (!hasWarnedOfUnsupportedFiltering) {
hasWarnedOfUnsupportedFiltering = true;
this.logger.warn(`${unsupportedFilteringMessage}. Requests for other hosts are answered with 404 instead of being passed on to other routes.`);
}
const method = httpAdapterRef.getRequestMethod(req);
const url = httpAdapterRef.getRequestUrl(req);
throw new NotFoundException(`Cannot ${method} ${url}`);
}
return next();
};
}
applyVersionFilter(router, routePathMetadata, handler) {
const version = this.routePathFactory.getVersion(routePathMetadata);
return router.applyVersionFilter(handler, version, routePathMetadata.versioningOptions);
}
createCallbackProxy(instance, callback, methodName, moduleRef, requestMethod, contextId = STATIC_CONTEXT, inquirerId) {
const executionContext = this.executionContextCreator.create(instance, callback, methodName, moduleRef, requestMethod, contextId, inquirerId);
const exceptionFilter = this.exceptionsFilter.create(instance, callback, moduleRef, contextId, inquirerId);
return this.routerProxy.createProxy(executionContext, exceptionFilter);
}
createRequestScopedHandler(instanceWrapper, requestMethod, moduleRef, moduleKey, methodName) {
const { instance } = instanceWrapper;
const collection = moduleRef.controllers;
const isTreeDurable = instanceWrapper.isDependencyTreeDurable();
let exceptionFilter;
return async (req, res, next) => {
try {
const contextId = this.getContextId(req, isTreeDurable);
const contextInstance = await this.injector.loadPerContext(instance, moduleRef, collection, contextId);
await this.createCallbackProxy(contextInstance, contextInstance[methodName], methodName, moduleKey, requestMethod, contextId, instanceWrapper.id)(req, res, next);
} catch (err) {
exceptionFilter ??= this.exceptionsFilter.create(instance, instance[methodName], moduleKey);
const host = new ExecutionContextHost([req, res, next]);
exceptionFilter.next(err, host);
}
};
}
getContextId(request, isTreeDurable) {
const contextId = ContextIdFactory.getByRequest(request);
if (!request[REQUEST_CONTEXT_ID]) {
Object.defineProperty(request, REQUEST_CONTEXT_ID, {
value: contextId,
enumerable: false,
writable: false,
configurable: false
});
const requestProviderValue = isTreeDurable ? contextId.payload : Object.assign(request, contextId.payload);
this.container.registerRequestProvider(requestProviderValue, contextId);
}
return contextId;
}
copyMetadataToCallback(originalCallback, targetCallback) {
for (const key of Reflect.getMetadataKeys(originalCallback)) {
Reflect.defineMetadata(key, Reflect.getMetadata(key, originalCallback), targetCallback);
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/routes-resolver.js
var RoutesResolver;
var init_routes_resolver = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/routes-resolver.js"() {
init_common();
init_internal();
init_messages2();
init_metadata_scanner();
init_route_path_factory();
init_router_exception_filters();
init_router_explorer();
init_router_proxy();
RoutesResolver = class _RoutesResolver {
static {
__name(this, "RoutesResolver");
}
container;
applicationConfig;
injector;
logger = new Logger(_RoutesResolver.name, {
timestamp: true
});
routerProxy = new RouterProxy();
routePathFactory;
routerExceptionsFilter;
routerExplorer;
constructor(container, applicationConfig, injector, graphInspector) {
this.container = container;
this.applicationConfig = applicationConfig;
this.injector = injector;
const httpAdapterRef = container.getHttpAdapterRef();
this.routerExceptionsFilter = new RouterExceptionFilters(container, applicationConfig, httpAdapterRef);
this.routePathFactory = new RoutePathFactory(this.applicationConfig);
const metadataScanner = new MetadataScanner();
this.routerExplorer = new RouterExplorer(metadataScanner, this.container, this.injector, this.routerProxy, this.routerExceptionsFilter, this.applicationConfig, this.routePathFactory, graphInspector);
}
resolve(applicationRef, globalPrefix, options = {}) {
const modules = this.container.getModules();
modules.forEach(({ controllers, metatype }, moduleName) => {
const modulePath = this.getModulePathMetadata(metatype);
this.registerRouters(controllers, moduleName, globalPrefix, modulePath, applicationRef, options);
});
}
registerResolvedRoute(applicationRef, route) {
this.routerExplorer.registerResolvedRoute(applicationRef, route);
}
registerRouters(routes, moduleName, globalPrefix, modulePath, applicationRef, options = {}) {
routes.forEach((instanceWrapper) => {
const { metatype } = instanceWrapper;
const host = this.getHostMetadata(metatype);
const routerPaths = this.routerExplorer.extractRouterPath(metatype);
const controllerVersion = this.getVersionMetadata(metatype);
const controllerName = metatype.name;
routerPaths.forEach((path) => {
const pathsToLog = this.routePathFactory.create({
ctrlPath: path,
modulePath,
globalPrefix
});
if (!controllerVersion) {
pathsToLog.forEach((path2) => {
const logMessage = CONTROLLER_MAPPING_MESSAGE(controllerName, path2);
this.logger.log(logMessage);
});
} else {
pathsToLog.forEach((path2) => {
const logMessage = VERSIONED_CONTROLLER_MAPPING_MESSAGE(controllerName, path2, controllerVersion);
this.logger.log(logMessage);
});
}
const versioningOptions = this.applicationConfig.getVersioning();
const routePathMetadata = {
ctrlPath: path,
modulePath,
globalPrefix,
controllerVersion,
versioningOptions
};
this.routerExplorer.explore(instanceWrapper, moduleName, applicationRef, host, routePathMetadata, options);
});
});
}
registerNotFoundHandler() {
const applicationRef = this.container.getHttpAdapterRef();
const callback = /* @__PURE__ */ __name((req, res) => {
const method = applicationRef.getRequestMethod(req);
const url = applicationRef.getRequestUrl(req);
throw new NotFoundException(`Cannot ${method} ${url}`);
}, "callback");
const handler = this.routerExceptionsFilter.create({}, callback, void 0);
const proxy = this.routerProxy.createProxy(callback, handler);
const prefix = this.applicationConfig.getGlobalPrefix();
const excludedRoutes = this.routePathFactory.getExcludedRoutePaths();
applicationRef.setNotFoundHandler && applicationRef.setNotFoundHandler(proxy, prefix, excludedRoutes);
}
registerExceptionHandler() {
const callback = /* @__PURE__ */ __name((err, req, res, next) => {
throw this.container.getHttpAdapterRef().mapException(err);
}, "callback");
const handler = this.routerExceptionsFilter.create({}, callback, void 0);
const proxy = this.routerProxy.createExceptionLayerProxy(callback, handler);
const applicationRef = this.container.getHttpAdapterRef();
const prefix = this.applicationConfig.getGlobalPrefix();
applicationRef.setErrorHandler && applicationRef.setErrorHandler(proxy, prefix);
}
getModulePathMetadata(metatype) {
const modulesContainer = this.container.getModules();
const modulePath = Reflect.getMetadata(MODULE_PATH + modulesContainer.applicationId, metatype);
return modulePath ?? Reflect.getMetadata(MODULE_PATH, metatype);
}
getHostMetadata(metatype) {
return Reflect.getMetadata(HOST_METADATA, metatype);
}
getVersionMetadata(metatype) {
const versioningConfig = this.applicationConfig.getVersioning();
if (versioningConfig) {
return Reflect.getMetadata(VERSION_METADATA, metatype) ?? versioningConfig.defaultVersion;
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-conflict-detector.js
var RouteConflictDetector;
var init_route_conflict_detector = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-conflict-detector.js"() {
init_common();
init_route_conflict_exception();
init_messages();
RouteConflictDetector = class _RouteConflictDetector {
static {
__name(this, "RouteConflictDetector");
}
/**
* Strips the leading `:` / `*` marker (if present) and tags each
* segment as a literal, named param, or named wildcard. Supports both
* bare named wildcards (`*path`) and adapter-normalized path-to-regexp
* wildcard groups (`{*path}`).
*/
static tokenizePath(rawPath) {
const segments = [];
rawPath.split("/").filter((rawSegment) => rawSegment.length > 0).forEach((rawSegment) => {
if (rawSegment.startsWith("*")) {
segments.push({ kind: "wildcard", value: rawSegment.slice(1) });
return;
}
if (rawSegment.startsWith("{*") && rawSegment.endsWith("}")) {
segments.push({
kind: "wildcard",
value: rawSegment.slice(2, -1)
});
return;
}
if (rawSegment.startsWith(":")) {
segments.push({ kind: "param", value: rawSegment.slice(1) });
return;
}
segments.push({ kind: "literal", value: rawSegment });
});
return segments;
}
/**
* Decides whether two paths can match the same incoming request, given
* only their declared patterns (no host/method/version considered).
*/
static pathsCanOverlap(leftPath, rightPath) {
const leftSegments = _RouteConflictDetector.tokenizePath(leftPath);
const rightSegments = _RouteConflictDetector.tokenizePath(rightPath);
const leftEndsInWildcard = leftSegments[leftSegments.length - 1]?.kind === "wildcard";
const rightEndsInWildcard = rightSegments[rightSegments.length - 1]?.kind === "wildcard";
if (leftSegments.length !== rightSegments.length) {
const shorterEndsInWildcard = leftSegments.length < rightSegments.length ? leftEndsInWildcard : rightEndsInWildcard;
if (!shorterEndsInWildcard) {
return false;
}
}
const sharedLength = Math.min(leftSegments.length, rightSegments.length);
let canOverlap = true;
leftSegments.slice(0, sharedLength).forEach((leftSegment, segmentIndex) => {
if (!canOverlap)
return;
if (!_RouteConflictDetector.segmentsCanOverlap(leftSegment, rightSegments[segmentIndex])) {
canOverlap = false;
}
});
return canOverlap;
}
/**
* Walks every unique pair of resolved routes and produces a conflict
* record for each pair whose (method, host, version, path) tuples can
* collide at runtime.
*/
static detect(routes, versioningOptions) {
const conflicts = [];
_RouteConflictDetector.forEachUniquePair(routes, (earlierRoute, laterRoute) => {
if (!_RouteConflictDetector.methodsCanOverlap(earlierRoute.method, laterRoute.method)) {
return;
}
if (!_RouteConflictDetector.versionsCanOverlap(earlierRoute.version, laterRoute.version, versioningOptions)) {
return;
}
if (!_RouteConflictDetector.hostsCanOverlap(earlierRoute.host, laterRoute.host)) {
return;
}
if (!_RouteConflictDetector.pathsCanOverlap(earlierRoute.path, laterRoute.path)) {
return;
}
const isIdentical = _RouteConflictDetector.routesAreIdentical(earlierRoute, laterRoute, versioningOptions);
conflicts.push({
winner: earlierRoute,
shadowed: laterRoute,
kind: isIdentical ? "duplicate" : "shadow"
});
});
return conflicts;
}
/**
* Applies the per-kind policy to a set of conflicts: silences `'off'`,
* logs `'warn'` once per conflict, and aggregates every `'error'`-level
* conflict into a single `RouteConflictException`.
*/
static handle(conflicts, policy, logger3) {
if (conflicts.length === 0 || policy === void 0)
return;
const errorMessages = [];
conflicts.forEach((conflict) => {
const policyForKind = policy[conflict.kind] ?? "off";
if (policyForKind === "off")
return;
const message = _RouteConflictDetector.describeConflict(conflict);
if (policyForKind === "warn") {
logger3.warn(message);
return;
}
errorMessages.push(message);
});
if (errorMessages.length > 0) {
throw new RouteConflictException(errorMessages);
}
}
/**
* Removes shadow conflicts that specificity sorting has already resolved.
*
* When `routeResolutionStrategy: 'specificity'` is active, the sort
* promotes more-specific routes ahead of less-specific ones. A shadow
* where the sort promoted the winner (it was declared *later* but sorted
* *first*) is handled correctly at runtime — the more-specific route is
* registered first and handles its requests while the less-specific route
* handles the rest. Retaining such a conflict would cause `shadow: 'error'`
* to abort an application whose routes actually work as intended.
*
* Shadows where the winner was already first in declaration order (the
* sort did not swap them) are genuine and are kept unchanged. Duplicate
* conflicts are always kept.
*
* @param conflicts Conflicts detected on the sorted route list.
* @param declarationOrder Routes in their original declaration order
* (i.e. before specificity sorting was applied).
*/
static filterSortResolvedShadows(conflicts, declarationOrder) {
const declarationIndex = new Map(declarationOrder.map((route, idx) => [route, idx]));
return conflicts.filter((conflict) => {
if (conflict.kind !== "shadow")
return true;
const winnerDeclIdx = declarationIndex.get(conflict.winner) ?? -1;
const shadowedDeclIdx = declarationIndex.get(conflict.shadowed) ?? -1;
return winnerDeclIdx < shadowedDeclIdx;
});
}
static segmentsCanOverlap(leftSegment, rightSegment) {
if (leftSegment.kind === "wildcard" || rightSegment.kind === "wildcard") {
return true;
}
if (leftSegment.kind === "param" || rightSegment.kind === "param") {
return true;
}
return leftSegment.value === rightSegment.value;
}
static methodsCanOverlap(leftMethod, rightMethod) {
if (leftMethod === RequestMethod.ALL || rightMethod === RequestMethod.ALL) {
return true;
}
return leftMethod === rightMethod;
}
static versionsCanOverlap(leftVersion, rightVersion, versioningOptions) {
if (!versioningOptions)
return true;
if (versioningOptions.type === VersioningType.URI)
return true;
const leftMatchesAnyVersion = leftVersion === void 0 || leftVersion === VERSION_NEUTRAL;
const rightMatchesAnyVersion = rightVersion === void 0 || rightVersion === VERSION_NEUTRAL;
if (leftMatchesAnyVersion || rightMatchesAnyVersion)
return true;
const leftValues = Array.isArray(leftVersion) ? leftVersion : [leftVersion];
const rightValues = Array.isArray(rightVersion) ? rightVersion : [rightVersion];
return leftValues.some((versionValue) => rightValues.includes(versionValue));
}
static hostsCanOverlap(leftHost, rightHost) {
if (leftHost === void 0 || rightHost === void 0)
return true;
const leftHosts = Array.isArray(leftHost) ? leftHost : [leftHost];
const rightHosts = Array.isArray(rightHost) ? rightHost : [rightHost];
return leftHosts.some((leftValue) => rightHosts.some((rightValue) => _RouteConflictDetector.hostValuesCanMatchSameRequest(leftValue, rightValue)));
}
static hostValuesCanMatchSameRequest(leftValue, rightValue) {
const leftIsRegExp = leftValue instanceof RegExp;
const rightIsRegExp = rightValue instanceof RegExp;
if (leftIsRegExp && rightIsRegExp)
return true;
if (leftIsRegExp) {
leftValue.lastIndex = 0;
return leftValue.test(rightValue);
}
if (rightIsRegExp) {
rightValue.lastIndex = 0;
return rightValue.test(leftValue);
}
return leftValue === rightValue;
}
static routesAreIdentical(leftRoute, rightRoute, versioningOptions) {
return leftRoute.method === rightRoute.method && leftRoute.path === rightRoute.path && _RouteConflictDetector.hostsAreIdentical(leftRoute.host, rightRoute.host) && _RouteConflictDetector.versionsAreIdentical(leftRoute.version, rightRoute.version, versioningOptions);
}
static hostsAreIdentical(leftHost, rightHost) {
if (leftHost === void 0 && rightHost === void 0)
return true;
if (leftHost === void 0 || rightHost === void 0)
return false;
const leftHosts = Array.isArray(leftHost) ? leftHost : [leftHost];
const rightHosts = Array.isArray(rightHost) ? rightHost : [rightHost];
if (leftHosts.length !== rightHosts.length)
return false;
return leftHosts.every((leftValue) => rightHosts.some((rightValue) => _RouteConflictDetector.hostValuesAreIdentical(leftValue, rightValue)));
}
static hostValuesAreIdentical(leftValue, rightValue) {
if (leftValue instanceof RegExp && rightValue instanceof RegExp) {
return leftValue.source === rightValue.source && leftValue.flags === rightValue.flags;
}
return leftValue === rightValue;
}
static versionsAreIdentical(leftVersion, rightVersion, versioningOptions) {
if (!versioningOptions || versioningOptions.type === VersioningType.URI) {
return true;
}
if (leftVersion === rightVersion)
return true;
const leftValues = Array.isArray(leftVersion) ? leftVersion : [leftVersion];
const rightValues = Array.isArray(rightVersion) ? rightVersion : [rightVersion];
if (leftValues.length !== rightValues.length)
return false;
return leftValues.every((value) => rightValues.includes(value));
}
static forEachUniquePair(items, visit) {
items.forEach((leftItem, leftIndex) => {
items.slice(leftIndex + 1).forEach((rightItem) => {
visit(leftItem, rightItem);
});
});
}
static describeConflict(conflict) {
const method = RequestMethod[conflict.winner.method];
const winnerLabel = `${conflict.winner.instanceWrapper.name}#${conflict.winner.methodName}`;
const shadowedLabel = `${conflict.shadowed.instanceWrapper.name}#${conflict.shadowed.methodName}`;
if (conflict.kind === "duplicate") {
return DUPLICATE_ROUTE_MESSAGE(method, conflict.winner.path, winnerLabel, shadowedLabel);
}
return SHADOWED_ROUTE_MESSAGE(method, conflict.shadowed.path, shadowedLabel, conflict.winner.path, winnerLabel);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-specificity-sorter.js
var RouteSpecificitySorter;
var init_route_specificity_sorter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/route-specificity-sorter.js"() {
init_route_conflict_detector();
RouteSpecificitySorter = class _RouteSpecificitySorter {
static {
__name(this, "RouteSpecificitySorter");
}
/**
* Lower rank means more specific. A literal segment beats a named
* param, which beats a named wildcard. A position that is absent on
* one side means the path is shorter at that point. A shorter path
* with a wildcard is the least specific of all (`missing`), as the
* wildcard can absorb the extra segments. Without one, it ranks after
* a literal but before a param or wildcard (`end`): those can sit in
* an optional group (`/users{/:id}`, `/{*path}`) and then also match
* the shorter path.
*/
static SEGMENT_KIND_RANK = {
literal: 0,
end: 1,
param: 2,
wildcard: 3,
missing: 4
};
/**
* Returns a new array of routes sorted from most-specific to
* least-specific. Routes that tie on specificity keep their original
* declaration order.
*/
static sort(routes) {
const decoratedRoutes = routes.map((route, declarationIndex) => ({
route,
declarationIndex
}));
decoratedRoutes.sort((leftEntry, rightEntry) => {
const specificityDelta = _RouteSpecificitySorter.comparePathSpecificity(leftEntry.route.path, rightEntry.route.path);
if (specificityDelta !== 0)
return specificityDelta;
return leftEntry.declarationIndex - rightEntry.declarationIndex;
});
return decoratedRoutes.map((decoratedEntry) => decoratedEntry.route);
}
static comparePathSpecificity(leftPath, rightPath) {
const leftSegments = RouteConflictDetector.tokenizePath(leftPath);
const rightSegments = RouteConflictDetector.tokenizePath(rightPath);
const longestPathLength = Math.max(leftSegments.length, rightSegments.length);
const leftEndKind = _RouteSpecificitySorter.getEndKind(leftSegments);
const rightEndKind = _RouteSpecificitySorter.getEndKind(rightSegments);
let specificityDelta = 0;
Array.from({ length: longestPathLength }).forEach((_, segmentIndex) => {
if (specificityDelta !== 0)
return;
const leftKind = leftSegments[segmentIndex]?.kind ?? leftEndKind;
const rightKind = rightSegments[segmentIndex]?.kind ?? rightEndKind;
const leftRank = _RouteSpecificitySorter.rankSegmentByKind(leftKind);
const rightRank = _RouteSpecificitySorter.rankSegmentByKind(rightKind);
if (leftRank !== rightRank) {
specificityDelta = leftRank - rightRank;
}
});
return specificityDelta;
}
static getEndKind(segments) {
return segments.some((segment) => segment.kind === "wildcard") ? "missing" : "end";
}
static rankSegmentByKind(kind) {
return _RouteSpecificitySorter.SEGMENT_KIND_RANK[kind];
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/cross-origin-protection.js
function evaluateCrossOriginRequest(request, exemptions = {}) {
if (SAFE_METHODS.has(request.method)) {
return { allowed: true, reason: "safe-method" };
}
const secFetchSite = request.secFetchSite;
if (secFetchSite) {
if (secFetchSite === "same-origin" || secFetchSite === "none") {
return { allowed: true, reason: "same-origin" };
}
return exemptOr(request, exemptions, "cross-origin-sec-fetch-site");
}
const origin = request.origin;
if (!origin) {
return { allowed: true, reason: "no-browser-headers" };
}
if (request.host !== void 0 && originMatchesHost(origin, request.host)) {
return { allowed: true, reason: "origin-matches-host" };
}
return exemptOr(request, exemptions, "cross-origin-origin-header");
}
function exemptOr(request, exemptions, reason) {
if (exemptions.isExcluded?.()) {
return { allowed: true, reason: "excluded" };
}
if (request.origin !== void 0 && exemptions.trustedOrigins?.has(request.origin)) {
return { allowed: true, reason: "trusted-origin" };
}
return { allowed: false, reason };
}
function originMatchesHost(origin, host) {
let url;
try {
url = new URL(origin);
} catch {
return false;
}
if (!url.host) {
return false;
}
const authority = host.toLowerCase();
if (url.host === authority) {
return true;
}
const defaultPort = DEFAULT_PORTS[url.protocol];
return !url.port && defaultPort !== void 0 && `${url.hostname}:${defaultPort}` === authority;
}
function normalizeTrustedOrigin(origin) {
const fail2 = /* @__PURE__ */ __name((reason) => {
throw new Error(`Invalid trusted origin "${origin}": ${reason}.`);
}, "fail");
if (!isString(origin) || origin.length === 0) {
return fail2("expected a non-empty string");
}
if (!/^[a-z][a-z0-9+.-]*:\/\/[^/?#\\]+$/i.test(origin)) {
return fail2('expected "scheme://host[:port]", without a path, query string or fragment');
}
let url;
try {
url = new URL(origin);
} catch {
return fail2('expected "scheme://host[:port]"');
}
if (!url.host) {
fail2("a host is required");
}
if (url.username || url.password) {
fail2("credentials are not allowed");
}
if (url.host.includes("*")) {
fail2("wildcards are not supported, list each origin");
}
return `${url.protocol}//${url.host}`;
}
function toRouteInfo(route) {
if (isString(route)) {
return { path: addLeadingSlash(route), method: RequestMethod.ALL };
}
if (!route || !isString(route.path) || typeof route.method !== "number" || RequestMethod[route.method] === void 0) {
throw new Error(`Invalid CSRF protection exclusion ${JSON.stringify(route)}: expected a path, or a { path, method } object where method is a RequestMethod.`);
}
return { ...route, path: addLeadingSlash(route.path) };
}
function compileExclusion(path, requestMethod, logs) {
const converted = LegacyRouteConverter.tryConvert(path, { logs });
const normalized = converted.length > 1 ? converted.replace(/\/+$/, "") : converted;
return {
path: normalized,
requestMethod,
pathRegex: (0, import_path_to_regexp5.pathToRegexp)(addLeadingSlash(normalized) || "/", {
sensitive: true,
trailing: false
}).regexp
};
}
function readHeader(headers, name) {
const value = headers[name];
if (value === void 0) {
return void 0;
}
return Array.isArray(value) ? value.join(", ") : value;
}
var import_path_to_regexp5, SAFE_METHODS, DEFAULT_PORTS, DENIED_MESSAGES, NON_CANONICAL_PATH, CrossOriginProtection;
var init_cross_origin_protection = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/cross-origin-protection.js"() {
init_common();
init_internal();
import_path_to_regexp5 = __toESM(require_dist2(), 1);
init_utils2();
init_legacy_route_converter();
init_utils();
SAFE_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS"]);
DEFAULT_PORTS = {
"http:": "80",
"https:": "443"
};
__name(evaluateCrossOriginRequest, "evaluateCrossOriginRequest");
__name(exemptOr, "exemptOr");
__name(originMatchesHost, "originMatchesHost");
__name(normalizeTrustedOrigin, "normalizeTrustedOrigin");
DENIED_MESSAGES = {
"cross-origin-sec-fetch-site": "Cross-origin request detected from Sec-Fetch-Site header",
"cross-origin-origin-header": "Cross-origin request detected, and/or browser is out of date: Sec-Fetch-Site is missing, and Origin does not match Host"
};
NON_CANONICAL_PATH = /[#;\\]|\/\/|%2e|%2f|%5c|\/\.\.?(?:\/|$)/i;
CrossOriginProtection = class {
static {
__name(this, "CrossOriginProtection");
}
httpAdapter;
trustedOrigins;
excludedRoutes = [];
excludePredicate;
resolvedExclusions = [];
ignoreTrailingSlash = false;
versioningOptions;
/**
* Validates the options, so that a bad configuration fails as soon as
* `app.enableCsrfProtection()` is called.
*/
constructor(httpAdapter, options = {}) {
this.httpAdapter = httpAdapter;
if (!isPlainObject(options)) {
throw new Error("Invalid CSRF protection options: expected an options object.");
}
for (const key of Object.keys(options)) {
if (key !== "trustedOrigins" && key !== "exclude") {
throw new Error(`Invalid CSRF protection options: unknown option "${key}" (expected "trustedOrigins", "exclude").`);
}
}
const { trustedOrigins = [] } = options;
if (!Array.isArray(trustedOrigins)) {
throw new Error('Invalid CSRF protection "trustedOrigins" option: expected a list of origins.');
}
this.trustedOrigins = new Set(trustedOrigins.map(normalizeTrustedOrigin));
const { exclude } = options;
if (isFunction(exclude)) {
this.excludePredicate = exclude;
} else if (Array.isArray(exclude)) {
this.excludedRoutes = exclude.map(toRouteInfo);
for (const route of this.excludedRoutes) {
compileExclusion(route.path, route.method, false);
}
} else if (exclude !== void 0) {
throw new Error('Invalid CSRF protection "exclude" option: expected a list of routes or a function.');
}
}
/**
* Resolves the excluded routes to the paths they are served at, like
* `MiddlewareConsumer.exclude()` does: with the global prefix (unless the
* route is excluded from it) and, with URI versioning, the version segment
* of `RouteInfo.version` (with another versioning type, only the requests
* for that version are excluded). Called by `app.init()`, once the global
* prefix and versioning are final; until then nothing is excluded.
*/
resolveExclusions(pathExtractor) {
this.resolvedExclusions = this.excludedRoutes.flatMap((route) => pathExtractor.extractPathFrom(route).map((path) => {
const exclusion = compileExclusion(path, route.method, true);
if (route.version) {
exclusion.version = route.version;
}
return exclusion;
}));
this.ignoreTrailingSlash = !!this.httpAdapter.getRouteMatchingOptions?.()?.ignoreTrailingSlash;
this.versioningOptions = pathExtractor.getVersioningOptions();
}
/**
* Returns a `ForbiddenException` when the request must be rejected, and
* `undefined` otherwise.
*/
check(request) {
const headers = request.headers ?? {};
const decision = evaluateCrossOriginRequest({
method: this.httpAdapter.getRequestMethod(request),
secFetchSite: readHeader(headers, "sec-fetch-site"),
origin: readHeader(headers, "origin"),
// On HTTP/2, ":authority" identifies the target and takes precedence
// over a "Host" header (RFC 9113, section 8.3.1).
host: readHeader(headers, ":authority") ?? readHeader(headers, "host")
}, {
trustedOrigins: this.trustedOrigins,
isExcluded: /* @__PURE__ */ __name(() => this.isExcluded(request), "isExcluded")
});
if (decision.allowed) {
return void 0;
}
return new ForbiddenException(DENIED_MESSAGES[decision.reason]);
}
isExcluded(request) {
if (this.excludePredicate) {
return !!this.excludePredicate(request);
}
if (this.resolvedExclusions.length === 0) {
return false;
}
const url = this.httpAdapter.getRequestUrl(request) ?? "";
const queryIndex = url.indexOf("?");
const pathname = queryIndex >= 0 ? url.slice(0, queryIndex) : url;
if (!pathname.startsWith("/") || NON_CANONICAL_PATH.test(pathname)) {
return false;
}
const method = this.httpAdapter.getRequestMethod(request);
const isVersionRequested = createRequestedVersionMatcher(request, this.versioningOptions);
const isPathExcluded = /* @__PURE__ */ __name((path) => this.resolvedExclusions.some((exclusion) => isRouteExcluded([exclusion], path, RequestMethod[method]) && isVersionRequested(exclusion)), "isPathExcluded");
if (this.ignoreTrailingSlash && pathname.length > 1 && pathname.endsWith("/")) {
return isPathExcluded(pathname) && isPathExcluded(pathname.replace(/\/+$/, ""));
}
return isPathExcluded(pathname);
}
};
__name(toRouteInfo, "toRouteInfo");
__name(compileExclusion, "compileExclusion");
__name(readHeader, "readHeader");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/http-security-hook.js
var HttpSecurityHook;
var init_http_security_hook = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/http-security-hook.js"() {
init_route_info_path_extractor();
HttpSecurityHook = class {
static {
__name(this, "HttpSecurityHook");
}
headers;
crossOriginProtection;
setHeaders(headers) {
this.headers = headers;
}
setCrossOriginProtection(protection) {
this.crossOriginProtection = protection;
}
/**
* Called by `app.init()`, once the global prefix and versioning are final.
*/
init(config) {
this.crossOriginProtection?.resolveExclusions(new RouteInfoPathExtractor(config));
}
/**
* Runs the enabled features for one request. Returns the error to hand to
* the exception layer when the request must be rejected.
*/
handle(request, response) {
if (this.headers) {
for (const [name, value] of this.headers.headers) {
response.setHeader(name, value);
}
for (const name of this.headers.removeHeaders) {
response.removeHeader(name);
}
}
return this.crossOriginProtection?.check(request);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/security-headers.js
function serializeContentSecurityPolicy(options = {}) {
const { useDefaults = true, directives = {} } = options;
if (typeof useDefaults !== "boolean") {
fail("contentSecurityPolicy.useDefaults must be a boolean.");
}
if (!isObject(directives) || Array.isArray(directives)) {
fail("contentSecurityPolicy.directives must be an object.");
}
const result = /* @__PURE__ */ new Map();
if (useDefaults) {
for (const [name, value] of Object.entries(DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES)) {
result.set(name, value);
}
}
const seen = /* @__PURE__ */ new Set();
const removed = /* @__PURE__ */ new Set();
for (const [rawName, rawValue] of Object.entries(directives)) {
const name = normalizeDirectiveName(rawName);
if (seen.has(name)) {
fail(`Content-Security-Policy directive "${name}" is set twice.`);
}
seen.add(name);
const values = normalizeDirectiveValue(name, rawValue);
if (values === null) {
removed.add(name);
result.delete(name);
} else {
result.set(name, values);
}
}
if (!result.has("default-src") && !removed.has("default-src")) {
fail('Content-Security-Policy needs a "default-src" directive. Set "defaultSrc: null" to omit it deliberately.');
}
if (result.size === 0) {
fail("Content-Security-Policy has no directives.");
}
return Array.from(result, ([name, values]) => values.length > 0 ? `${name} ${values.join(" ")}` : name).join(";");
}
function normalizeDirectiveName(rawName) {
const name = DIRECTIVE_NAME.test(rawName) ? rawName.replace(/[A-Z]/g, (letter) => `-${letter}`).toLowerCase() : "";
if (!NORMALIZED_DIRECTIVE_NAME.test(name)) {
fail(`"${rawName}" is not a valid Content-Security-Policy directive name (expected camelCase, e.g. "scriptSrc", or lower-case kebab-case, e.g. "script-src").`);
}
return name;
}
function normalizeDirectiveValue(name, value) {
if (value === null || value === false || value === void 0) {
return null;
}
if (value === true) {
return [];
}
const values = isString(value) ? [value] : value;
if (!Array.isArray(values)) {
return fail(`Content-Security-Policy directive "${name}" must be a string, a list of strings, a boolean or null.`);
}
return values.map((item) => {
if (!isString(item) || item.trim().length === 0) {
return fail(`Content-Security-Policy directive "${name}" contains an empty or non-string value.`);
}
if (FORBIDDEN_VALUE_CHARACTERS.test(item)) {
return fail(`Content-Security-Policy directive "${name}" contains an invalid value ${JSON.stringify(item)}: ";", "," and control or non-ASCII characters are not allowed.`);
}
if (item.split(/\s+/).some((token) => MUST_BE_QUOTED.test(token))) {
return fail(`Content-Security-Policy directive "${name}" contains ${JSON.stringify(item)}: keywords, nonces and hashes must be single-quoted (e.g. "'self'").`);
}
return item.trim();
});
}
function resolveSecurityHeaders(options = {}) {
if (!isPlainObject(options)) {
fail("expected an options object.");
}
for (const name of Object.keys(options)) {
if (!Object.hasOwn(OPTION_KEYS, name)) {
const current = HELMET_LEGACY_OPTION_NAMES[name];
fail(`unknown option "${name}"` + (current ? ` (helmet's legacy name, use "${current}").` : "."));
}
}
const headers = [];
const add = /* @__PURE__ */ __name((name, value) => headers.push([name, value]), "add");
const csp = readOption(options, "contentSecurityPolicy", true);
if (csp) {
add(readBoolean(csp, "contentSecurityPolicy", "reportOnly", false) ? "Content-Security-Policy-Report-Only" : "Content-Security-Policy", serializeContentSecurityPolicy(csp));
}
const coep = readOption(options, "crossOriginEmbedderPolicy", false);
if (coep) {
add("Cross-Origin-Embedder-Policy", pick("crossOriginEmbedderPolicy.policy", coep.policy, COEP_POLICIES, "require-corp"));
}
const coop = readOption(options, "crossOriginOpenerPolicy", true);
if (coop) {
add("Cross-Origin-Opener-Policy", pick("crossOriginOpenerPolicy.policy", coop.policy, COOP_POLICIES, "same-origin"));
}
const corp = readOption(options, "crossOriginResourcePolicy", true);
if (corp) {
add("Cross-Origin-Resource-Policy", pick("crossOriginResourcePolicy.policy", corp.policy, CORP_POLICIES, "same-origin"));
}
if (readOption(options, "originAgentCluster", true)) {
add("Origin-Agent-Cluster", "?1");
}
const referrer = readOption(options, "referrerPolicy", true);
if (referrer) {
add("Referrer-Policy", resolveReferrerPolicy(referrer.policy));
}
const hsts = readOption(options, "strictTransportSecurity", true);
if (hsts) {
add("Strict-Transport-Security", resolveHsts(hsts));
}
if (readOption(options, "xContentTypeOptions", true)) {
add("X-Content-Type-Options", "nosniff");
}
const dnsPrefetch = readOption(options, "xDnsPrefetchControl", true);
if (dnsPrefetch) {
const allow = readBoolean(dnsPrefetch, "xDnsPrefetchControl", "allow");
add("X-DNS-Prefetch-Control", allow ? "on" : "off");
}
if (readOption(options, "xDownloadOptions", true)) {
add("X-Download-Options", "noopen");
}
const frameOptions = readOption(options, "xFrameOptions", true);
if (frameOptions) {
const { action } = frameOptions;
add("X-Frame-Options", pick("xFrameOptions.action", isString(action) ? action.toLowerCase() : action, X_FRAME_OPTIONS_ACTIONS, "sameorigin").toUpperCase());
}
const crossDomain = readOption(options, "xPermittedCrossDomainPolicies", true);
if (crossDomain) {
add("X-Permitted-Cross-Domain-Policies", pick("xPermittedCrossDomainPolicies.permittedPolicies", crossDomain.permittedPolicies, X_PERMITTED_CROSS_DOMAIN_POLICIES, "none"));
}
if (readOption(options, "xXssProtection", true)) {
add("X-XSS-Protection", "0");
}
const removeHeaders = readOption(options, "xPoweredBy", true) ? ["X-Powered-By"] : [];
return { headers, removeHeaders };
}
function readOption(options, name, enabledByDefault) {
const value = options[name];
if (value === void 0) {
return enabledByDefault ? {} : void 0;
}
if (typeof value === "boolean") {
return value ? {} : void 0;
}
const keys = OPTION_KEYS[name];
if (keys.length === 0 || !isPlainObject(value)) {
return fail(`${name} must be a boolean${keys.length > 0 ? " or an object" : ""}, received ${JSON.stringify(value)}.`);
}
for (const key of Object.keys(value)) {
if (!keys.includes(key)) {
fail(`unknown option "${name}.${key}" (expected ${keys.map((k) => `"${k}"`).join(", ")}).`);
}
}
return value;
}
function readBoolean(object, option, key, fallback = false) {
const value = object[key];
if (value === void 0) {
return fallback;
}
if (typeof value !== "boolean") {
fail(`${option}.${key} must be a boolean, received ${JSON.stringify(value)}.`);
}
return value;
}
function pick(option, value, allowed, fallback) {
if (value === void 0) {
return fallback;
}
if (!isString(value) || !allowed.includes(value)) {
fail(`${option} must be one of ${allowed.map((v) => `"${v}"`).join(", ")}, received ${JSON.stringify(value)}.`);
}
return value;
}
function resolveReferrerPolicy(policy) {
if (policy === void 0) {
return "no-referrer";
}
const tokens = isString(policy) ? [policy] : policy;
if (!Array.isArray(tokens) || tokens.length === 0) {
fail("referrerPolicy.policy must be a token or a non-empty list.");
}
const unique = /* @__PURE__ */ new Set();
for (const token of tokens) {
pick("referrerPolicy.policy", token, REFERRER_POLICIES, "no-referrer");
if (unique.has(token)) {
fail(`referrerPolicy.policy contains "${token}" more than once.`);
}
unique.add(token);
}
return tokens.join(",");
}
function resolveHsts(option) {
const maxAge = option.maxAge ?? DEFAULT_HSTS_MAX_AGE;
if (typeof maxAge !== "number" || !Number.isFinite(maxAge) || maxAge < 0) {
fail(`strictTransportSecurity.maxAge must be a non-negative number of seconds, received ${JSON.stringify(maxAge)}.`);
}
let value = `max-age=${Math.floor(maxAge)}`;
if (readBoolean(option, "strictTransportSecurity", "includeSubDomains", true)) {
value += "; includeSubDomains";
}
if (readBoolean(option, "strictTransportSecurity", "preload")) {
value += "; preload";
}
return value;
}
var DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES, DEFAULT_HSTS_MAX_AGE, COEP_POLICIES, COOP_POLICIES, CORP_POLICIES, REFERRER_POLICIES, X_FRAME_OPTIONS_ACTIONS, X_PERMITTED_CROSS_DOMAIN_POLICIES, OPTION_KEYS, HELMET_LEGACY_OPTION_NAMES, MUST_BE_QUOTED, FORBIDDEN_VALUE_CHARACTERS, DIRECTIVE_NAME, NORMALIZED_DIRECTIVE_NAME, SecurityHeadersConfigurationError, fail;
var init_security_headers = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/security/security-headers.js"() {
init_internal();
DEFAULT_CONTENT_SECURITY_POLICY_DIRECTIVES = Object.freeze({
"default-src": ["'self'"],
"base-uri": ["'self'"],
"font-src": ["'self'", "https:", "data:"],
"form-action": ["'self'"],
"frame-ancestors": ["'self'"],
"img-src": ["'self'", "data:"],
"object-src": ["'none'"],
"script-src": ["'self'"],
"script-src-attr": ["'none'"],
"style-src": ["'self'", "https:", "'unsafe-inline'"],
"upgrade-insecure-requests": []
});
DEFAULT_HSTS_MAX_AGE = 365 * 24 * 60 * 60;
COEP_POLICIES = ["require-corp", "credentialless", "unsafe-none"];
COOP_POLICIES = [
"same-origin",
"same-origin-allow-popups",
"noopener-allow-popups",
"unsafe-none"
];
CORP_POLICIES = ["same-origin", "same-site", "cross-origin"];
REFERRER_POLICIES = [
"",
"no-referrer",
"no-referrer-when-downgrade",
"same-origin",
"origin",
"strict-origin",
"origin-when-cross-origin",
"strict-origin-when-cross-origin",
"unsafe-url"
];
X_FRAME_OPTIONS_ACTIONS = ["deny", "sameorigin"];
X_PERMITTED_CROSS_DOMAIN_POLICIES = [
"none",
"master-only",
"by-content-type",
"all"
];
OPTION_KEYS = {
contentSecurityPolicy: ["directives", "reportOnly", "useDefaults"],
crossOriginEmbedderPolicy: ["policy"],
crossOriginOpenerPolicy: ["policy"],
crossOriginResourcePolicy: ["policy"],
originAgentCluster: [],
referrerPolicy: ["policy"],
strictTransportSecurity: ["includeSubDomains", "maxAge", "preload"],
xContentTypeOptions: [],
xDnsPrefetchControl: ["allow"],
xDownloadOptions: [],
xFrameOptions: ["action"],
xPermittedCrossDomainPolicies: ["permittedPolicies"],
xPoweredBy: [],
xXssProtection: []
};
HELMET_LEGACY_OPTION_NAMES = {
dnsPrefetchControl: "xDnsPrefetchControl",
frameguard: "xFrameOptions",
hidePoweredBy: "xPoweredBy",
hsts: "strictTransportSecurity",
ieNoOpen: "xDownloadOptions",
noSniff: "xContentTypeOptions",
permittedCrossDomainPolicies: "xPermittedCrossDomainPolicies",
xssFilter: "xXssProtection"
};
MUST_BE_QUOTED = /^(?:self|none|strict-dynamic|report-sample|inline-speculation-rules|unsafe-inline|unsafe-eval|unsafe-hashes|wasm-unsafe-eval|unsafe-allow-redirects)$|^(?:nonce|sha256|sha384|sha512)-[A-Za-z0-9+/_=-]+$/i;
FORBIDDEN_VALUE_CHARACTERS = /[;,]|[^\x20-\x7e]/;
DIRECTIVE_NAME = /^[a-zA-Z0-9-]+$/;
NORMALIZED_DIRECTIVE_NAME = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;
SecurityHeadersConfigurationError = class extends Error {
static {
__name(this, "SecurityHeadersConfigurationError");
}
constructor(message) {
super(`Invalid security headers configuration: ${message}`);
this.name = "SecurityHeadersConfigurationError";
}
};
fail = /* @__PURE__ */ __name((message) => {
throw new SecurityHeadersConfigurationError(message);
}, "fail");
__name(serializeContentSecurityPolicy, "serializeContentSecurityPolicy");
__name(normalizeDirectiveName, "normalizeDirectiveName");
__name(normalizeDirectiveValue, "normalizeDirectiveValue");
__name(resolveSecurityHeaders, "resolveSecurityHeaders");
__name(readOption, "readOption");
__name(readBoolean, "readBoolean");
__name(pick, "pick");
__name(resolveReferrerPolicy, "resolveReferrerPolicy");
__name(resolveHsts, "resolveHsts");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application.js
import { platform } from "os";
var import_iterare17, NestApplication;
var init_nest_application = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-application.js"() {
init_common();
import_iterare17 = __toESM(require_lib(), 1);
init_application_config();
init_constants2();
init_cookie_signer();
init_optional_require();
init_safe_instance_decorator();
init_injector();
init_container2();
init_middleware_module();
init_utils2();
init_nest_application_context();
init_routes_resolver();
init_common();
init_internal();
init_route_conflict_detector();
init_route_specificity_sorter();
init_cross_origin_protection();
init_http_security_hook();
init_security_headers();
NestApplication = class _NestApplication extends NestApplicationContext {
static {
__name(this, "NestApplication");
}
httpAdapter;
config;
graphInspector;
logger = new Logger(_NestApplication.name, {
timestamp: true
});
middlewareModule;
middlewareContainer = new MiddlewareContainer(this.container);
microservicesModule = null;
socketModule = null;
routesResolver;
microservices = [];
httpServer;
isListening = false;
isWsModuleRegistered = false;
enabledSecurityFeatures = /* @__PURE__ */ new Set();
securityHook;
constructor(container, httpAdapter, config, graphInspector, appOptions = {}) {
super(container, appOptions);
this.httpAdapter = httpAdapter;
this.config = config;
this.graphInspector = graphInspector;
this.config.setRouteConflictPolicy(appOptions.routeConflictPolicy);
this.config.setRouteResolutionStrategy(appOptions.routeResolutionStrategy);
this.applyCookiesOptions(appOptions);
this.selectContextModule();
this.registerHttpServer();
this.injector = new Injector({
preview: this.appOptions.preview,
instanceDecorator: appOptions.instrument?.instanceDecorator
});
this.middlewareModule = new MiddlewareModule();
this.routesResolver = new RoutesResolver(this.container, this.config, this.injector, this.graphInspector);
}
async prepareClose() {
this.httpAdapter && await this.httpAdapter.beforeClose?.();
}
async dispose() {
await this.socketModule?.close();
await this.microservicesModule?.close();
await this.httpAdapter?.close();
this.isListening = false;
this.container.getHttpAdapterHostRef().listening = false;
await Promise.all((0, import_iterare17.iterate)(this.microservices).map(async (microservice) => {
microservice.setIsTerminated(true);
await microservice.close();
}));
}
getHttpAdapter() {
return this.httpAdapter;
}
registerHttpServer() {
this.httpServer = this.createServer();
}
getUnderlyingHttpServer() {
return this.httpAdapter.getHttpServer();
}
applyOptions() {
if (!this.appOptions || !this.appOptions.cors) {
return void 0;
}
const passCustomOptions = isObject(this.appOptions.cors) || isFunction(this.appOptions.cors);
if (!passCustomOptions) {
return this.enableCors();
}
return this.enableCors(this.appOptions.cors);
}
createServer() {
this.httpAdapter.initHttpServer(this.appOptions);
return this.httpAdapter.getHttpServer();
}
async registerModules() {
await this.registerWsModule();
if (this.microservicesModule) {
this.microservicesModule.register(this.container, this.graphInspector, this.config, this.appOptions);
this.microservicesModule.setupClients(this.container);
}
await this.middlewareModule.register(this.middlewareContainer, this.container, this.config, this.injector, this.httpAdapter, this.graphInspector, this.appOptions);
}
async registerWsModule() {
if (!this.socketModule) {
return;
}
await this.socketModule.register(this.container, this.config, this.graphInspector, this.appOptions, this.httpServer);
this.isWsModuleRegistered = true;
}
async init() {
if (this.isInitialized) {
return this;
}
try {
await Promise.all([
this.loadSocketModule(),
this.loadMicroservicesModule()
]);
this.applyOptions();
this.securityHook?.init(this.config);
await this.httpAdapter?.init?.();
const useBodyParser = this.appOptions && this.appOptions.bodyParser !== false;
useBodyParser && this.registerParserMiddleware();
await this.registerModules();
await this.registerRouter();
await this.callInitHook();
await this.registerRouterHooks();
await this.callBootstrapHook();
this.isInitialized = true;
this.logger.log(MESSAGES.APPLICATION_READY);
} finally {
this.flushLogsIfAutoFlushEnabled();
}
return this;
}
registerParserMiddleware() {
const prefix = this.config.getGlobalPrefix();
const rawBody = !!this.appOptions?.rawBody;
this.httpAdapter.registerParserMiddleware(prefix, rawBody);
}
async registerRouter() {
await this.registerMiddleware(this.httpAdapter);
const prefix = this.config.getGlobalPrefix();
const basePath = addLeadingSlash(prefix);
const conflictPolicy = this.config.getRouteConflictPolicy();
const resolutionStrategy = this.config.getRouteResolutionStrategy();
const adapterIsOrderSensitive = this.httpAdapter.isRouteOrderSensitive?.() ?? true;
const shouldSortBySpecificity = resolutionStrategy === "specificity" && adapterIsOrderSensitive;
const adapterRejectsDuplicates = !adapterIsOrderSensitive;
if (!conflictPolicy && !shouldSortBySpecificity) {
this.routesResolver.resolve(this.httpAdapter, basePath);
return;
}
const resolvedRoutes = [];
this.routesResolver.resolve(this.httpAdapter, basePath, {
onRouteResolved: /* @__PURE__ */ __name((route) => resolvedRoutes.push(route), "onRouteResolved"),
deferRegistration: true
});
const orderedRoutes = shouldSortBySpecificity ? RouteSpecificitySorter.sort(resolvedRoutes) : resolvedRoutes;
const routesToSkip = /* @__PURE__ */ new Set();
if (conflictPolicy) {
const filteredPolicy = adapterIsOrderSensitive ? conflictPolicy : { duplicate: conflictPolicy.duplicate };
const conflicts = RouteConflictDetector.detect(orderedRoutes, this.config.getVersioning());
if (adapterRejectsDuplicates) {
conflicts.forEach((conflict) => {
if (conflict.kind === "duplicate") {
routesToSkip.add(conflict.shadowed);
}
});
}
const effectiveConflicts = shouldSortBySpecificity ? RouteConflictDetector.filterSortResolvedShadows(conflicts, resolvedRoutes) : conflicts;
RouteConflictDetector.handle(effectiveConflicts, filteredPolicy, this.logger);
}
orderedRoutes.forEach((route) => {
if (routesToSkip.has(route))
return;
this.routesResolver.registerResolvedRoute(this.httpAdapter, route);
});
}
async registerRouterHooks() {
this.routesResolver.registerNotFoundHandler();
this.routesResolver.registerExceptionHandler();
}
connectMicroservice(microserviceOptions, hybridAppOptions = {}) {
const { NestMicroservice } = loadPackageCached("@nestjs/microservices", "NestFactory");
const { inheritAppConfig } = hybridAppOptions;
const applicationConfig = inheritAppConfig ? this.config : new ApplicationConfig();
const instance = new NestMicroservice(this.container, microserviceOptions, this.graphInspector, applicationConfig);
instance.setIsConnectedToApplication?.(true);
if (!hybridAppOptions.deferInitialization) {
instance.registerListeners();
instance.setIsInitialized(true);
instance.setIsInitHookCalled(true);
}
this.microservices.push(instance);
return instance;
}
getMicroservices() {
return this.microservices;
}
getHttpServer() {
return this.httpServer;
}
async startAllMicroservices() {
this.assertNotInPreviewMode("startAllMicroservices");
await Promise.all(this.microservices.map((msvc) => msvc.listen()));
return this;
}
use(...args) {
this.httpAdapter.use(...this.applyFunctionDecoratorIfRegistered(args));
return this;
}
useBodyParser(...args) {
if (!("useBodyParser" in this.httpAdapter)) {
this.logger.warn("Your HTTP Adapter does not support `.useBodyParser`.");
return this;
}
const [parserType, ...otherArgs] = args;
const rawBody = !!this.appOptions.rawBody;
this.httpAdapter.useBodyParser?.(...[parserType, rawBody, ...otherArgs]);
return this;
}
enableCors(options) {
this.httpAdapter.enableCors(options);
}
enableCsrfProtection(options) {
this.assertSecurityFeatureCanBeEnabled("enableCsrfProtection");
const protection = new CrossOriginProtection(this.httpAdapter, options);
this.getSecurityHook().setCrossOriginProtection(protection);
this.enabledSecurityFeatures.add("enableCsrfProtection");
return this;
}
useSecurityHeaders(options) {
this.assertSecurityFeatureCanBeEnabled("useSecurityHeaders");
const headers = resolveSecurityHeaders(options);
this.getSecurityHook().setHeaders(headers);
if (headers.removeHeaders.includes("X-Powered-By")) {
this.httpAdapter.disable?.("x-powered-by");
}
this.enabledSecurityFeatures.add("useSecurityHeaders");
return this;
}
enableVersioning(options = { type: VersioningType.URI }) {
this.config.enableVersioning(options);
return this;
}
async listen(port, ...args) {
this.assertNotInPreviewMode("listen");
if (!this.isInitialized) {
await this.init();
}
const httpAdapterHost = this.container.getHttpAdapterHostRef();
return new Promise((resolve, reject) => {
const errorHandler = /* @__PURE__ */ __name((e) => {
this.logger.error(e?.toString?.());
reject(e);
}, "errorHandler");
this.httpServer.once("error", errorHandler);
const isCallbackInOriginalArgs = isFunction(args[args.length - 1]);
const listenFnArgs = isCallbackInOriginalArgs ? args.slice(0, args.length - 1) : args;
this.httpAdapter.listen(port, ...listenFnArgs, (...originalCallbackArgs) => {
this.flushLogsIfAutoFlushEnabled();
if (originalCallbackArgs[0] instanceof Error) {
return reject(originalCallbackArgs[0]);
}
const address = this.httpServer.address();
if (address) {
this.httpServer.removeListener("error", errorHandler);
this.isListening = true;
httpAdapterHost.listening = true;
resolve(this.httpServer);
}
if (isCallbackInOriginalArgs) {
args[args.length - 1](...originalCallbackArgs);
}
});
});
}
async getUrl() {
return new Promise((resolve, reject) => {
if (!this.isListening) {
this.logger.error(MESSAGES.CALL_LISTEN_FIRST);
reject(MESSAGES.CALL_LISTEN_FIRST);
return;
}
const address = this.httpServer.address();
resolve(this.formatAddress(address));
});
}
formatAddress(address) {
if (isString(address)) {
if (platform() === "win32") {
return address;
}
const basePath = encodeURIComponent(address);
return `${this.getProtocol()}+unix://${basePath}`;
}
let host = this.host();
if (address && address.family === "IPv6") {
if (host === "::") {
host = "[::1]";
} else {
host = `[${host}]`;
}
} else if (host === "0.0.0.0") {
host = "127.0.0.1";
}
return `${this.getProtocol()}://${host}:${address.port}`;
}
setGlobalPrefix(prefix, options) {
this.config.setGlobalPrefix(prefix);
if (options) {
const exclude = options?.exclude ? mapToExcludeRoute(options.exclude) : [];
this.config.setGlobalPrefixOptions({
...options,
exclude
});
}
return this;
}
useWebSocketAdapter(adapter) {
if (this.isWsModuleRegistered) {
this.logger.warn("useWebSocketAdapter() was called after WebSocket gateways were already initialized. The provided adapter will be stored but will NOT be applied to existing gateways \u2014 they remain bound to the previously installed adapter. To install a custom adapter, call app.useWebSocketAdapter(...) BEFORE app.init() (or app.listen()).");
}
this.config.setIoAdapter(adapter);
return this;
}
useGlobalFilters(...filters) {
filters = this.applyInstanceDecoratorIfRegistered(...filters);
this.config.useGlobalFilters(...filters);
filters.forEach((item) => this.graphInspector.insertOrphanedEnhancer({
subtype: "filter",
ref: item
}));
return this;
}
useGlobalPipes(...pipes) {
pipes = this.applyInstanceDecoratorIfRegistered(...pipes);
this.config.useGlobalPipes(...pipes);
pipes.forEach((item) => this.graphInspector.insertOrphanedEnhancer({
subtype: "pipe",
ref: item
}));
return this;
}
useGlobalInterceptors(...interceptors) {
interceptors = this.applyInstanceDecoratorIfRegistered(...interceptors);
this.config.useGlobalInterceptors(...interceptors);
interceptors.forEach((item) => this.graphInspector.insertOrphanedEnhancer({
subtype: "interceptor",
ref: item
}));
return this;
}
useGlobalGuards(...guards) {
guards = this.applyInstanceDecoratorIfRegistered(...guards);
this.config.useGlobalGuards(...guards);
guards.forEach((item) => this.graphInspector.insertOrphanedEnhancer({
subtype: "guard",
ref: item
}));
return this;
}
useStaticAssets(pathOrOptions, options) {
this.httpAdapter.useStaticAssets?.(pathOrOptions, options);
return this;
}
setBaseViewsDir(path) {
this.httpAdapter.setBaseViewsDir?.(path);
return this;
}
setViewEngine(engineOrOptions) {
this.httpAdapter.setViewEngine?.(engineOrOptions);
return this;
}
/**
* Pre-load optional packages so that createNestApplication,
* createNestMicroservice and createHttpAdapter can stay synchronous.
*/
async preloadLazyPackages() {
await tryLoadPackage("@nestjs/platform-express", () => import("./platform-express-MGQH3ALM.js"));
await tryLoadPackage("@nestjs/microservices", () => import("@nestjs/microservices"));
}
/**
* Builds the cookie signer from the `cookies.secret` option and shares it
* between the route params factory (through the config), which verifies
* signed cookies, and the HTTP adapter, which signs them in `setCookie()`.
*/
applyCookiesOptions(appOptions) {
const secret = appOptions.cookies?.secret;
if (secret === void 0) {
return;
}
const signer = new CookieSigner(secret);
this.config.setCookieSigner(signer);
this.httpAdapter.setCookieSigner?.(signer);
}
host() {
const address = this.httpServer.address();
if (isString(address)) {
return void 0;
}
return address && address.address;
}
getProtocol() {
return this.appOptions && this.appOptions.httpsOptions ? "https" : "http";
}
/**
* Request-level security features are installed as a framework middleware
* or hook. After `init()` it would land behind the routes (Express) or be
* rejected by the framework (Fastify), leaving routes silently unprotected,
* so they fail loudly instead. A second call is rejected as well, as it
* would silently replace the first configuration.
*/
assertSecurityFeatureCanBeEnabled(methodName) {
if (!this.httpAdapter.registerSecurityHook) {
throw new Error(`Your HTTP Adapter does not support \`.${methodName}()\`.`);
}
if (this.isInitialized) {
throw new Error(`app.${methodName}() must be called before app.init() / app.listen().`);
}
if (this.enabledSecurityFeatures.has(methodName)) {
throw new Error(`app.${methodName}() can only be called once.`);
}
}
/**
* Both security features share one request hook, so that they run in a
* fixed order (headers, then the CSRF check) whichever is enabled first.
* It is registered with the adapter the first time either is enabled,
* i.e. at that position in the middleware chain.
*/
getSecurityHook() {
if (!this.securityHook) {
const hook = new HttpSecurityHook();
this.httpAdapter.registerSecurityHook((request, response) => hook.handle(request, response));
this.securityHook = hook;
}
return this.securityHook;
}
async registerMiddleware(instance) {
await this.middlewareModule.registerMiddleware(this.middlewareContainer, instance);
}
applyInstanceDecoratorIfRegistered(...instances) {
if (this.appOptions.instrument?.instanceDecorator) {
const decorate = makeSafeInstanceDecorator(this.appOptions.instrument.instanceDecorator);
return instances.map((instance) => decorate(instance));
}
return instances;
}
applyFunctionDecoratorIfRegistered(args) {
if (!this.appOptions.instrument?.instanceDecorator) {
return args;
}
const decorate = makeSafeInstanceDecorator(this.appOptions.instrument.instanceDecorator);
const decorateFunction = /* @__PURE__ */ __name((arg) => {
if (!isFunction(arg)) {
return arg;
}
const decorated = decorate(arg);
return isFunction(decorated) ? decorated : arg;
}, "decorateFunction");
return args.map(decorateFunction);
}
async loadSocketModule() {
if (!this.socketModule) {
const socketModule = await optionalRequire("@nestjs/websockets/socket-module", () => import("@nestjs/websockets/socket-module.js"));
if (socketModule?.SocketModule) {
this.socketModule = new socketModule.SocketModule();
}
}
}
async loadMicroservicesModule() {
if (!this.microservicesModule) {
const msModule = await optionalRequire("@nestjs/microservices/microservices-module", () => import("@nestjs/microservices/microservices-module.js"));
if (msModule?.MicroservicesModule) {
this.microservicesModule = new msModule.MicroservicesModule();
await loadPackage("@nestjs/microservices", "NestFactory", () => import("@nestjs/microservices"));
}
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exception-handler.js
var ExceptionHandler;
var init_exception_handler = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exception-handler.js"() {
init_common();
ExceptionHandler = class _ExceptionHandler {
static {
__name(this, "ExceptionHandler");
}
static logger = new Logger(_ExceptionHandler.name);
handle(exception) {
_ExceptionHandler.logger.error(exception);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions-zone.js
var DEFAULT_TEARDOWN, ExceptionsZone;
var init_exceptions_zone = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions-zone.js"() {
init_common();
init_exception_handler();
DEFAULT_TEARDOWN = /* @__PURE__ */ __name(() => process.exit(1), "DEFAULT_TEARDOWN");
ExceptionsZone = class {
static {
__name(this, "ExceptionsZone");
}
static exceptionHandler = new ExceptionHandler();
static run(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) {
try {
callback();
} catch (e) {
this.exceptionHandler.handle(e);
if (autoFlushLogs) {
Logger.flush();
}
teardown(e);
}
}
static async asyncRun(callback, teardown = DEFAULT_TEARDOWN, autoFlushLogs) {
try {
await callback();
} catch (e) {
this.exceptionHandler.handle(e);
if (autoFlushLogs) {
Logger.flush();
}
teardown(e);
}
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/load-adapter.js
async function loadAdapter(defaultPlatform, transport, loaderFn) {
try {
return loaderFn ? await loaderFn() : await import(defaultPlatform);
} catch (e) {
logger2.error(MISSING_REQUIRED_DEPENDENCY(defaultPlatform, transport));
process.exit(1);
}
}
var MISSING_REQUIRED_DEPENDENCY, logger2;
var init_load_adapter = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/load-adapter.js"() {
init_common();
MISSING_REQUIRED_DEPENDENCY = /* @__PURE__ */ __name((defaultPlatform, transport) => `No driver (${transport}) has been selected. In order to use the default driver, please, install the "${defaultPlatform}" package ($ npm install ${defaultPlatform}).`, "MISSING_REQUIRED_DEPENDENCY");
logger2 = new Logger("PackageLoader");
__name(loadAdapter, "loadAdapter");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/rethrow.js
var rethrow;
var init_rethrow = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/helpers/rethrow.js"() {
rethrow = /* @__PURE__ */ __name((err) => {
throw err;
}, "rethrow");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-loader.js
var InstanceLoader;
var init_instance_loader = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/instance-loader.js"() {
init_common();
init_discoverable_meta_host_collection();
init_messages2();
init_internal_core_module();
InstanceLoader = class _InstanceLoader {
static {
__name(this, "InstanceLoader");
}
container;
injector;
graphInspector;
logger;
constructor(container, injector, graphInspector, logger3 = new Logger(_InstanceLoader.name, {
timestamp: true
})) {
this.container = container;
this.injector = injector;
this.graphInspector = graphInspector;
this.logger = logger3;
}
setLogger(logger3) {
this.logger = logger3;
}
async createInstancesOfDependencies(modules = this.container.getModules()) {
this.createPrototypes(modules);
try {
await this.createInstances(modules);
} catch (err) {
this.graphInspector.inspectModules(modules);
this.graphInspector.registerPartial(err);
throw err;
}
this.graphInspector.inspectModules(modules);
}
createPrototypes(modules) {
modules.forEach((moduleRef) => {
this.createPrototypesOfProviders(moduleRef);
this.createPrototypesOfInjectables(moduleRef);
this.createPrototypesOfControllers(moduleRef);
});
}
async createInstances(modules) {
await Promise.all([...modules.values()].map(async (moduleRef) => {
await this.createInstancesOfProviders(moduleRef);
await this.createInstancesOfInjectables(moduleRef);
await this.createInstancesOfControllers(moduleRef);
const { name } = moduleRef;
this.isModuleWhitelisted(name) && this.logger.log(MODULE_INIT_MESSAGE`${name}`);
}));
}
createPrototypesOfProviders(moduleRef) {
const { providers } = moduleRef;
providers.forEach((wrapper) => this.injector.loadPrototype(wrapper, providers));
}
async createInstancesOfProviders(moduleRef) {
const { providers } = moduleRef;
const wrappers = [...providers.values()];
await Promise.all(wrappers.map(async (item) => {
await this.injector.loadProvider(item, moduleRef);
this.graphInspector.inspectInstanceWrapper(item, moduleRef);
if (!item.isAlias) {
DiscoverableMetaHostCollection.inspectProvider(this.container.getModules(), item);
}
}));
}
createPrototypesOfControllers(moduleRef) {
const { controllers } = moduleRef;
controllers.forEach((wrapper) => this.injector.loadPrototype(wrapper, controllers));
}
async createInstancesOfControllers(moduleRef) {
const { controllers } = moduleRef;
const wrappers = [...controllers.values()];
await Promise.all(wrappers.map(async (item) => {
await this.injector.loadController(item, moduleRef);
this.graphInspector.inspectInstanceWrapper(item, moduleRef);
}));
}
createPrototypesOfInjectables(moduleRef) {
const { injectables } = moduleRef;
injectables.forEach((wrapper) => this.injector.loadPrototype(wrapper, injectables));
}
async createInstancesOfInjectables(moduleRef) {
const { injectables } = moduleRef;
const wrappers = [...injectables.values()];
await Promise.all(wrappers.map(async (item) => {
await this.injector.loadInjectable(item, moduleRef);
this.graphInspector.inspectInstanceWrapper(item, moduleRef);
}));
}
isModuleWhitelisted(name) {
return name !== InternalCoreModule.name;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/noop-graph-inspector.js
var noop4, NoopGraphInspector;
var init_noop_graph_inspector = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/inspector/noop-graph-inspector.js"() {
init_graph_inspector();
noop4 = /* @__PURE__ */ __name(() => {
}, "noop");
NoopGraphInspector = new Proxy(GraphInspector.prototype, {
get: /* @__PURE__ */ __name(() => noop4, "get")
});
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js
var InvalidClassModuleException;
var init_invalid_class_module_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-class-module.exception.js"() {
init_messages();
init_runtime_exception();
InvalidClassModuleException = class extends RuntimeException {
static {
__name(this, "InvalidClassModuleException");
}
constructor(metatypeUsedAsAModule, scope, classKind) {
super(USING_INVALID_CLASS_AS_A_MODULE_MESSAGE(metatypeUsedAsAModule, scope, classKind));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js
var InvalidModuleException;
var init_invalid_module_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/invalid-module.exception.js"() {
init_messages();
init_runtime_exception();
InvalidModuleException = class extends RuntimeException {
static {
__name(this, "InvalidModuleException");
}
constructor(parentModule, index, scope, receivedValue) {
super(INVALID_MODULE_MESSAGE(parentModule, index, scope, receivedValue));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-global-enhancer.exception.js
var RequestScopedGlobalEnhancerException;
var init_request_scoped_global_enhancer_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/request-scoped-global-enhancer.exception.js"() {
init_messages();
init_runtime_exception();
RequestScopedGlobalEnhancerException = class extends RuntimeException {
static {
__name(this, "RequestScopedGlobalEnhancerException");
}
constructor(enhancerToken, provider, kind) {
super(REQUEST_SCOPED_GLOBAL_ENHANCER_MESSAGE(enhancerToken, provider, kind));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js
var UndefinedModuleException;
var init_undefined_module_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/undefined-module.exception.js"() {
init_runtime_exception();
init_messages();
UndefinedModuleException = class extends RuntimeException {
static {
__name(this, "UndefinedModuleException");
}
constructor(parentModule, index, scope) {
super(UNDEFINED_MODULE_MESSAGE(parentModule, index, scope));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/uninstantiated-global-enhancer.exception.js
var UninstantiatedGlobalEnhancerException;
var init_uninstantiated_global_enhancer_exception = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/errors/exceptions/uninstantiated-global-enhancer.exception.js"() {
init_messages();
init_runtime_exception();
UninstantiatedGlobalEnhancerException = class extends RuntimeException {
static {
__name(this, "UninstantiatedGlobalEnhancerException");
}
constructor(enhancerToken, provider) {
super(UNINSTANTIATED_GLOBAL_ENHANCER_MESSAGE(enhancerToken, provider));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js
var InternalCoreModuleFactory;
var init_internal_core_module_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/internal-core-module-factory.js"() {
init_common();
init_external_context_creator();
init_http_adapter_host();
init_initialize_on_preview_allowlist();
init_serialized_graph();
init_injector();
init_instance_loader();
init_lazy_module_loader();
init_modules_container();
init_internal_core_module();
InternalCoreModuleFactory = class {
static {
__name(this, "InternalCoreModuleFactory");
}
static create(container, scanner, moduleCompiler, httpAdapterHost, graphInspector, moduleOverrides) {
const lazyModuleLoaderFactory = /* @__PURE__ */ __name(() => {
const logger3 = new Logger(LazyModuleLoader.name, {
timestamp: false
});
const injector = new Injector({
preview: container.contextOptions?.preview ?? false,
instanceDecorator: container.contextOptions?.instrument?.instanceDecorator
});
const instanceLoader = new InstanceLoader(container, injector, graphInspector, logger3);
return new LazyModuleLoader(scanner, instanceLoader, moduleCompiler, container.getModules(), moduleOverrides);
}, "lazyModuleLoaderFactory");
InitializeOnPreviewAllowlist.add(InternalCoreModule);
return InternalCoreModule.register([
{
provide: ExternalContextCreator,
useFactory: /* @__PURE__ */ __name(() => ExternalContextCreator.fromContainer(container), "useFactory")
},
{
provide: ModulesContainer,
useFactory: /* @__PURE__ */ __name(() => container.getModules(), "useFactory")
},
{
provide: HttpAdapterHost,
useFactory: /* @__PURE__ */ __name(() => httpAdapterHost, "useFactory")
},
{
provide: LazyModuleLoader,
useFactory: lazyModuleLoaderFactory
},
{
provide: SerializedGraph,
useFactory: /* @__PURE__ */ __name(() => container.serializedGraph, "useFactory")
}
]);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/tree-node.js
var TreeNode;
var init_tree_node = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/tree-node.js"() {
TreeNode = class {
static {
__name(this, "TreeNode");
}
value;
children = /* @__PURE__ */ new Set();
parent;
constructor({ value, parent }) {
this.value = value;
this.parent = parent;
}
addChild(child) {
this.children.add(child);
}
removeChild(child) {
this.children.delete(child);
}
relink(parent) {
this.parent?.removeChild(this);
this.parent = parent;
this.parent.addChild(this);
}
getDepth() {
const visited = /* @__PURE__ */ new Set();
let depth = 0;
let current = this;
while (current) {
depth++;
current = current.parent;
if (visited.has(current)) {
return -1;
}
visited.add(current);
}
return depth;
}
hasCycleWith(target) {
const visited = /* @__PURE__ */ new Set();
let current = this;
while (current) {
if (current.value === target) {
return true;
}
current = current.parent;
if (visited.has(current)) {
return false;
}
visited.add(current);
}
return false;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/topology-tree.js
var TopologyTree;
var init_topology_tree = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/topology-tree/topology-tree.js"() {
init_tree_node();
TopologyTree = class {
static {
__name(this, "TopologyTree");
}
root;
links = /* @__PURE__ */ new Map();
constructor(moduleRef) {
this.root = new TreeNode({
value: moduleRef,
parent: null
});
this.links.set(moduleRef, this.root);
this.traverseAndMapToTree(this.root);
}
walk(callback) {
function walkNode(node, depth = 1) {
callback(node.value, depth);
node.children.forEach((child) => walkNode(child, depth + 1));
}
__name(walkNode, "walkNode");
walkNode(this.root);
}
traverseAndMapToTree(node, depth = 1) {
if (!node.value.imports) {
return;
}
node.value.imports.forEach((child) => {
if (!child) {
return;
}
if (this.links.has(child)) {
const existingSubtree = this.links.get(child);
if (node.hasCycleWith(child)) {
return;
}
const existingDepth = existingSubtree.getDepth();
if (existingDepth < depth) {
existingSubtree.relink(node);
}
return;
}
const childNode = new TreeNode({
value: child,
parent: node
});
node.addChild(childNode);
this.links.set(child, childNode);
this.traverseAndMapToTree(childNode, depth + 1);
});
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/scanner.js
var import_iterare18, DependenciesScanner;
var init_scanner = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/scanner.js"() {
import_iterare18 = __toESM(require_lib(), 1);
init_application_config();
init_constants2();
init_circular_dependency_exception();
init_invalid_class_module_exception();
init_invalid_module_exception();
init_request_scoped_global_enhancer_exception();
init_undefined_module_exception();
init_uninstantiated_global_enhancer_exception();
init_get_class_scope();
init_constants3();
init_internal_core_module_factory();
init_topology_tree();
init_uuid_factory();
init_internal();
init_common();
DependenciesScanner = class {
static {
__name(this, "DependenciesScanner");
}
container;
metadataScanner;
graphInspector;
applicationConfig;
applicationProvidersApplyMap = [];
constructor(container, metadataScanner, graphInspector, applicationConfig = new ApplicationConfig()) {
this.container = container;
this.metadataScanner = metadataScanner;
this.graphInspector = graphInspector;
this.applicationConfig = applicationConfig;
}
async scan(module, options) {
await this.registerCoreModule(options?.overrides);
await this.scanForModules({
moduleDefinition: module,
overrides: options?.overrides
});
await this.scanModulesForDependencies();
this.addScopedEnhancersMetadata();
this.calculateModulesDistance();
this.container.bindGlobalScope();
}
async scanForModules({ moduleDefinition, lazy, scope = [], ctxRegistry = [], overrides = [] }) {
const { moduleRef: moduleInstance, inserted: moduleInserted } = await this.insertOrOverrideModule(moduleDefinition, overrides, scope) ?? {};
if (lazy && !moduleInserted && moduleInstance?.isInstantiated) {
return [];
}
moduleDefinition = this.getOverrideModuleByModule(moduleDefinition, overrides)?.newModule ?? moduleDefinition;
moduleDefinition = moduleDefinition instanceof Promise ? await moduleDefinition : moduleDefinition;
ctxRegistry.push(moduleDefinition);
if (this.isForwardReference(moduleDefinition)) {
moduleDefinition = moduleDefinition.forwardRef();
}
const modules = !this.isDynamicModule(moduleDefinition) ? this.reflectMetadata(MODULE_METADATA.IMPORTS, moduleDefinition) : [
...this.reflectMetadata(MODULE_METADATA.IMPORTS, moduleDefinition.module),
...moduleDefinition.imports || []
];
let registeredModuleRefs = [];
for (const [index, innerModule] of modules.entries()) {
if (innerModule === void 0) {
throw new UndefinedModuleException(moduleDefinition, index, scope);
}
if (!innerModule) {
throw new InvalidModuleException(moduleDefinition, index, scope, innerModule);
}
if (ctxRegistry.includes(innerModule)) {
continue;
}
const moduleRefs = await this.scanForModules({
moduleDefinition: innerModule,
scope: [].concat(scope, moduleDefinition),
ctxRegistry,
overrides,
lazy
});
registeredModuleRefs = registeredModuleRefs.concat(moduleRefs);
}
if (!moduleInstance) {
return registeredModuleRefs;
}
if (lazy) {
this.container.bindGlobalsToImports(moduleInstance);
}
return [moduleInstance].concat(registeredModuleRefs);
}
async insertModule(moduleDefinition, scope) {
const moduleToAdd = this.isForwardReference(moduleDefinition) ? moduleDefinition.forwardRef() : moduleDefinition;
if (this.isInjectable(moduleToAdd)) {
throw new InvalidClassModuleException(moduleDefinition, scope, "provider");
}
if (this.isController(moduleToAdd)) {
throw new InvalidClassModuleException(moduleDefinition, scope, "controller");
}
if (this.isExceptionFilter(moduleToAdd)) {
throw new InvalidClassModuleException(moduleDefinition, scope, "filter");
}
return this.container.addModule(moduleToAdd, scope);
}
async scanModulesForDependencies(modules = this.container.getModules()) {
for (const [token, { metatype }] of modules) {
await this.reflectImports(metatype, token, metatype.name);
this.reflectProviders(metatype, token);
this.reflectControllers(metatype, token);
this.reflectExports(metatype, token);
}
}
async reflectImports(module, token, context) {
const modules = [
...this.reflectMetadata(MODULE_METADATA.IMPORTS, module),
...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.IMPORTS)
];
for (const related of modules) {
await this.insertImport(related, token, context);
}
}
reflectProviders(module, token) {
const providers = [
...this.reflectMetadata(MODULE_METADATA.PROVIDERS, module),
...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.PROVIDERS)
];
const applyProvidersKeys = Object.keys(this.getApplyProvidersMap());
providers.forEach((provider) => {
this.insertProvider(provider, token);
if (!this.isCustomProvider(provider)) {
return this.reflectDynamicMetadata(provider, token);
}
const { provide, useClass } = provider;
if (!applyProvidersKeys.includes(provide)) {
this.reflectDynamicMetadata(useClass, token, provide);
}
});
}
reflectControllers(module, token) {
const controllers = [
...this.reflectMetadata(MODULE_METADATA.CONTROLLERS, module),
...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.CONTROLLERS)
];
controllers.forEach((item) => {
this.insertController(item, token);
this.reflectDynamicMetadata(item, token);
});
}
reflectDynamicMetadata(cls, token, hostToken = cls) {
if (!cls || !cls.prototype) {
return;
}
this.reflectInjectables(cls, token, GUARDS_METADATA, hostToken);
this.reflectInjectables(cls, token, INTERCEPTORS_METADATA, hostToken);
this.reflectInjectables(cls, token, EXCEPTION_FILTERS_METADATA, hostToken);
this.reflectInjectables(cls, token, PIPES_METADATA, hostToken);
this.reflectParamInjectables(cls, token, ROUTE_ARGS_METADATA, hostToken);
}
reflectExports(module, token) {
const exports = [
...this.reflectMetadata(MODULE_METADATA.EXPORTS, module),
...this.container.getDynamicMetadataByToken(token, MODULE_METADATA.EXPORTS)
];
exports.forEach((exportedProvider) => this.insertExportedProviderOrModule(exportedProvider, token));
}
reflectInjectables(component, token, metadataKey, hostToken = component) {
const controllerInjectables = this.reflectMetadata(metadataKey, component);
const methodInjectables = this.metadataScanner.getAllMethodNames(component.prototype).reduce((acc, method) => {
const methodInjectable = this.reflectKeyMetadata(component, metadataKey, method);
if (methodInjectable) {
acc.push(methodInjectable);
}
return acc;
}, []);
controllerInjectables.forEach((injectable) => this.insertInjectable(injectable, token, hostToken, ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey]));
methodInjectables.forEach((methodInjectable) => {
methodInjectable.metadata.forEach((injectable) => this.insertInjectable(injectable, token, hostToken, ENHANCER_KEY_TO_SUBTYPE_MAP[metadataKey], methodInjectable.methodKey));
});
}
reflectParamInjectables(component, token, metadataKey, hostToken = component) {
const paramsMethods = this.metadataScanner.getAllMethodNames(component.prototype);
paramsMethods.forEach((methodKey) => {
const metadata = Reflect.getMetadata(metadataKey, component, methodKey);
if (!metadata) {
return;
}
const params = Object.values(metadata);
params.map((item) => item.pipes).flat(1).forEach((injectable) => this.insertInjectable(injectable, token, hostToken, "pipe", methodKey));
});
}
reflectKeyMetadata(component, key, methodKey) {
let prototype = component.prototype;
do {
const descriptor = Reflect.getOwnPropertyDescriptor(prototype, methodKey);
if (!descriptor) {
continue;
}
const metadata = Reflect.getMetadata(key, descriptor.value);
if (!metadata) {
return;
}
return { methodKey, metadata };
} while ((prototype = Reflect.getPrototypeOf(prototype)) && prototype !== Object.prototype && prototype);
return void 0;
}
calculateModulesDistance() {
const modulesGenerator = this.container.getModules().values();
modulesGenerator.next();
const rootModule = modulesGenerator.next().value;
if (!rootModule) {
return;
}
const tree = new TopologyTree(rootModule);
tree.walk((moduleRef, depth) => {
if (moduleRef.isGlobal) {
return;
}
moduleRef.distance = depth;
});
}
async insertImport(related, token, context) {
if (isUndefined(related)) {
throw new CircularDependencyException(context);
}
if (this.isForwardReference(related)) {
return this.container.addImport(related.forwardRef(), token);
}
await this.container.addImport(related, token);
}
isCustomProvider(provider) {
return provider && !isNil(provider.provide);
}
insertProvider(provider, token) {
const isCustomProvider = this.isCustomProvider(provider);
if (!isCustomProvider) {
return this.container.addProvider(provider, token);
}
const applyProvidersMap = this.getApplyProvidersMap();
const providersKeys = Object.keys(applyProvidersMap);
const type = provider.provide;
if (!providersKeys.includes(type)) {
return this.container.addProvider(provider, token);
}
const uuid = UuidFactory.get(type.toString());
const providerToken = `${type} (UUID: ${uuid})`;
let scope = provider.scope;
if (isNil(scope) && provider.useClass) {
scope = getClassScope(provider.useClass);
}
const existing = provider.useExisting;
if (isNil(scope) && isFunction(existing)) {
scope = getClassScope(existing);
}
this.applicationProvidersApplyMap.push({
type,
moduleKey: token,
providerKey: providerToken,
scope
});
const newProvider = {
...provider,
provide: providerToken,
scope
};
const enhancerSubtype = ENHANCER_TOKEN_TO_SUBTYPE_MAP[type];
const factoryOrClassProvider = newProvider;
if (this.isRequestOrTransient(factoryOrClassProvider.scope)) {
return this.container.addInjectable(newProvider, token, enhancerSubtype);
}
this.container.addProvider(newProvider, token, enhancerSubtype);
}
insertInjectable(injectable, token, host, subtype, methodKey) {
if (isFunction(injectable)) {
const instanceWrapper = this.container.addInjectable(injectable, token, subtype, host);
this.graphInspector.insertEnhancerMetadataCache({
moduleToken: token,
classRef: host,
enhancerInstanceWrapper: instanceWrapper,
targetNodeId: instanceWrapper.id,
subtype,
methodKey
});
return instanceWrapper;
} else {
this.graphInspector.insertEnhancerMetadataCache({
moduleToken: token,
classRef: host,
enhancerRef: injectable,
methodKey,
subtype
});
}
}
insertExportedProviderOrModule(toExport, token) {
const fulfilledProvider = this.isForwardReference(toExport) ? toExport.forwardRef() : toExport;
this.container.addExportedProviderOrModule(fulfilledProvider, token);
}
insertController(controller, token) {
this.container.addController(controller, token);
}
insertOrOverrideModule(moduleDefinition, overrides, scope) {
const overrideModule = this.getOverrideModuleByModule(moduleDefinition, overrides);
if (overrideModule !== void 0) {
return this.overrideModule(moduleDefinition, overrideModule.newModule, scope);
}
return this.insertModule(moduleDefinition, scope);
}
getOverrideModuleByModule(module, overrides) {
if (this.isForwardReference(module)) {
return overrides.find((moduleToOverride) => {
return moduleToOverride.moduleToReplace === module.forwardRef() || moduleToOverride.moduleToReplace.forwardRef?.() === module.forwardRef();
});
}
return overrides.find((moduleToOverride) => moduleToOverride.moduleToReplace === module);
}
async overrideModule(moduleToOverride, newModule, scope) {
return this.container.replaceModule(this.isForwardReference(moduleToOverride) ? moduleToOverride.forwardRef() : moduleToOverride, this.isForwardReference(newModule) ? newModule.forwardRef() : newModule, scope);
}
reflectMetadata(metadataKey, metatype) {
return Reflect.getMetadata(metadataKey, metatype) || [];
}
async registerCoreModule(overrides) {
const moduleDefinition = InternalCoreModuleFactory.create(this.container, this, this.container.getModuleCompiler(), this.container.getHttpAdapterHostRef(), this.graphInspector, overrides);
const [instance] = await this.scanForModules({
moduleDefinition,
overrides
});
this.container.registerCoreModuleRef(instance);
}
/**
* Add either request or transient globally scoped enhancers
* to all controllers metadata storage
*/
addScopedEnhancersMetadata() {
(0, import_iterare18.iterate)(this.applicationProvidersApplyMap).filter((wrapper) => this.isRequestOrTransient(wrapper.scope)).forEach(({ moduleKey, providerKey }) => {
const modulesContainer = this.container.getModules();
const { injectables } = modulesContainer.get(moduleKey);
const instanceWrapper = injectables.get(providerKey);
const iterableIterator = modulesContainer.values();
(0, import_iterare18.iterate)(iterableIterator).map((moduleRef) => Array.from(moduleRef.controllers.values()).concat(moduleRef.entryProviders)).flatten().forEach((controllerOrEntryProvider) => controllerOrEntryProvider.addEnhancerMetadata(instanceWrapper));
});
}
applyApplicationProviders() {
const applyProvidersMap = this.getApplyProvidersMap();
const applyRequestProvidersMap = this.getApplyRequestProvidersMap();
const getInstanceWrapper = /* @__PURE__ */ __name((moduleKey, providerKey, collectionKey) => {
const modules = this.container.getModules();
const collection = modules.get(moduleKey)[collectionKey];
return collection.get(providerKey);
}, "getInstanceWrapper");
this.applicationProvidersApplyMap.forEach(({ moduleKey, providerKey, type, scope }) => {
let instanceWrapper;
if (this.isRequestOrTransient(scope)) {
instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "injectables");
this.graphInspector.insertAttachedEnhancer(instanceWrapper);
return applyRequestProvidersMap[type](instanceWrapper);
}
instanceWrapper = getInstanceWrapper(moduleKey, providerKey, "providers");
this.graphInspector.insertAttachedEnhancer(instanceWrapper);
if (!instanceWrapper.isDependencyTreeStatic()) {
const [kind, provider] = this.describeEnhancerProvider(instanceWrapper);
throw new RequestScopedGlobalEnhancerException(type, provider, kind);
}
if (!instanceWrapper.getInstanceByContextId(STATIC_CONTEXT).isResolved) {
const [, provider] = this.describeEnhancerProvider(instanceWrapper);
throw new UninstantiatedGlobalEnhancerException(type, provider);
}
applyProvidersMap[type](instanceWrapper.instance);
});
}
describeEnhancerProvider(wrapper) {
if (wrapper.isAlias) {
const [target] = wrapper.inject ?? [];
const name = isFunction(target) ? target.name : String(target);
return ["useExisting", `useExisting: ${name}`];
}
if (isNil(wrapper.inject)) {
return ["useClass", `useClass: ${wrapper.metatype.name}`];
}
return ["useFactory", "useFactory"];
}
getApplyProvidersMap() {
return {
[APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalInterceptor(interceptor),
[APP_PIPE]: (pipe) => this.applicationConfig.addGlobalPipe(pipe),
[APP_GUARD]: (guard) => this.applicationConfig.addGlobalGuard(guard),
[APP_FILTER]: (filter) => this.applicationConfig.addGlobalFilter(filter)
};
}
getApplyRequestProvidersMap() {
return {
[APP_INTERCEPTOR]: (interceptor) => this.applicationConfig.addGlobalRequestInterceptor(interceptor),
[APP_PIPE]: (pipe) => this.applicationConfig.addGlobalRequestPipe(pipe),
[APP_GUARD]: (guard) => this.applicationConfig.addGlobalRequestGuard(guard),
[APP_FILTER]: (filter) => this.applicationConfig.addGlobalRequestFilter(filter)
};
}
isDynamicModule(module) {
return module && !!module.module;
}
/**
* @param metatype
* @returns `true` if `metatype` is annotated with the `@Injectable()` decorator.
*/
isInjectable(metatype) {
return !!Reflect.getMetadata(INJECTABLE_WATERMARK, metatype);
}
/**
* @param metatype
* @returns `true` if `metatype` is annotated with the `@Controller()` decorator.
*/
isController(metatype) {
return !!Reflect.getMetadata(CONTROLLER_WATERMARK, metatype);
}
/**
* @param metatype
* @returns `true` if `metatype` is annotated with the `@Catch()` decorator.
*/
isExceptionFilter(metatype) {
return !!Reflect.getMetadata(CATCH_WATERMARK, metatype);
}
isForwardReference(module) {
return module && !!module.forwardRef;
}
isRequestOrTransient(scope) {
return scope === Scope.REQUEST || scope === Scope.TRANSIENT;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-factory.js
var NestFactoryStatic, NestFactory;
var init_nest_factory = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/nest-factory.js"() {
init_application_config();
init_constants2();
init_exceptions_zone();
init_load_adapter();
init_rethrow();
init_container();
init_injector();
init_instance_loader();
init_graph_inspector();
init_noop_graph_inspector();
init_uuid_factory();
init_metadata_scanner();
init_nest_application_context();
init_nest_application();
init_scanner();
init_internal();
init_common();
NestFactoryStatic = class {
static {
__name(this, "NestFactoryStatic");
}
logger = new Logger("NestFactory", {
timestamp: true
});
abortOnError = true;
autoFlushLogs = false;
async create(moduleCls, serverOrOptions, options) {
const [httpServer, appOptions] = this.isHttpServer(serverOrOptions) ? [serverOrOptions, options] : [await this.createHttpAdapter(), serverOrOptions];
const applicationConfig = new ApplicationConfig();
const container = new NestContainer(applicationConfig, appOptions);
const graphInspector = this.createGraphInspector(appOptions, container);
this.setAbortOnError(serverOrOptions, options);
this.registerLoggerConfiguration(appOptions);
await this.initialize(moduleCls, container, graphInspector, applicationConfig, appOptions, httpServer);
const instance = new NestApplication(container, httpServer, applicationConfig, graphInspector, appOptions);
await instance.preloadLazyPackages();
const target = this.createNestInstance(instance);
return this.createAdapterProxy(target, httpServer);
}
/**
* Creates an instance of NestMicroservice.
*
* @param moduleCls Entry (root) application module class
* @param options Optional microservice configuration
*
* @returns A promise that, when resolved,
* contains a reference to the NestMicroservice instance.
*/
async createMicroservice(moduleCls, options) {
const { NestMicroservice } = await loadPackage("@nestjs/microservices", "NestFactory", () => import("@nestjs/microservices"));
const applicationConfig = new ApplicationConfig();
const container = new NestContainer(applicationConfig, options);
const graphInspector = this.createGraphInspector(options, container);
this.setAbortOnError(options);
this.registerLoggerConfiguration(options);
await this.initialize(moduleCls, container, graphInspector, applicationConfig, options);
return this.createNestInstance(new NestMicroservice(container, options, graphInspector, applicationConfig));
}
/**
* Creates an instance of NestApplicationContext.
*
* @param moduleCls Entry (root) application module class
* @param options Optional Nest application configuration
*
* @returns A promise that, when resolved,
* contains a reference to the NestApplicationContext instance.
*/
async createApplicationContext(moduleCls, options) {
const applicationConfig = new ApplicationConfig();
const container = new NestContainer(applicationConfig, options);
const graphInspector = this.createGraphInspector(options, container);
this.setAbortOnError(options);
this.registerLoggerConfiguration(options);
await this.initialize(moduleCls, container, graphInspector, applicationConfig, options);
const modules = container.getModules().values();
const root = modules.next().value;
const context = this.createNestInstance(new NestApplicationContext(container, options, root));
if (this.autoFlushLogs) {
context.flushLogsOnOverride();
}
return context.init();
}
createNestInstance(instance) {
return this.createProxy(instance);
}
async initialize(module, container, graphInspector, config = new ApplicationConfig(), options = {}, httpServer = null) {
UuidFactory.mode = options.snapshot ? UuidFactoryMode.Deterministic : UuidFactoryMode.Random;
const injector = new Injector({
preview: options.preview,
snapshot: options.snapshot,
instanceDecorator: options.instrument?.instanceDecorator
});
const instanceLoader = new InstanceLoader(container, injector, graphInspector);
const metadataScanner = new MetadataScanner();
const dependenciesScanner = new DependenciesScanner(container, metadataScanner, graphInspector, config);
container.setHttpAdapter(httpServer);
const teardown = this.abortOnError === false ? rethrow : void 0;
await httpServer?.init?.();
try {
this.logger.log(MESSAGES.APPLICATION_START);
await ExceptionsZone.asyncRun(async () => {
await dependenciesScanner.scan(module);
await instanceLoader.createInstancesOfDependencies();
dependenciesScanner.applyApplicationProviders();
}, teardown, this.autoFlushLogs);
} catch (e) {
this.handleInitializationError(e);
}
}
handleInitializationError(err) {
if (this.abortOnError) {
process.abort();
}
rethrow(err);
}
createProxy(target) {
const proxy = this.createExceptionProxy();
return new Proxy(target, {
get: proxy,
set: proxy
});
}
createExceptionProxy() {
return (receiver, prop) => {
if (!(prop in receiver)) {
return;
}
if (isFunction(receiver[prop])) {
return this.createExceptionZone(receiver, prop);
}
return receiver[prop];
};
}
createExceptionZone(receiver, prop) {
const teardown = this.abortOnError === false ? rethrow : void 0;
return (...args) => {
let result;
ExceptionsZone.run(() => {
result = receiver[prop](...args);
}, teardown, this.autoFlushLogs);
return result;
};
}
registerLoggerConfiguration(options) {
if (!options) {
return;
}
const { logger: logger3, bufferLogs, autoFlushLogs, forceConsole } = options;
if (logger3 !== true && !isNil(logger3)) {
Logger.overrideLogger(logger3);
} else if (forceConsole) {
const consoleLogger = new ConsoleLogger({ forceConsole: true });
Logger.overrideLogger(consoleLogger);
}
if (bufferLogs) {
Logger.attachBuffer();
}
this.autoFlushLogs = autoFlushLogs ?? true;
}
async createHttpAdapter(httpServer) {
const { ExpressAdapter: ExpressAdapter2 } = await loadAdapter("@nestjs/platform-express", "HTTP", () => import("./platform-express-MGQH3ALM.js"));
return new ExpressAdapter2(httpServer);
}
isHttpServer(serverOrOptions) {
return !!(serverOrOptions && serverOrOptions.patch);
}
setAbortOnError(serverOrOptions, options) {
this.abortOnError = this.isHttpServer(serverOrOptions) ? !(options && options.abortOnError === false) : !(serverOrOptions && serverOrOptions.abortOnError === false);
}
createAdapterProxy(app, adapter) {
const proxy = new Proxy(app, {
get: /* @__PURE__ */ __name((receiver, prop) => {
const mapToProxy = /* @__PURE__ */ __name((result) => {
return result instanceof Promise ? result.then(mapToProxy) : result instanceof NestApplication ? proxy : result;
}, "mapToProxy");
if (!(prop in receiver) && prop in adapter) {
return (...args) => {
const result = this.createExceptionZone(adapter, prop)(...args);
return mapToProxy(result);
};
}
if (isFunction(receiver[prop])) {
return (...args) => {
const result = receiver[prop](...args);
return mapToProxy(result);
};
}
return receiver[prop];
}, "get")
});
return proxy;
}
createGraphInspector(appOptions, container) {
return appOptions?.snapshot ? new GraphInspector(container) : NoopGraphInspector;
}
};
NestFactory = new NestFactoryStatic();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/assign-to-object.util.js
function assignToObject(target, source) {
Object.defineProperties(target, Object.keys(source).reduce((descriptors, key) => {
descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
return descriptors;
}, /* @__PURE__ */ Object.create(null)));
return target;
}
var init_assign_to_object_util = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/assign-to-object.util.js"() {
__name(assignToObject, "assignToObject");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/constants.js
var REPL_INITIALIZED_MESSAGE;
var init_constants5 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/constants.js"() {
REPL_INITIALIZED_MESSAGE = "REPL initialized";
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-function.js
var ReplFunction;
var init_repl_function = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-function.js"() {
init_internal();
ReplFunction = class {
static {
__name(this, "ReplFunction");
}
ctx;
logger;
constructor(ctx) {
this.ctx = ctx;
this.logger = ctx.logger;
}
/**
* @returns A message displayed by calling `<fnName>.help`
*/
makeHelpMessage() {
const { description, name, signature } = this.fnDefinition;
const fnSignatureWithName = `${name}${signature}`;
return `${clc.yellow(description)}
${clc.magentaBright("Interface:")} ${clc.bold(fnSignatureWithName)}
`;
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js
var import_iterare19, HelpReplFn;
var init_help_repl_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/help-repl-fn.js"() {
import_iterare19 = __toESM(require_lib(), 1);
init_repl_function();
init_internal();
HelpReplFn = class _HelpReplFn extends ReplFunction {
static {
__name(this, "HelpReplFn");
}
fnDefinition = {
name: "help",
signature: "() => void",
description: "Display all available REPL native functions."
};
static buildHelpMessage = /* @__PURE__ */ __name(({ name, description }) => clc.cyanBright(name) + (description ? ` ${clc.bold("-")} ${description}` : ""), "buildHelpMessage");
action() {
const sortedNativeFunctions = (0, import_iterare19.iterate)(this.ctx.nativeFunctions).map(([, nativeFunction]) => nativeFunction.fnDefinition).toArray().sort((a, b) => a.name < b.name ? -1 : 1);
this.ctx.writeToStdout(`You can call ${clc.bold(".help")} on any function listed below (e.g.: ${clc.bold("help.help")}):
` + sortedNativeFunctions.map(_HelpReplFn.buildHelpMessage).join("\n") + // Without the following LF the last item won't be displayed
"\n");
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js
var GetReplFn;
var init_get_repl_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/get-repl-fn.js"() {
init_repl_function();
GetReplFn = class extends ReplFunction {
static {
__name(this, "GetReplFn");
}
fnDefinition = {
name: "get",
signature: "(token: InjectionToken) => any",
description: "Retrieves an instance of either injectable or controller, otherwise, throws exception.",
aliases: ["$"]
};
action(token) {
return this.ctx.app.get(token);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js
var ResolveReplFn;
var init_resolve_repl_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/resolve-repl-fn.js"() {
init_repl_function();
ResolveReplFn = class extends ReplFunction {
static {
__name(this, "ResolveReplFn");
}
fnDefinition = {
name: "resolve",
description: "Resolves transient or request-scoped instance of either injectable or controller, otherwise, throws exception.",
signature: "(token: InjectionToken, contextId: any) => Promise<any>"
};
action(token, contextId) {
return this.ctx.app.resolve(token, contextId);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js
var SelectReplFn;
var init_select_relp_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/select-relp-fn.js"() {
init_repl_function();
SelectReplFn = class extends ReplFunction {
static {
__name(this, "SelectReplFn");
}
fnDefinition = {
name: "select",
description: "Allows navigating through the modules tree, for example, to pull out a specific instance from the selected module.",
signature: "(token: DynamicModule | ClassRef) => INestApplicationContext"
};
action(token) {
return this.ctx.app.select(token);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js
var DebugReplFn;
var init_debug_repl_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/debug-repl-fn.js"() {
init_repl_function();
init_internal();
DebugReplFn = class extends ReplFunction {
static {
__name(this, "DebugReplFn");
}
fnDefinition = {
name: "debug",
description: 'Print all registered modules as a list together with their controllers and providers.\nIf the argument is passed in, for example, "debug(MyModule)" then it will only print components of this specific module.',
signature: "(moduleCls?: ClassRef | string) => void"
};
action(moduleCls) {
this.ctx.writeToStdout("\n");
if (moduleCls) {
const token = typeof moduleCls === "function" ? moduleCls.name : moduleCls;
const moduleEntry = this.ctx.debugRegistry[token];
if (!moduleEntry) {
return this.logger.error(`"${token}" has not been found in the modules registry`);
}
this.printCtrlsAndProviders(token, moduleEntry);
} else {
for (const [moduleKey, entry] of Object.entries(this.ctx.debugRegistry)) {
this.printCtrlsAndProviders(moduleKey, entry);
}
}
this.ctx.writeToStdout("\n");
}
printCtrlsAndProviders(moduleName, moduleDebugEntry) {
this.ctx.writeToStdout(`${clc.green(moduleName)}:
`);
this.printCollection("controllers", moduleDebugEntry["controllers"]);
this.printCollection("providers", moduleDebugEntry["providers"]);
}
printCollection(title, collectionValue) {
const collectionEntries = Object.keys(collectionValue);
if (collectionEntries.length <= 0) {
return;
}
this.ctx.writeToStdout(` ${clc.yellow(`- ${title}`)}:
`);
collectionEntries.forEach((provider) => this.ctx.writeToStdout(` ${clc.green("\u25FB")} ${provider}
`));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js
var MethodsReplFn;
var init_methods_repl_fn = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/methods-repl-fn.js"() {
init_metadata_scanner();
init_repl_function();
init_internal();
MethodsReplFn = class extends ReplFunction {
static {
__name(this, "MethodsReplFn");
}
fnDefinition = {
name: "methods",
description: "Display all public methods available on a given provider or controller.",
signature: "(token: ClassRef | string) => void"
};
metadataScanner = new MetadataScanner();
action(token) {
const proto = typeof token !== "function" ? Object.getPrototypeOf(this.ctx.app.get(token)) : token?.prototype;
const methods = this.metadataScanner.getAllMethodNames(proto);
this.ctx.writeToStdout("\n");
this.ctx.writeToStdout(`${clc.green("Methods")}:
`);
methods.forEach((methodName) => this.ctx.writeToStdout(` ${clc.yellow("\u25FB")} ${methodName}
`));
this.ctx.writeToStdout("\n");
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/index.js
var init_native_functions = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/native-functions/index.js"() {
init_help_repl_fn();
init_get_repl_fn();
init_resolve_repl_fn();
init_select_relp_fn();
init_debug_repl_fn();
init_methods_repl_fn();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-context.js
var ReplContext;
var init_repl_context = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-context.js"() {
init_common();
init_application_config();
init_injector2();
init_internal_core_module();
init_native_functions();
ReplContext = class _ReplContext {
static {
__name(this, "ReplContext");
}
app;
logger = new Logger(_ReplContext.name);
debugRegistry = {};
globalScope = /* @__PURE__ */ Object.create(null);
nativeFunctions = /* @__PURE__ */ new Map();
container;
constructor(app, nativeFunctionsClassRefs) {
this.app = app;
this.container = app.container;
this.initializeContext();
this.initializeNativeFunctions(nativeFunctionsClassRefs || []);
}
writeToStdout(text) {
process.stdout.write(text);
}
initializeContext() {
const modules = this.container.getModules();
modules.forEach((moduleRef) => {
let moduleName = moduleRef.metatype.name;
if (moduleName === InternalCoreModule.name) {
return;
}
if (this.globalScope[moduleName]) {
moduleName += ` (${moduleRef.token})`;
}
this.introspectCollection(moduleRef, moduleName, "providers");
this.introspectCollection(moduleRef, moduleName, "controllers");
Object.defineProperty(this.globalScope, moduleName, {
value: moduleRef.metatype,
configurable: false,
enumerable: true
});
});
}
introspectCollection(moduleRef, moduleKey, collection) {
const moduleDebugEntry = {};
moduleRef[collection].forEach(({ token }) => {
const stringifiedToken = this.stringifyToken(token);
if (stringifiedToken === ApplicationConfig.name || stringifiedToken === moduleRef.metatype.name) {
return;
}
if (!this.globalScope[stringifiedToken]) {
Object.defineProperty(this.globalScope, stringifiedToken, {
value: token,
configurable: false,
enumerable: true
});
}
if (stringifiedToken === ModuleRef.name) {
return;
}
moduleDebugEntry[stringifiedToken] = token;
});
this.debugRegistry[moduleKey] = {
...this.debugRegistry?.[moduleKey],
[collection]: moduleDebugEntry
};
}
stringifyToken(token) {
return typeof token !== "string" ? typeof token === "function" ? token.name : token?.toString() : `"${token}"`;
}
addNativeFunction(NativeFunctionRef) {
const nativeFunction = new NativeFunctionRef(this);
const nativeFunctions = [nativeFunction];
this.nativeFunctions.set(nativeFunction.fnDefinition.name, nativeFunction);
nativeFunction.fnDefinition.aliases?.forEach((aliasName) => {
const aliasNativeFunction = Object.create(nativeFunction);
aliasNativeFunction.fnDefinition = {
name: aliasName,
description: aliasNativeFunction.fnDefinition.description,
signature: aliasNativeFunction.fnDefinition.signature
};
this.nativeFunctions.set(aliasName, aliasNativeFunction);
nativeFunctions.push(aliasNativeFunction);
});
return nativeFunctions;
}
registerFunctionIntoGlobalScope(nativeFunction) {
this.globalScope[nativeFunction.fnDefinition.name] = nativeFunction.action.bind(nativeFunction);
const functionBoundRef = this.globalScope[nativeFunction.fnDefinition.name];
Object.defineProperty(functionBoundRef, "help", {
enumerable: false,
configurable: false,
get: /* @__PURE__ */ __name(() => (
// Dynamically builds the help message as will unlikely to be called
// several times.
this.writeToStdout(nativeFunction.makeHelpMessage())
), "get")
});
}
initializeNativeFunctions(nativeFunctionsClassRefs) {
const builtInFunctionsClassRefs = [
HelpReplFn,
GetReplFn,
ResolveReplFn,
SelectReplFn,
DebugReplFn,
MethodsReplFn
];
builtInFunctionsClassRefs.concat(nativeFunctionsClassRefs).forEach((NativeFunction) => {
const nativeFunctions = this.addNativeFunction(NativeFunction);
nativeFunctions.forEach((nativeFunction) => {
this.registerFunctionIntoGlobalScope(nativeFunction);
});
});
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-logger.js
var ReplLogger;
var init_repl_logger = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-logger.js"() {
init_common();
init_nest_application();
init_router_explorer();
init_routes_resolver();
ReplLogger = class _ReplLogger extends ConsoleLogger {
static {
__name(this, "ReplLogger");
}
static ignoredContexts = [
RoutesResolver.name,
RouterExplorer.name,
NestApplication.name
];
log(_message, context) {
if (_ReplLogger.ignoredContexts.includes(context)) {
return;
}
return super.log.apply(this, Array.from(arguments));
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-native-commands.js
function listAllCommands(replServer) {
Object.keys(replServer.commands).sort().forEach((name) => {
const cmd = replServer.commands[name];
if (cmd) {
replServer.output.write(`${name} ${cmd.help || ""}
`);
}
});
}
function defineDefaultCommandsOnRepl(replServer) {
replServer.defineCommand("help", {
help: "Show REPL options",
action(name) {
this.clearBufferedCommand();
if (name) {
const nativeCommandOrFunction = this.commands[name] || this.context[name];
const helpMessage = nativeCommandOrFunction?.help;
if (helpMessage) {
this.output.write(`${helpMessage}
`);
}
} else {
listAllCommands(this);
this.output.write("\n\n");
this.context.help();
this.output.write("\nPress Ctrl+C to abort current expression, Ctrl+D to exit the REPL\n");
}
this.displayPrompt();
}
});
}
var init_repl_native_commands = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl-native-commands.js"() {
__name(listAllCommands, "listAllCommands");
__name(defineDefaultCommandsOnRepl, "defineDefaultCommandsOnRepl");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl.js
async function repl(module, replOptions = {}) {
const app = await NestFactory.createApplicationContext(module, {
abortOnError: false,
logger: new ReplLogger()
});
await app.init();
const replContext = new ReplContext(app);
Logger.log(REPL_INITIALIZED_MESSAGE);
const _repl = await import("repl");
const replServer = _repl.start({
prompt: clc.green("> "),
ignoreUndefined: true,
...replOptions
});
assignToObject(replServer.context, replContext.globalScope);
defineDefaultCommandsOnRepl(replServer);
replServer.on("exit", async () => {
await app.close();
});
return replServer;
}
var init_repl = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/repl.js"() {
init_common();
init_nest_factory();
init_assign_to_object_util();
init_constants5();
init_repl_context();
init_repl_logger();
init_repl_native_commands();
init_internal();
__name(repl, "repl");
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/index.js
var init_repl2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/repl/index.js"() {
init_repl();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/resolved-route.interface.js
var init_resolved_route_interface = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/resolved-route.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-conflict.interface.js
var init_route_conflict_interface = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-conflict.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-resolution-options.interface.js
var init_route_resolution_options_interface = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/route-resolution-options.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/routes.interface.js
var init_routes_interface = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/routes.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/index.js
var init_interfaces = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/interfaces/index.js"() {
init_resolved_route_interface();
init_route_conflict_interface();
init_route_resolution_options_interface();
init_routes_interface();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/index.js
var init_request = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/request/index.js"() {
init_request_constants();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-module.js
var RouterModule_1, ROUTES, targetModulesByContainer, RouterModule;
var init_router_module = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/router-module.js"() {
init_tslib_es6();
init_common();
init_modules_container();
init_utils();
init_internal();
ROUTES = /* @__PURE__ */ Symbol("ROUTES");
targetModulesByContainer = /* @__PURE__ */ new WeakMap();
RouterModule = RouterModule_1 = class RouterModule2 {
static {
__name(this, "RouterModule");
}
modulesContainer;
routes;
constructor(modulesContainer, routes) {
this.modulesContainer = modulesContainer;
this.routes = routes;
this.routes = this.deepCloneRoutes(routes);
this.initialize();
}
static register(routes) {
return {
module: RouterModule_1,
providers: [
{
provide: ROUTES,
useValue: routes
}
]
};
}
deepCloneRoutes(routes) {
return routes.map((routeOrType) => {
if (typeof routeOrType === "function") {
return routeOrType;
}
if (routeOrType.children) {
return {
...routeOrType,
children: this.deepCloneRoutes(routeOrType.children)
};
}
return { ...routeOrType };
});
}
initialize() {
const flattenedRoutes = flattenRoutePaths(this.routes);
flattenedRoutes.forEach((route) => {
const modulePath = normalizePath(route.path);
this.registerModulePathMetadata(route.module, modulePath);
this.updateTargetModulesCache(route.module);
});
}
registerModulePathMetadata(moduleCtor, modulePath) {
Reflect.defineMetadata(MODULE_PATH + this.modulesContainer.applicationId, modulePath, moduleCtor);
}
updateTargetModulesCache(moduleCtor) {
let moduleClassSet;
if (targetModulesByContainer.has(this.modulesContainer)) {
moduleClassSet = targetModulesByContainer.get(this.modulesContainer);
} else {
moduleClassSet = /* @__PURE__ */ new WeakSet();
targetModulesByContainer.set(this.modulesContainer, moduleClassSet);
}
const moduleRef = Array.from(this.modulesContainer.values()).find((item) => item?.metatype === moduleCtor);
if (!moduleRef) {
return;
}
moduleClassSet.add(moduleRef);
}
};
RouterModule = RouterModule_1 = __decorate([
Module({}),
__param(1, Inject(ROUTES)),
__metadata("design:paramtypes", [ModulesContainer, Array])
], RouterModule);
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/index.js
var init_router = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/router/index.js"() {
init_interfaces();
init_request();
init_router_module();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/index.js
var core_exports = {};
__export(core_exports, {
APP_FILTER: () => APP_FILTER,
APP_GUARD: () => APP_GUARD,
APP_INTERCEPTOR: () => APP_INTERCEPTOR,
APP_PIPE: () => APP_PIPE,
AbstractHttpAdapter: () => AbstractHttpAdapter,
ApplicationConfig: () => ApplicationConfig,
BaseExceptionFilter: () => BaseExceptionFilter,
ContextIdFactory: () => ContextIdFactory,
DiscoveryModule: () => DiscoveryModule,
DiscoveryService: () => DiscoveryService,
ExternalContextCreator: () => ExternalContextCreator,
GraphInspector: () => GraphInspector,
HttpAdapterHost: () => HttpAdapterHost,
INQUIRER: () => INQUIRER,
InitializeOnPreviewAllowlist: () => InitializeOnPreviewAllowlist,
LazyModuleLoader: () => LazyModuleLoader,
MetadataScanner: () => MetadataScanner,
MiddlewareBuilder: () => MiddlewareBuilder,
ModuleRef: () => ModuleRef,
ModulesContainer: () => ModulesContainer,
NestApplication: () => NestApplication,
NestApplicationContext: () => NestApplicationContext,
NestContainer: () => NestContainer,
NestFactory: () => NestFactory,
PartialGraphHost: () => PartialGraphHost,
REQUEST: () => REQUEST,
Reflector: () => Reflector,
RouterModule: () => RouterModule,
SerializedGraph: () => SerializedGraph,
createContextId: () => createContextId,
repl: () => repl
});
var import_reflect_metadata;
var init_core = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/index.js"() {
import_reflect_metadata = __toESM(require_Reflect(), 1);
init_adapters();
init_application_config();
init_constants2();
init_discovery();
init_exceptions();
init_helpers();
init_injector2();
init_inspector();
init_metadata_scanner();
init_middleware();
init_nest_application();
init_nest_application_context();
init_nest_factory();
init_repl2();
init_router();
init_services();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/index.js
var init_internal_core_module2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/injector/internal-core-module/index.js"() {
init_internal_core_module();
}
});
// ../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/internal.js
var init_internal2 = __esm({
"../../node_modules/.pnpm/@nestjs+core@12.2.0_@nestjs_74b3aa22af8a41de6299655ec5713214/node_modules/@nestjs/core/internal.js"() {
init_exceptions2();
init_invalid_exception_filter_exception();
init_runtime_exception();
init_constants2();
init_scanner();
init_constants3();
init_injector();
init_instance_loader();
init_instance_wrapper();
init_internal_core_module2();
init_module();
init_inspector();
init_context_utils();
init_execution_context_host();
init_handler_metadata_storage();
init_load_adapter();
init_optional_require();
init_router_method_factory();
init_safe_instance_decorator();
init_constants4();
init_guards_consumer();
init_guards_context_creator();
init_params_token_factory();
init_pipes_consumer();
init_pipes_context_creator();
init_interceptors_consumer();
init_interceptors_context_creator();
init_base_exception_filter_context();
init_legacy_route_converter();
init_rejected_by_pipes();
init_request_constants();
init_noop_graph_inspector();
init_uuid_factory();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/express-adapter.js
import * as http from "http";
import * as https from "https";
import { finished } from "stream";
function isJsonContentType(contentType) {
const mediaType = contentType.split(";")[0].trim().toLowerCase();
return mediaType.startsWith("application/json") || mediaType.endsWith("+json");
}
var import_cors, import_express, import_path_to_regexp6, ExpressAdapter;
var init_express_adapter = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/express-adapter.js"() {
init_common();
import_cors = __toESM(require_lib2(), 1);
import_express = __toESM(require_express2(), 1);
import_path_to_regexp6 = __toESM(require_dist2(), 1);
init_get_body_parser_options_util();
init_get_media_type_version_util();
init_internal();
init_core();
init_internal2();
__name(isJsonContentType, "isJsonContentType");
ExpressAdapter = class _ExpressAdapter extends AbstractHttpAdapter {
static {
__name(this, "ExpressAdapter");
}
routerMethodFactory = new RouterMethodFactory();
logger = new Logger(_ExpressAdapter.name);
openConnections = /* @__PURE__ */ new Set();
registeredPrefixes = /* @__PURE__ */ new Set();
isShuttingDown = false;
onRequestHook;
onResponseHook;
constructor(instance) {
super(instance || (0, import_express.default)());
this.instance.use((req, res, next) => {
if (this.onResponseHook) {
res.on("finish", async () => {
try {
await this.onResponseHook.apply(this, [req, res]);
} catch (err) {
this.logger.error(err);
}
});
}
if (this.onRequestHook) {
this.runRequestHook(req, res, next);
} else {
next();
}
});
}
runRequestHook(req, res, next) {
let completed = false;
const doneOnce = /* @__PURE__ */ __name((err) => {
if (completed) {
if (err) {
this.logger.error(err);
}
return;
}
completed = true;
next(err);
}, "doneOnce");
try {
const result = this.onRequestHook.call(this, req, res, doneOnce);
if (result && typeof result.then === "function") {
result.then(void 0, (err) => doneOnce(err || new Error("Request hook failed")));
}
} catch (err) {
doneOnce(err || new Error("Request hook failed"));
}
}
/**
* Registers a request hook. Call `done()` to continue processing the request;
* resolving the returned promise does not continue it. Only the first
* completion is forwarded to Express. Errors after `done()` are logged
* without advancing the request again.
*/
setOnRequestHook(onRequestHook) {
this.onRequestHook = onRequestHook;
}
/**
* Registers a hook to run after the response has been sent.
* Thrown errors and rejected promises are logged.
*/
setOnResponseHook(onResponseHook) {
this.onResponseHook = onResponseHook;
}
reply(response, body, statusCode) {
if (!isNil(statusCode)) {
response.status(statusCode);
}
if (isNil(body)) {
return response.send();
}
if (body instanceof StreamableFile) {
const { errored } = body.getStream();
if (errored) {
return body.errorHandler(errored, response);
}
this.applyStreamHeaders(response, body);
const stream = body.getStream();
stream.once("error", (err) => {
body.errorHandler(err, response);
});
finished(response, () => {
if (!stream.readableEnded) {
stream.destroy();
}
});
if (response.req?.method === "HEAD") {
stream.once("readable", () => response.end());
return response.on("error", (err) => body.errorLogger(err));
}
return stream.pipe(response).on("error", (err) => body.errorLogger(err));
}
const responseContentType = response.getHeader("Content-Type");
if (typeof responseContentType === "string" && !isJsonContentType(responseContentType) && (body?.statusCode >= HttpStatus.BAD_REQUEST || // A custom error body (e.g. "new HttpException({ ... }, 404)") need
// not have a "statusCode" of its own
isObject(body) && !isNil(statusCode) && statusCode >= HttpStatus.BAD_REQUEST)) {
this.logger.warn("Content-Type doesn't match Reply body, you might need a custom ExceptionFilter for non-JSON responses");
response.setHeader("Content-Type", "application/json");
}
return isObject(body) ? response.json(body) : response.send(String(body));
}
status(response, statusCode) {
return response.status(statusCode);
}
end(response, message) {
return response.end(message);
}
render(response, view, options) {
return response.render(view, options);
}
redirect(response, statusCode, url) {
return response.redirect(statusCode, url);
}
setErrorHandler(handler, prefix) {
const normalizedPrefix = this.normalizePrefix(prefix);
if (normalizedPrefix) {
const router = import_express.default.Router();
router.use(handler);
this.use(normalizedPrefix, router);
}
return this.use(handler);
}
setNotFoundHandler(handler, prefix, excludedRoutes) {
const normalizedPrefix = this.normalizePrefix(prefix);
if (normalizedPrefix) {
this.registeredPrefixes.add(normalizedPrefix);
const router = import_express.default.Router();
router.all("*path", handler);
this.use(normalizedPrefix, router);
for (const route of excludedRoutes ?? []) {
this.instance.all(addLeadingSlash(route.path), handler);
}
return;
}
return this.use((req, res, next) => {
const path = req.originalUrl.split(/[?#]/)[0];
for (const registeredPrefix of this.registeredPrefixes) {
if (path === registeredPrefix || path.startsWith(`${registeredPrefix}/`)) {
return next();
}
}
return handler(req, res, next);
});
}
isHeadersSent(response) {
return response.headersSent;
}
getHeader(response, name) {
return response.get(name);
}
setHeader(response, name, value) {
return response.set(name, value);
}
appendHeader(response, name, value) {
return response.append(name, value);
}
normalizePath(path) {
try {
const convertedPath = LegacyRouteConverter.tryConvert(path);
(0, import_path_to_regexp6.pathToRegexp)(convertedPath);
return convertedPath;
} catch (e) {
if (e instanceof TypeError) {
LegacyRouteConverter.printError(path);
}
throw e;
}
}
listen(port, ...args) {
return this.httpServer.listen(port, ...args);
}
beforeClose() {
this.isShuttingDown = true;
}
close() {
this.isShuttingDown = true;
this.closeOpenConnections();
if (!this.httpServer) {
return void 0;
}
return new Promise((resolve) => this.httpServer.close(resolve));
}
set(...args) {
return this.instance.set(...args);
}
enable(...args) {
return this.instance.enable(...args);
}
disable(...args) {
return this.instance.disable(...args);
}
engine(...args) {
return this.instance.engine(...args);
}
useStaticAssets(path, options) {
if (options && options.prefix) {
return this.use(options.prefix, import_express.default.static(path, options));
}
return this.use(import_express.default.static(path, options));
}
setBaseViewsDir(path) {
return this.set("views", path);
}
setViewEngine(engine) {
return this.set("view engine", engine);
}
getRequestHostname(request) {
return request.hostname;
}
getRequestMethod(request) {
return request.method;
}
getRequestUrl(request) {
return request.originalUrl;
}
enableCors(options) {
return this.use((0, import_cors.default)(options));
}
createMiddlewareFactory(requestMethod) {
return (path, callback) => {
try {
const isExactPath = path.endsWith("$");
const convertedPath = LegacyRouteConverter.tryConvert(isExactPath ? path.slice(0, -1) : path);
let router = this.routerMethodFactory.get(this.instance, requestMethod);
if (isExactPath && router === this.instance.use) {
router = this.instance.all;
}
return router.call(this.instance, convertedPath, callback);
} catch (e) {
if (e instanceof TypeError) {
LegacyRouteConverter.printError(path);
}
throw e;
}
};
}
initHttpServer(options) {
const isHttpsEnabled = options && options.httpsOptions;
if (isHttpsEnabled) {
this.httpServer = https.createServer(options.httpsOptions, this.getInstance());
} else {
this.httpServer = http.createServer(this.getInstance());
}
if (options?.return503OnClosing) {
this.instance.use((req, res, next) => {
if (this.isShuttingDown) {
res.set("Connection", "close");
res.status(503).send("Service Unavailable");
} else {
next();
}
});
}
if (options?.forceCloseConnections) {
this.trackOpenConnections();
}
}
registerParserMiddleware(prefix, rawBody) {
const bodyParserJsonOptions = getBodyParserOptions("json", rawBody);
const bodyParserUrlencodedOptions = getBodyParserOptions("urlencoded", rawBody, { extended: true });
const parserMiddleware = {
jsonParser: import_express.default.json(bodyParserJsonOptions),
urlencodedParser: import_express.default.urlencoded(bodyParserUrlencodedOptions)
};
Object.keys(parserMiddleware).filter((parser) => !this.isMiddlewareApplied(parser)).forEach((parserKey) => this.use(parserMiddleware[parserKey]));
}
useBodyParser(type, rawBody, options) {
const parserOptions = getBodyParserOptions(type, rawBody, options);
const parser = import_express.default[type](parserOptions);
this.use(parser);
return this;
}
setLocal(key, value) {
this.instance.locals[key] = value;
return this;
}
getType() {
return "express";
}
isRouteOrderSensitive() {
return true;
}
// The return type is spelled out (rather than "RouteMatchingOptions") so
// that the declarations still compile against an older "@nestjs/common"
getRouteMatchingOptions() {
const router = this.getInstance().router;
return {
caseSensitive: !!router?.caseSensitive,
ignoreTrailingSlash: !router?.strict
};
}
applyVersionFilter(handler, version, versioningOptions) {
const callNextHandler = /* @__PURE__ */ __name((req, res, next) => {
if (!next) {
throw new InternalServerErrorException("HTTP adapter does not support filtering on version");
}
return next();
}, "callNextHandler");
if (version === VERSION_NEUTRAL || // URL Versioning is done via the path, so the filter continues forward
versioningOptions.type === VersioningType.URI) {
const handlerForNoVersioning = /* @__PURE__ */ __name((req, res, next) => handler(req, res, next), "handlerForNoVersioning");
return handlerForNoVersioning;
}
if (versioningOptions.type === VersioningType.CUSTOM) {
const handlerForCustomVersioning = /* @__PURE__ */ __name((req, res, next) => {
const extractedVersion = versioningOptions.extractor(req);
if (Array.isArray(version)) {
if (Array.isArray(extractedVersion) && version.filter((v) => extractedVersion.includes(v)).length) {
return handler(req, res, next);
}
if (isString(extractedVersion) && version.includes(extractedVersion)) {
return handler(req, res, next);
}
} else if (isString(version)) {
if (Array.isArray(extractedVersion) && extractedVersion.includes(version)) {
return handler(req, res, next);
}
if (isString(extractedVersion) && version === extractedVersion) {
return handler(req, res, next);
}
}
return callNextHandler(req, res, next);
}, "handlerForCustomVersioning");
return handlerForCustomVersioning;
}
if (versioningOptions.type === VersioningType.MEDIA_TYPE) {
const handlerForMediaTypeVersioning = /* @__PURE__ */ __name((req, res, next) => {
const MEDIA_TYPE_HEADER = "Accept";
const acceptHeaderValue = req.headers?.[MEDIA_TYPE_HEADER] || req.headers?.[MEDIA_TYPE_HEADER.toLowerCase()];
const headerVersion = getMediaTypeVersion(acceptHeaderValue, versioningOptions.key);
if (isUndefined(headerVersion)) {
if (Array.isArray(version)) {
if (version.includes(VERSION_NEUTRAL)) {
return handler(req, res, next);
}
}
} else {
if (Array.isArray(version)) {
if (version.includes(headerVersion)) {
return handler(req, res, next);
}
} else if (isString(version)) {
if (version === headerVersion) {
return handler(req, res, next);
}
}
}
return callNextHandler(req, res, next);
}, "handlerForMediaTypeVersioning");
return handlerForMediaTypeVersioning;
}
if (versioningOptions.type === VersioningType.HEADER) {
const handlerForHeaderVersioning = /* @__PURE__ */ __name((req, res, next) => {
const customHeaderVersionParameter = req.headers?.[versioningOptions.header] || req.headers?.[versioningOptions.header.toLowerCase()];
if (isUndefined(customHeaderVersionParameter)) {
if (Array.isArray(version)) {
if (version.includes(VERSION_NEUTRAL)) {
return handler(req, res, next);
}
}
} else {
if (Array.isArray(version)) {
if (version.includes(customHeaderVersionParameter)) {
return handler(req, res, next);
}
} else if (isString(version)) {
if (version === customHeaderVersionParameter) {
return handler(req, res, next);
}
}
}
return callNextHandler(req, res, next);
}, "handlerForHeaderVersioning");
return handlerForHeaderVersioning;
}
throw new Error("Unsupported versioning options");
}
mapException(error) {
switch (true) {
// SyntaxError is thrown by Express body-parser when given invalid JSON (#422, #430)
// URIError is thrown by Express when given a path parameter with an invalid percentage
// encoding, e.g. '%FF' (#8915)
case (error instanceof SyntaxError || error instanceof URIError):
return new BadRequestException(error.message);
default:
return error;
}
}
normalizePrefix(prefix) {
return stripEndSlash(addLeadingSlash(prefix));
}
trackOpenConnections() {
this.httpServer.on("connection", (socket) => {
this.openConnections.add(socket);
socket.on("close", () => this.openConnections.delete(socket));
});
}
closeOpenConnections() {
for (const socket of this.openConnections) {
socket.destroy();
this.openConnections.delete(socket);
}
}
isMiddlewareApplied(name) {
const app = this.getInstance();
return !!app.router && !!app.router.stack && isFunction(app.router.stack.filter) && app.router.stack.some((layer) => layer && layer.handle && layer.handle.name === name);
}
setHeaderIfNotExists(response, name, value) {
if (value !== void 0 && response.getHeader(name) === void 0) {
const headerValue = Array.isArray(value) ? value.join(",") : value;
response.setHeader(name, headerValue);
}
}
applyStreamHeaders(response, streamable) {
const headers = streamable.getHeaders();
this.setHeaderIfNotExists(response, "Content-Type", headers.type);
this.setHeaderIfNotExists(response, "Content-Disposition", headers.disposition);
this.setHeaderIfNotExists(response, "Content-Length", headers.length);
}
};
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/index.js
var init_adapters2 = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/adapters/index.js"() {
init_express_adapter();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js
var init_nest_express_application_interface = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-application.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js
var init_nest_express_body_parser_interface = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/nest-express-body-parser.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/index.js
var init_interfaces2 = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/interfaces/index.js"() {
init_nest_express_application_interface();
init_nest_express_body_parser_interface();
}
});
// ../../node_modules/.pnpm/media-typer@0.3.0/node_modules/media-typer/index.js
var require_media_typer2 = __commonJS({
"../../node_modules/.pnpm/media-typer@0.3.0/node_modules/media-typer/index.js"(exports) {
var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/;
var qescRegExp = /\\([\u0000-\u007f])/g;
var quoteRegExp = /([\\"])/g;
var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
exports.format = format;
exports.parse = parse;
function format(obj) {
if (!obj || typeof obj !== "object") {
throw new TypeError("argument obj is required");
}
var parameters = obj.parameters;
var subtype = obj.subtype;
var suffix = obj.suffix;
var type = obj.type;
if (!type || !typeNameRegExp.test(type)) {
throw new TypeError("invalid type");
}
if (!subtype || !subtypeNameRegExp.test(subtype)) {
throw new TypeError("invalid subtype");
}
var string = type + "/" + subtype;
if (suffix) {
if (!typeNameRegExp.test(suffix)) {
throw new TypeError("invalid suffix");
}
string += "+" + suffix;
}
if (parameters && typeof parameters === "object") {
var param;
var params = Object.keys(parameters).sort();
for (var i = 0; i < params.length; i++) {
param = params[i];
if (!tokenRegExp.test(param)) {
throw new TypeError("invalid parameter name");
}
string += "; " + param + "=" + qstring(parameters[param]);
}
}
return string;
}
__name(format, "format");
function parse(string) {
if (!string) {
throw new TypeError("argument string is required");
}
if (typeof string === "object") {
string = getcontenttype(string);
}
if (typeof string !== "string") {
throw new TypeError("argument string is required to be a string");
}
var index = string.indexOf(";");
var type = index !== -1 ? string.substr(0, index) : string;
var key;
var match;
var obj = splitType(type);
var params = {};
var value;
paramRegExp.lastIndex = index;
while (match = paramRegExp.exec(string)) {
if (match.index !== index) {
throw new TypeError("invalid parameter format");
}
index += match[0].length;
key = match[1].toLowerCase();
value = match[2];
if (value[0] === '"') {
value = value.substr(1, value.length - 2).replace(qescRegExp, "$1");
}
params[key] = value;
}
if (index !== -1 && index !== string.length) {
throw new TypeError("invalid parameter format");
}
obj.parameters = params;
return obj;
}
__name(parse, "parse");
function getcontenttype(obj) {
if (typeof obj.getHeader === "function") {
return obj.getHeader("content-type");
}
if (typeof obj.headers === "object") {
return obj.headers && obj.headers["content-type"];
}
}
__name(getcontenttype, "getcontenttype");
function qstring(val) {
var str = String(val);
if (tokenRegExp.test(str)) {
return str;
}
if (str.length > 0 && !textRegExp.test(str)) {
throw new TypeError("invalid parameter value");
}
return '"' + str.replace(quoteRegExp, "\\$1") + '"';
}
__name(qstring, "qstring");
function splitType(string) {
var match = typeRegExp.exec(string.toLowerCase());
if (!match) {
throw new TypeError("invalid media type");
}
var type = match[1];
var subtype = match[2];
var suffix;
var index = subtype.lastIndexOf("+");
if (index !== -1) {
suffix = subtype.substr(index + 1);
subtype = subtype.substr(0, index);
}
var obj = {
type,
subtype,
suffix
};
return obj;
}
__name(splitType, "splitType");
}
});
// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json
var require_db2 = __commonJS({
"../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/db.json"(exports, module) {
module.exports = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: true
},
"application/3gpphal+json": {
source: "iana",
compressible: true
},
"application/3gpphalforms+json": {
source: "iana",
compressible: true
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: true
},
"application/alto-costmap+json": {
source: "iana",
compressible: true
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-directory+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: true
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: true
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: true
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: true
},
"application/alto-error+json": {
source: "iana",
compressible: true
},
"application/alto-networkmap+json": {
source: "iana",
compressible: true
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: true
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: true
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: true,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: true,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: true,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: true,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: true,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: true,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: true
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: true,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: true
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: false
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/calendar+json": {
source: "iana",
compressible: true
},
"application/calendar+xml": {
source: "iana",
compressible: true,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: true
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: true
},
"application/ccxml+xml": {
source: "iana",
compressible: true,
extensions: ["ccxml"]
},
"application/cdfx+xml": {
source: "iana",
compressible: true,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: true
},
"application/cellml+xml": {
source: "iana",
compressible: true
},
"application/cfw": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: true
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: true
},
"application/clue_info+xml": {
source: "iana",
compressible: true
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: true
},
"application/coap-group+json": {
source: "iana",
compressible: true
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: true
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: true,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: true
},
"application/cstadata+xml": {
source: "iana",
compressible: true
},
"application/csvm+json": {
source: "iana",
compressible: true
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: true
},
"application/dash+xml": {
source: "iana",
compressible: true,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: true,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: true,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: true
},
"application/dicom": {
source: "iana"
},
"application/dicom+json": {
source: "iana",
compressible: true
},
"application/dicom+xml": {
source: "iana",
compressible: true
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: true
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: true,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: true
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: true,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/ecmascript": {
source: "iana",
compressible: true,
extensions: ["es", "ecma"]
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: false
},
"application/edifact": {
source: "iana",
compressible: false
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/elm+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: true
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: true
},
"application/emma+xml": {
source: "iana",
compressible: true,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: true,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: true
},
"application/epub+zip": {
source: "iana",
compressible: false,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: true
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdt+xml": {
source: "iana",
compressible: true,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/fido.trusted-apps+json": {
compressible: true
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: false
},
"application/framework-attributes+xml": {
source: "iana",
compressible: true
},
"application/geo+json": {
source: "iana",
compressible: true,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geoxacml+xml": {
source: "iana",
compressible: true
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: true,
extensions: ["gml"]
},
"application/gpx+xml": {
source: "apache",
compressible: true,
extensions: ["gpx"]
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: false,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: true
},
"application/hjson": {
extensions: ["hjson"]
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: true
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: true
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: true,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: true,
extensions: ["its"]
},
"application/java-archive": {
source: "apache",
compressible: false,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: false,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: false,
extensions: ["class"]
},
"application/javascript": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["js", "mjs"]
},
"application/jf2feed+json": {
source: "iana",
compressible: true
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: true
},
"application/jrd+json": {
source: "iana",
compressible: true
},
"application/jscalendar+json": {
source: "iana",
compressible: true
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: true
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: true,
extensions: ["jsonml"]
},
"application/jwk+json": {
source: "iana",
compressible: true
},
"application/jwk-set+json": {
source: "iana",
compressible: true
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: true
},
"application/kpml-response+xml": {
source: "iana",
compressible: true
},
"application/ld+json": {
source: "iana",
compressible: true,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: true,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/load-control+xml": {
source: "iana",
compressible: true
},
"application/lost+xml": {
source: "iana",
compressible: true,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: true
},
"application/lpf+zip": {
source: "iana",
compressible: false
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: true,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: true,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: true,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: true
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: true
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: true
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk+xml": {
source: "iana",
compressible: true
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: true
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: true
},
"application/mbms-register+xml": {
source: "iana",
compressible: true
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: true
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: true
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: true
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: true,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: true
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: true,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: true
},
"application/metalink+xml": {
source: "apache",
compressible: true,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: true,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: true,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: true,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: true,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: true,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: true
},
"application/mrb-publish+xml": {
source: "iana",
compressible: true
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/msword": {
source: "iana",
compressible: false,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: true
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: true
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: false,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: true
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: true,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: false,
extensions: ["ogx"]
},
"application/omdoc+xml": {
source: "apache",
compressible: true,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: true
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: false
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: true,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: true,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: false,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: false,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["asc", "sig"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: true,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/postscript": {
source: "iana",
compressible: true,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: true
},
"application/problem+json": {
source: "iana",
compressible: true
},
"application/problem+xml": {
source: "iana",
compressible: true
},
"application/provenance+xml": {
source: "iana",
compressible: true,
extensions: ["provx"]
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: false
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: true
},
"application/pskc+xml": {
source: "iana",
compressible: true,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: true
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: true,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: true
},
"application/rdf+xml": {
source: "iana",
compressible: true,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: true,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "iana"
},
"application/reputon+json": {
source: "iana",
compressible: true
},
"application/resource-lists+xml": {
source: "iana",
compressible: true,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: true,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: true
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: true
},
"application/rls-services+xml": {
source: "iana",
compressible: true,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: true,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: true,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: true,
extensions: ["rusd"]
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: true,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: true,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: true
},
"application/samlmetadata+xml": {
source: "iana",
compressible: true
},
"application/sarif+json": {
source: "iana",
compressible: true
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: true
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: true,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: true
},
"application/scim+json": {
source: "iana",
compressible: true
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: true
},
"application/senml+xml": {
source: "iana",
compressible: true,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: true
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: true
},
"application/sensml+xml": {
source: "iana",
compressible: true,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: true
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: true,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: true
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "iana"
},
"application/smil+xml": {
source: "iana",
compressible: true,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: true
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: true,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: true
},
"application/spirits-event+xml": {
source: "iana",
compressible: true
},
"application/sql": {
source: "iana"
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: true,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: true,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: true,
extensions: ["ssdl"]
},
"application/ssml+xml": {
source: "iana",
compressible: true,
extensions: ["ssml"]
},
"application/stix+json": {
source: "iana",
compressible: true
},
"application/swid+xml": {
source: "iana",
compressible: true,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: true
},
"application/taxii+json": {
source: "iana",
compressible: true
},
"application/td+json": {
source: "iana",
compressible: true
},
"application/tei+xml": {
source: "iana",
compressible: true,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: true,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: true
},
"application/tnauthlist": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
compressible: true,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/ttml+xml": {
source: "iana",
compressible: true,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: false,
extensions: ["ubj"]
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: true
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: true,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: true,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: true
},
"application/vcard+json": {
source: "iana",
compressible: true
},
"application/vcard+xml": {
source: "iana",
compressible: true
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: true,
extensions: ["1km"]
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-affiliation-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: false,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: true,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "iana"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: true
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: true
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: false,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: true
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: true
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: true
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: true,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: false,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "iana"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: true
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: true
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: true
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: true,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: true
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: true
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: true
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: true
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: true
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: true,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: true,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: true
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: true
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: false
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: true
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: true,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: true
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: true
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: true
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: true
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: true
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: false
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: true,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: true
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: true
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: true,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: true
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: true
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: true
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: true
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: true
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: true
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: true
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: false
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: true,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: false
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: true
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: true
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: false
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: false
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: false
},
"application/vnd.filmit.zfc": {
source: "iana"
},
"application/vnd.fints": {
source: "iana"
},
"application/vnd.firemonkeys.cloudcell": {
source: "iana"
},
"application/vnd.flographit": {
source: "iana",
extensions: ["gph"]
},
"application/vnd.fluxtime.clip": {
source: "iana",
extensions: ["ftc"]
},
"application/vnd.font-fontforge-sfd": {
source: "iana"
},
"application/vnd.framemaker": {
source: "iana",
extensions: ["fm", "frame", "maker", "book"]
},
"application/vnd.frogans.fnc": {
source: "iana",
extensions: ["fnc"]
},
"application/vnd.frogans.ltf": {
source: "iana",
extensions: ["ltf"]
},
"application/vnd.fsc.weblaunch": {
source: "iana",
extensions: ["fsc"]
},
"application/vnd.fujifilm.fb.docuworks": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.binder": {
source: "iana"
},
"application/vnd.fujifilm.fb.docuworks.container": {
source: "iana"
},
"application/vnd.fujifilm.fb.jfi+xml": {
source: "iana",
compressible: true
},
"application/vnd.fujitsu.oasys": {
source: "iana",
extensions: ["oas"]
},
"application/vnd.fujitsu.oasys2": {
source: "iana",
extensions: ["oa2"]
},
"application/vnd.fujitsu.oasys3": {
source: "iana",
extensions: ["oa3"]
},
"application/vnd.fujitsu.oasysgp": {
source: "iana",
extensions: ["fg5"]
},
"application/vnd.fujitsu.oasysprs": {
source: "iana",
extensions: ["bh2"]
},
"application/vnd.fujixerox.art-ex": {
source: "iana"
},
"application/vnd.fujixerox.art4": {
source: "iana"
},
"application/vnd.fujixerox.ddd": {
source: "iana",
extensions: ["ddd"]
},
"application/vnd.fujixerox.docuworks": {
source: "iana",
extensions: ["xdw"]
},
"application/vnd.fujixerox.docuworks.binder": {
source: "iana",
extensions: ["xbd"]
},
"application/vnd.fujixerox.docuworks.container": {
source: "iana"
},
"application/vnd.fujixerox.hbpl": {
source: "iana"
},
"application/vnd.fut-misnet": {
source: "iana"
},
"application/vnd.futoin+cbor": {
source: "iana"
},
"application/vnd.futoin+json": {
source: "iana",
compressible: true
},
"application/vnd.fuzzysheet": {
source: "iana",
extensions: ["fzs"]
},
"application/vnd.genomatix.tuxedo": {
source: "iana",
extensions: ["txd"]
},
"application/vnd.gentics.grd+json": {
source: "iana",
compressible: true
},
"application/vnd.geo+json": {
source: "iana",
compressible: true
},
"application/vnd.geocube+xml": {
source: "iana",
compressible: true
},
"application/vnd.geogebra.file": {
source: "iana",
extensions: ["ggb"]
},
"application/vnd.geogebra.slides": {
source: "iana"
},
"application/vnd.geogebra.tool": {
source: "iana",
extensions: ["ggt"]
},
"application/vnd.geometry-explorer": {
source: "iana",
extensions: ["gex", "gre"]
},
"application/vnd.geonext": {
source: "iana",
extensions: ["gxt"]
},
"application/vnd.geoplan": {
source: "iana",
extensions: ["g2w"]
},
"application/vnd.geospace": {
source: "iana",
extensions: ["g3w"]
},
"application/vnd.gerber": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt": {
source: "iana"
},
"application/vnd.globalplatform.card-content-mgt-response": {
source: "iana"
},
"application/vnd.gmx": {
source: "iana",
extensions: ["gmx"]
},
"application/vnd.google-apps.document": {
compressible: false,
extensions: ["gdoc"]
},
"application/vnd.google-apps.presentation": {
compressible: false,
extensions: ["gslides"]
},
"application/vnd.google-apps.spreadsheet": {
compressible: false,
extensions: ["gsheet"]
},
"application/vnd.google-earth.kml+xml": {
source: "iana",
compressible: true,
extensions: ["kml"]
},
"application/vnd.google-earth.kmz": {
source: "iana",
compressible: false,
extensions: ["kmz"]
},
"application/vnd.gov.sk.e-form+xml": {
source: "iana",
compressible: true
},
"application/vnd.gov.sk.e-form+zip": {
source: "iana",
compressible: false
},
"application/vnd.gov.sk.xmldatacontainer+xml": {
source: "iana",
compressible: true
},
"application/vnd.grafeq": {
source: "iana",
extensions: ["gqf", "gqs"]
},
"application/vnd.gridmp": {
source: "iana"
},
"application/vnd.groove-account": {
source: "iana",
extensions: ["gac"]
},
"application/vnd.groove-help": {
source: "iana",
extensions: ["ghf"]
},
"application/vnd.groove-identity-message": {
source: "iana",
extensions: ["gim"]
},
"application/vnd.groove-injector": {
source: "iana",
extensions: ["grv"]
},
"application/vnd.groove-tool-message": {
source: "iana",
extensions: ["gtm"]
},
"application/vnd.groove-tool-template": {
source: "iana",
extensions: ["tpl"]
},
"application/vnd.groove-vcard": {
source: "iana",
extensions: ["vcg"]
},
"application/vnd.hal+json": {
source: "iana",
compressible: true
},
"application/vnd.hal+xml": {
source: "iana",
compressible: true,
extensions: ["hal"]
},
"application/vnd.handheld-entertainment+xml": {
source: "iana",
compressible: true,
extensions: ["zmm"]
},
"application/vnd.hbci": {
source: "iana",
extensions: ["hbci"]
},
"application/vnd.hc+json": {
source: "iana",
compressible: true
},
"application/vnd.hcl-bireports": {
source: "iana"
},
"application/vnd.hdt": {
source: "iana"
},
"application/vnd.heroku+json": {
source: "iana",
compressible: true
},
"application/vnd.hhe.lesson-player": {
source: "iana",
extensions: ["les"]
},
"application/vnd.hl7cda+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hl7v2+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.hp-hpgl": {
source: "iana",
extensions: ["hpgl"]
},
"application/vnd.hp-hpid": {
source: "iana",
extensions: ["hpid"]
},
"application/vnd.hp-hps": {
source: "iana",
extensions: ["hps"]
},
"application/vnd.hp-jlyt": {
source: "iana",
extensions: ["jlt"]
},
"application/vnd.hp-pcl": {
source: "iana",
extensions: ["pcl"]
},
"application/vnd.hp-pclxl": {
source: "iana",
extensions: ["pclxl"]
},
"application/vnd.httphone": {
source: "iana"
},
"application/vnd.hydrostatix.sof-data": {
source: "iana",
extensions: ["sfd-hdstx"]
},
"application/vnd.hyper+json": {
source: "iana",
compressible: true
},
"application/vnd.hyper-item+json": {
source: "iana",
compressible: true
},
"application/vnd.hyperdrive+json": {
source: "iana",
compressible: true
},
"application/vnd.hzn-3d-crossword": {
source: "iana"
},
"application/vnd.ibm.afplinedata": {
source: "iana"
},
"application/vnd.ibm.electronic-media": {
source: "iana"
},
"application/vnd.ibm.minipay": {
source: "iana",
extensions: ["mpy"]
},
"application/vnd.ibm.modcap": {
source: "iana",
extensions: ["afp", "listafp", "list3820"]
},
"application/vnd.ibm.rights-management": {
source: "iana",
extensions: ["irm"]
},
"application/vnd.ibm.secure-container": {
source: "iana",
extensions: ["sc"]
},
"application/vnd.iccprofile": {
source: "iana",
extensions: ["icc", "icm"]
},
"application/vnd.ieee.1905": {
source: "iana"
},
"application/vnd.igloader": {
source: "iana",
extensions: ["igl"]
},
"application/vnd.imagemeter.folder+zip": {
source: "iana",
compressible: false
},
"application/vnd.imagemeter.image+zip": {
source: "iana",
compressible: false
},
"application/vnd.immervision-ivp": {
source: "iana",
extensions: ["ivp"]
},
"application/vnd.immervision-ivu": {
source: "iana",
extensions: ["ivu"]
},
"application/vnd.ims.imsccv1p1": {
source: "iana"
},
"application/vnd.ims.imsccv1p2": {
source: "iana"
},
"application/vnd.ims.imsccv1p3": {
source: "iana"
},
"application/vnd.ims.lis.v2.result+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolconsumerprofile+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolproxy.id+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings+json": {
source: "iana",
compressible: true
},
"application/vnd.ims.lti.v2.toolsettings.simple+json": {
source: "iana",
compressible: true
},
"application/vnd.informedcontrol.rms+xml": {
source: "iana",
compressible: true
},
"application/vnd.informix-visionary": {
source: "iana"
},
"application/vnd.infotech.project": {
source: "iana"
},
"application/vnd.infotech.project+xml": {
source: "iana",
compressible: true
},
"application/vnd.innopath.wamp.notification": {
source: "iana"
},
"application/vnd.insors.igm": {
source: "iana",
extensions: ["igm"]
},
"application/vnd.intercon.formnet": {
source: "iana",
extensions: ["xpw", "xpx"]
},
"application/vnd.intergeo": {
source: "iana",
extensions: ["i2g"]
},
"application/vnd.intertrust.digibox": {
source: "iana"
},
"application/vnd.intertrust.nncp": {
source: "iana"
},
"application/vnd.intu.qbo": {
source: "iana",
extensions: ["qbo"]
},
"application/vnd.intu.qfx": {
source: "iana",
extensions: ["qfx"]
},
"application/vnd.iptc.g2.catalogitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.conceptitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.knowledgeitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.newsmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.packageitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.iptc.g2.planningitem+xml": {
source: "iana",
compressible: true
},
"application/vnd.ipunplugged.rcprofile": {
source: "iana",
extensions: ["rcprofile"]
},
"application/vnd.irepository.package+xml": {
source: "iana",
compressible: true,
extensions: ["irp"]
},
"application/vnd.is-xpr": {
source: "iana",
extensions: ["xpr"]
},
"application/vnd.isac.fcs": {
source: "iana",
extensions: ["fcs"]
},
"application/vnd.iso11783-10+zip": {
source: "iana",
compressible: false
},
"application/vnd.jam": {
source: "iana",
extensions: ["jam"]
},
"application/vnd.japannet-directory-service": {
source: "iana"
},
"application/vnd.japannet-jpnstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-payment-wakeup": {
source: "iana"
},
"application/vnd.japannet-registration": {
source: "iana"
},
"application/vnd.japannet-registration-wakeup": {
source: "iana"
},
"application/vnd.japannet-setstore-wakeup": {
source: "iana"
},
"application/vnd.japannet-verification": {
source: "iana"
},
"application/vnd.japannet-verification-wakeup": {
source: "iana"
},
"application/vnd.jcp.javame.midlet-rms": {
source: "iana",
extensions: ["rms"]
},
"application/vnd.jisp": {
source: "iana",
extensions: ["jisp"]
},
"application/vnd.joost.joda-archive": {
source: "iana",
extensions: ["joda"]
},
"application/vnd.jsk.isdn-ngn": {
source: "iana"
},
"application/vnd.kahootz": {
source: "iana",
extensions: ["ktz", "ktr"]
},
"application/vnd.kde.karbon": {
source: "iana",
extensions: ["karbon"]
},
"application/vnd.kde.kchart": {
source: "iana",
extensions: ["chrt"]
},
"application/vnd.kde.kformula": {
source: "iana",
extensions: ["kfo"]
},
"application/vnd.kde.kivio": {
source: "iana",
extensions: ["flw"]
},
"application/vnd.kde.kontour": {
source: "iana",
extensions: ["kon"]
},
"application/vnd.kde.kpresenter": {
source: "iana",
extensions: ["kpr", "kpt"]
},
"application/vnd.kde.kspread": {
source: "iana",
extensions: ["ksp"]
},
"application/vnd.kde.kword": {
source: "iana",
extensions: ["kwd", "kwt"]
},
"application/vnd.kenameaapp": {
source: "iana",
extensions: ["htke"]
},
"application/vnd.kidspiration": {
source: "iana",
extensions: ["kia"]
},
"application/vnd.kinar": {
source: "iana",
extensions: ["kne", "knp"]
},
"application/vnd.koan": {
source: "iana",
extensions: ["skp", "skd", "skt", "skm"]
},
"application/vnd.kodak-descriptor": {
source: "iana",
extensions: ["sse"]
},
"application/vnd.las": {
source: "iana"
},
"application/vnd.las.las+json": {
source: "iana",
compressible: true
},
"application/vnd.las.las+xml": {
source: "iana",
compressible: true,
extensions: ["lasxml"]
},
"application/vnd.laszip": {
source: "iana"
},
"application/vnd.leap+json": {
source: "iana",
compressible: true
},
"application/vnd.liberty-request+xml": {
source: "iana",
compressible: true
},
"application/vnd.llamagraphics.life-balance.desktop": {
source: "iana",
extensions: ["lbd"]
},
"application/vnd.llamagraphics.life-balance.exchange+xml": {
source: "iana",
compressible: true,
extensions: ["lbe"]
},
"application/vnd.logipipe.circuit+zip": {
source: "iana",
compressible: false
},
"application/vnd.loom": {
source: "iana"
},
"application/vnd.lotus-1-2-3": {
source: "iana",
extensions: ["123"]
},
"application/vnd.lotus-approach": {
source: "iana",
extensions: ["apr"]
},
"application/vnd.lotus-freelance": {
source: "iana",
extensions: ["pre"]
},
"application/vnd.lotus-notes": {
source: "iana",
extensions: ["nsf"]
},
"application/vnd.lotus-organizer": {
source: "iana",
extensions: ["org"]
},
"application/vnd.lotus-screencam": {
source: "iana",
extensions: ["scm"]
},
"application/vnd.lotus-wordpro": {
source: "iana",
extensions: ["lwp"]
},
"application/vnd.macports.portpkg": {
source: "iana",
extensions: ["portpkg"]
},
"application/vnd.mapbox-vector-tile": {
source: "iana",
extensions: ["mvt"]
},
"application/vnd.marlin.drm.actiontoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.conftoken+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.license+xml": {
source: "iana",
compressible: true
},
"application/vnd.marlin.drm.mdcf": {
source: "iana"
},
"application/vnd.mason+json": {
source: "iana",
compressible: true
},
"application/vnd.maxar.archive.3tz+zip": {
source: "iana",
compressible: false
},
"application/vnd.maxmind.maxmind-db": {
source: "iana"
},
"application/vnd.mcd": {
source: "iana",
extensions: ["mcd"]
},
"application/vnd.medcalcdata": {
source: "iana",
extensions: ["mc1"]
},
"application/vnd.mediastation.cdkey": {
source: "iana",
extensions: ["cdkey"]
},
"application/vnd.meridian-slingshot": {
source: "iana"
},
"application/vnd.mfer": {
source: "iana",
extensions: ["mwf"]
},
"application/vnd.mfmp": {
source: "iana",
extensions: ["mfm"]
},
"application/vnd.micro+json": {
source: "iana",
compressible: true
},
"application/vnd.micrografx.flo": {
source: "iana",
extensions: ["flo"]
},
"application/vnd.micrografx.igx": {
source: "iana",
extensions: ["igx"]
},
"application/vnd.microsoft.portable-executable": {
source: "iana"
},
"application/vnd.microsoft.windows.thumbnail-cache": {
source: "iana"
},
"application/vnd.miele+json": {
source: "iana",
compressible: true
},
"application/vnd.mif": {
source: "iana",
extensions: ["mif"]
},
"application/vnd.minisoft-hp3000-save": {
source: "iana"
},
"application/vnd.mitsubishi.misty-guard.trustweb": {
source: "iana"
},
"application/vnd.mobius.daf": {
source: "iana",
extensions: ["daf"]
},
"application/vnd.mobius.dis": {
source: "iana",
extensions: ["dis"]
},
"application/vnd.mobius.mbk": {
source: "iana",
extensions: ["mbk"]
},
"application/vnd.mobius.mqy": {
source: "iana",
extensions: ["mqy"]
},
"application/vnd.mobius.msl": {
source: "iana",
extensions: ["msl"]
},
"application/vnd.mobius.plc": {
source: "iana",
extensions: ["plc"]
},
"application/vnd.mobius.txf": {
source: "iana",
extensions: ["txf"]
},
"application/vnd.mophun.application": {
source: "iana",
extensions: ["mpn"]
},
"application/vnd.mophun.certificate": {
source: "iana",
extensions: ["mpc"]
},
"application/vnd.motorola.flexsuite": {
source: "iana"
},
"application/vnd.motorola.flexsuite.adsi": {
source: "iana"
},
"application/vnd.motorola.flexsuite.fis": {
source: "iana"
},
"application/vnd.motorola.flexsuite.gotap": {
source: "iana"
},
"application/vnd.motorola.flexsuite.kmr": {
source: "iana"
},
"application/vnd.motorola.flexsuite.ttc": {
source: "iana"
},
"application/vnd.motorola.flexsuite.wem": {
source: "iana"
},
"application/vnd.motorola.iprm": {
source: "iana"
},
"application/vnd.mozilla.xul+xml": {
source: "iana",
compressible: true,
extensions: ["xul"]
},
"application/vnd.ms-3mfdocument": {
source: "iana"
},
"application/vnd.ms-artgalry": {
source: "iana",
extensions: ["cil"]
},
"application/vnd.ms-asf": {
source: "iana"
},
"application/vnd.ms-cab-compressed": {
source: "iana",
extensions: ["cab"]
},
"application/vnd.ms-color.iccprofile": {
source: "apache"
},
"application/vnd.ms-excel": {
source: "iana",
compressible: false,
extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
},
"application/vnd.ms-excel.addin.macroenabled.12": {
source: "iana",
extensions: ["xlam"]
},
"application/vnd.ms-excel.sheet.binary.macroenabled.12": {
source: "iana",
extensions: ["xlsb"]
},
"application/vnd.ms-excel.sheet.macroenabled.12": {
source: "iana",
extensions: ["xlsm"]
},
"application/vnd.ms-excel.template.macroenabled.12": {
source: "iana",
extensions: ["xltm"]
},
"application/vnd.ms-fontobject": {
source: "iana",
compressible: true,
extensions: ["eot"]
},
"application/vnd.ms-htmlhelp": {
source: "iana",
extensions: ["chm"]
},
"application/vnd.ms-ims": {
source: "iana",
extensions: ["ims"]
},
"application/vnd.ms-lrm": {
source: "iana",
extensions: ["lrm"]
},
"application/vnd.ms-office.activex+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-officetheme": {
source: "iana",
extensions: ["thmx"]
},
"application/vnd.ms-opentype": {
source: "apache",
compressible: true
},
"application/vnd.ms-outlook": {
compressible: false,
extensions: ["msg"]
},
"application/vnd.ms-package.obfuscated-opentype": {
source: "apache"
},
"application/vnd.ms-pki.seccat": {
source: "apache",
extensions: ["cat"]
},
"application/vnd.ms-pki.stl": {
source: "apache",
extensions: ["stl"]
},
"application/vnd.ms-playready.initiator+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-powerpoint": {
source: "iana",
compressible: false,
extensions: ["ppt", "pps", "pot"]
},
"application/vnd.ms-powerpoint.addin.macroenabled.12": {
source: "iana",
extensions: ["ppam"]
},
"application/vnd.ms-powerpoint.presentation.macroenabled.12": {
source: "iana",
extensions: ["pptm"]
},
"application/vnd.ms-powerpoint.slide.macroenabled.12": {
source: "iana",
extensions: ["sldm"]
},
"application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
source: "iana",
extensions: ["ppsm"]
},
"application/vnd.ms-powerpoint.template.macroenabled.12": {
source: "iana",
extensions: ["potm"]
},
"application/vnd.ms-printdevicecapabilities+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-printing.printticket+xml": {
source: "apache",
compressible: true
},
"application/vnd.ms-printschematicket+xml": {
source: "iana",
compressible: true
},
"application/vnd.ms-project": {
source: "iana",
extensions: ["mpp", "mpt"]
},
"application/vnd.ms-tnef": {
source: "iana"
},
"application/vnd.ms-windows.devicepairing": {
source: "iana"
},
"application/vnd.ms-windows.nwprinting.oob": {
source: "iana"
},
"application/vnd.ms-windows.printerpairing": {
source: "iana"
},
"application/vnd.ms-windows.wsd.oob": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.lic-resp": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-chlg-req": {
source: "iana"
},
"application/vnd.ms-wmdrm.meter-resp": {
source: "iana"
},
"application/vnd.ms-word.document.macroenabled.12": {
source: "iana",
extensions: ["docm"]
},
"application/vnd.ms-word.template.macroenabled.12": {
source: "iana",
extensions: ["dotm"]
},
"application/vnd.ms-works": {
source: "iana",
extensions: ["wps", "wks", "wcm", "wdb"]
},
"application/vnd.ms-wpl": {
source: "iana",
extensions: ["wpl"]
},
"application/vnd.ms-xpsdocument": {
source: "iana",
compressible: false,
extensions: ["xps"]
},
"application/vnd.msa-disk-image": {
source: "iana"
},
"application/vnd.mseq": {
source: "iana",
extensions: ["mseq"]
},
"application/vnd.msign": {
source: "iana"
},
"application/vnd.multiad.creator": {
source: "iana"
},
"application/vnd.multiad.creator.cif": {
source: "iana"
},
"application/vnd.music-niff": {
source: "iana"
},
"application/vnd.musician": {
source: "iana",
extensions: ["mus"]
},
"application/vnd.muvee.style": {
source: "iana",
extensions: ["msty"]
},
"application/vnd.mynfc": {
source: "iana",
extensions: ["taglet"]
},
"application/vnd.nacamar.ybrid+json": {
source: "iana",
compressible: true
},
"application/vnd.ncd.control": {
source: "iana"
},
"application/vnd.ncd.reference": {
source: "iana"
},
"application/vnd.nearst.inv+json": {
source: "iana",
compressible: true
},
"application/vnd.nebumind.line": {
source: "iana"
},
"application/vnd.nervana": {
source: "iana"
},
"application/vnd.netfpx": {
source: "iana"
},
"application/vnd.neurolanguage.nlu": {
source: "iana",
extensions: ["nlu"]
},
"application/vnd.nimn": {
source: "iana"
},
"application/vnd.nintendo.nitro.rom": {
source: "iana"
},
"application/vnd.nintendo.snes.rom": {
source: "iana"
},
"application/vnd.nitf": {
source: "iana",
extensions: ["ntf", "nitf"]
},
"application/vnd.noblenet-directory": {
source: "iana",
extensions: ["nnd"]
},
"application/vnd.noblenet-sealer": {
source: "iana",
extensions: ["nns"]
},
"application/vnd.noblenet-web": {
source: "iana",
extensions: ["nnw"]
},
"application/vnd.nokia.catalogs": {
source: "iana"
},
"application/vnd.nokia.conml+wbxml": {
source: "iana"
},
"application/vnd.nokia.conml+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.iptv.config+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.isds-radio-presets": {
source: "iana"
},
"application/vnd.nokia.landmark+wbxml": {
source: "iana"
},
"application/vnd.nokia.landmark+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.landmarkcollection+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.n-gage.ac+xml": {
source: "iana",
compressible: true,
extensions: ["ac"]
},
"application/vnd.nokia.n-gage.data": {
source: "iana",
extensions: ["ngdat"]
},
"application/vnd.nokia.n-gage.symbian.install": {
source: "iana",
extensions: ["n-gage"]
},
"application/vnd.nokia.ncd": {
source: "iana"
},
"application/vnd.nokia.pcd+wbxml": {
source: "iana"
},
"application/vnd.nokia.pcd+xml": {
source: "iana",
compressible: true
},
"application/vnd.nokia.radio-preset": {
source: "iana",
extensions: ["rpst"]
},
"application/vnd.nokia.radio-presets": {
source: "iana",
extensions: ["rpss"]
},
"application/vnd.novadigm.edm": {
source: "iana",
extensions: ["edm"]
},
"application/vnd.novadigm.edx": {
source: "iana",
extensions: ["edx"]
},
"application/vnd.novadigm.ext": {
source: "iana",
extensions: ["ext"]
},
"application/vnd.ntt-local.content-share": {
source: "iana"
},
"application/vnd.ntt-local.file-transfer": {
source: "iana"
},
"application/vnd.ntt-local.ogw_remote-access": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_remote": {
source: "iana"
},
"application/vnd.ntt-local.sip-ta_tcp_stream": {
source: "iana"
},
"application/vnd.oasis.opendocument.chart": {
source: "iana",
extensions: ["odc"]
},
"application/vnd.oasis.opendocument.chart-template": {
source: "iana",
extensions: ["otc"]
},
"application/vnd.oasis.opendocument.database": {
source: "iana",
extensions: ["odb"]
},
"application/vnd.oasis.opendocument.formula": {
source: "iana",
extensions: ["odf"]
},
"application/vnd.oasis.opendocument.formula-template": {
source: "iana",
extensions: ["odft"]
},
"application/vnd.oasis.opendocument.graphics": {
source: "iana",
compressible: false,
extensions: ["odg"]
},
"application/vnd.oasis.opendocument.graphics-template": {
source: "iana",
extensions: ["otg"]
},
"application/vnd.oasis.opendocument.image": {
source: "iana",
extensions: ["odi"]
},
"application/vnd.oasis.opendocument.image-template": {
source: "iana",
extensions: ["oti"]
},
"application/vnd.oasis.opendocument.presentation": {
source: "iana",
compressible: false,
extensions: ["odp"]
},
"application/vnd.oasis.opendocument.presentation-template": {
source: "iana",
extensions: ["otp"]
},
"application/vnd.oasis.opendocument.spreadsheet": {
source: "iana",
compressible: false,
extensions: ["ods"]
},
"application/vnd.oasis.opendocument.spreadsheet-template": {
source: "iana",
extensions: ["ots"]
},
"application/vnd.oasis.opendocument.text": {
source: "iana",
compressible: false,
extensions: ["odt"]
},
"application/vnd.oasis.opendocument.text-master": {
source: "iana",
extensions: ["odm"]
},
"application/vnd.oasis.opendocument.text-template": {
source: "iana",
extensions: ["ott"]
},
"application/vnd.oasis.opendocument.text-web": {
source: "iana",
extensions: ["oth"]
},
"application/vnd.obn": {
source: "iana"
},
"application/vnd.ocf+cbor": {
source: "iana"
},
"application/vnd.oci.image.manifest.v1+json": {
source: "iana",
compressible: true
},
"application/vnd.oftn.l10n+json": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessdownload+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.contentaccessstreaming+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.cspg-hexbinary": {
source: "iana"
},
"application/vnd.oipf.dae.svg+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.dae.xhtml+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.mippvcontrolmessage+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.pae.gem": {
source: "iana"
},
"application/vnd.oipf.spdiscovery+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.spdlist+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.ueprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.oipf.userprofile+xml": {
source: "iana",
compressible: true
},
"application/vnd.olpc-sugar": {
source: "iana",
extensions: ["xo"]
},
"application/vnd.oma-scws-config": {
source: "iana"
},
"application/vnd.oma-scws-http-request": {
source: "iana"
},
"application/vnd.oma-scws-http-response": {
source: "iana"
},
"application/vnd.oma.bcast.associated-procedure-parameter+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.drm-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.imd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.ltkm": {
source: "iana"
},
"application/vnd.oma.bcast.notification+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.provisioningtrigger": {
source: "iana"
},
"application/vnd.oma.bcast.sgboot": {
source: "iana"
},
"application/vnd.oma.bcast.sgdd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sgdu": {
source: "iana"
},
"application/vnd.oma.bcast.simple-symbol-container": {
source: "iana"
},
"application/vnd.oma.bcast.smartcard-trigger+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.sprov+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.bcast.stkm": {
source: "iana"
},
"application/vnd.oma.cab-address-book+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-feature-handler+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-pcc+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-subs-invite+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.cab-user-prefs+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.dcd": {
source: "iana"
},
"application/vnd.oma.dcdc": {
source: "iana"
},
"application/vnd.oma.dd2+xml": {
source: "iana",
compressible: true,
extensions: ["dd2"]
},
"application/vnd.oma.drm.risd+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.group-usage-list+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+cbor": {
source: "iana"
},
"application/vnd.oma.lwm2m+json": {
source: "iana",
compressible: true
},
"application/vnd.oma.lwm2m+tlv": {
source: "iana"
},
"application/vnd.oma.pal+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.detailed-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.final-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.groups+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.invocation-descriptor+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.poc.optimized-progress-report+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.push": {
source: "iana"
},
"application/vnd.oma.scidm.messages+xml": {
source: "iana",
compressible: true
},
"application/vnd.oma.xcap-directory+xml": {
source: "iana",
compressible: true
},
"application/vnd.omads-email+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-file+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omads-folder+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.omaloc-supl-init": {
source: "iana"
},
"application/vnd.onepager": {
source: "iana"
},
"application/vnd.onepagertamp": {
source: "iana"
},
"application/vnd.onepagertamx": {
source: "iana"
},
"application/vnd.onepagertat": {
source: "iana"
},
"application/vnd.onepagertatp": {
source: "iana"
},
"application/vnd.onepagertatx": {
source: "iana"
},
"application/vnd.openblox.game+xml": {
source: "iana",
compressible: true,
extensions: ["obgx"]
},
"application/vnd.openblox.game-binary": {
source: "iana"
},
"application/vnd.openeye.oeb": {
source: "iana"
},
"application/vnd.openofficeorg.extension": {
source: "apache",
extensions: ["oxt"]
},
"application/vnd.openstreetmap.data+xml": {
source: "iana",
compressible: true,
extensions: ["osm"]
},
"application/vnd.opentimestamps.ots": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.custom-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawing+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation": {
source: "iana",
compressible: false,
extensions: ["pptx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slide": {
source: "iana",
extensions: ["sldx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
source: "iana",
extensions: ["ppsx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
source: "iana",
extensions: ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
source: "iana",
compressible: false,
extensions: ["xlsx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
source: "iana",
extensions: ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.theme+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.themeoverride+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.vmldrawing": {
source: "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
source: "iana",
compressible: false,
extensions: ["docx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
source: "iana",
extensions: ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.core-properties+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
source: "iana",
compressible: true
},
"application/vnd.openxmlformats-package.relationships+xml": {
source: "iana",
compressible: true
},
"application/vnd.oracle.resource+json": {
source: "iana",
compressible: true
},
"application/vnd.orange.indata": {
source: "iana"
},
"application/vnd.osa.netdeploy": {
source: "iana"
},
"application/vnd.osgeo.mapguide.package": {
source: "iana",
extensions: ["mgp"]
},
"application/vnd.osgi.bundle": {
source: "iana"
},
"application/vnd.osgi.dp": {
source: "iana",
extensions: ["dp"]
},
"application/vnd.osgi.subsystem": {
source: "iana",
extensions: ["esa"]
},
"application/vnd.otps.ct-kip+xml": {
source: "iana",
compressible: true
},
"application/vnd.oxli.countgraph": {
source: "iana"
},
"application/vnd.pagerduty+json": {
source: "iana",
compressible: true
},
"application/vnd.palm": {
source: "iana",
extensions: ["pdb", "pqa", "oprc"]
},
"application/vnd.panoply": {
source: "iana"
},
"application/vnd.paos.xml": {
source: "iana"
},
"application/vnd.patentdive": {
source: "iana"
},
"application/vnd.patientecommsdoc": {
source: "iana"
},
"application/vnd.pawaafile": {
source: "iana",
extensions: ["paw"]
},
"application/vnd.pcos": {
source: "iana"
},
"application/vnd.pg.format": {
source: "iana",
extensions: ["str"]
},
"application/vnd.pg.osasli": {
source: "iana",
extensions: ["ei6"]
},
"application/vnd.piaccess.application-licence": {
source: "iana"
},
"application/vnd.picsel": {
source: "iana",
extensions: ["efif"]
},
"application/vnd.pmi.widget": {
source: "iana",
extensions: ["wg"]
},
"application/vnd.poc.group-advertisement+xml": {
source: "iana",
compressible: true
},
"application/vnd.pocketlearn": {
source: "iana",
extensions: ["plf"]
},
"application/vnd.powerbuilder6": {
source: "iana",
extensions: ["pbd"]
},
"application/vnd.powerbuilder6-s": {
source: "iana"
},
"application/vnd.powerbuilder7": {
source: "iana"
},
"application/vnd.powerbuilder7-s": {
source: "iana"
},
"application/vnd.powerbuilder75": {
source: "iana"
},
"application/vnd.powerbuilder75-s": {
source: "iana"
},
"application/vnd.preminet": {
source: "iana"
},
"application/vnd.previewsystems.box": {
source: "iana",
extensions: ["box"]
},
"application/vnd.proteus.magazine": {
source: "iana",
extensions: ["mgz"]
},
"application/vnd.psfs": {
source: "iana"
},
"application/vnd.publishare-delta-tree": {
source: "iana",
extensions: ["qps"]
},
"application/vnd.pvi.ptid1": {
source: "iana",
extensions: ["ptid"]
},
"application/vnd.pwg-multiplexed": {
source: "iana"
},
"application/vnd.pwg-xhtml-print+xml": {
source: "iana",
compressible: true
},
"application/vnd.qualcomm.brew-app-res": {
source: "iana"
},
"application/vnd.quarantainenet": {
source: "iana"
},
"application/vnd.quark.quarkxpress": {
source: "iana",
extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
},
"application/vnd.quobject-quoxdocument": {
source: "iana"
},
"application/vnd.radisys.moml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-conn+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-audit-stream+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-conf+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-base+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-detect+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-group+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-speech+xml": {
source: "iana",
compressible: true
},
"application/vnd.radisys.msml-dialog-transform+xml": {
source: "iana",
compressible: true
},
"application/vnd.rainstor.data": {
source: "iana"
},
"application/vnd.rapid": {
source: "iana"
},
"application/vnd.rar": {
source: "iana",
extensions: ["rar"]
},
"application/vnd.realvnc.bed": {
source: "iana",
extensions: ["bed"]
},
"application/vnd.recordare.musicxml": {
source: "iana",
extensions: ["mxl"]
},
"application/vnd.recordare.musicxml+xml": {
source: "iana",
compressible: true,
extensions: ["musicxml"]
},
"application/vnd.renlearn.rlprint": {
source: "iana"
},
"application/vnd.resilient.logic": {
source: "iana"
},
"application/vnd.restful+json": {
source: "iana",
compressible: true
},
"application/vnd.rig.cryptonote": {
source: "iana",
extensions: ["cryptonote"]
},
"application/vnd.rim.cod": {
source: "apache",
extensions: ["cod"]
},
"application/vnd.rn-realmedia": {
source: "apache",
extensions: ["rm"]
},
"application/vnd.rn-realmedia-vbr": {
source: "apache",
extensions: ["rmvb"]
},
"application/vnd.route66.link66+xml": {
source: "iana",
compressible: true,
extensions: ["link66"]
},
"application/vnd.rs-274x": {
source: "iana"
},
"application/vnd.ruckus.download": {
source: "iana"
},
"application/vnd.s3sms": {
source: "iana"
},
"application/vnd.sailingtracker.track": {
source: "iana",
extensions: ["st"]
},
"application/vnd.sar": {
source: "iana"
},
"application/vnd.sbm.cid": {
source: "iana"
},
"application/vnd.sbm.mid2": {
source: "iana"
},
"application/vnd.scribus": {
source: "iana"
},
"application/vnd.sealed.3df": {
source: "iana"
},
"application/vnd.sealed.csf": {
source: "iana"
},
"application/vnd.sealed.doc": {
source: "iana"
},
"application/vnd.sealed.eml": {
source: "iana"
},
"application/vnd.sealed.mht": {
source: "iana"
},
"application/vnd.sealed.net": {
source: "iana"
},
"application/vnd.sealed.ppt": {
source: "iana"
},
"application/vnd.sealed.tiff": {
source: "iana"
},
"application/vnd.sealed.xls": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.html": {
source: "iana"
},
"application/vnd.sealedmedia.softseal.pdf": {
source: "iana"
},
"application/vnd.seemail": {
source: "iana",
extensions: ["see"]
},
"application/vnd.seis+json": {
source: "iana",
compressible: true
},
"application/vnd.sema": {
source: "iana",
extensions: ["sema"]
},
"application/vnd.semd": {
source: "iana",
extensions: ["semd"]
},
"application/vnd.semf": {
source: "iana",
extensions: ["semf"]
},
"application/vnd.shade-save-file": {
source: "iana"
},
"application/vnd.shana.informed.formdata": {
source: "iana",
extensions: ["ifm"]
},
"application/vnd.shana.informed.formtemplate": {
source: "iana",
extensions: ["itp"]
},
"application/vnd.shana.informed.interchange": {
source: "iana",
extensions: ["iif"]
},
"application/vnd.shana.informed.package": {
source: "iana",
extensions: ["ipk"]
},
"application/vnd.shootproof+json": {
source: "iana",
compressible: true
},
"application/vnd.shopkick+json": {
source: "iana",
compressible: true
},
"application/vnd.shp": {
source: "iana"
},
"application/vnd.shx": {
source: "iana"
},
"application/vnd.sigrok.session": {
source: "iana"
},
"application/vnd.simtech-mindmapper": {
source: "iana",
extensions: ["twd", "twds"]
},
"application/vnd.siren+json": {
source: "iana",
compressible: true
},
"application/vnd.smaf": {
source: "iana",
extensions: ["mmf"]
},
"application/vnd.smart.notebook": {
source: "iana"
},
"application/vnd.smart.teacher": {
source: "iana",
extensions: ["teacher"]
},
"application/vnd.snesdev-page-table": {
source: "iana"
},
"application/vnd.software602.filler.form+xml": {
source: "iana",
compressible: true,
extensions: ["fo"]
},
"application/vnd.software602.filler.form-xml-zip": {
source: "iana"
},
"application/vnd.solent.sdkm+xml": {
source: "iana",
compressible: true,
extensions: ["sdkm", "sdkd"]
},
"application/vnd.spotfire.dxp": {
source: "iana",
extensions: ["dxp"]
},
"application/vnd.spotfire.sfs": {
source: "iana",
extensions: ["sfs"]
},
"application/vnd.sqlite3": {
source: "iana"
},
"application/vnd.sss-cod": {
source: "iana"
},
"application/vnd.sss-dtf": {
source: "iana"
},
"application/vnd.sss-ntf": {
source: "iana"
},
"application/vnd.stardivision.calc": {
source: "apache",
extensions: ["sdc"]
},
"application/vnd.stardivision.draw": {
source: "apache",
extensions: ["sda"]
},
"application/vnd.stardivision.impress": {
source: "apache",
extensions: ["sdd"]
},
"application/vnd.stardivision.math": {
source: "apache",
extensions: ["smf"]
},
"application/vnd.stardivision.writer": {
source: "apache",
extensions: ["sdw", "vor"]
},
"application/vnd.stardivision.writer-global": {
source: "apache",
extensions: ["sgl"]
},
"application/vnd.stepmania.package": {
source: "iana",
extensions: ["smzip"]
},
"application/vnd.stepmania.stepchart": {
source: "iana",
extensions: ["sm"]
},
"application/vnd.street-stream": {
source: "iana"
},
"application/vnd.sun.wadl+xml": {
source: "iana",
compressible: true,
extensions: ["wadl"]
},
"application/vnd.sun.xml.calc": {
source: "apache",
extensions: ["sxc"]
},
"application/vnd.sun.xml.calc.template": {
source: "apache",
extensions: ["stc"]
},
"application/vnd.sun.xml.draw": {
source: "apache",
extensions: ["sxd"]
},
"application/vnd.sun.xml.draw.template": {
source: "apache",
extensions: ["std"]
},
"application/vnd.sun.xml.impress": {
source: "apache",
extensions: ["sxi"]
},
"application/vnd.sun.xml.impress.template": {
source: "apache",
extensions: ["sti"]
},
"application/vnd.sun.xml.math": {
source: "apache",
extensions: ["sxm"]
},
"application/vnd.sun.xml.writer": {
source: "apache",
extensions: ["sxw"]
},
"application/vnd.sun.xml.writer.global": {
source: "apache",
extensions: ["sxg"]
},
"application/vnd.sun.xml.writer.template": {
source: "apache",
extensions: ["stw"]
},
"application/vnd.sus-calendar": {
source: "iana",
extensions: ["sus", "susp"]
},
"application/vnd.svd": {
source: "iana",
extensions: ["svd"]
},
"application/vnd.swiftview-ics": {
source: "iana"
},
"application/vnd.sycle+xml": {
source: "iana",
compressible: true
},
"application/vnd.syft+json": {
source: "iana",
compressible: true
},
"application/vnd.symbian.install": {
source: "apache",
extensions: ["sis", "sisx"]
},
"application/vnd.syncml+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xsm"]
},
"application/vnd.syncml.dm+wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["bdm"]
},
"application/vnd.syncml.dm+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["xdm"]
},
"application/vnd.syncml.dm.notification": {
source: "iana"
},
"application/vnd.syncml.dmddf+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmddf+xml": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["ddf"]
},
"application/vnd.syncml.dmtnds+wbxml": {
source: "iana"
},
"application/vnd.syncml.dmtnds+xml": {
source: "iana",
charset: "UTF-8",
compressible: true
},
"application/vnd.syncml.ds.notification": {
source: "iana"
},
"application/vnd.tableschema+json": {
source: "iana",
compressible: true
},
"application/vnd.tao.intent-module-archive": {
source: "iana",
extensions: ["tao"]
},
"application/vnd.tcpdump.pcap": {
source: "iana",
extensions: ["pcap", "cap", "dmp"]
},
"application/vnd.think-cell.ppttc+json": {
source: "iana",
compressible: true
},
"application/vnd.tmd.mediaflex.api+xml": {
source: "iana",
compressible: true
},
"application/vnd.tml": {
source: "iana"
},
"application/vnd.tmobile-livetv": {
source: "iana",
extensions: ["tmo"]
},
"application/vnd.tri.onesource": {
source: "iana"
},
"application/vnd.trid.tpt": {
source: "iana",
extensions: ["tpt"]
},
"application/vnd.triscape.mxs": {
source: "iana",
extensions: ["mxs"]
},
"application/vnd.trueapp": {
source: "iana",
extensions: ["tra"]
},
"application/vnd.truedoc": {
source: "iana"
},
"application/vnd.ubisoft.webplayer": {
source: "iana"
},
"application/vnd.ufdl": {
source: "iana",
extensions: ["ufd", "ufdl"]
},
"application/vnd.uiq.theme": {
source: "iana",
extensions: ["utz"]
},
"application/vnd.umajin": {
source: "iana",
extensions: ["umj"]
},
"application/vnd.unity": {
source: "iana",
extensions: ["unityweb"]
},
"application/vnd.uoml+xml": {
source: "iana",
compressible: true,
extensions: ["uoml"]
},
"application/vnd.uplanet.alert": {
source: "iana"
},
"application/vnd.uplanet.alert-wbxml": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice": {
source: "iana"
},
"application/vnd.uplanet.bearer-choice-wbxml": {
source: "iana"
},
"application/vnd.uplanet.cacheop": {
source: "iana"
},
"application/vnd.uplanet.cacheop-wbxml": {
source: "iana"
},
"application/vnd.uplanet.channel": {
source: "iana"
},
"application/vnd.uplanet.channel-wbxml": {
source: "iana"
},
"application/vnd.uplanet.list": {
source: "iana"
},
"application/vnd.uplanet.list-wbxml": {
source: "iana"
},
"application/vnd.uplanet.listcmd": {
source: "iana"
},
"application/vnd.uplanet.listcmd-wbxml": {
source: "iana"
},
"application/vnd.uplanet.signal": {
source: "iana"
},
"application/vnd.uri-map": {
source: "iana"
},
"application/vnd.valve.source.material": {
source: "iana"
},
"application/vnd.vcx": {
source: "iana",
extensions: ["vcx"]
},
"application/vnd.vd-study": {
source: "iana"
},
"application/vnd.vectorworks": {
source: "iana"
},
"application/vnd.vel+json": {
source: "iana",
compressible: true
},
"application/vnd.verimatrix.vcas": {
source: "iana"
},
"application/vnd.veritone.aion+json": {
source: "iana",
compressible: true
},
"application/vnd.veryant.thin": {
source: "iana"
},
"application/vnd.ves.encrypted": {
source: "iana"
},
"application/vnd.vidsoft.vidconference": {
source: "iana"
},
"application/vnd.visio": {
source: "iana",
extensions: ["vsd", "vst", "vss", "vsw"]
},
"application/vnd.visionary": {
source: "iana",
extensions: ["vis"]
},
"application/vnd.vividence.scriptfile": {
source: "iana"
},
"application/vnd.vsf": {
source: "iana",
extensions: ["vsf"]
},
"application/vnd.wap.sic": {
source: "iana"
},
"application/vnd.wap.slc": {
source: "iana"
},
"application/vnd.wap.wbxml": {
source: "iana",
charset: "UTF-8",
extensions: ["wbxml"]
},
"application/vnd.wap.wmlc": {
source: "iana",
extensions: ["wmlc"]
},
"application/vnd.wap.wmlscriptc": {
source: "iana",
extensions: ["wmlsc"]
},
"application/vnd.webturbo": {
source: "iana",
extensions: ["wtb"]
},
"application/vnd.wfa.dpp": {
source: "iana"
},
"application/vnd.wfa.p2p": {
source: "iana"
},
"application/vnd.wfa.wsc": {
source: "iana"
},
"application/vnd.windows.devicepairing": {
source: "iana"
},
"application/vnd.wmc": {
source: "iana"
},
"application/vnd.wmf.bootstrap": {
source: "iana"
},
"application/vnd.wolfram.mathematica": {
source: "iana"
},
"application/vnd.wolfram.mathematica.package": {
source: "iana"
},
"application/vnd.wolfram.player": {
source: "iana",
extensions: ["nbp"]
},
"application/vnd.wordperfect": {
source: "iana",
extensions: ["wpd"]
},
"application/vnd.wqd": {
source: "iana",
extensions: ["wqd"]
},
"application/vnd.wrq-hp3000-labelled": {
source: "iana"
},
"application/vnd.wt.stf": {
source: "iana",
extensions: ["stf"]
},
"application/vnd.wv.csp+wbxml": {
source: "iana"
},
"application/vnd.wv.csp+xml": {
source: "iana",
compressible: true
},
"application/vnd.wv.ssp+xml": {
source: "iana",
compressible: true
},
"application/vnd.xacml+json": {
source: "iana",
compressible: true
},
"application/vnd.xara": {
source: "iana",
extensions: ["xar"]
},
"application/vnd.xfdl": {
source: "iana",
extensions: ["xfdl"]
},
"application/vnd.xfdl.webform": {
source: "iana"
},
"application/vnd.xmi+xml": {
source: "iana",
compressible: true
},
"application/vnd.xmpie.cpkg": {
source: "iana"
},
"application/vnd.xmpie.dpkg": {
source: "iana"
},
"application/vnd.xmpie.plan": {
source: "iana"
},
"application/vnd.xmpie.ppkg": {
source: "iana"
},
"application/vnd.xmpie.xlim": {
source: "iana"
},
"application/vnd.yamaha.hv-dic": {
source: "iana",
extensions: ["hvd"]
},
"application/vnd.yamaha.hv-script": {
source: "iana",
extensions: ["hvs"]
},
"application/vnd.yamaha.hv-voice": {
source: "iana",
extensions: ["hvp"]
},
"application/vnd.yamaha.openscoreformat": {
source: "iana",
extensions: ["osf"]
},
"application/vnd.yamaha.openscoreformat.osfpvg+xml": {
source: "iana",
compressible: true,
extensions: ["osfpvg"]
},
"application/vnd.yamaha.remote-setup": {
source: "iana"
},
"application/vnd.yamaha.smaf-audio": {
source: "iana",
extensions: ["saf"]
},
"application/vnd.yamaha.smaf-phrase": {
source: "iana",
extensions: ["spf"]
},
"application/vnd.yamaha.through-ngn": {
source: "iana"
},
"application/vnd.yamaha.tunnel-udpencap": {
source: "iana"
},
"application/vnd.yaoweme": {
source: "iana"
},
"application/vnd.yellowriver-custom-menu": {
source: "iana",
extensions: ["cmp"]
},
"application/vnd.youtube.yt": {
source: "iana"
},
"application/vnd.zul": {
source: "iana",
extensions: ["zir", "zirz"]
},
"application/vnd.zzazz.deck+xml": {
source: "iana",
compressible: true,
extensions: ["zaz"]
},
"application/voicexml+xml": {
source: "iana",
compressible: true,
extensions: ["vxml"]
},
"application/voucher-cms+json": {
source: "iana",
compressible: true
},
"application/vq-rtcpxr": {
source: "iana"
},
"application/wasm": {
source: "iana",
compressible: true,
extensions: ["wasm"]
},
"application/watcherinfo+xml": {
source: "iana",
compressible: true,
extensions: ["wif"]
},
"application/webpush-options+json": {
source: "iana",
compressible: true
},
"application/whoispp-query": {
source: "iana"
},
"application/whoispp-response": {
source: "iana"
},
"application/widget": {
source: "iana",
extensions: ["wgt"]
},
"application/winhlp": {
source: "apache",
extensions: ["hlp"]
},
"application/wita": {
source: "iana"
},
"application/wordperfect5.1": {
source: "iana"
},
"application/wsdl+xml": {
source: "iana",
compressible: true,
extensions: ["wsdl"]
},
"application/wspolicy+xml": {
source: "iana",
compressible: true,
extensions: ["wspolicy"]
},
"application/x-7z-compressed": {
source: "apache",
compressible: false,
extensions: ["7z"]
},
"application/x-abiword": {
source: "apache",
extensions: ["abw"]
},
"application/x-ace-compressed": {
source: "apache",
extensions: ["ace"]
},
"application/x-amf": {
source: "apache"
},
"application/x-apple-diskimage": {
source: "apache",
extensions: ["dmg"]
},
"application/x-arj": {
compressible: false,
extensions: ["arj"]
},
"application/x-authorware-bin": {
source: "apache",
extensions: ["aab", "x32", "u32", "vox"]
},
"application/x-authorware-map": {
source: "apache",
extensions: ["aam"]
},
"application/x-authorware-seg": {
source: "apache",
extensions: ["aas"]
},
"application/x-bcpio": {
source: "apache",
extensions: ["bcpio"]
},
"application/x-bdoc": {
compressible: false,
extensions: ["bdoc"]
},
"application/x-bittorrent": {
source: "apache",
extensions: ["torrent"]
},
"application/x-blorb": {
source: "apache",
extensions: ["blb", "blorb"]
},
"application/x-bzip": {
source: "apache",
compressible: false,
extensions: ["bz"]
},
"application/x-bzip2": {
source: "apache",
compressible: false,
extensions: ["bz2", "boz"]
},
"application/x-cbr": {
source: "apache",
extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
},
"application/x-cdlink": {
source: "apache",
extensions: ["vcd"]
},
"application/x-cfs-compressed": {
source: "apache",
extensions: ["cfs"]
},
"application/x-chat": {
source: "apache",
extensions: ["chat"]
},
"application/x-chess-pgn": {
source: "apache",
extensions: ["pgn"]
},
"application/x-chrome-extension": {
extensions: ["crx"]
},
"application/x-cocoa": {
source: "nginx",
extensions: ["cco"]
},
"application/x-compress": {
source: "apache"
},
"application/x-conference": {
source: "apache",
extensions: ["nsc"]
},
"application/x-cpio": {
source: "apache",
extensions: ["cpio"]
},
"application/x-csh": {
source: "apache",
extensions: ["csh"]
},
"application/x-deb": {
compressible: false
},
"application/x-debian-package": {
source: "apache",
extensions: ["deb", "udeb"]
},
"application/x-dgc-compressed": {
source: "apache",
extensions: ["dgc"]
},
"application/x-director": {
source: "apache",
extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
},
"application/x-doom": {
source: "apache",
extensions: ["wad"]
},
"application/x-dtbncx+xml": {
source: "apache",
compressible: true,
extensions: ["ncx"]
},
"application/x-dtbook+xml": {
source: "apache",
compressible: true,
extensions: ["dtb"]
},
"application/x-dtbresource+xml": {
source: "apache",
compressible: true,
extensions: ["res"]
},
"application/x-dvi": {
source: "apache",
compressible: false,
extensions: ["dvi"]
},
"application/x-envoy": {
source: "apache",
extensions: ["evy"]
},
"application/x-eva": {
source: "apache",
extensions: ["eva"]
},
"application/x-font-bdf": {
source: "apache",
extensions: ["bdf"]
},
"application/x-font-dos": {
source: "apache"
},
"application/x-font-framemaker": {
source: "apache"
},
"application/x-font-ghostscript": {
source: "apache",
extensions: ["gsf"]
},
"application/x-font-libgrx": {
source: "apache"
},
"application/x-font-linux-psf": {
source: "apache",
extensions: ["psf"]
},
"application/x-font-pcf": {
source: "apache",
extensions: ["pcf"]
},
"application/x-font-snf": {
source: "apache",
extensions: ["snf"]
},
"application/x-font-speedo": {
source: "apache"
},
"application/x-font-sunos-news": {
source: "apache"
},
"application/x-font-type1": {
source: "apache",
extensions: ["pfa", "pfb", "pfm", "afm"]
},
"application/x-font-vfont": {
source: "apache"
},
"application/x-freearc": {
source: "apache",
extensions: ["arc"]
},
"application/x-futuresplash": {
source: "apache",
extensions: ["spl"]
},
"application/x-gca-compressed": {
source: "apache",
extensions: ["gca"]
},
"application/x-glulx": {
source: "apache",
extensions: ["ulx"]
},
"application/x-gnumeric": {
source: "apache",
extensions: ["gnumeric"]
},
"application/x-gramps-xml": {
source: "apache",
extensions: ["gramps"]
},
"application/x-gtar": {
source: "apache",
extensions: ["gtar"]
},
"application/x-gzip": {
source: "apache"
},
"application/x-hdf": {
source: "apache",
extensions: ["hdf"]
},
"application/x-httpd-php": {
compressible: true,
extensions: ["php"]
},
"application/x-install-instructions": {
source: "apache",
extensions: ["install"]
},
"application/x-iso9660-image": {
source: "apache",
extensions: ["iso"]
},
"application/x-iwork-keynote-sffkey": {
extensions: ["key"]
},
"application/x-iwork-numbers-sffnumbers": {
extensions: ["numbers"]
},
"application/x-iwork-pages-sffpages": {
extensions: ["pages"]
},
"application/x-java-archive-diff": {
source: "nginx",
extensions: ["jardiff"]
},
"application/x-java-jnlp-file": {
source: "apache",
compressible: false,
extensions: ["jnlp"]
},
"application/x-javascript": {
compressible: true
},
"application/x-keepass2": {
extensions: ["kdbx"]
},
"application/x-latex": {
source: "apache",
compressible: false,
extensions: ["latex"]
},
"application/x-lua-bytecode": {
extensions: ["luac"]
},
"application/x-lzh-compressed": {
source: "apache",
extensions: ["lzh", "lha"]
},
"application/x-makeself": {
source: "nginx",
extensions: ["run"]
},
"application/x-mie": {
source: "apache",
extensions: ["mie"]
},
"application/x-mobipocket-ebook": {
source: "apache",
extensions: ["prc", "mobi"]
},
"application/x-mpegurl": {
compressible: false
},
"application/x-ms-application": {
source: "apache",
extensions: ["application"]
},
"application/x-ms-shortcut": {
source: "apache",
extensions: ["lnk"]
},
"application/x-ms-wmd": {
source: "apache",
extensions: ["wmd"]
},
"application/x-ms-wmz": {
source: "apache",
extensions: ["wmz"]
},
"application/x-ms-xbap": {
source: "apache",
extensions: ["xbap"]
},
"application/x-msaccess": {
source: "apache",
extensions: ["mdb"]
},
"application/x-msbinder": {
source: "apache",
extensions: ["obd"]
},
"application/x-mscardfile": {
source: "apache",
extensions: ["crd"]
},
"application/x-msclip": {
source: "apache",
extensions: ["clp"]
},
"application/x-msdos-program": {
extensions: ["exe"]
},
"application/x-msdownload": {
source: "apache",
extensions: ["exe", "dll", "com", "bat", "msi"]
},
"application/x-msmediaview": {
source: "apache",
extensions: ["mvb", "m13", "m14"]
},
"application/x-msmetafile": {
source: "apache",
extensions: ["wmf", "wmz", "emf", "emz"]
},
"application/x-msmoney": {
source: "apache",
extensions: ["mny"]
},
"application/x-mspublisher": {
source: "apache",
extensions: ["pub"]
},
"application/x-msschedule": {
source: "apache",
extensions: ["scd"]
},
"application/x-msterminal": {
source: "apache",
extensions: ["trm"]
},
"application/x-mswrite": {
source: "apache",
extensions: ["wri"]
},
"application/x-netcdf": {
source: "apache",
extensions: ["nc", "cdf"]
},
"application/x-ns-proxy-autoconfig": {
compressible: true,
extensions: ["pac"]
},
"application/x-nzb": {
source: "apache",
extensions: ["nzb"]
},
"application/x-perl": {
source: "nginx",
extensions: ["pl", "pm"]
},
"application/x-pilot": {
source: "nginx",
extensions: ["prc", "pdb"]
},
"application/x-pkcs12": {
source: "apache",
compressible: false,
extensions: ["p12", "pfx"]
},
"application/x-pkcs7-certificates": {
source: "apache",
extensions: ["p7b", "spc"]
},
"application/x-pkcs7-certreqresp": {
source: "apache",
extensions: ["p7r"]
},
"application/x-pki-message": {
source: "iana"
},
"application/x-rar-compressed": {
source: "apache",
compressible: false,
extensions: ["rar"]
},
"application/x-redhat-package-manager": {
source: "nginx",
extensions: ["rpm"]
},
"application/x-research-info-systems": {
source: "apache",
extensions: ["ris"]
},
"application/x-sea": {
source: "nginx",
extensions: ["sea"]
},
"application/x-sh": {
source: "apache",
compressible: true,
extensions: ["sh"]
},
"application/x-shar": {
source: "apache",
extensions: ["shar"]
},
"application/x-shockwave-flash": {
source: "apache",
compressible: false,
extensions: ["swf"]
},
"application/x-silverlight-app": {
source: "apache",
extensions: ["xap"]
},
"application/x-sql": {
source: "apache",
extensions: ["sql"]
},
"application/x-stuffit": {
source: "apache",
compressible: false,
extensions: ["sit"]
},
"application/x-stuffitx": {
source: "apache",
extensions: ["sitx"]
},
"application/x-subrip": {
source: "apache",
extensions: ["srt"]
},
"application/x-sv4cpio": {
source: "apache",
extensions: ["sv4cpio"]
},
"application/x-sv4crc": {
source: "apache",
extensions: ["sv4crc"]
},
"application/x-t3vm-image": {
source: "apache",
extensions: ["t3"]
},
"application/x-tads": {
source: "apache",
extensions: ["gam"]
},
"application/x-tar": {
source: "apache",
compressible: true,
extensions: ["tar"]
},
"application/x-tcl": {
source: "apache",
extensions: ["tcl", "tk"]
},
"application/x-tex": {
source: "apache",
extensions: ["tex"]
},
"application/x-tex-tfm": {
source: "apache",
extensions: ["tfm"]
},
"application/x-texinfo": {
source: "apache",
extensions: ["texinfo", "texi"]
},
"application/x-tgif": {
source: "apache",
extensions: ["obj"]
},
"application/x-ustar": {
source: "apache",
extensions: ["ustar"]
},
"application/x-virtualbox-hdd": {
compressible: true,
extensions: ["hdd"]
},
"application/x-virtualbox-ova": {
compressible: true,
extensions: ["ova"]
},
"application/x-virtualbox-ovf": {
compressible: true,
extensions: ["ovf"]
},
"application/x-virtualbox-vbox": {
compressible: true,
extensions: ["vbox"]
},
"application/x-virtualbox-vbox-extpack": {
compressible: false,
extensions: ["vbox-extpack"]
},
"application/x-virtualbox-vdi": {
compressible: true,
extensions: ["vdi"]
},
"application/x-virtualbox-vhd": {
compressible: true,
extensions: ["vhd"]
},
"application/x-virtualbox-vmdk": {
compressible: true,
extensions: ["vmdk"]
},
"application/x-wais-source": {
source: "apache",
extensions: ["src"]
},
"application/x-web-app-manifest+json": {
compressible: true,
extensions: ["webapp"]
},
"application/x-www-form-urlencoded": {
source: "iana",
compressible: true
},
"application/x-x509-ca-cert": {
source: "iana",
extensions: ["der", "crt", "pem"]
},
"application/x-x509-ca-ra-cert": {
source: "iana"
},
"application/x-x509-next-ca-cert": {
source: "iana"
},
"application/x-xfig": {
source: "apache",
extensions: ["fig"]
},
"application/x-xliff+xml": {
source: "apache",
compressible: true,
extensions: ["xlf"]
},
"application/x-xpinstall": {
source: "apache",
compressible: false,
extensions: ["xpi"]
},
"application/x-xz": {
source: "apache",
extensions: ["xz"]
},
"application/x-zmachine": {
source: "apache",
extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
},
"application/x400-bp": {
source: "iana"
},
"application/xacml+xml": {
source: "iana",
compressible: true
},
"application/xaml+xml": {
source: "apache",
compressible: true,
extensions: ["xaml"]
},
"application/xcap-att+xml": {
source: "iana",
compressible: true,
extensions: ["xav"]
},
"application/xcap-caps+xml": {
source: "iana",
compressible: true,
extensions: ["xca"]
},
"application/xcap-diff+xml": {
source: "iana",
compressible: true,
extensions: ["xdf"]
},
"application/xcap-el+xml": {
source: "iana",
compressible: true,
extensions: ["xel"]
},
"application/xcap-error+xml": {
source: "iana",
compressible: true
},
"application/xcap-ns+xml": {
source: "iana",
compressible: true,
extensions: ["xns"]
},
"application/xcon-conference-info+xml": {
source: "iana",
compressible: true
},
"application/xcon-conference-info-diff+xml": {
source: "iana",
compressible: true
},
"application/xenc+xml": {
source: "iana",
compressible: true,
extensions: ["xenc"]
},
"application/xhtml+xml": {
source: "iana",
compressible: true,
extensions: ["xhtml", "xht"]
},
"application/xhtml-voice+xml": {
source: "apache",
compressible: true
},
"application/xliff+xml": {
source: "iana",
compressible: true,
extensions: ["xlf"]
},
"application/xml": {
source: "iana",
compressible: true,
extensions: ["xml", "xsl", "xsd", "rng"]
},
"application/xml-dtd": {
source: "iana",
compressible: true,
extensions: ["dtd"]
},
"application/xml-external-parsed-entity": {
source: "iana"
},
"application/xml-patch+xml": {
source: "iana",
compressible: true
},
"application/xmpp+xml": {
source: "iana",
compressible: true
},
"application/xop+xml": {
source: "iana",
compressible: true,
extensions: ["xop"]
},
"application/xproc+xml": {
source: "apache",
compressible: true,
extensions: ["xpl"]
},
"application/xslt+xml": {
source: "iana",
compressible: true,
extensions: ["xsl", "xslt"]
},
"application/xspf+xml": {
source: "apache",
compressible: true,
extensions: ["xspf"]
},
"application/xv+xml": {
source: "iana",
compressible: true,
extensions: ["mxml", "xhvml", "xvml", "xvm"]
},
"application/yang": {
source: "iana",
extensions: ["yang"]
},
"application/yang-data+json": {
source: "iana",
compressible: true
},
"application/yang-data+xml": {
source: "iana",
compressible: true
},
"application/yang-patch+json": {
source: "iana",
compressible: true
},
"application/yang-patch+xml": {
source: "iana",
compressible: true
},
"application/yin+xml": {
source: "iana",
compressible: true,
extensions: ["yin"]
},
"application/zip": {
source: "iana",
compressible: false,
extensions: ["zip"]
},
"application/zlib": {
source: "iana"
},
"application/zstd": {
source: "iana"
},
"audio/1d-interleaved-parityfec": {
source: "iana"
},
"audio/32kadpcm": {
source: "iana"
},
"audio/3gpp": {
source: "iana",
compressible: false,
extensions: ["3gpp"]
},
"audio/3gpp2": {
source: "iana"
},
"audio/aac": {
source: "iana"
},
"audio/ac3": {
source: "iana"
},
"audio/adpcm": {
source: "apache",
extensions: ["adp"]
},
"audio/amr": {
source: "iana",
extensions: ["amr"]
},
"audio/amr-wb": {
source: "iana"
},
"audio/amr-wb+": {
source: "iana"
},
"audio/aptx": {
source: "iana"
},
"audio/asc": {
source: "iana"
},
"audio/atrac-advanced-lossless": {
source: "iana"
},
"audio/atrac-x": {
source: "iana"
},
"audio/atrac3": {
source: "iana"
},
"audio/basic": {
source: "iana",
compressible: false,
extensions: ["au", "snd"]
},
"audio/bv16": {
source: "iana"
},
"audio/bv32": {
source: "iana"
},
"audio/clearmode": {
source: "iana"
},
"audio/cn": {
source: "iana"
},
"audio/dat12": {
source: "iana"
},
"audio/dls": {
source: "iana"
},
"audio/dsr-es201108": {
source: "iana"
},
"audio/dsr-es202050": {
source: "iana"
},
"audio/dsr-es202211": {
source: "iana"
},
"audio/dsr-es202212": {
source: "iana"
},
"audio/dv": {
source: "iana"
},
"audio/dvi4": {
source: "iana"
},
"audio/eac3": {
source: "iana"
},
"audio/encaprtp": {
source: "iana"
},
"audio/evrc": {
source: "iana"
},
"audio/evrc-qcp": {
source: "iana"
},
"audio/evrc0": {
source: "iana"
},
"audio/evrc1": {
source: "iana"
},
"audio/evrcb": {
source: "iana"
},
"audio/evrcb0": {
source: "iana"
},
"audio/evrcb1": {
source: "iana"
},
"audio/evrcnw": {
source: "iana"
},
"audio/evrcnw0": {
source: "iana"
},
"audio/evrcnw1": {
source: "iana"
},
"audio/evrcwb": {
source: "iana"
},
"audio/evrcwb0": {
source: "iana"
},
"audio/evrcwb1": {
source: "iana"
},
"audio/evs": {
source: "iana"
},
"audio/flexfec": {
source: "iana"
},
"audio/fwdred": {
source: "iana"
},
"audio/g711-0": {
source: "iana"
},
"audio/g719": {
source: "iana"
},
"audio/g722": {
source: "iana"
},
"audio/g7221": {
source: "iana"
},
"audio/g723": {
source: "iana"
},
"audio/g726-16": {
source: "iana"
},
"audio/g726-24": {
source: "iana"
},
"audio/g726-32": {
source: "iana"
},
"audio/g726-40": {
source: "iana"
},
"audio/g728": {
source: "iana"
},
"audio/g729": {
source: "iana"
},
"audio/g7291": {
source: "iana"
},
"audio/g729d": {
source: "iana"
},
"audio/g729e": {
source: "iana"
},
"audio/gsm": {
source: "iana"
},
"audio/gsm-efr": {
source: "iana"
},
"audio/gsm-hr-08": {
source: "iana"
},
"audio/ilbc": {
source: "iana"
},
"audio/ip-mr_v2.5": {
source: "iana"
},
"audio/isac": {
source: "apache"
},
"audio/l16": {
source: "iana"
},
"audio/l20": {
source: "iana"
},
"audio/l24": {
source: "iana",
compressible: false
},
"audio/l8": {
source: "iana"
},
"audio/lpc": {
source: "iana"
},
"audio/melp": {
source: "iana"
},
"audio/melp1200": {
source: "iana"
},
"audio/melp2400": {
source: "iana"
},
"audio/melp600": {
source: "iana"
},
"audio/mhas": {
source: "iana"
},
"audio/midi": {
source: "apache",
extensions: ["mid", "midi", "kar", "rmi"]
},
"audio/mobile-xmf": {
source: "iana",
extensions: ["mxmf"]
},
"audio/mp3": {
compressible: false,
extensions: ["mp3"]
},
"audio/mp4": {
source: "iana",
compressible: false,
extensions: ["m4a", "mp4a"]
},
"audio/mp4a-latm": {
source: "iana"
},
"audio/mpa": {
source: "iana"
},
"audio/mpa-robust": {
source: "iana"
},
"audio/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
},
"audio/mpeg4-generic": {
source: "iana"
},
"audio/musepack": {
source: "apache"
},
"audio/ogg": {
source: "iana",
compressible: false,
extensions: ["oga", "ogg", "spx", "opus"]
},
"audio/opus": {
source: "iana"
},
"audio/parityfec": {
source: "iana"
},
"audio/pcma": {
source: "iana"
},
"audio/pcma-wb": {
source: "iana"
},
"audio/pcmu": {
source: "iana"
},
"audio/pcmu-wb": {
source: "iana"
},
"audio/prs.sid": {
source: "iana"
},
"audio/qcelp": {
source: "iana"
},
"audio/raptorfec": {
source: "iana"
},
"audio/red": {
source: "iana"
},
"audio/rtp-enc-aescm128": {
source: "iana"
},
"audio/rtp-midi": {
source: "iana"
},
"audio/rtploopback": {
source: "iana"
},
"audio/rtx": {
source: "iana"
},
"audio/s3m": {
source: "apache",
extensions: ["s3m"]
},
"audio/scip": {
source: "iana"
},
"audio/silk": {
source: "apache",
extensions: ["sil"]
},
"audio/smv": {
source: "iana"
},
"audio/smv-qcp": {
source: "iana"
},
"audio/smv0": {
source: "iana"
},
"audio/sofa": {
source: "iana"
},
"audio/sp-midi": {
source: "iana"
},
"audio/speex": {
source: "iana"
},
"audio/t140c": {
source: "iana"
},
"audio/t38": {
source: "iana"
},
"audio/telephone-event": {
source: "iana"
},
"audio/tetra_acelp": {
source: "iana"
},
"audio/tetra_acelp_bb": {
source: "iana"
},
"audio/tone": {
source: "iana"
},
"audio/tsvcis": {
source: "iana"
},
"audio/uemclip": {
source: "iana"
},
"audio/ulpfec": {
source: "iana"
},
"audio/usac": {
source: "iana"
},
"audio/vdvi": {
source: "iana"
},
"audio/vmr-wb": {
source: "iana"
},
"audio/vnd.3gpp.iufp": {
source: "iana"
},
"audio/vnd.4sb": {
source: "iana"
},
"audio/vnd.audiokoz": {
source: "iana"
},
"audio/vnd.celp": {
source: "iana"
},
"audio/vnd.cisco.nse": {
source: "iana"
},
"audio/vnd.cmles.radio-events": {
source: "iana"
},
"audio/vnd.cns.anp1": {
source: "iana"
},
"audio/vnd.cns.inf1": {
source: "iana"
},
"audio/vnd.dece.audio": {
source: "iana",
extensions: ["uva", "uvva"]
},
"audio/vnd.digital-winds": {
source: "iana",
extensions: ["eol"]
},
"audio/vnd.dlna.adts": {
source: "iana"
},
"audio/vnd.dolby.heaac.1": {
source: "iana"
},
"audio/vnd.dolby.heaac.2": {
source: "iana"
},
"audio/vnd.dolby.mlp": {
source: "iana"
},
"audio/vnd.dolby.mps": {
source: "iana"
},
"audio/vnd.dolby.pl2": {
source: "iana"
},
"audio/vnd.dolby.pl2x": {
source: "iana"
},
"audio/vnd.dolby.pl2z": {
source: "iana"
},
"audio/vnd.dolby.pulse.1": {
source: "iana"
},
"audio/vnd.dra": {
source: "iana",
extensions: ["dra"]
},
"audio/vnd.dts": {
source: "iana",
extensions: ["dts"]
},
"audio/vnd.dts.hd": {
source: "iana",
extensions: ["dtshd"]
},
"audio/vnd.dts.uhd": {
source: "iana"
},
"audio/vnd.dvb.file": {
source: "iana"
},
"audio/vnd.everad.plj": {
source: "iana"
},
"audio/vnd.hns.audio": {
source: "iana"
},
"audio/vnd.lucent.voice": {
source: "iana",
extensions: ["lvp"]
},
"audio/vnd.ms-playready.media.pya": {
source: "iana",
extensions: ["pya"]
},
"audio/vnd.nokia.mobile-xmf": {
source: "iana"
},
"audio/vnd.nortel.vbk": {
source: "iana"
},
"audio/vnd.nuera.ecelp4800": {
source: "iana",
extensions: ["ecelp4800"]
},
"audio/vnd.nuera.ecelp7470": {
source: "iana",
extensions: ["ecelp7470"]
},
"audio/vnd.nuera.ecelp9600": {
source: "iana",
extensions: ["ecelp9600"]
},
"audio/vnd.octel.sbc": {
source: "iana"
},
"audio/vnd.presonus.multitrack": {
source: "iana"
},
"audio/vnd.qcelp": {
source: "iana"
},
"audio/vnd.rhetorex.32kadpcm": {
source: "iana"
},
"audio/vnd.rip": {
source: "iana",
extensions: ["rip"]
},
"audio/vnd.rn-realaudio": {
compressible: false
},
"audio/vnd.sealedmedia.softseal.mpeg": {
source: "iana"
},
"audio/vnd.vmx.cvsd": {
source: "iana"
},
"audio/vnd.wave": {
compressible: false
},
"audio/vorbis": {
source: "iana",
compressible: false
},
"audio/vorbis-config": {
source: "iana"
},
"audio/wav": {
compressible: false,
extensions: ["wav"]
},
"audio/wave": {
compressible: false,
extensions: ["wav"]
},
"audio/webm": {
source: "apache",
compressible: false,
extensions: ["weba"]
},
"audio/x-aac": {
source: "apache",
compressible: false,
extensions: ["aac"]
},
"audio/x-aiff": {
source: "apache",
extensions: ["aif", "aiff", "aifc"]
},
"audio/x-caf": {
source: "apache",
compressible: false,
extensions: ["caf"]
},
"audio/x-flac": {
source: "apache",
extensions: ["flac"]
},
"audio/x-m4a": {
source: "nginx",
extensions: ["m4a"]
},
"audio/x-matroska": {
source: "apache",
extensions: ["mka"]
},
"audio/x-mpegurl": {
source: "apache",
extensions: ["m3u"]
},
"audio/x-ms-wax": {
source: "apache",
extensions: ["wax"]
},
"audio/x-ms-wma": {
source: "apache",
extensions: ["wma"]
},
"audio/x-pn-realaudio": {
source: "apache",
extensions: ["ram", "ra"]
},
"audio/x-pn-realaudio-plugin": {
source: "apache",
extensions: ["rmp"]
},
"audio/x-realaudio": {
source: "nginx",
extensions: ["ra"]
},
"audio/x-tta": {
source: "apache"
},
"audio/x-wav": {
source: "apache",
extensions: ["wav"]
},
"audio/xm": {
source: "apache",
extensions: ["xm"]
},
"chemical/x-cdx": {
source: "apache",
extensions: ["cdx"]
},
"chemical/x-cif": {
source: "apache",
extensions: ["cif"]
},
"chemical/x-cmdf": {
source: "apache",
extensions: ["cmdf"]
},
"chemical/x-cml": {
source: "apache",
extensions: ["cml"]
},
"chemical/x-csml": {
source: "apache",
extensions: ["csml"]
},
"chemical/x-pdb": {
source: "apache"
},
"chemical/x-xyz": {
source: "apache",
extensions: ["xyz"]
},
"font/collection": {
source: "iana",
extensions: ["ttc"]
},
"font/otf": {
source: "iana",
compressible: true,
extensions: ["otf"]
},
"font/sfnt": {
source: "iana"
},
"font/ttf": {
source: "iana",
compressible: true,
extensions: ["ttf"]
},
"font/woff": {
source: "iana",
extensions: ["woff"]
},
"font/woff2": {
source: "iana",
extensions: ["woff2"]
},
"image/aces": {
source: "iana",
extensions: ["exr"]
},
"image/apng": {
compressible: false,
extensions: ["apng"]
},
"image/avci": {
source: "iana",
extensions: ["avci"]
},
"image/avcs": {
source: "iana",
extensions: ["avcs"]
},
"image/avif": {
source: "iana",
compressible: false,
extensions: ["avif"]
},
"image/bmp": {
source: "iana",
compressible: true,
extensions: ["bmp"]
},
"image/cgm": {
source: "iana",
extensions: ["cgm"]
},
"image/dicom-rle": {
source: "iana",
extensions: ["drle"]
},
"image/emf": {
source: "iana",
extensions: ["emf"]
},
"image/fits": {
source: "iana",
extensions: ["fits"]
},
"image/g3fax": {
source: "iana",
extensions: ["g3"]
},
"image/gif": {
source: "iana",
compressible: false,
extensions: ["gif"]
},
"image/heic": {
source: "iana",
extensions: ["heic"]
},
"image/heic-sequence": {
source: "iana",
extensions: ["heics"]
},
"image/heif": {
source: "iana",
extensions: ["heif"]
},
"image/heif-sequence": {
source: "iana",
extensions: ["heifs"]
},
"image/hej2k": {
source: "iana",
extensions: ["hej2"]
},
"image/hsj2": {
source: "iana",
extensions: ["hsj2"]
},
"image/ief": {
source: "iana",
extensions: ["ief"]
},
"image/jls": {
source: "iana",
extensions: ["jls"]
},
"image/jp2": {
source: "iana",
compressible: false,
extensions: ["jp2", "jpg2"]
},
"image/jpeg": {
source: "iana",
compressible: false,
extensions: ["jpeg", "jpg", "jpe"]
},
"image/jph": {
source: "iana",
extensions: ["jph"]
},
"image/jphc": {
source: "iana",
extensions: ["jhc"]
},
"image/jpm": {
source: "iana",
compressible: false,
extensions: ["jpm"]
},
"image/jpx": {
source: "iana",
compressible: false,
extensions: ["jpx", "jpf"]
},
"image/jxr": {
source: "iana",
extensions: ["jxr"]
},
"image/jxra": {
source: "iana",
extensions: ["jxra"]
},
"image/jxrs": {
source: "iana",
extensions: ["jxrs"]
},
"image/jxs": {
source: "iana",
extensions: ["jxs"]
},
"image/jxsc": {
source: "iana",
extensions: ["jxsc"]
},
"image/jxsi": {
source: "iana",
extensions: ["jxsi"]
},
"image/jxss": {
source: "iana",
extensions: ["jxss"]
},
"image/ktx": {
source: "iana",
extensions: ["ktx"]
},
"image/ktx2": {
source: "iana",
extensions: ["ktx2"]
},
"image/naplps": {
source: "iana"
},
"image/pjpeg": {
compressible: false
},
"image/png": {
source: "iana",
compressible: false,
extensions: ["png"]
},
"image/prs.btif": {
source: "iana",
extensions: ["btif"]
},
"image/prs.pti": {
source: "iana",
extensions: ["pti"]
},
"image/pwg-raster": {
source: "iana"
},
"image/sgi": {
source: "apache",
extensions: ["sgi"]
},
"image/svg+xml": {
source: "iana",
compressible: true,
extensions: ["svg", "svgz"]
},
"image/t38": {
source: "iana",
extensions: ["t38"]
},
"image/tiff": {
source: "iana",
compressible: false,
extensions: ["tif", "tiff"]
},
"image/tiff-fx": {
source: "iana",
extensions: ["tfx"]
},
"image/vnd.adobe.photoshop": {
source: "iana",
compressible: true,
extensions: ["psd"]
},
"image/vnd.airzip.accelerator.azv": {
source: "iana",
extensions: ["azv"]
},
"image/vnd.cns.inf2": {
source: "iana"
},
"image/vnd.dece.graphic": {
source: "iana",
extensions: ["uvi", "uvvi", "uvg", "uvvg"]
},
"image/vnd.djvu": {
source: "iana",
extensions: ["djvu", "djv"]
},
"image/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"image/vnd.dwg": {
source: "iana",
extensions: ["dwg"]
},
"image/vnd.dxf": {
source: "iana",
extensions: ["dxf"]
},
"image/vnd.fastbidsheet": {
source: "iana",
extensions: ["fbs"]
},
"image/vnd.fpx": {
source: "iana",
extensions: ["fpx"]
},
"image/vnd.fst": {
source: "iana",
extensions: ["fst"]
},
"image/vnd.fujixerox.edmics-mmr": {
source: "iana",
extensions: ["mmr"]
},
"image/vnd.fujixerox.edmics-rlc": {
source: "iana",
extensions: ["rlc"]
},
"image/vnd.globalgraphics.pgb": {
source: "iana"
},
"image/vnd.microsoft.icon": {
source: "iana",
compressible: true,
extensions: ["ico"]
},
"image/vnd.mix": {
source: "iana"
},
"image/vnd.mozilla.apng": {
source: "iana"
},
"image/vnd.ms-dds": {
compressible: true,
extensions: ["dds"]
},
"image/vnd.ms-modi": {
source: "iana",
extensions: ["mdi"]
},
"image/vnd.ms-photo": {
source: "apache",
extensions: ["wdp"]
},
"image/vnd.net-fpx": {
source: "iana",
extensions: ["npx"]
},
"image/vnd.pco.b16": {
source: "iana",
extensions: ["b16"]
},
"image/vnd.radiance": {
source: "iana"
},
"image/vnd.sealed.png": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.gif": {
source: "iana"
},
"image/vnd.sealedmedia.softseal.jpg": {
source: "iana"
},
"image/vnd.svf": {
source: "iana"
},
"image/vnd.tencent.tap": {
source: "iana",
extensions: ["tap"]
},
"image/vnd.valve.source.texture": {
source: "iana",
extensions: ["vtf"]
},
"image/vnd.wap.wbmp": {
source: "iana",
extensions: ["wbmp"]
},
"image/vnd.xiff": {
source: "iana",
extensions: ["xif"]
},
"image/vnd.zbrush.pcx": {
source: "iana",
extensions: ["pcx"]
},
"image/webp": {
source: "apache",
extensions: ["webp"]
},
"image/wmf": {
source: "iana",
extensions: ["wmf"]
},
"image/x-3ds": {
source: "apache",
extensions: ["3ds"]
},
"image/x-cmu-raster": {
source: "apache",
extensions: ["ras"]
},
"image/x-cmx": {
source: "apache",
extensions: ["cmx"]
},
"image/x-freehand": {
source: "apache",
extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
},
"image/x-icon": {
source: "apache",
compressible: true,
extensions: ["ico"]
},
"image/x-jng": {
source: "nginx",
extensions: ["jng"]
},
"image/x-mrsid-image": {
source: "apache",
extensions: ["sid"]
},
"image/x-ms-bmp": {
source: "nginx",
compressible: true,
extensions: ["bmp"]
},
"image/x-pcx": {
source: "apache",
extensions: ["pcx"]
},
"image/x-pict": {
source: "apache",
extensions: ["pic", "pct"]
},
"image/x-portable-anymap": {
source: "apache",
extensions: ["pnm"]
},
"image/x-portable-bitmap": {
source: "apache",
extensions: ["pbm"]
},
"image/x-portable-graymap": {
source: "apache",
extensions: ["pgm"]
},
"image/x-portable-pixmap": {
source: "apache",
extensions: ["ppm"]
},
"image/x-rgb": {
source: "apache",
extensions: ["rgb"]
},
"image/x-tga": {
source: "apache",
extensions: ["tga"]
},
"image/x-xbitmap": {
source: "apache",
extensions: ["xbm"]
},
"image/x-xcf": {
compressible: false
},
"image/x-xpixmap": {
source: "apache",
extensions: ["xpm"]
},
"image/x-xwindowdump": {
source: "apache",
extensions: ["xwd"]
},
"message/cpim": {
source: "iana"
},
"message/delivery-status": {
source: "iana"
},
"message/disposition-notification": {
source: "iana",
extensions: [
"disposition-notification"
]
},
"message/external-body": {
source: "iana"
},
"message/feedback-report": {
source: "iana"
},
"message/global": {
source: "iana",
extensions: ["u8msg"]
},
"message/global-delivery-status": {
source: "iana",
extensions: ["u8dsn"]
},
"message/global-disposition-notification": {
source: "iana",
extensions: ["u8mdn"]
},
"message/global-headers": {
source: "iana",
extensions: ["u8hdr"]
},
"message/http": {
source: "iana",
compressible: false
},
"message/imdn+xml": {
source: "iana",
compressible: true
},
"message/news": {
source: "iana"
},
"message/partial": {
source: "iana",
compressible: false
},
"message/rfc822": {
source: "iana",
compressible: true,
extensions: ["eml", "mime"]
},
"message/s-http": {
source: "iana"
},
"message/sip": {
source: "iana"
},
"message/sipfrag": {
source: "iana"
},
"message/tracking-status": {
source: "iana"
},
"message/vnd.si.simp": {
source: "iana"
},
"message/vnd.wfa.wsc": {
source: "iana",
extensions: ["wsc"]
},
"model/3mf": {
source: "iana",
extensions: ["3mf"]
},
"model/e57": {
source: "iana"
},
"model/gltf+json": {
source: "iana",
compressible: true,
extensions: ["gltf"]
},
"model/gltf-binary": {
source: "iana",
compressible: true,
extensions: ["glb"]
},
"model/iges": {
source: "iana",
compressible: false,
extensions: ["igs", "iges"]
},
"model/mesh": {
source: "iana",
compressible: false,
extensions: ["msh", "mesh", "silo"]
},
"model/mtl": {
source: "iana",
extensions: ["mtl"]
},
"model/obj": {
source: "iana",
extensions: ["obj"]
},
"model/step": {
source: "iana"
},
"model/step+xml": {
source: "iana",
compressible: true,
extensions: ["stpx"]
},
"model/step+zip": {
source: "iana",
compressible: false,
extensions: ["stpz"]
},
"model/step-xml+zip": {
source: "iana",
compressible: false,
extensions: ["stpxz"]
},
"model/stl": {
source: "iana",
extensions: ["stl"]
},
"model/vnd.collada+xml": {
source: "iana",
compressible: true,
extensions: ["dae"]
},
"model/vnd.dwf": {
source: "iana",
extensions: ["dwf"]
},
"model/vnd.flatland.3dml": {
source: "iana"
},
"model/vnd.gdl": {
source: "iana",
extensions: ["gdl"]
},
"model/vnd.gs-gdl": {
source: "apache"
},
"model/vnd.gs.gdl": {
source: "iana"
},
"model/vnd.gtw": {
source: "iana",
extensions: ["gtw"]
},
"model/vnd.moml+xml": {
source: "iana",
compressible: true
},
"model/vnd.mts": {
source: "iana",
extensions: ["mts"]
},
"model/vnd.opengex": {
source: "iana",
extensions: ["ogex"]
},
"model/vnd.parasolid.transmit.binary": {
source: "iana",
extensions: ["x_b"]
},
"model/vnd.parasolid.transmit.text": {
source: "iana",
extensions: ["x_t"]
},
"model/vnd.pytha.pyox": {
source: "iana"
},
"model/vnd.rosette.annotated-data-model": {
source: "iana"
},
"model/vnd.sap.vds": {
source: "iana",
extensions: ["vds"]
},
"model/vnd.usdz+zip": {
source: "iana",
compressible: false,
extensions: ["usdz"]
},
"model/vnd.valve.source.compiled-map": {
source: "iana",
extensions: ["bsp"]
},
"model/vnd.vtu": {
source: "iana",
extensions: ["vtu"]
},
"model/vrml": {
source: "iana",
compressible: false,
extensions: ["wrl", "vrml"]
},
"model/x3d+binary": {
source: "apache",
compressible: false,
extensions: ["x3db", "x3dbz"]
},
"model/x3d+fastinfoset": {
source: "iana",
extensions: ["x3db"]
},
"model/x3d+vrml": {
source: "apache",
compressible: false,
extensions: ["x3dv", "x3dvz"]
},
"model/x3d+xml": {
source: "iana",
compressible: true,
extensions: ["x3d", "x3dz"]
},
"model/x3d-vrml": {
source: "iana",
extensions: ["x3dv"]
},
"multipart/alternative": {
source: "iana",
compressible: false
},
"multipart/appledouble": {
source: "iana"
},
"multipart/byteranges": {
source: "iana"
},
"multipart/digest": {
source: "iana"
},
"multipart/encrypted": {
source: "iana",
compressible: false
},
"multipart/form-data": {
source: "iana",
compressible: false
},
"multipart/header-set": {
source: "iana"
},
"multipart/mixed": {
source: "iana"
},
"multipart/multilingual": {
source: "iana"
},
"multipart/parallel": {
source: "iana"
},
"multipart/related": {
source: "iana",
compressible: false
},
"multipart/report": {
source: "iana"
},
"multipart/signed": {
source: "iana",
compressible: false
},
"multipart/vnd.bint.med-plus": {
source: "iana"
},
"multipart/voice-message": {
source: "iana"
},
"multipart/x-mixed-replace": {
source: "iana"
},
"text/1d-interleaved-parityfec": {
source: "iana"
},
"text/cache-manifest": {
source: "iana",
compressible: true,
extensions: ["appcache", "manifest"]
},
"text/calendar": {
source: "iana",
extensions: ["ics", "ifb"]
},
"text/calender": {
compressible: true
},
"text/cmd": {
compressible: true
},
"text/coffeescript": {
extensions: ["coffee", "litcoffee"]
},
"text/cql": {
source: "iana"
},
"text/cql-expression": {
source: "iana"
},
"text/cql-identifier": {
source: "iana"
},
"text/css": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["css"]
},
"text/csv": {
source: "iana",
compressible: true,
extensions: ["csv"]
},
"text/csv-schema": {
source: "iana"
},
"text/directory": {
source: "iana"
},
"text/dns": {
source: "iana"
},
"text/ecmascript": {
source: "iana"
},
"text/encaprtp": {
source: "iana"
},
"text/enriched": {
source: "iana"
},
"text/fhirpath": {
source: "iana"
},
"text/flexfec": {
source: "iana"
},
"text/fwdred": {
source: "iana"
},
"text/gff3": {
source: "iana"
},
"text/grammar-ref-list": {
source: "iana"
},
"text/html": {
source: "iana",
compressible: true,
extensions: ["html", "htm", "shtml"]
},
"text/jade": {
extensions: ["jade"]
},
"text/javascript": {
source: "iana",
compressible: true
},
"text/jcr-cnd": {
source: "iana"
},
"text/jsx": {
compressible: true,
extensions: ["jsx"]
},
"text/less": {
compressible: true,
extensions: ["less"]
},
"text/markdown": {
source: "iana",
compressible: true,
extensions: ["markdown", "md"]
},
"text/mathml": {
source: "nginx",
extensions: ["mml"]
},
"text/mdx": {
compressible: true,
extensions: ["mdx"]
},
"text/mizar": {
source: "iana"
},
"text/n3": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["n3"]
},
"text/parameters": {
source: "iana",
charset: "UTF-8"
},
"text/parityfec": {
source: "iana"
},
"text/plain": {
source: "iana",
compressible: true,
extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
},
"text/provenance-notation": {
source: "iana",
charset: "UTF-8"
},
"text/prs.fallenstein.rst": {
source: "iana"
},
"text/prs.lines.tag": {
source: "iana",
extensions: ["dsc"]
},
"text/prs.prop.logic": {
source: "iana"
},
"text/raptorfec": {
source: "iana"
},
"text/red": {
source: "iana"
},
"text/rfc822-headers": {
source: "iana"
},
"text/richtext": {
source: "iana",
compressible: true,
extensions: ["rtx"]
},
"text/rtf": {
source: "iana",
compressible: true,
extensions: ["rtf"]
},
"text/rtp-enc-aescm128": {
source: "iana"
},
"text/rtploopback": {
source: "iana"
},
"text/rtx": {
source: "iana"
},
"text/sgml": {
source: "iana",
extensions: ["sgml", "sgm"]
},
"text/shaclc": {
source: "iana"
},
"text/shex": {
source: "iana",
extensions: ["shex"]
},
"text/slim": {
extensions: ["slim", "slm"]
},
"text/spdx": {
source: "iana",
extensions: ["spdx"]
},
"text/strings": {
source: "iana"
},
"text/stylus": {
extensions: ["stylus", "styl"]
},
"text/t140": {
source: "iana"
},
"text/tab-separated-values": {
source: "iana",
compressible: true,
extensions: ["tsv"]
},
"text/troff": {
source: "iana",
extensions: ["t", "tr", "roff", "man", "me", "ms"]
},
"text/turtle": {
source: "iana",
charset: "UTF-8",
extensions: ["ttl"]
},
"text/ulpfec": {
source: "iana"
},
"text/uri-list": {
source: "iana",
compressible: true,
extensions: ["uri", "uris", "urls"]
},
"text/vcard": {
source: "iana",
compressible: true,
extensions: ["vcard"]
},
"text/vnd.a": {
source: "iana"
},
"text/vnd.abc": {
source: "iana"
},
"text/vnd.ascii-art": {
source: "iana"
},
"text/vnd.curl": {
source: "iana",
extensions: ["curl"]
},
"text/vnd.curl.dcurl": {
source: "apache",
extensions: ["dcurl"]
},
"text/vnd.curl.mcurl": {
source: "apache",
extensions: ["mcurl"]
},
"text/vnd.curl.scurl": {
source: "apache",
extensions: ["scurl"]
},
"text/vnd.debian.copyright": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.dmclientscript": {
source: "iana"
},
"text/vnd.dvb.subtitle": {
source: "iana",
extensions: ["sub"]
},
"text/vnd.esmertec.theme-descriptor": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.familysearch.gedcom": {
source: "iana",
extensions: ["ged"]
},
"text/vnd.ficlab.flt": {
source: "iana"
},
"text/vnd.fly": {
source: "iana",
extensions: ["fly"]
},
"text/vnd.fmi.flexstor": {
source: "iana",
extensions: ["flx"]
},
"text/vnd.gml": {
source: "iana"
},
"text/vnd.graphviz": {
source: "iana",
extensions: ["gv"]
},
"text/vnd.hans": {
source: "iana"
},
"text/vnd.hgl": {
source: "iana"
},
"text/vnd.in3d.3dml": {
source: "iana",
extensions: ["3dml"]
},
"text/vnd.in3d.spot": {
source: "iana",
extensions: ["spot"]
},
"text/vnd.iptc.newsml": {
source: "iana"
},
"text/vnd.iptc.nitf": {
source: "iana"
},
"text/vnd.latex-z": {
source: "iana"
},
"text/vnd.motorola.reflex": {
source: "iana"
},
"text/vnd.ms-mediapackage": {
source: "iana"
},
"text/vnd.net2phone.commcenter.command": {
source: "iana"
},
"text/vnd.radisys.msml-basic-layout": {
source: "iana"
},
"text/vnd.senx.warpscript": {
source: "iana"
},
"text/vnd.si.uricatalogue": {
source: "iana"
},
"text/vnd.sosi": {
source: "iana"
},
"text/vnd.sun.j2me.app-descriptor": {
source: "iana",
charset: "UTF-8",
extensions: ["jad"]
},
"text/vnd.trolltech.linguist": {
source: "iana",
charset: "UTF-8"
},
"text/vnd.wap.si": {
source: "iana"
},
"text/vnd.wap.sl": {
source: "iana"
},
"text/vnd.wap.wml": {
source: "iana",
extensions: ["wml"]
},
"text/vnd.wap.wmlscript": {
source: "iana",
extensions: ["wmls"]
},
"text/vtt": {
source: "iana",
charset: "UTF-8",
compressible: true,
extensions: ["vtt"]
},
"text/x-asm": {
source: "apache",
extensions: ["s", "asm"]
},
"text/x-c": {
source: "apache",
extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
},
"text/x-component": {
source: "nginx",
extensions: ["htc"]
},
"text/x-fortran": {
source: "apache",
extensions: ["f", "for", "f77", "f90"]
},
"text/x-gwt-rpc": {
compressible: true
},
"text/x-handlebars-template": {
extensions: ["hbs"]
},
"text/x-java-source": {
source: "apache",
extensions: ["java"]
},
"text/x-jquery-tmpl": {
compressible: true
},
"text/x-lua": {
extensions: ["lua"]
},
"text/x-markdown": {
compressible: true,
extensions: ["mkd"]
},
"text/x-nfo": {
source: "apache",
extensions: ["nfo"]
},
"text/x-opml": {
source: "apache",
extensions: ["opml"]
},
"text/x-org": {
compressible: true,
extensions: ["org"]
},
"text/x-pascal": {
source: "apache",
extensions: ["p", "pas"]
},
"text/x-processing": {
compressible: true,
extensions: ["pde"]
},
"text/x-sass": {
extensions: ["sass"]
},
"text/x-scss": {
extensions: ["scss"]
},
"text/x-setext": {
source: "apache",
extensions: ["etx"]
},
"text/x-sfv": {
source: "apache",
extensions: ["sfv"]
},
"text/x-suse-ymp": {
compressible: true,
extensions: ["ymp"]
},
"text/x-uuencode": {
source: "apache",
extensions: ["uu"]
},
"text/x-vcalendar": {
source: "apache",
extensions: ["vcs"]
},
"text/x-vcard": {
source: "apache",
extensions: ["vcf"]
},
"text/xml": {
source: "iana",
compressible: true,
extensions: ["xml"]
},
"text/xml-external-parsed-entity": {
source: "iana"
},
"text/yaml": {
compressible: true,
extensions: ["yaml", "yml"]
},
"video/1d-interleaved-parityfec": {
source: "iana"
},
"video/3gpp": {
source: "iana",
extensions: ["3gp", "3gpp"]
},
"video/3gpp-tt": {
source: "iana"
},
"video/3gpp2": {
source: "iana",
extensions: ["3g2"]
},
"video/av1": {
source: "iana"
},
"video/bmpeg": {
source: "iana"
},
"video/bt656": {
source: "iana"
},
"video/celb": {
source: "iana"
},
"video/dv": {
source: "iana"
},
"video/encaprtp": {
source: "iana"
},
"video/ffv1": {
source: "iana"
},
"video/flexfec": {
source: "iana"
},
"video/h261": {
source: "iana",
extensions: ["h261"]
},
"video/h263": {
source: "iana",
extensions: ["h263"]
},
"video/h263-1998": {
source: "iana"
},
"video/h263-2000": {
source: "iana"
},
"video/h264": {
source: "iana",
extensions: ["h264"]
},
"video/h264-rcdo": {
source: "iana"
},
"video/h264-svc": {
source: "iana"
},
"video/h265": {
source: "iana"
},
"video/iso.segment": {
source: "iana",
extensions: ["m4s"]
},
"video/jpeg": {
source: "iana",
extensions: ["jpgv"]
},
"video/jpeg2000": {
source: "iana"
},
"video/jpm": {
source: "apache",
extensions: ["jpm", "jpgm"]
},
"video/jxsv": {
source: "iana"
},
"video/mj2": {
source: "iana",
extensions: ["mj2", "mjp2"]
},
"video/mp1s": {
source: "iana"
},
"video/mp2p": {
source: "iana"
},
"video/mp2t": {
source: "iana",
extensions: ["ts"]
},
"video/mp4": {
source: "iana",
compressible: false,
extensions: ["mp4", "mp4v", "mpg4"]
},
"video/mp4v-es": {
source: "iana"
},
"video/mpeg": {
source: "iana",
compressible: false,
extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
},
"video/mpeg4-generic": {
source: "iana"
},
"video/mpv": {
source: "iana"
},
"video/nv": {
source: "iana"
},
"video/ogg": {
source: "iana",
compressible: false,
extensions: ["ogv"]
},
"video/parityfec": {
source: "iana"
},
"video/pointer": {
source: "iana"
},
"video/quicktime": {
source: "iana",
compressible: false,
extensions: ["qt", "mov"]
},
"video/raptorfec": {
source: "iana"
},
"video/raw": {
source: "iana"
},
"video/rtp-enc-aescm128": {
source: "iana"
},
"video/rtploopback": {
source: "iana"
},
"video/rtx": {
source: "iana"
},
"video/scip": {
source: "iana"
},
"video/smpte291": {
source: "iana"
},
"video/smpte292m": {
source: "iana"
},
"video/ulpfec": {
source: "iana"
},
"video/vc1": {
source: "iana"
},
"video/vc2": {
source: "iana"
},
"video/vnd.cctv": {
source: "iana"
},
"video/vnd.dece.hd": {
source: "iana",
extensions: ["uvh", "uvvh"]
},
"video/vnd.dece.mobile": {
source: "iana",
extensions: ["uvm", "uvvm"]
},
"video/vnd.dece.mp4": {
source: "iana"
},
"video/vnd.dece.pd": {
source: "iana",
extensions: ["uvp", "uvvp"]
},
"video/vnd.dece.sd": {
source: "iana",
extensions: ["uvs", "uvvs"]
},
"video/vnd.dece.video": {
source: "iana",
extensions: ["uvv", "uvvv"]
},
"video/vnd.directv.mpeg": {
source: "iana"
},
"video/vnd.directv.mpeg-tts": {
source: "iana"
},
"video/vnd.dlna.mpeg-tts": {
source: "iana"
},
"video/vnd.dvb.file": {
source: "iana",
extensions: ["dvb"]
},
"video/vnd.fvt": {
source: "iana",
extensions: ["fvt"]
},
"video/vnd.hns.video": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.1dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-1010": {
source: "iana"
},
"video/vnd.iptvforum.2dparityfec-2005": {
source: "iana"
},
"video/vnd.iptvforum.ttsavc": {
source: "iana"
},
"video/vnd.iptvforum.ttsmpeg2": {
source: "iana"
},
"video/vnd.motorola.video": {
source: "iana"
},
"video/vnd.motorola.videop": {
source: "iana"
},
"video/vnd.mpegurl": {
source: "iana",
extensions: ["mxu", "m4u"]
},
"video/vnd.ms-playready.media.pyv": {
source: "iana",
extensions: ["pyv"]
},
"video/vnd.nokia.interleaved-multimedia": {
source: "iana"
},
"video/vnd.nokia.mp4vr": {
source: "iana"
},
"video/vnd.nokia.videovoip": {
source: "iana"
},
"video/vnd.objectvideo": {
source: "iana"
},
"video/vnd.radgamettools.bink": {
source: "iana"
},
"video/vnd.radgamettools.smacker": {
source: "iana"
},
"video/vnd.sealed.mpeg1": {
source: "iana"
},
"video/vnd.sealed.mpeg4": {
source: "iana"
},
"video/vnd.sealed.swf": {
source: "iana"
},
"video/vnd.sealedmedia.softseal.mov": {
source: "iana"
},
"video/vnd.uvvu.mp4": {
source: "iana",
extensions: ["uvu", "uvvu"]
},
"video/vnd.vivo": {
source: "iana",
extensions: ["viv"]
},
"video/vnd.youtube.yt": {
source: "iana"
},
"video/vp8": {
source: "iana"
},
"video/vp9": {
source: "iana"
},
"video/webm": {
source: "apache",
compressible: false,
extensions: ["webm"]
},
"video/x-f4v": {
source: "apache",
extensions: ["f4v"]
},
"video/x-fli": {
source: "apache",
extensions: ["fli"]
},
"video/x-flv": {
source: "apache",
compressible: false,
extensions: ["flv"]
},
"video/x-m4v": {
source: "apache",
extensions: ["m4v"]
},
"video/x-matroska": {
source: "apache",
compressible: false,
extensions: ["mkv", "mk3d", "mks"]
},
"video/x-mng": {
source: "apache",
extensions: ["mng"]
},
"video/x-ms-asf": {
source: "apache",
extensions: ["asf", "asx"]
},
"video/x-ms-vob": {
source: "apache",
extensions: ["vob"]
},
"video/x-ms-wm": {
source: "apache",
extensions: ["wm"]
},
"video/x-ms-wmv": {
source: "apache",
compressible: false,
extensions: ["wmv"]
},
"video/x-ms-wmx": {
source: "apache",
extensions: ["wmx"]
},
"video/x-ms-wvx": {
source: "apache",
extensions: ["wvx"]
},
"video/x-msvideo": {
source: "apache",
extensions: ["avi"]
},
"video/x-sgi-movie": {
source: "apache",
extensions: ["movie"]
},
"video/x-smv": {
source: "apache",
extensions: ["smv"]
},
"x-conference/x-cooltalk": {
source: "apache",
extensions: ["ice"]
},
"x-shader/x-fragment": {
compressible: true
},
"x-shader/x-vertex": {
compressible: true
}
};
}
});
// ../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js
var require_mime_db2 = __commonJS({
"../../node_modules/.pnpm/mime-db@1.52.0/node_modules/mime-db/index.js"(exports, module) {
module.exports = require_db2();
}
});
// ../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js
var require_mime_types2 = __commonJS({
"../../node_modules/.pnpm/mime-types@2.1.35/node_modules/mime-types/index.js"(exports) {
"use strict";
var db = require_mime_db2();
var extname = __require("path").extname;
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
var TEXT_TYPE_REGEXP = /^text\//i;
exports.charset = charset;
exports.charsets = { lookup: charset };
exports.contentType = contentType;
exports.extension = extension;
exports.extensions = /* @__PURE__ */ Object.create(null);
exports.lookup = lookup;
exports.types = /* @__PURE__ */ Object.create(null);
populateMaps(exports.extensions, exports.types);
function charset(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var mime = match && db[match[1].toLowerCase()];
if (mime && mime.charset) {
return mime.charset;
}
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
return "UTF-8";
}
return false;
}
__name(charset, "charset");
function contentType(str) {
if (!str || typeof str !== "string") {
return false;
}
var mime = str.indexOf("/") === -1 ? exports.lookup(str) : str;
if (!mime) {
return false;
}
if (mime.indexOf("charset") === -1) {
var charset2 = exports.charset(mime);
if (charset2) mime += "; charset=" + charset2.toLowerCase();
}
return mime;
}
__name(contentType, "contentType");
function extension(type) {
if (!type || typeof type !== "string") {
return false;
}
var match = EXTRACT_TYPE_REGEXP.exec(type);
var exts = match && exports.extensions[match[1].toLowerCase()];
if (!exts || !exts.length) {
return false;
}
return exts[0];
}
__name(extension, "extension");
function lookup(path) {
if (!path || typeof path !== "string") {
return false;
}
var extension2 = extname("x." + path).toLowerCase().substr(1);
if (!extension2) {
return false;
}
return exports.types[extension2] || false;
}
__name(lookup, "lookup");
function populateMaps(extensions, types) {
var preference = ["nginx", "apache", void 0, "iana"];
Object.keys(db).forEach(/* @__PURE__ */ __name(function forEachMimeType(type) {
var mime = db[type];
var exts = mime.extensions;
if (!exts || !exts.length) {
return;
}
extensions[type] = exts;
for (var i = 0; i < exts.length; i++) {
var extension2 = exts[i];
if (types[extension2]) {
var from2 = preference.indexOf(db[types[extension2]].source);
var to = preference.indexOf(mime.source);
if (types[extension2] !== "application/octet-stream" && (from2 > to || from2 === to && types[extension2].substr(0, 12) === "application/")) {
continue;
}
}
types[extension2] = type;
}
}, "forEachMimeType"));
}
__name(populateMaps, "populateMaps");
}
});
// ../../node_modules/.pnpm/type-is@1.6.18/node_modules/type-is/index.js
var require_type_is2 = __commonJS({
"../../node_modules/.pnpm/type-is@1.6.18/node_modules/type-is/index.js"(exports, module) {
"use strict";
var typer = require_media_typer2();
var mime = require_mime_types2();
module.exports = typeofrequest;
module.exports.is = typeis;
module.exports.hasBody = hasbody;
module.exports.normalize = normalize;
module.exports.match = mimeMatch;
function typeis(value, types_) {
var i;
var types = types_;
var val = tryNormalizeType(value);
if (!val) {
return false;
}
if (types && !Array.isArray(types)) {
types = new Array(arguments.length - 1);
for (i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
if (!types || !types.length) {
return val;
}
var type;
for (i = 0; i < types.length; i++) {
if (mimeMatch(normalize(type = types[i]), val)) {
return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
}
}
return false;
}
__name(typeis, "typeis");
function hasbody(req) {
return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
}
__name(hasbody, "hasbody");
function typeofrequest(req, types_) {
var types = types_;
if (!hasbody(req)) {
return null;
}
if (arguments.length > 2) {
types = new Array(arguments.length - 1);
for (var i = 0; i < types.length; i++) {
types[i] = arguments[i + 1];
}
}
var value = req.headers["content-type"];
return typeis(value, types);
}
__name(typeofrequest, "typeofrequest");
function normalize(type) {
if (typeof type !== "string") {
return false;
}
switch (type) {
case "urlencoded":
return "application/x-www-form-urlencoded";
case "multipart":
return "multipart/*";
}
if (type[0] === "+") {
return "*/*" + type;
}
return type.indexOf("/") === -1 ? mime.lookup(type) : type;
}
__name(normalize, "normalize");
function mimeMatch(expected, actual) {
if (expected === false) {
return false;
}
var actualParts = actual.split("/");
var expectedParts = expected.split("/");
if (actualParts.length !== 2 || expectedParts.length !== 2) {
return false;
}
if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
return false;
}
if (expectedParts[1].substr(0, 2) === "*+") {
return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length);
}
if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
return false;
}
return true;
}
__name(mimeMatch, "mimeMatch");
function normalizeType(value) {
var type = typer.parse(value);
type.parameters = void 0;
return typer.format(type);
}
__name(normalizeType, "normalizeType");
function tryNormalizeType(value) {
if (!value) {
return null;
}
try {
return normalizeType(value);
} catch (err) {
return null;
}
}
__name(tryNormalizeType, "tryNormalizeType");
}
});
// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js
var require_utils4 = __commonJS({
"../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/utils.js"(exports, module) {
"use strict";
function parseContentType(str) {
if (str.length === 0)
return;
const params = /* @__PURE__ */ Object.create(null);
let i = 0;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (code !== 47 || i === 0)
return;
break;
}
}
if (i === str.length)
return;
const type = str.slice(0, i).toLowerCase();
const subtypeStart = ++i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (i === subtypeStart)
return;
if (parseContentTypeParams(str, i, params) === void 0)
return;
break;
}
}
if (i === subtypeStart)
return;
const subtype = str.slice(subtypeStart, i).toLowerCase();
return { type, subtype, params };
}
__name(parseContentType, "parseContentType");
function parseContentTypeParams(str, i, params) {
while (i < str.length) {
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code !== 32 && code !== 9)
break;
}
if (i === str.length)
break;
if (str.charCodeAt(i++) !== 59)
return;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code !== 32 && code !== 9)
break;
}
if (i === str.length)
return;
let name;
const nameStart = i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (code !== 61)
return;
break;
}
}
if (i === str.length)
return;
name = str.slice(nameStart, i);
++i;
if (i === str.length)
return;
let value = "";
let valueStart;
if (str.charCodeAt(i) === 34) {
valueStart = ++i;
let escaping = false;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code === 92) {
if (escaping) {
valueStart = i;
escaping = false;
} else {
value += str.slice(valueStart, i);
escaping = true;
}
continue;
}
if (code === 34) {
if (escaping) {
valueStart = i;
escaping = false;
continue;
}
value += str.slice(valueStart, i);
break;
}
if (escaping) {
valueStart = i - 1;
escaping = false;
}
if (QDTEXT[code] !== 1)
return;
}
if (i === str.length)
return;
++i;
} else {
valueStart = i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (i === valueStart)
return;
break;
}
}
value = str.slice(valueStart, i);
}
name = name.toLowerCase();
if (params[name] === void 0)
params[name] = value;
}
return params;
}
__name(parseContentTypeParams, "parseContentTypeParams");
function parseDisposition(str, defDecoder) {
if (str.length === 0)
return;
const params = /* @__PURE__ */ Object.create(null);
let i = 0;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (parseDispositionParams(str, i, params, defDecoder) === void 0)
return;
break;
}
}
const type = str.slice(0, i).toLowerCase();
return { type, params };
}
__name(parseDisposition, "parseDisposition");
function parseDispositionParams(str, i, params, defDecoder) {
while (i < str.length) {
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code !== 32 && code !== 9)
break;
}
if (i === str.length)
break;
if (str.charCodeAt(i++) !== 59)
return;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code !== 32 && code !== 9)
break;
}
if (i === str.length)
return;
let name;
const nameStart = i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (code === 61)
break;
return;
}
}
if (i === str.length)
return;
let value = "";
let valueStart;
let charset;
name = str.slice(nameStart, i);
if (name.charCodeAt(name.length - 1) === 42) {
const charsetStart = ++i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (CHARSET[code] !== 1) {
if (code !== 39)
return;
break;
}
}
if (i === str.length)
return;
charset = str.slice(charsetStart, i);
++i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code === 39)
break;
}
if (i === str.length)
return;
++i;
if (i === str.length)
return;
valueStart = i;
let encode = 0;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (EXTENDED_VALUE[code] !== 1) {
if (code === 37) {
let hexUpper;
let hexLower;
if (i + 2 < str.length && (hexUpper = HEX_VALUES[str.charCodeAt(i + 1)]) !== -1 && (hexLower = HEX_VALUES[str.charCodeAt(i + 2)]) !== -1) {
const byteVal = (hexUpper << 4) + hexLower;
value += str.slice(valueStart, i);
value += String.fromCharCode(byteVal);
i += 2;
valueStart = i + 1;
if (byteVal >= 128)
encode = 2;
else if (encode === 0)
encode = 1;
continue;
}
return;
}
break;
}
}
value += str.slice(valueStart, i);
value = convertToUTF8(value, charset, encode);
if (value === void 0)
return;
} else {
++i;
if (i === str.length)
return;
if (str.charCodeAt(i) === 34) {
valueStart = ++i;
let escaping = false;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (code === 92) {
if (escaping) {
valueStart = i;
escaping = false;
} else {
value += str.slice(valueStart, i);
escaping = true;
}
continue;
}
if (code === 34) {
if (escaping) {
valueStart = i;
escaping = false;
continue;
}
value += str.slice(valueStart, i);
break;
}
if (escaping) {
valueStart = i - 1;
escaping = false;
}
if (QDTEXT[code] !== 1)
return;
}
if (i === str.length)
return;
++i;
} else {
valueStart = i;
for (; i < str.length; ++i) {
const code = str.charCodeAt(i);
if (TOKEN[code] !== 1) {
if (i === valueStart)
return;
break;
}
}
value = str.slice(valueStart, i);
}
value = defDecoder(value, 2);
if (value === void 0)
return;
}
name = name.toLowerCase();
if (params[name] === void 0)
params[name] = value;
}
return params;
}
__name(parseDispositionParams, "parseDispositionParams");
function getDecoder(charset) {
let lc;
while (true) {
switch (charset) {
case "utf-8":
case "utf8":
return decoders.utf8;
case "latin1":
case "ascii":
// TODO: Make these a separate, strict decoder?
case "us-ascii":
case "iso-8859-1":
case "iso8859-1":
case "iso88591":
case "iso_8859-1":
case "windows-1252":
case "iso_8859-1:1987":
case "cp1252":
case "x-cp1252":
return decoders.latin1;
case "utf16le":
case "utf-16le":
case "ucs2":
case "ucs-2":
return decoders.utf16le;
case "base64":
return decoders.base64;
default:
if (lc === void 0) {
lc = true;
charset = charset.toLowerCase();
continue;
}
return decoders.other.bind(charset);
}
}
}
__name(getDecoder, "getDecoder");
var decoders = {
utf8: /* @__PURE__ */ __name((data, hint) => {
if (data.length === 0)
return "";
if (typeof data === "string") {
if (hint < 2)
return data;
data = Buffer.from(data, "latin1");
}
return data.utf8Slice(0, data.length);
}, "utf8"),
latin1: /* @__PURE__ */ __name((data, hint) => {
if (data.length === 0)
return "";
if (typeof data === "string")
return data;
return data.latin1Slice(0, data.length);
}, "latin1"),
utf16le: /* @__PURE__ */ __name((data, hint) => {
if (data.length === 0)
return "";
if (typeof data === "string")
data = Buffer.from(data, "latin1");
return data.ucs2Slice(0, data.length);
}, "utf16le"),
base64: /* @__PURE__ */ __name((data, hint) => {
if (data.length === 0)
return "";
if (typeof data === "string")
data = Buffer.from(data, "latin1");
return data.base64Slice(0, data.length);
}, "base64"),
other: /* @__PURE__ */ __name((data, hint) => {
if (data.length === 0)
return "";
if (typeof data === "string")
data = Buffer.from(data, "latin1");
try {
const decoder = new TextDecoder(exports);
return decoder.decode(data);
} catch {
}
}, "other")
};
function convertToUTF8(data, charset, hint) {
const decode = getDecoder(charset);
if (decode)
return decode(data, hint);
}
__name(convertToUTF8, "convertToUTF8");
function basename(path) {
if (typeof path !== "string")
return "";
for (let i = path.length - 1; i >= 0; --i) {
switch (path.charCodeAt(i)) {
case 47:
// '/'
case 92:
path = path.slice(i + 1);
return path === ".." || path === "." ? "" : path;
}
}
return path === ".." || path === "." ? "" : path;
}
__name(basename, "basename");
var TOKEN = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
var QDTEXT = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
];
var CHARSET = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
1,
1,
0,
0,
0,
0,
1,
0,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
var EXTENDED_VALUE = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
0,
1,
0,
0,
0,
0,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
var HEX_VALUES = [
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
10,
11,
12,
13,
14,
15,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
10,
11,
12,
13,
14,
15,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1
];
module.exports = {
basename,
convertToUTF8,
getDecoder,
parseContentType,
parseDisposition
};
}
});
// ../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js
var require_sbmh = __commonJS({
"../../node_modules/.pnpm/streamsearch@1.1.0/node_modules/streamsearch/lib/sbmh.js"(exports, module) {
"use strict";
function memcmp(buf1, pos1, buf2, pos2, num) {
for (let i = 0; i < num; ++i) {
if (buf1[pos1 + i] !== buf2[pos2 + i])
return false;
}
return true;
}
__name(memcmp, "memcmp");
var SBMH = class {
static {
__name(this, "SBMH");
}
constructor(needle, cb) {
if (typeof cb !== "function")
throw new Error("Missing match callback");
if (typeof needle === "string")
needle = Buffer.from(needle);
else if (!Buffer.isBuffer(needle))
throw new Error(`Expected Buffer for needle, got ${typeof needle}`);
const needleLen = needle.length;
this.maxMatches = Infinity;
this.matches = 0;
this._cb = cb;
this._lookbehindSize = 0;
this._needle = needle;
this._bufPos = 0;
this._lookbehind = Buffer.allocUnsafe(needleLen);
this._occ = [
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen,
needleLen
];
if (needleLen > 1) {
for (let i = 0; i < needleLen - 1; ++i)
this._occ[needle[i]] = needleLen - 1 - i;
}
}
reset() {
this.matches = 0;
this._lookbehindSize = 0;
this._bufPos = 0;
}
push(chunk, pos) {
let result;
if (!Buffer.isBuffer(chunk))
chunk = Buffer.from(chunk, "latin1");
const chunkLen = chunk.length;
this._bufPos = pos || 0;
while (result !== chunkLen && this.matches < this.maxMatches)
result = feed(this, chunk);
return result;
}
destroy() {
const lbSize = this._lookbehindSize;
if (lbSize)
this._cb(false, this._lookbehind, 0, lbSize, false);
this.reset();
}
};
function feed(self, data) {
const len = data.length;
const needle = self._needle;
const needleLen = needle.length;
let pos = -self._lookbehindSize;
const lastNeedleCharPos = needleLen - 1;
const lastNeedleChar = needle[lastNeedleCharPos];
const end = len - needleLen;
const occ = self._occ;
const lookbehind = self._lookbehind;
if (pos < 0) {
while (pos < 0 && pos <= end) {
const nextPos = pos + lastNeedleCharPos;
const ch = nextPos < 0 ? lookbehind[self._lookbehindSize + nextPos] : data[nextPos];
if (ch === lastNeedleChar && matchNeedle(self, data, pos, lastNeedleCharPos)) {
self._lookbehindSize = 0;
++self.matches;
if (pos > -self._lookbehindSize)
self._cb(true, lookbehind, 0, self._lookbehindSize + pos, false);
else
self._cb(true, void 0, 0, 0, true);
return self._bufPos = pos + needleLen;
}
pos += occ[ch];
}
while (pos < 0 && !matchNeedle(self, data, pos, len - pos))
++pos;
if (pos < 0) {
const bytesToCutOff = self._lookbehindSize + pos;
if (bytesToCutOff > 0) {
self._cb(false, lookbehind, 0, bytesToCutOff, false);
}
self._lookbehindSize -= bytesToCutOff;
lookbehind.copy(lookbehind, 0, bytesToCutOff, self._lookbehindSize);
lookbehind.set(data, self._lookbehindSize);
self._lookbehindSize += len;
self._bufPos = len;
return len;
}
self._cb(false, lookbehind, 0, self._lookbehindSize, false);
self._lookbehindSize = 0;
}
pos += self._bufPos;
const firstNeedleChar = needle[0];
while (pos <= end) {
const ch = data[pos + lastNeedleCharPos];
if (ch === lastNeedleChar && data[pos] === firstNeedleChar && memcmp(needle, 0, data, pos, lastNeedleCharPos)) {
++self.matches;
if (pos > 0)
self._cb(true, data, self._bufPos, pos, true);
else
self._cb(true, void 0, 0, 0, true);
return self._bufPos = pos + needleLen;
}
pos += occ[ch];
}
while (pos < len) {
if (data[pos] !== firstNeedleChar || !memcmp(data, pos, needle, 0, len - pos)) {
++pos;
continue;
}
data.copy(lookbehind, 0, pos, len);
self._lookbehindSize = len - pos;
break;
}
if (pos > 0)
self._cb(false, data, self._bufPos, pos < len ? pos : len, true);
self._bufPos = len;
return len;
}
__name(feed, "feed");
function matchNeedle(self, data, pos, len) {
const lb = self._lookbehind;
const lbSize = self._lookbehindSize;
const needle = self._needle;
for (let i = 0; i < len; ++i, ++pos) {
const ch = pos < 0 ? lb[lbSize + pos] : data[pos];
if (ch !== needle[i])
return false;
}
return true;
}
__name(matchNeedle, "matchNeedle");
module.exports = SBMH;
}
});
// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js
var require_multipart = __commonJS({
"../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/multipart.js"(exports, module) {
"use strict";
var { Readable, Writable } = __require("stream");
var StreamSearch = require_sbmh();
var {
basename,
convertToUTF8,
getDecoder,
parseContentType,
parseDisposition
} = require_utils4();
var BUF_CRLF = Buffer.from("\r\n");
var BUF_CR = Buffer.from("\r");
var BUF_DASH = Buffer.from("-");
function noop5() {
}
__name(noop5, "noop");
var MAX_HEADER_PAIRS = 2e3;
var MAX_HEADER_SIZE = 16 * 1024;
var HPARSER_NAME = 0;
var HPARSER_PRE_OWS = 1;
var HPARSER_VALUE = 2;
var HeaderParser = class {
static {
__name(this, "HeaderParser");
}
constructor(cb) {
this.header = /* @__PURE__ */ Object.create(null);
this.pairCount = 0;
this.byteCount = 0;
this.state = HPARSER_NAME;
this.name = "";
this.value = "";
this.crlf = 0;
this.cb = cb;
}
reset() {
this.header = /* @__PURE__ */ Object.create(null);
this.pairCount = 0;
this.byteCount = 0;
this.state = HPARSER_NAME;
this.name = "";
this.value = "";
this.crlf = 0;
}
push(chunk, pos, end) {
let start = pos;
while (pos < end) {
switch (this.state) {
case HPARSER_NAME: {
let done = false;
for (; pos < end; ++pos) {
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
const code = chunk[pos];
if (TOKEN[code] !== 1) {
if (code !== 58)
return -1;
this.name += chunk.latin1Slice(start, pos);
if (this.name.length === 0)
return -1;
++pos;
done = true;
this.state = HPARSER_PRE_OWS;
break;
}
}
if (!done) {
this.name += chunk.latin1Slice(start, pos);
break;
}
}
case HPARSER_PRE_OWS: {
let done = false;
for (; pos < end; ++pos) {
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
const code = chunk[pos];
if (code !== 32 && code !== 9) {
start = pos;
done = true;
this.state = HPARSER_VALUE;
break;
}
}
if (!done)
break;
}
case HPARSER_VALUE:
switch (this.crlf) {
case 0:
for (; pos < end; ++pos) {
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
const code = chunk[pos];
if (FIELD_VCHAR[code] !== 1) {
if (code !== 13)
return -1;
++this.crlf;
break;
}
}
this.value += chunk.latin1Slice(start, pos++);
break;
case 1:
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
if (chunk[pos++] !== 10)
return -1;
++this.crlf;
break;
case 2: {
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
const code = chunk[pos];
if (code === 32 || code === 9) {
start = pos;
this.crlf = 0;
} else {
if (++this.pairCount < MAX_HEADER_PAIRS) {
this.name = this.name.toLowerCase();
if (this.header[this.name] === void 0)
this.header[this.name] = [this.value];
else
this.header[this.name].push(this.value);
}
if (code === 13) {
++this.crlf;
++pos;
} else {
start = pos;
this.crlf = 0;
this.state = HPARSER_NAME;
this.name = "";
this.value = "";
}
}
break;
}
case 3: {
if (this.byteCount === MAX_HEADER_SIZE)
return -1;
++this.byteCount;
if (chunk[pos++] !== 10)
return -1;
const header = this.header;
this.reset();
this.cb(header);
return pos;
}
}
break;
}
}
return pos;
}
};
var FileStream = class extends Readable {
static {
__name(this, "FileStream");
}
constructor(opts, owner) {
super(opts);
this.truncated = false;
this._readcb = null;
this.once("end", () => {
this._read();
if (--owner._fileEndsLeft === 0 && owner._finalcb) {
const cb = owner._finalcb;
owner._finalcb = null;
process.nextTick(cb);
}
});
}
_read(n) {
const cb = this._readcb;
if (cb) {
this._readcb = null;
cb();
}
}
};
var ignoreData = {
push: /* @__PURE__ */ __name((chunk, pos) => {
}, "push"),
destroy: /* @__PURE__ */ __name(() => {
}, "destroy")
};
function callAndUnsetCb(self, err) {
const cb = self._writecb;
self._writecb = null;
if (err)
self.destroy(err);
else if (cb)
cb();
}
__name(callAndUnsetCb, "callAndUnsetCb");
function nullDecoder(val, hint) {
return val;
}
__name(nullDecoder, "nullDecoder");
var Multipart = class extends Writable {
static {
__name(this, "Multipart");
}
constructor(cfg) {
const streamOpts = {
autoDestroy: true,
emitClose: true,
highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0
};
super(streamOpts);
if (!cfg.conType.params || typeof cfg.conType.params.boundary !== "string")
throw new Error("Multipart: Boundary not found");
const boundary = cfg.conType.params.boundary;
const paramDecoder = typeof cfg.defParamCharset === "string" && cfg.defParamCharset ? getDecoder(cfg.defParamCharset) : nullDecoder;
const defCharset = cfg.defCharset || "utf8";
const preservePath = cfg.preservePath;
const fileOpts = {
autoDestroy: true,
emitClose: true,
highWaterMark: typeof cfg.fileHwm === "number" ? cfg.fileHwm : void 0
};
const limits = cfg.limits;
const fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024;
const fileSizeLimit = limits && typeof limits.fileSize === "number" ? limits.fileSize : Infinity;
const filesLimit = limits && typeof limits.files === "number" ? limits.files : Infinity;
const fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity;
const partsLimit = limits && typeof limits.parts === "number" ? limits.parts : Infinity;
let parts = -1;
let fields = 0;
let files = 0;
let skipPart = false;
this._fileEndsLeft = 0;
this._fileStream = void 0;
this._complete = false;
let fileSize = 0;
let field;
let fieldSize = 0;
let partCharset;
let partEncoding;
let partType;
let partName;
let partTruncated = false;
let hitFilesLimit = false;
let hitFieldsLimit = false;
this._hparser = null;
const hparser = new HeaderParser((header) => {
this._hparser = null;
skipPart = false;
partType = "text/plain";
partCharset = defCharset;
partEncoding = "7bit";
partName = void 0;
partTruncated = false;
let filename;
if (!header["content-disposition"]) {
skipPart = true;
return;
}
const disp = parseDisposition(
header["content-disposition"][0],
paramDecoder
);
if (!disp || disp.type !== "form-data") {
skipPart = true;
return;
}
if (disp.params) {
if (disp.params.name)
partName = disp.params.name;
if (disp.params["filename*"])
filename = disp.params["filename*"];
else if (disp.params.filename)
filename = disp.params.filename;
if (filename !== void 0 && !preservePath)
filename = basename(filename);
}
if (header["content-type"]) {
const conType = parseContentType(header["content-type"][0]);
if (conType) {
partType = `${conType.type}/${conType.subtype}`;
if (conType.params && typeof conType.params.charset === "string")
partCharset = conType.params.charset.toLowerCase();
}
}
if (header["content-transfer-encoding"])
partEncoding = header["content-transfer-encoding"][0].toLowerCase();
if (partType === "application/octet-stream" || filename !== void 0) {
if (files === filesLimit) {
if (!hitFilesLimit) {
hitFilesLimit = true;
this.emit("filesLimit");
}
skipPart = true;
return;
}
++files;
if (this.listenerCount("file") === 0) {
skipPart = true;
return;
}
fileSize = 0;
this._fileStream = new FileStream(fileOpts, this);
++this._fileEndsLeft;
this.emit(
"file",
partName,
this._fileStream,
{
filename,
encoding: partEncoding,
mimeType: partType
}
);
} else {
if (fields === fieldsLimit) {
if (!hitFieldsLimit) {
hitFieldsLimit = true;
this.emit("fieldsLimit");
}
skipPart = true;
return;
}
++fields;
if (this.listenerCount("field") === 0) {
skipPart = true;
return;
}
field = [];
fieldSize = 0;
}
});
let matchPostBoundary = 0;
const ssCb = /* @__PURE__ */ __name((isMatch, data, start, end, isDataSafe) => {
retrydata:
while (data) {
if (this._hparser !== null) {
const ret = this._hparser.push(data, start, end);
if (ret === -1) {
this._hparser = null;
hparser.reset();
this.emit("error", new Error("Malformed part header"));
break;
}
start = ret;
}
if (start === end)
break;
if (matchPostBoundary !== 0) {
if (matchPostBoundary === 1) {
switch (data[start]) {
case 45:
matchPostBoundary = 2;
++start;
break;
case 13:
matchPostBoundary = 3;
++start;
break;
default:
matchPostBoundary = 0;
}
if (start === end)
return;
}
if (matchPostBoundary === 2) {
matchPostBoundary = 0;
if (data[start] === 45) {
this._complete = true;
this._bparser = ignoreData;
return;
}
const writecb = this._writecb;
this._writecb = noop5;
ssCb(false, BUF_DASH, 0, 1, false);
this._writecb = writecb;
} else if (matchPostBoundary === 3) {
matchPostBoundary = 0;
if (data[start] === 10) {
++start;
if (parts >= partsLimit)
break;
this._hparser = hparser;
if (start === end)
break;
continue retrydata;
} else {
const writecb = this._writecb;
this._writecb = noop5;
ssCb(false, BUF_CR, 0, 1, false);
this._writecb = writecb;
}
}
}
if (!skipPart) {
if (this._fileStream) {
let chunk;
const actualLen = Math.min(end - start, fileSizeLimit - fileSize);
if (!isDataSafe) {
chunk = Buffer.allocUnsafe(actualLen);
data.copy(chunk, 0, start, start + actualLen);
} else {
chunk = data.slice(start, start + actualLen);
}
fileSize += chunk.length;
if (fileSize === fileSizeLimit) {
if (chunk.length > 0)
this._fileStream.push(chunk);
this._fileStream.emit("limit");
this._fileStream.truncated = true;
skipPart = true;
} else if (!this._fileStream.push(chunk)) {
if (this._writecb)
this._fileStream._readcb = this._writecb;
this._writecb = null;
}
} else if (field !== void 0) {
let chunk;
const actualLen = Math.min(
end - start,
fieldSizeLimit - fieldSize
);
if (!isDataSafe) {
chunk = Buffer.allocUnsafe(actualLen);
data.copy(chunk, 0, start, start + actualLen);
} else {
chunk = data.slice(start, start + actualLen);
}
fieldSize += actualLen;
field.push(chunk);
if (fieldSize === fieldSizeLimit) {
skipPart = true;
partTruncated = true;
}
}
}
break;
}
if (isMatch) {
matchPostBoundary = 1;
if (this._fileStream) {
this._fileStream.push(null);
this._fileStream = null;
} else if (field !== void 0) {
let data2;
switch (field.length) {
case 0:
data2 = "";
break;
case 1:
data2 = convertToUTF8(field[0], partCharset, 0);
break;
default:
data2 = convertToUTF8(
Buffer.concat(field, fieldSize),
partCharset,
0
);
}
field = void 0;
fieldSize = 0;
this.emit(
"field",
partName,
data2,
{
nameTruncated: false,
valueTruncated: partTruncated,
encoding: partEncoding,
mimeType: partType
}
);
}
if (++parts === partsLimit)
this.emit("partsLimit");
}
}, "ssCb");
this._bparser = new StreamSearch(`\r
--${boundary}`, ssCb);
this._writecb = null;
this._finalcb = null;
this.write(BUF_CRLF);
}
static detect(conType) {
return conType.type === "multipart" && conType.subtype === "form-data";
}
_write(chunk, enc, cb) {
this._writecb = cb;
this._bparser.push(chunk, 0);
if (this._writecb)
callAndUnsetCb(this);
}
_destroy(err, cb) {
this._hparser = null;
this._bparser = ignoreData;
if (!err)
err = checkEndState(this);
const fileStream = this._fileStream;
if (fileStream) {
this._fileStream = null;
fileStream.destroy(err);
}
cb(err);
}
_final(cb) {
this._bparser.destroy();
if (!this._complete)
return cb(new Error("Unexpected end of form"));
if (this._fileEndsLeft)
this._finalcb = finalcb.bind(null, this, cb);
else
finalcb(this, cb);
}
};
function finalcb(self, cb, err) {
if (err)
return cb(err);
err = checkEndState(self);
cb(err);
}
__name(finalcb, "finalcb");
function checkEndState(self) {
if (self._hparser)
return new Error("Malformed part header");
const fileStream = self._fileStream;
if (fileStream) {
self._fileStream = null;
fileStream.destroy(new Error("Unexpected end of file"));
}
if (!self._complete)
return new Error("Unexpected end of form");
}
__name(checkEndState, "checkEndState");
var TOKEN = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1,
0,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
];
var FIELD_VCHAR = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
];
module.exports = Multipart;
}
});
// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js
var require_urlencoded2 = __commonJS({
"../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/types/urlencoded.js"(exports, module) {
"use strict";
var { Writable } = __require("stream");
var { getDecoder } = require_utils4();
var URLEncoded = class extends Writable {
static {
__name(this, "URLEncoded");
}
constructor(cfg) {
const streamOpts = {
autoDestroy: true,
emitClose: true,
highWaterMark: typeof cfg.highWaterMark === "number" ? cfg.highWaterMark : void 0
};
super(streamOpts);
let charset = cfg.defCharset || "utf8";
if (cfg.conType.params && typeof cfg.conType.params.charset === "string")
charset = cfg.conType.params.charset;
this.charset = charset;
const limits = cfg.limits;
this.fieldSizeLimit = limits && typeof limits.fieldSize === "number" ? limits.fieldSize : 1 * 1024 * 1024;
this.fieldsLimit = limits && typeof limits.fields === "number" ? limits.fields : Infinity;
this.fieldNameSizeLimit = limits && typeof limits.fieldNameSize === "number" ? limits.fieldNameSize : 100;
this._inKey = true;
this._keyTrunc = false;
this._valTrunc = false;
this._bytesKey = 0;
this._bytesVal = 0;
this._fields = 0;
this._key = "";
this._val = "";
this._byte = -2;
this._lastPos = 0;
this._encode = 0;
this._decoder = getDecoder(charset);
}
static detect(conType) {
return conType.type === "application" && conType.subtype === "x-www-form-urlencoded";
}
_write(chunk, enc, cb) {
if (this._fields >= this.fieldsLimit)
return cb();
let i = 0;
const len = chunk.length;
this._lastPos = 0;
if (this._byte !== -2) {
i = readPctEnc(this, chunk, i, len);
if (i === -1)
return cb(new Error("Malformed urlencoded form"));
if (i >= len)
return cb();
if (this._inKey)
++this._bytesKey;
else
++this._bytesVal;
}
main:
while (i < len) {
if (this._inKey) {
i = skipKeyBytes(this, chunk, i, len);
while (i < len) {
switch (chunk[i]) {
case 61:
if (this._lastPos < i)
this._key += chunk.latin1Slice(this._lastPos, i);
this._lastPos = ++i;
this._key = this._decoder(this._key, this._encode);
this._encode = 0;
this._inKey = false;
continue main;
case 38:
if (this._lastPos < i)
this._key += chunk.latin1Slice(this._lastPos, i);
this._lastPos = ++i;
this._key = this._decoder(this._key, this._encode);
this._encode = 0;
if (this._bytesKey > 0) {
this.emit(
"field",
this._key,
"",
{
nameTruncated: this._keyTrunc,
valueTruncated: false,
encoding: this.charset,
mimeType: "text/plain"
}
);
}
this._key = "";
this._val = "";
this._keyTrunc = false;
this._valTrunc = false;
this._bytesKey = 0;
this._bytesVal = 0;
if (++this._fields >= this.fieldsLimit) {
this.emit("fieldsLimit");
return cb();
}
continue;
case 43:
if (this._lastPos < i)
this._key += chunk.latin1Slice(this._lastPos, i);
this._key += " ";
this._lastPos = i + 1;
break;
case 37:
if (this._encode === 0)
this._encode = 1;
if (this._lastPos < i)
this._key += chunk.latin1Slice(this._lastPos, i);
this._lastPos = i + 1;
this._byte = -1;
i = readPctEnc(this, chunk, i + 1, len);
if (i === -1)
return cb(new Error("Malformed urlencoded form"));
if (i >= len)
return cb();
++this._bytesKey;
i = skipKeyBytes(this, chunk, i, len);
continue;
}
++i;
++this._bytesKey;
i = skipKeyBytes(this, chunk, i, len);
}
if (this._lastPos < i)
this._key += chunk.latin1Slice(this._lastPos, i);
} else {
i = skipValBytes(this, chunk, i, len);
while (i < len) {
switch (chunk[i]) {
case 38:
if (this._lastPos < i)
this._val += chunk.latin1Slice(this._lastPos, i);
this._lastPos = ++i;
this._inKey = true;
this._val = this._decoder(this._val, this._encode);
this._encode = 0;
if (this._bytesKey > 0 || this._bytesVal > 0) {
this.emit(
"field",
this._key,
this._val,
{
nameTruncated: this._keyTrunc,
valueTruncated: this._valTrunc,
encoding: this.charset,
mimeType: "text/plain"
}
);
}
this._key = "";
this._val = "";
this._keyTrunc = false;
this._valTrunc = false;
this._bytesKey = 0;
this._bytesVal = 0;
if (++this._fields >= this.fieldsLimit) {
this.emit("fieldsLimit");
return cb();
}
continue main;
case 43:
if (this._lastPos < i)
this._val += chunk.latin1Slice(this._lastPos, i);
this._val += " ";
this._lastPos = i + 1;
break;
case 37:
if (this._encode === 0)
this._encode = 1;
if (this._lastPos < i)
this._val += chunk.latin1Slice(this._lastPos, i);
this._lastPos = i + 1;
this._byte = -1;
i = readPctEnc(this, chunk, i + 1, len);
if (i === -1)
return cb(new Error("Malformed urlencoded form"));
if (i >= len)
return cb();
++this._bytesVal;
i = skipValBytes(this, chunk, i, len);
continue;
}
++i;
++this._bytesVal;
i = skipValBytes(this, chunk, i, len);
}
if (this._lastPos < i)
this._val += chunk.latin1Slice(this._lastPos, i);
}
}
cb();
}
_final(cb) {
if (this._byte !== -2)
return cb(new Error("Malformed urlencoded form"));
if (!this._inKey || this._bytesKey > 0 || this._bytesVal > 0) {
if (this._inKey)
this._key = this._decoder(this._key, this._encode);
else
this._val = this._decoder(this._val, this._encode);
this.emit(
"field",
this._key,
this._val,
{
nameTruncated: this._keyTrunc,
valueTruncated: this._valTrunc,
encoding: this.charset,
mimeType: "text/plain"
}
);
}
cb();
}
};
function readPctEnc(self, chunk, pos, len) {
if (pos >= len)
return len;
if (self._byte === -1) {
const hexUpper = HEX_VALUES[chunk[pos++]];
if (hexUpper === -1)
return -1;
if (hexUpper >= 8)
self._encode = 2;
if (pos < len) {
const hexLower = HEX_VALUES[chunk[pos++]];
if (hexLower === -1)
return -1;
if (self._inKey)
self._key += String.fromCharCode((hexUpper << 4) + hexLower);
else
self._val += String.fromCharCode((hexUpper << 4) + hexLower);
self._byte = -2;
self._lastPos = pos;
} else {
self._byte = hexUpper;
}
} else {
const hexLower = HEX_VALUES[chunk[pos++]];
if (hexLower === -1)
return -1;
if (self._inKey)
self._key += String.fromCharCode((self._byte << 4) + hexLower);
else
self._val += String.fromCharCode((self._byte << 4) + hexLower);
self._byte = -2;
self._lastPos = pos;
}
return pos;
}
__name(readPctEnc, "readPctEnc");
function skipKeyBytes(self, chunk, pos, len) {
if (self._bytesKey > self.fieldNameSizeLimit) {
if (!self._keyTrunc) {
if (self._lastPos < pos)
self._key += chunk.latin1Slice(self._lastPos, pos - 1);
}
self._keyTrunc = true;
for (; pos < len; ++pos) {
const code = chunk[pos];
if (code === 61 || code === 38)
break;
++self._bytesKey;
}
self._lastPos = pos;
}
return pos;
}
__name(skipKeyBytes, "skipKeyBytes");
function skipValBytes(self, chunk, pos, len) {
if (self._bytesVal > self.fieldSizeLimit) {
if (!self._valTrunc) {
if (self._lastPos < pos)
self._val += chunk.latin1Slice(self._lastPos, pos - 1);
}
self._valTrunc = true;
for (; pos < len; ++pos) {
if (chunk[pos] === 38)
break;
++self._bytesVal;
}
self._lastPos = pos;
}
return pos;
}
__name(skipValBytes, "skipValBytes");
var HEX_VALUES = [
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
10,
11,
12,
13,
14,
15,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
10,
11,
12,
13,
14,
15,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1,
-1
];
module.exports = URLEncoded;
}
});
// ../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js
var require_lib5 = __commonJS({
"../../node_modules/.pnpm/busboy@1.6.0/node_modules/busboy/lib/index.js"(exports, module) {
"use strict";
var { parseContentType } = require_utils4();
function getInstance(cfg) {
const headers = cfg.headers;
const conType = parseContentType(headers["content-type"]);
if (!conType)
throw new Error("Malformed content type");
for (const type of TYPES) {
const matched = type.detect(conType);
if (!matched)
continue;
const instanceCfg = {
limits: cfg.limits,
headers,
conType,
highWaterMark: void 0,
fileHwm: void 0,
defCharset: void 0,
defParamCharset: void 0,
preservePath: false
};
if (cfg.highWaterMark)
instanceCfg.highWaterMark = cfg.highWaterMark;
if (cfg.fileHwm)
instanceCfg.fileHwm = cfg.fileHwm;
instanceCfg.defCharset = cfg.defCharset;
instanceCfg.defParamCharset = cfg.defParamCharset;
instanceCfg.preservePath = cfg.preservePath;
return new type(instanceCfg);
}
throw new Error(`Unsupported content type: ${headers["content-type"]}`);
}
__name(getInstance, "getInstance");
var TYPES = [
require_multipart(),
require_urlencoded2()
].filter(function(typemod) {
return typeof typemod.detect === "function";
});
module.exports = (cfg) => {
if (typeof cfg !== "object" || cfg === null)
cfg = {};
if (typeof cfg.headers !== "object" || cfg.headers === null || typeof cfg.headers["content-type"] !== "string") {
throw new Error("Missing Content-Type");
}
return getInstance(cfg);
};
}
});
// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/parse-path.js
var require_parse_path = __commonJS({
"../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/parse-path.js"(exports, module) {
var reFirstKey = /^[^\[]*/;
var reDigitPath = /^\[(\d+)\]/;
var reNormalPath = /^\[([^\]]+)\]/;
function parsePath(key) {
function failure() {
return [{ type: "object", key, last: true }];
}
__name(failure, "failure");
var firstKey = reFirstKey.exec(key)[0];
if (!firstKey) return failure();
var len = key.length;
var pos = firstKey.length;
var tail = { type: "object", key: firstKey };
var steps = [tail];
while (pos < len) {
var m;
if (key[pos] === "[" && key[pos + 1] === "]") {
pos += 2;
tail.append = true;
if (pos !== len) return failure();
continue;
}
m = reDigitPath.exec(key.substring(pos));
if (m !== null) {
pos += m[0].length;
tail.nextType = "array";
tail = { type: "array", key: parseInt(m[1], 10) };
steps.push(tail);
continue;
}
m = reNormalPath.exec(key.substring(pos));
if (m !== null) {
pos += m[0].length;
tail.nextType = "object";
tail = { type: "object", key: m[1] };
steps.push(tail);
continue;
}
return failure();
}
tail.last = true;
return steps;
}
__name(parsePath, "parsePath");
module.exports = parsePath;
}
});
// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/set-value.js
var require_set_value = __commonJS({
"../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/lib/set-value.js"(exports, module) {
function valueType(value) {
if (value === void 0) return "undefined";
if (Array.isArray(value)) return "array";
if (typeof value === "object") return "object";
return "scalar";
}
__name(valueType, "valueType");
function setLastValue(context, step, currentValue, entryValue) {
switch (valueType(currentValue)) {
case "undefined":
if (step.append) {
context[step.key] = [entryValue];
} else {
context[step.key] = entryValue;
}
break;
case "array":
context[step.key].push(entryValue);
break;
case "object":
return setLastValue(currentValue, { type: "object", key: "", last: true }, currentValue[""], entryValue);
case "scalar":
context[step.key] = [context[step.key], entryValue];
break;
}
return context;
}
__name(setLastValue, "setLastValue");
function setValue(context, step, currentValue, entryValue) {
if (step.last) return setLastValue(context, step, currentValue, entryValue);
var obj;
switch (valueType(currentValue)) {
case "undefined":
if (step.nextType === "array") {
context[step.key] = [];
} else {
context[step.key] = /* @__PURE__ */ Object.create(null);
}
return context[step.key];
case "object":
return context[step.key];
case "array":
if (step.nextType === "array") {
return currentValue;
}
obj = /* @__PURE__ */ Object.create(null);
context[step.key] = obj;
currentValue.forEach(function(item, i) {
if (item !== void 0) obj["" + i] = item;
});
return obj;
case "scalar":
obj = /* @__PURE__ */ Object.create(null);
obj[""] = currentValue;
context[step.key] = obj;
return obj;
}
}
__name(setValue, "setValue");
module.exports = setValue;
}
});
// ../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/index.js
var require_append_field = __commonJS({
"../../node_modules/.pnpm/append-field@1.0.0/node_modules/append-field/index.js"(exports, module) {
var parsePath = require_parse_path();
var setValue = require_set_value();
function appendField(store, key, value) {
var steps = parsePath(key);
steps.reduce(function(context, step) {
return setValue(context, step, context[step.key], value);
}, store);
}
__name(appendField, "appendField");
module.exports = appendField;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/counter.js
var require_counter = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/counter.js"(exports, module) {
var EventEmitter = __require("events").EventEmitter;
function Counter() {
EventEmitter.call(this);
this.value = 0;
}
__name(Counter, "Counter");
Counter.prototype = Object.create(EventEmitter.prototype);
Counter.prototype.increment = /* @__PURE__ */ __name(function increment() {
this.value++;
}, "increment");
Counter.prototype.decrement = /* @__PURE__ */ __name(function decrement() {
if (--this.value === 0) this.emit("zero");
}, "decrement");
Counter.prototype.isZero = /* @__PURE__ */ __name(function isZero() {
return this.value === 0;
}, "isZero");
Counter.prototype.onceZero = /* @__PURE__ */ __name(function onceZero(fn) {
if (this.isZero()) return fn();
this.once("zero", fn);
}, "onceZero");
module.exports = Counter;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/multer-error.js
var require_multer_error = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/multer-error.js"(exports, module) {
var util = __require("util");
var errorMessages = {
LIMIT_PART_COUNT: "Too many parts",
LIMIT_FILE_SIZE: "File too large",
LIMIT_FILE_COUNT: "Too many files",
LIMIT_FIELD_KEY: "Field name too long",
LIMIT_FIELD_VALUE: "Field value too long",
LIMIT_FIELD_COUNT: "Too many fields",
LIMIT_UNEXPECTED_FILE: "Unexpected file field",
MISSING_FIELD_NAME: "Field name missing",
LIMIT_FIELD_NESTING: "Field name nesting too deep",
LIMIT_FIELD_ARRAY_INDEX: "Field name array index too large",
STREAM_DESTROYED: "File stream was destroyed",
INVALID_FIELD_NAME: "Invalid field name"
};
function MulterError(code, field, filename) {
Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.message = errorMessages[code] || `Unknown error: ${code}`;
this.code = code;
if (field) this.field = field;
if (filename) this.filename = filename;
}
__name(MulterError, "MulterError");
util.inherits(MulterError, Error);
module.exports = MulterError;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/file-appender.js
var require_file_appender = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/file-appender.js"(exports, module) {
function arrayRemove(arr, item) {
var idx = arr.indexOf(item);
if (~idx) arr.splice(idx, 1);
}
__name(arrayRemove, "arrayRemove");
function FileAppender(strategy, req) {
this.strategy = strategy;
this.req = req;
switch (strategy) {
case "NONE":
break;
case "VALUE":
break;
case "ARRAY":
req.files = [];
break;
case "OBJECT":
req.files = /* @__PURE__ */ Object.create(null);
break;
default:
throw new Error("Unknown file strategy: " + strategy);
}
}
__name(FileAppender, "FileAppender");
FileAppender.prototype.insertPlaceholder = function(file) {
var placeholder = {
fieldname: file.fieldname
};
switch (this.strategy) {
case "NONE":
break;
case "VALUE":
break;
case "ARRAY":
this.req.files.push(placeholder);
break;
case "OBJECT":
if (this.req.files[file.fieldname]) {
this.req.files[file.fieldname].push(placeholder);
} else {
this.req.files[file.fieldname] = [placeholder];
}
break;
}
return placeholder;
};
FileAppender.prototype.removePlaceholder = function(placeholder) {
switch (this.strategy) {
case "NONE":
break;
case "VALUE":
break;
case "ARRAY":
arrayRemove(this.req.files, placeholder);
break;
case "OBJECT": {
var files = this.req.files[placeholder.fieldname];
if (!files) break;
arrayRemove(files, placeholder);
if (files.length === 0) delete this.req.files[placeholder.fieldname];
break;
}
}
};
FileAppender.prototype.replacePlaceholder = function(placeholder, file) {
if (this.strategy === "VALUE") {
this.req.file = file;
return;
}
delete placeholder.fieldname;
Object.assign(placeholder, file);
};
module.exports = FileAppender;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/remove-uploaded-files.js
var require_remove_uploaded_files = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/remove-uploaded-files.js"(exports, module) {
function removeUploadedFiles(uploadedFiles, remove, cb) {
var length = uploadedFiles.length;
var errors = [];
if (length === 0) return cb(null, errors);
function handleFile(idx) {
var file = uploadedFiles[idx];
remove(file, function(err) {
if (err) {
err.file = file;
err.field = file.fieldname;
errors.push(err);
}
if (idx < length - 1) {
setImmediate(function() {
handleFile(idx + 1);
});
} else {
cb(null, errors);
}
});
}
__name(handleFile, "handleFile");
handleFile(0);
}
__name(removeUploadedFiles, "removeUploadedFiles");
module.exports = removeUploadedFiles;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/validate-limits.js
var require_validate_limits = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/validate-limits.js"(exports, module) {
function validateLimits(limits) {
Object.keys(limits).forEach(function(key) {
var value = limits[key];
if (value == null) return;
if (Number.isInteger(value) && value >= 0 || value === Infinity) return;
throw new TypeError("Expected limits." + key + " to be a non-negative integer or Infinity");
});
}
__name(validateLimits, "validateLimits");
module.exports = validateLimits;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/make-middleware.js
var require_make_middleware = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/lib/make-middleware.js"(exports, module) {
var is = require_type_is2();
var AsyncResource2 = __require("async_hooks").AsyncResource;
var Busboy = require_lib5();
var appendField = require_append_field();
var Counter = require_counter();
var MulterError = require_multer_error();
var FileAppender = require_file_appender();
var removeUploadedFiles = require_remove_uploaded_files();
var validateLimits = require_validate_limits();
function exceedsArrayIndexLimit(fieldname, limit) {
if (!/^[^[]+(?:\[[^\]]+\])*(?:\[\])?$/.test(fieldname)) return false;
var pattern = /\[(\d+)\]/g;
var match;
while ((match = pattern.exec(fieldname)) !== null) {
if (Number(match[1]) > limit) return true;
}
return false;
}
__name(exceedsArrayIndexLimit, "exceedsArrayIndexLimit");
function drainStream(stream) {
stream.on("readable", () => {
while (stream.read() !== null) {
}
});
}
__name(drainStream, "drainStream");
function decodeFormDataName(str) {
return str.replace(/%0A|%0D|%22/gi, function(match) {
switch (match.toUpperCase()) {
case "%0A":
return "\n";
case "%0D":
return "\r";
default:
return '"';
}
});
}
__name(decodeFormDataName, "decodeFormDataName");
function defaultStreamHandler(req, busboy) {
req.pipe(busboy);
}
__name(defaultStreamHandler, "defaultStreamHandler");
function makeMiddleware(setup) {
return /* @__PURE__ */ __name(function multerMiddleware(req, res, next) {
var resource = new AsyncResource2("multer");
var originalNext = next;
next = /* @__PURE__ */ __name(function(err) {
resource.runInAsyncScope(originalNext, null, err);
}, "next");
if (!is(req, ["multipart"])) return next();
var options = setup();
var limits = options.limits;
if (typeof limits === "function") {
try {
limits = limits(req);
if (limits) validateLimits(limits);
} catch (err) {
return next(err);
}
}
var busboyLimits = limits;
if (limits && (Object.prototype.hasOwnProperty.call(limits, "fileSize") || Object.prototype.hasOwnProperty.call(limits, "parts"))) {
busboyLimits = {};
var key;
for (key in limits) {
busboyLimits[key] = limits[key];
}
if (typeof limits.fileSize === "number" && isFinite(limits.fileSize)) {
busboyLimits.fileSize = limits.fileSize + 1;
}
if (typeof limits.parts === "number" && isFinite(limits.parts)) {
busboyLimits.parts = limits.parts + 1;
}
}
var storage = options.storage;
var fileFilter = options.fileFilter;
var fileStrategy = options.fileStrategy;
var preservePath = options.preservePath;
var defParamCharset = options.defParamCharset;
var defCharset = options.defCharset;
var highWaterMark = options.highWaterMark;
var fileHwm = options.fileHwm;
var streamHandler = options.streamHandler || defaultStreamHandler;
req.body = /* @__PURE__ */ Object.create(null);
var busboy;
var appender = null;
var isDone = false;
var readFinished = false;
var errorOccured = false;
var abortCleanupDone = false;
var abortRemovedFiles = /* @__PURE__ */ new Set();
var pendingWrites = new Counter();
var uploadedFiles = [];
var pendingFiles = [];
function done(err) {
var called = false;
function onFinished() {
if (called) return;
called = true;
next(err);
}
__name(onFinished, "onFinished");
if (isDone) return;
isDone = true;
if (busboy) {
req.unpipe(busboy);
setImmediate(() => {
busboy.removeAllListeners();
});
}
drainStream(req);
req.resume();
if (err && req.readable && !req.destroyed) {
req.once("end", onFinished);
req.once("error", onFinished);
req.once("close", onFinished);
return;
}
next(err);
}
__name(done, "done");
function indicateDone() {
if (readFinished && pendingWrites.isZero() && !errorOccured) done();
}
__name(indicateDone, "indicateDone");
function abortWithError(uploadError, skipPendingWait) {
if (errorOccured) return;
errorOccured = true;
function finishAbort() {
abortCleanupDone = true;
function remove(file, cb) {
storage._removeFile(req, file, cb);
}
__name(remove, "remove");
var pendingToRemove = pendingFiles.filter(function(f) {
return f.path;
});
pendingToRemove.forEach(function(f) {
abortRemovedFiles.add(f);
});
var filesToRemove = uploadedFiles.concat(pendingToRemove);
pendingFiles = [];
removeUploadedFiles(filesToRemove, remove, function(err, storageErrors) {
if (err) return done(err);
uploadError.storageErrors = storageErrors;
done(uploadError);
});
}
__name(finishAbort, "finishAbort");
if (skipPendingWait) {
finishAbort();
} else {
pendingWrites.onceZero(finishAbort);
}
}
__name(abortWithError, "abortWithError");
function abortWithCode(code, optionalField, optionalFilename) {
abortWithError(new MulterError(code, optionalField, optionalFilename));
}
__name(abortWithCode, "abortWithCode");
function handleRequestFailure(err) {
if (isDone) return;
if (busboy) {
req.unpipe(busboy);
busboy.destroy(err);
}
abortWithError(err, true);
}
__name(handleRequestFailure, "handleRequestFailure");
req.on("error", function(err) {
handleRequestFailure(err || new Error("Request error"));
});
req.on("aborted", function() {
handleRequestFailure(new Error("Request aborted"));
});
req.on("close", function() {
if (req.readableEnded) return;
handleRequestFailure(new Error("Request closed"));
});
try {
busboy = Busboy({
headers: req.headers,
limits: busboyLimits,
preservePath,
defParamCharset,
defCharset,
highWaterMark,
fileHwm
});
} catch (err) {
return next(err);
}
appender = new FileAppender(fileStrategy, req);
busboy.on("field", function(fieldname, value, { nameTruncated, valueTruncated }) {
if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME");
var rawFieldname = fieldname;
fieldname = decodeFormDataName(fieldname);
if (nameTruncated) return abortWithCode("LIMIT_FIELD_KEY");
if (valueTruncated) return abortWithCode("LIMIT_FIELD_VALUE", fieldname);
if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) {
if (rawFieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY");
}
if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNestingDepth")) {
if (fieldname.split("[").length - 1 > limits.fieldNestingDepth) return abortWithCode("LIMIT_FIELD_NESTING", fieldname);
}
if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldArrayIndexLimit")) {
if (exceedsArrayIndexLimit(fieldname, limits.fieldArrayIndexLimit)) {
return abortWithCode("LIMIT_FIELD_ARRAY_INDEX", fieldname);
}
}
try {
appendField(req.body, fieldname, value);
} catch {
return abortWithCode("INVALID_FIELD_NAME", fieldname);
}
});
busboy.on("file", function(fieldname, fileStream, { filename, encoding, mimeType }) {
var pendingWritesIncremented = false;
var aborting = false;
var accepted = false;
var fileSizeLimitReached = false;
var originalname = filename && decodeFormDataName(filename);
function decrementPendingWrites() {
if (!pendingWritesIncremented) return;
pendingWritesIncremented = false;
pendingWrites.decrement();
}
__name(decrementPendingWrites, "decrementPendingWrites");
fileStream.on("error", function(err) {
decrementPendingWrites();
abortWithError(err);
});
fileStream.on("limit", function() {
fileSizeLimitReached = true;
if (accepted) {
aborting = true;
abortWithCode("LIMIT_FILE_SIZE", fieldname, originalname);
}
});
if (fieldname == null) return abortWithCode("MISSING_FIELD_NAME");
var rawFieldname = fieldname;
fieldname = decodeFormDataName(fieldname);
if (!filename) return fileStream.resume();
if (limits && Object.prototype.hasOwnProperty.call(limits, "fieldNameSize")) {
if (rawFieldname.length > limits.fieldNameSize) return abortWithCode("LIMIT_FIELD_KEY");
}
var file = {
fieldname,
originalname,
encoding,
mimetype: mimeType
};
var placeholder = appender.insertPlaceholder(file);
fileFilter(req, file, function(err, includeFile) {
if (errorOccured) {
appender.removePlaceholder(placeholder);
return fileStream.resume();
}
if (err) {
appender.removePlaceholder(placeholder);
return abortWithError(err);
}
if (!includeFile) {
appender.removePlaceholder(placeholder);
return fileStream.resume();
}
if (fileSizeLimitReached) {
appender.removePlaceholder(placeholder);
return abortWithCode("LIMIT_FILE_SIZE", fieldname, originalname);
}
accepted = true;
pendingWritesIncremented = true;
pendingWrites.increment();
Object.defineProperty(file, "stream", {
configurable: true,
enumerable: false,
value: fileStream
});
pendingFiles.push(file);
storage._handleFile(req, file, function(err2, info) {
var idx = pendingFiles.indexOf(file);
if (idx !== -1) pendingFiles.splice(idx, 1);
if (aborting) {
appender.removePlaceholder(placeholder);
uploadedFiles.push({ ...file, ...info });
return decrementPendingWrites();
}
if (err2) {
appender.removePlaceholder(placeholder);
decrementPendingWrites();
return abortWithError(err2);
}
var fileInfo = { ...file, ...info };
if (abortCleanupDone) {
if (abortRemovedFiles.has(file)) {
appender.removePlaceholder(placeholder);
decrementPendingWrites();
return;
}
return storage._removeFile(req, fileInfo, function() {
appender.removePlaceholder(placeholder);
decrementPendingWrites();
});
}
appender.replacePlaceholder(placeholder, fileInfo);
uploadedFiles.push(fileInfo);
decrementPendingWrites();
indicateDone();
});
});
});
busboy.on("error", function(err) {
abortWithError(err);
});
busboy.on("partsLimit", function() {
abortWithCode("LIMIT_PART_COUNT");
});
busboy.on("filesLimit", function() {
abortWithCode("LIMIT_FILE_COUNT");
});
busboy.on("fieldsLimit", function() {
abortWithCode("LIMIT_FIELD_COUNT");
});
busboy.on("close", function() {
readFinished = true;
indicateDone();
});
streamHandler(req, busboy);
}, "multerMiddleware");
}
__name(makeMiddleware, "makeMiddleware");
module.exports = makeMiddleware;
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/disk.js
var require_disk = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/disk.js"(exports, module) {
var fs = __require("fs");
var os = __require("os");
var path = __require("path");
var crypto = __require("crypto");
var pipeline = __require("stream").pipeline;
var MulterError = require_multer_error();
var openStreams = /* @__PURE__ */ new WeakMap();
var flushingFiles = /* @__PURE__ */ new WeakMap();
function endFlush(file) {
var flush = flushingFiles.get(file);
if (!flush) return;
flushingFiles.delete(file);
if (flush.onClosed) flush.onClosed();
}
__name(endFlush, "endFlush");
function getFilename(req, file, cb) {
crypto.randomBytes(16, function(err, raw) {
cb(err, err ? void 0 : raw.toString("hex"));
});
}
__name(getFilename, "getFilename");
function getDestination(req, file, cb) {
cb(null, os.tmpdir());
}
__name(getDestination, "getDestination");
function DiskStorage(opts) {
opts = opts || {};
this.getFilename = opts.filename || getFilename;
this.flush = opts.flush;
if (typeof opts.destination === "string") {
fs.mkdirSync(opts.destination, { recursive: true });
this.getDestination = function($0, $1, cb) {
cb(null, opts.destination);
};
} else {
this.getDestination = opts.destination || getDestination;
}
}
__name(DiskStorage, "DiskStorage");
DiskStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) {
var that = this;
that.getDestination(req, file, function(err, destination) {
if (err) return cb(err);
that.getFilename(req, file, function(err2, filename) {
if (err2) return cb(err2);
var finalPath = path.join(destination, filename);
if (file.stream.destroyed) return cb(new MulterError("STREAM_DESTROYED"));
var outStream = fs.createWriteStream(finalPath);
file.path = finalPath;
openStreams.set(file, outStream);
outStream.once("close", function() {
openStreams.delete(file);
});
if (that.flush) flushingFiles.set(file, {});
pipeline(file.stream, outStream, function(err3) {
if (err3) {
endFlush(file);
return cb(err3);
}
var done = /* @__PURE__ */ __name(function(err4) {
if (err4) return cb(err4);
cb(null, {
destination,
filename,
path: finalPath,
size: outStream.bytesWritten
});
}, "done");
if (!that.flush) return done();
fs.open(finalPath, "r+", function(err4, fd) {
if (err4) {
endFlush(file);
return done(err4);
}
fs.fsync(fd, function(syncErr) {
fs.close(fd, function(closeErr) {
endFlush(file);
done(syncErr || closeErr);
});
});
});
});
});
});
}, "_handleFile");
DiskStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) {
var path2 = file.path;
delete file.destination;
delete file.filename;
delete file.path;
function unlink() {
var flush = flushingFiles.get(file);
if (!flush) return fs.unlink(path2, cb);
flush.onClosed = function() {
fs.unlink(path2, cb);
};
}
__name(unlink, "unlink");
var outStream = openStreams.get(file);
if (!outStream) return unlink();
if (outStream.closed) return unlink();
function onReleased() {
outStream.removeListener("close", onReleased);
outStream.removeListener("error", onReleased);
unlink();
}
__name(onReleased, "onReleased");
outStream.once("close", onReleased);
outStream.once("error", onReleased);
outStream.destroy();
}, "_removeFile");
module.exports = function(opts) {
return new DiskStorage(opts);
};
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/memory.js
var require_memory = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/storage/memory.js"(exports, module) {
function MemoryStorage(opts) {
}
__name(MemoryStorage, "MemoryStorage");
MemoryStorage.prototype._handleFile = /* @__PURE__ */ __name(function _handleFile(req, file, cb) {
var chunks = [];
file.stream.on("data", function(chunk) {
chunks.push(chunk);
});
file.stream.on("end", function() {
var buffer = Buffer.concat(chunks);
cb(null, {
buffer,
size: buffer.length
});
});
}, "_handleFile");
MemoryStorage.prototype._removeFile = /* @__PURE__ */ __name(function _removeFile(req, file, cb) {
delete file.buffer;
cb(null);
}, "_removeFile");
module.exports = function(opts) {
return new MemoryStorage(opts);
};
}
});
// ../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/index.js
var require_multer = __commonJS({
"../../node_modules/.pnpm/multer@2.4.0/node_modules/multer/index.js"(exports, module) {
var makeMiddleware = require_make_middleware();
var diskStorage = require_disk();
var memoryStorage = require_memory();
var MulterError = require_multer_error();
var validateLimits = require_validate_limits();
function allowAll(req, file, cb) {
cb(null, true);
}
__name(allowAll, "allowAll");
function Multer(options) {
if (options.storage) {
this.storage = options.storage;
} else if (options.dest) {
this.storage = diskStorage({ destination: options.dest });
} else {
this.storage = memoryStorage();
}
if (options.limits && typeof options.limits !== "function") validateLimits(options.limits);
this.limits = options.limits;
this.preservePath = options.preservePath;
this.defParamCharset = options.defParamCharset || "latin1";
this.defCharset = options.defCharset;
this.highWaterMark = options.highWaterMark;
this.fileHwm = options.fileHwm;
this.fileFilter = options.fileFilter || allowAll;
if (options.streamHandler !== void 0 && typeof options.streamHandler !== "function") {
throw new TypeError("Expected streamHandler to be a function");
}
this.streamHandler = options.streamHandler;
}
__name(Multer, "Multer");
Multer.prototype._makeMiddleware = function(fields, fileStrategy) {
function setup() {
var fileFilter = this.fileFilter;
var filesLeft = /* @__PURE__ */ Object.create(null);
fields.forEach(function(field) {
if (typeof field.maxCount === "number") {
filesLeft[field.name] = field.maxCount;
} else {
filesLeft[field.name] = Infinity;
}
});
function wrappedFileFilter(req, file, cb) {
if ((filesLeft[file.fieldname] || 0) <= 0) {
return cb(new MulterError("LIMIT_UNEXPECTED_FILE", file.fieldname, file.originalname));
}
filesLeft[file.fieldname] -= 1;
var settled = false;
fileFilter(req, file, function(err, includeFile) {
if (!settled) {
settled = true;
if (err || !includeFile) filesLeft[file.fieldname] += 1;
}
cb(err, includeFile);
});
}
__name(wrappedFileFilter, "wrappedFileFilter");
return {
limits: this.limits,
preservePath: this.preservePath,
defParamCharset: this.defParamCharset,
defCharset: this.defCharset,
highWaterMark: this.highWaterMark,
fileHwm: this.fileHwm,
streamHandler: this.streamHandler,
storage: this.storage,
fileFilter: wrappedFileFilter,
fileStrategy
};
}
__name(setup, "setup");
return makeMiddleware(setup.bind(this));
};
Multer.prototype.single = function(name) {
return this._makeMiddleware([{ name, maxCount: 1 }], "VALUE");
};
Multer.prototype.array = function(name, maxCount) {
return this._makeMiddleware([{ name, maxCount }], "ARRAY");
};
Multer.prototype.fields = function(fields) {
return this._makeMiddleware(fields, "OBJECT");
};
Multer.prototype.none = function() {
return this._makeMiddleware([], "NONE");
};
Multer.prototype.any = function() {
function setup() {
return {
limits: this.limits,
preservePath: this.preservePath,
defParamCharset: this.defParamCharset,
defCharset: this.defCharset,
highWaterMark: this.highWaterMark,
fileHwm: this.fileHwm,
streamHandler: this.streamHandler,
storage: this.storage,
fileFilter: this.fileFilter,
fileStrategy: "ARRAY"
};
}
__name(setup, "setup");
return makeMiddleware(setup.bind(this));
};
function multer6(options) {
if (options === void 0) {
return new Multer({});
}
if (typeof options === "object" && options !== null) {
return new Multer(options);
}
throw new TypeError("Expected object for argument options");
}
__name(multer6, "multer");
module.exports = multer6;
module.exports.diskStorage = diskStorage;
module.exports.memoryStorage = memoryStorage;
module.exports.MulterError = MulterError;
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/files.constants.js
var MULTER_MODULE_OPTIONS;
var init_files_constants = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/files.constants.js"() {
MULTER_MODULE_OPTIONS = "MULTER_MODULE_OPTIONS";
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.constants.js
var multerExceptions, DEFAULT_FIELD_NAME_LIMITS, busboyExceptions;
var init_multer_constants = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.constants.js"() {
multerExceptions = {
// from https://github.com/expressjs/multer/blob/master/lib/multer-error.js
LIMIT_PART_COUNT: "Too many parts",
LIMIT_FILE_SIZE: "File too large",
LIMIT_FILE_COUNT: "Too many files",
LIMIT_FIELD_KEY: "Field name too long",
LIMIT_FIELD_VALUE: "Field value too long",
LIMIT_FIELD_COUNT: "Too many fields",
LIMIT_UNEXPECTED_FILE: "Unexpected file field",
MISSING_FIELD_NAME: "Field name missing",
LIMIT_FIELD_NESTING: "Field name nesting too deep",
LIMIT_FIELD_ARRAY_INDEX: "Field name array index too large",
INVALID_FIELD_NAME: "Invalid field name"
// STREAM_DESTROYED is left out on purpose: it is raised by the storage
// engine after the file stream was destroyed, not by the request, so it
// stays a 500.
};
DEFAULT_FIELD_NAME_LIMITS = {
fieldNestingDepth: 32,
fieldArrayIndexLimit: 1e3
};
busboyExceptions = {
// from https://github.com/mscdex/busboy/blob/master/lib/types/multipart.js
MULTIPART_BOUNDARY_NOT_FOUND: "Multipart: Boundary not found",
MULTIPART_MALFORMED_PART_HEADER: "Malformed part header",
MULTIPART_UNEXPECTED_END_OF_FORM: "Unexpected end of form",
MULTIPART_UNEXPECTED_END_OF_FILE: "Unexpected end of file"
};
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.utils.js
import { finished as finished2 } from "stream";
function mergeMulterOptions(options = {}, localOptions = {}) {
const merged = { ...options, ...localOptions };
if (isPlainObject(options.limits) && isPlainObject(localOptions.limits)) {
merged.limits = { ...options.limits, ...localOptions.limits };
}
if (localOptions.dest && !localOptions.storage) {
delete merged.storage;
}
return merged;
}
function applyDefaultLimits(options) {
const { limits } = options;
return {
...options,
limits: typeof limits === "function" ? (req) => withDefaultLimits(limits(req)) : withDefaultLimits(limits)
};
}
function withDefaultLimits(limits) {
return {
...limits,
fieldNestingDepth: limits?.fieldNestingDepth ?? DEFAULT_FIELD_NAME_LIMITS.fieldNestingDepth,
fieldArrayIndexLimit: limits?.fieldArrayIndexLimit ?? DEFAULT_FIELD_NAME_LIMITS.fieldArrayIndexLimit
};
}
function removeFilesOnPipeRejection(storage, req, res) {
return (0, import_rxjs9.catchError)((err) => {
if (isRejectedByPipes(req)) {
finished2(res, () => {
for (const file of storedFiles(req)) {
try {
storage._removeFile(req, file, () => void 0);
} catch {
}
}
});
}
return (0, import_rxjs9.throwError)(() => err);
});
}
function storedFiles(req) {
const { file, files } = req;
if (file) {
return [file];
}
return Array.isArray(files) ? files : Object.values(files ?? {}).flat();
}
function transformException(error) {
if (!error || error instanceof HttpException) {
return error;
}
const exception = isMulterExceptionCode(error.code) ? multerExceptions[error.code] : error.message;
switch (exception) {
case multerExceptions.LIMIT_FILE_SIZE:
return new PayloadTooLargeException(error.message);
case multerExceptions.LIMIT_FILE_COUNT:
case multerExceptions.LIMIT_FIELD_KEY:
case multerExceptions.LIMIT_FIELD_VALUE:
case multerExceptions.LIMIT_FIELD_COUNT:
case multerExceptions.LIMIT_FIELD_NESTING:
case multerExceptions.LIMIT_FIELD_ARRAY_INDEX:
case multerExceptions.INVALID_FIELD_NAME:
case multerExceptions.LIMIT_UNEXPECTED_FILE:
case multerExceptions.LIMIT_PART_COUNT:
case multerExceptions.MISSING_FIELD_NAME:
if (error.field) {
return new BadRequestException(`${error.message} - ${error.field}`);
}
return new BadRequestException(error.message);
case busboyExceptions.MULTIPART_BOUNDARY_NOT_FOUND:
return new BadRequestException(error.message);
case busboyExceptions.MULTIPART_MALFORMED_PART_HEADER:
case busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FORM:
case busboyExceptions.MULTIPART_UNEXPECTED_END_OF_FILE:
return new BadRequestException(`Multipart: ${error.message}`);
}
return error;
}
function isMulterExceptionCode(code) {
return typeof code === "string" && Object.hasOwn(multerExceptions, code);
}
var import_rxjs9;
var init_multer_utils = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer/multer.utils.js"() {
init_common();
init_internal();
init_internal2();
import_rxjs9 = __toESM(require_cjs(), 1);
init_multer_constants();
__name(mergeMulterOptions, "mergeMulterOptions");
__name(applyDefaultLimits, "applyDefaultLimits");
__name(withDefaultLimits, "withDefaultLimits");
__name(removeFilesOnPipeRejection, "removeFilesOnPipeRejection");
__name(storedFiles, "storedFiles");
__name(transformException, "transformException");
__name(isMulterExceptionCode, "isMulterExceptionCode");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js
function AnyFilesInterceptor(localOptions) {
let MixinInterceptor = class MixinInterceptor {
static {
__name(this, "MixinInterceptor");
}
multer;
constructor(options = {}) {
this.multer = (0, import_multer.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions)));
}
async intercept(context, next) {
const ctx = context.switchToHttp();
await new Promise((resolve, reject) => this.multer.any()(ctx.getRequest(), ctx.getResponse(), (err) => {
if (err) {
const error = transformException(err);
return reject(error);
}
resolve();
}));
return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse()));
}
};
MixinInterceptor = __decorate([
__param(0, Optional()),
__param(0, Inject(MULTER_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object])
], MixinInterceptor);
const Interceptor = mixin(MixinInterceptor);
return Interceptor;
}
var import_multer;
var init_any_files_interceptor = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/any-files.interceptor.js"() {
init_tslib_es6();
init_common();
import_multer = __toESM(require_multer(), 1);
init_files_constants();
init_multer_utils();
__name(AnyFilesInterceptor, "AnyFilesInterceptor");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js
function FileFieldsInterceptor(uploadFields, localOptions) {
let MixinInterceptor = class MixinInterceptor {
static {
__name(this, "MixinInterceptor");
}
multer;
constructor(options = {}) {
this.multer = (0, import_multer2.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions)));
}
async intercept(context, next) {
const ctx = context.switchToHttp();
await new Promise((resolve, reject) => this.multer.fields(uploadFields)(ctx.getRequest(), ctx.getResponse(), (err) => {
if (err) {
const error = transformException(err);
return reject(error);
}
resolve();
}));
return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse()));
}
};
MixinInterceptor = __decorate([
__param(0, Optional()),
__param(0, Inject(MULTER_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object])
], MixinInterceptor);
const Interceptor = mixin(MixinInterceptor);
return Interceptor;
}
var import_multer2;
var init_file_fields_interceptor = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file-fields.interceptor.js"() {
init_tslib_es6();
init_common();
import_multer2 = __toESM(require_multer(), 1);
init_files_constants();
init_multer_utils();
__name(FileFieldsInterceptor, "FileFieldsInterceptor");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js
function FileInterceptor(fieldName, localOptions) {
let MixinInterceptor = class MixinInterceptor {
static {
__name(this, "MixinInterceptor");
}
multer;
constructor(options = {}) {
this.multer = (0, import_multer3.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions)));
}
async intercept(context, next) {
const ctx = context.switchToHttp();
await new Promise((resolve, reject) => this.multer.single(fieldName)(ctx.getRequest(), ctx.getResponse(), (err) => {
if (err) {
const error = transformException(err);
return reject(error);
}
resolve();
}));
return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse()));
}
};
MixinInterceptor = __decorate([
__param(0, Optional()),
__param(0, Inject(MULTER_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object])
], MixinInterceptor);
const Interceptor = mixin(MixinInterceptor);
return Interceptor;
}
var import_multer3;
var init_file_interceptor = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/file.interceptor.js"() {
init_tslib_es6();
init_common();
import_multer3 = __toESM(require_multer(), 1);
init_files_constants();
init_multer_utils();
__name(FileInterceptor, "FileInterceptor");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js
function FilesInterceptor(fieldName, maxCount, localOptions) {
let MixinInterceptor = class MixinInterceptor {
static {
__name(this, "MixinInterceptor");
}
multer;
constructor(options = {}) {
this.multer = (0, import_multer4.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions)));
}
async intercept(context, next) {
const ctx = context.switchToHttp();
await new Promise((resolve, reject) => this.multer.array(fieldName, maxCount)(ctx.getRequest(), ctx.getResponse(), (err) => {
if (err) {
const error = transformException(err);
return reject(error);
}
resolve();
}));
return next.handle().pipe(removeFilesOnPipeRejection(this.multer.storage, ctx.getRequest(), ctx.getResponse()));
}
};
MixinInterceptor = __decorate([
__param(0, Optional()),
__param(0, Inject(MULTER_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object])
], MixinInterceptor);
const Interceptor = mixin(MixinInterceptor);
return Interceptor;
}
var import_multer4;
var init_files_interceptor = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/files.interceptor.js"() {
init_tslib_es6();
init_common();
import_multer4 = __toESM(require_multer(), 1);
init_files_constants();
init_multer_utils();
__name(FilesInterceptor, "FilesInterceptor");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js
function NoFilesInterceptor(localOptions) {
let MixinInterceptor = class MixinInterceptor {
static {
__name(this, "MixinInterceptor");
}
multer;
constructor(options = {}) {
this.multer = (0, import_multer5.default)(applyDefaultLimits(mergeMulterOptions(options, localOptions)));
}
async intercept(context, next) {
const ctx = context.switchToHttp();
await new Promise((resolve, reject) => this.multer.none()(ctx.getRequest(), ctx.getResponse(), (err) => {
if (err) {
const error = transformException(err);
return reject(error);
}
resolve();
}));
return next.handle();
}
};
MixinInterceptor = __decorate([
__param(0, Optional()),
__param(0, Inject(MULTER_MODULE_OPTIONS)),
__metadata("design:paramtypes", [Object])
], MixinInterceptor);
const Interceptor = mixin(MixinInterceptor);
return Interceptor;
}
var import_multer5;
var init_no_files_interceptor = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/no-files.interceptor.js"() {
init_tslib_es6();
init_common();
import_multer5 = __toESM(require_multer(), 1);
init_files_constants();
init_multer_utils();
__name(NoFilesInterceptor, "NoFilesInterceptor");
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/index.js
var init_interceptors2 = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interceptors/index.js"() {
init_any_files_interceptor();
init_file_fields_interceptor();
init_file_interceptor();
init_files_interceptor();
init_no_files_interceptor();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js
var init_files_upload_module_interface = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/files-upload-module.interface.js"() {
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/index.js
var init_interfaces3 = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/interfaces/index.js"() {
init_files_upload_module_interface();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.constants.js
var MULTER_MODULE_ID;
var init_multer_constants2 = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.constants.js"() {
MULTER_MODULE_ID = "MULTER_MODULE_ID";
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.module.js
var MulterModule_1, MulterModule;
var init_multer_module = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/multer.module.js"() {
init_tslib_es6();
init_common();
init_files_constants();
init_multer_constants2();
init_internal();
MulterModule = MulterModule_1 = class MulterModule2 {
static {
__name(this, "MulterModule");
}
static register(options = {}) {
return {
module: MulterModule_1,
providers: [
{ provide: MULTER_MODULE_OPTIONS, useFactory: /* @__PURE__ */ __name(() => options, "useFactory") },
{
provide: MULTER_MODULE_ID,
useValue: randomStringGenerator()
}
],
exports: [MULTER_MODULE_OPTIONS]
};
}
static registerAsync(options) {
return {
module: MulterModule_1,
imports: options.imports,
providers: [
...this.createAsyncProviders(options),
{
provide: MULTER_MODULE_ID,
useValue: randomStringGenerator()
}
],
exports: [MULTER_MODULE_OPTIONS]
};
}
static createAsyncProviders(options) {
if (options.useExisting || options.useFactory) {
return [this.createAsyncOptionsProvider(options)];
}
return [
this.createAsyncOptionsProvider(options),
{
provide: options.useClass,
useClass: options.useClass
}
];
}
static createAsyncOptionsProvider(options) {
if (options.useFactory) {
return {
provide: MULTER_MODULE_OPTIONS,
useFactory: options.useFactory,
inject: options.inject || []
};
}
return {
provide: MULTER_MODULE_OPTIONS,
useFactory: /* @__PURE__ */ __name(async (optionsFactory) => optionsFactory.createMulterOptions(), "useFactory"),
inject: [options.useExisting || options.useClass]
};
}
};
MulterModule = MulterModule_1 = __decorate([
Module({})
], MulterModule);
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/index.js
var init_multer = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/multer/index.js"() {
init_interceptors2();
init_interfaces3();
init_multer_module();
}
});
// ../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/index.js
var init_platform_express = __esm({
"../../node_modules/.pnpm/@nestjs+platform-express@12_3e713911c21b6500374058e65a37060a/node_modules/@nestjs/platform-express/index.js"() {
init_adapters2();
init_interfaces2();
init_multer();
}
});
export {
APP_GUARD,
APP_FILTER,
Reflector,
require_cookie,
ExpressAdapter,
AnyFilesInterceptor,
FileFieldsInterceptor,
FileInterceptor,
FilesInterceptor,
NoFilesInterceptor,
MulterModule,
init_platform_express,
NestFactory,
core_exports,
init_core
};